安全与 PKI
大多数 OPC UA 安全问题都是证书问题,而大多数都靠关闭安全来“解决”:这就是为什么那么多工厂跑在 None 上。本课程正确地搭建一套可用的 PKI:策略与模式、证书结构、四个存储区、角色与审计。
| 课时 | 12 |
|---|---|
| 时间 | 约 96 分钟 |
| 先修要求 | A2 |
| 成本 | 免费:文字课程开放,视频和实验需要免费账号 |
学完你将能够做到
- 你能够选定安全策略和模式,并为两者给出理由。
- 你能够生成一份真正能通过校验的证书,包括 SAN 条目。
- 你能够在连接的两端都执行从“被拒绝”到“受信任”的流程。
- 你能够分辨可抑制的校验错误和致命错误。
- 你能够向 IEC 62443 审计员解释 OPC UA 安全。
课程大纲
-
1
选择一个安全策略8 分钟
这些策略实际规定了什么、哪些已废弃,以及当前参考协议栈中的现代 ECC 选项。
交付物 三台服务器端点的策略列表,并标出其中已废弃的策略
-
2
选择 Sign 或 SignAndEncrypt7 分钟
完整性与机密性的对比、各自的代价,以及为什么在扁平 OT 网络上使用 None 应当是一个需要有人签字的决定。
资料 同一个会话在 None、Sign 和 SignAndEncrypt 下的 Wireshark 抓包
-
3
拆解一份应用程序实例证书10 分钟
Subject、有效期、密钥用途和 SAN:包括必须与 ApplicationUri 完全一致的那条 URI 条目,这是最常见的证书故障。
交付物 一份可用证书的 openssl 输出,对每一个重要字段都做了注释
-
4
生成一份能通过校验的证书9 分钟
带正确扩展项的 openssl 调用,以及各 SDK 的辅助工具做同一件事的方式。
交付物 一份可用的 openssl 配置和命令,以及由此生成并被真实服务器接受的证书
-
5
了解四个 PKI 存储区8 分钟
trusted、issuer、rejected 和 crl。各自应当放什么,以及 rejected 库为什么存在。
资料 一个真实客户端的 PKI 文件夹布局,含一份从 rejected 移到 trusted 的证书
-
6
在两侧都执行信任流程8 分钟
几乎所有人都只做一半的那一步:服务器信任客户端,客户端也要信任服务器。只做一边,就是它仍然失败的原因。
资料 一次首连失败,在双方信任列表更新之后成功
-
7
处理 CA 签发的证书9 分钟
证书链、issuer 存储中的中间证书、CRL,以及企业 CA 缺少 keyCertSign 和 cRLSign 的那类故障。
资料 一次追溯到缺失密钥用途的证书链校验失败,附 openssl 证明
-
8
把可抑制的错误与致命错误区分开8 分钟
客户端可以选择接受哪些校验失败、绝不能接受哪些,以及为什么生产环境中的“接受所有证书”不是一项配置,而是一个放弃安全的决定。
交付物 一份包含十种证书校验失败的验证矩阵,标明可抑制或致命
-
9
认证用户,而不只是认证机器7 分钟
匿名、用户名和证书身份令牌,以及认证一个应用与认证一个人之间的区别。
资料 针对 Milo 演示服务器的三种身份令牌,附被接受和被拒绝的结果
-
10
应用 Part 18 的角色8 分钟
角色、角色权限以及众所周知的 TrustedApplication 角色。限制一个已认证的客户端实际可以做什么。
资料 一台配置了两个角色的服务器,同一次读取按角色分别成功和失败
-
11
用 GDS 大规模管理证书7 分钟
推送式和拉取式证书管理,以及为什么手工信任列表在大约第三十台设备时就不再可行。
资料 通过 GDS 推送到服务器的一份证书,附推送前后的信任列表
-
12
回答一个 IEC 62443 的问题7 分钟
把 OPC UA 的机制映射到安全审计真正会问的问题上,以及 OPC UA 在哪些地方没有给出答案。
资料 一份八问审计摘要,附每一问对应的 OPC UA 机制,以及它答不了的两问
实验
需要免费账户
生成你自己的、SAN 正确的客户端证书,上传后以 SignAndEncrypt 连接 opc.tcp://milo.digitalpetri.com:62541/milo,然后故意破坏 SAN 并指出具体的状态码。
解锁实验 →最后核对日期 2026 年 9 月 7 日,对照 OPC UA 1.05.07。OPC UA Connect 是教育资源,与 OPC Foundation 无隶属关系。