摘要电网调度下发断路器分合闸、保护定值修改等高危指令一旦被篡改或伪造后果严重。本文介绍用安当 UKey 对操作指令做 SM2 私钥签名、厂站终端实时验签的防篡改方案私钥锁在国密芯片内不可导出全程防伪造、防抵赖、可审计已通过电科院检测认证每日数万条指令 100% 验签。附电力/石化/冶金 SCADA 的落地要点。一、高危指令为什么必须签名电力调度中心每天下发大量指令断路器分合闸保护定值修改负荷控制、AGC 指令这些指令通过调度数据网传到厂站端执行。如果链路上的指令被篡改或伪造可能导致误动、拒动引发大面积停电甚至安全事故。传统做法靠网络隔离 明文口令但明文指令无来源证明无法判断到底是谁下的一旦内网被渗透指令可被伪造出事后无法追溯责任人抵赖风险解决思路给每条指令加一个不可伪造的数字签名由操作员持有的 UKey 用 SM2 私钥签名厂站端用公钥验签。二、原理私钥在芯片签名即身份UKey 的安全芯片内生成 SM2 密钥对私钥不可导出。操作员下发指令时UKey 对指令内容做 SM2 签名签名值随指令一起下发厂站终端用预存公钥验签——签名通过才执行。操作员(持有 UKey) ──指令明文 SM2签名──▶ 厂站终端(公钥验签) ──通过才执行──▶ 断路器/定值安全属性防伪造没有 UKey 私钥无法生成有效签名防篡改指令任一位被改验签立刻失败防抵赖签名绑定操作员 UKey操作可追溯防重放指令带时间戳/序列号旧签名重放无效三、签名验签流程SM21. 操作员在调度台输入指令 插入个人 UKey 输入 PIN 2. 调度系统组装指令报文{指令类型, 设备ID, 参数, 时间戳, 操作员ID} 3. UKey 用芯片内 SM2 私钥对报文摘要签名 → sig 4. 下发 {报文, sig} 到厂站 5. 厂站终端用操作员公钥验签 sig 通过 → 执行指令 记录审计日志 失败 → 拒绝执行 告警四、一段指令签名示例Python 调 UKey 中间件实际由 UKey 驱动完成签名应用层只拿签名值importhashlib,requestsdefsign_command(op:dict,ukey)-dict:# 1. 组装指令报文含时间戳防重放op[ts]int(time.time()*1000)payloadjson.dumps(op,sort_keysTrue,ensure_asciiFalse)# 2. SM3 摘要国密哈希digesthashlib.sm3(payload.encode(utf-8))ifHAS_SM3elsehashlib.sha256(payload.encode())# 3. 调 UKey 中间件本地签名私钥在芯片内外出仅签名值sigukey.sign_sm2(digest)# 通过 127.0.0.1:2300 或 C 库# 4. 下发 {报文, 签名, 操作员ID}return{payload:payload,sig:sig.hex(),operator:op[operator]}# 厂站端验签用操作员预存 SM2 公钥defverify_command(msg:dict,pubkey)-bool:digesthashlib.sm3(msg[payload].encode(utf-8))returnsm2_verify(pubkey,digest,bytes.fromhex(msg[sig]))注意应用进程永远拿不到私钥只拿到签名值。即使调度台被入侵攻击者也造不出有效签名。五、真实落地效果国家电网 / 南方电网某调度中心电力调度员下发高危指令时用 UKey 对指令内容 SM2 签名厂站终端实时验签。效果每日数万条高危操作指令 100% 签名验证设备通过电科院检测认证误操作与伪造指令被彻底阻断。延伸到其他行业石化 / 冶金 SCADADCS 操作指令签名防未授权工艺修改金融交易报文支付网关指令 SM2 签名满足 JR/T 监管军工指挥离线环境指令签名抗逆向提取六、与登录双因素的区别维度登录双因素指令签名保护对象登录身份业务指令内容时机登录时一次每条指令一次价值防未授权进入防指令篡改/伪造/抵赖典型场景OA/ERP/VPN 登录调度/工控/交易指令两者互补先 UKey 双因素登录再对每条关键指令签名形成身份 指令双重可信链。七、落地要点密钥管理操作员 UKey 公钥统一登记到厂站验签库结合 ASP/KSP 做生命周期管理时间戳/序列号必须带防重放离线支持厂站端验签可纯本地持公钥即可不依赖联网审计每次验签结果入日志满足等保审计可追溯应急操作员 UKey 遗失后台吊销公钥即失效八、小结高危操作指令的安全不能只靠网络隔离。用 UKey 对每条指令做 SM2 私钥签名、厂站端公钥验签把不可伪造、不可篡改、不可抵赖从口号变成机制——私钥锁在国密芯片里攻击者拿不到、造不出。电力调度已验证数万条指令 100% 验签、通过电科院认证。对任何指令错了会出大事的工控场景这都是值得照搬的范式。