先看安全模式再看内容
OPC UA 的安全设计允许按需选择安全策略与安全模式:可以为无(既不签名也不加密)、仅签名、或签名并加密。这个选择直接决定抓包能看到什么。安全模式为无且使用匿名或简单身份时,可以解析出服务调用内容,例如读取哪些节点、写入哪些值、订阅与发布的关系;一旦启用签名与加密,载荷被加密,抓包只能看到会话建立过程、消息大小与频率。因此分析前的第一步是确认该会话使用的安全模式与端点配置,而不是直接下结论说看不到内容。
基本信息
| 承载方式 | 二进制协议通常是默认选择,也可承载于其他应用层协议之上,具体以设备文档为准 |
|---|---|
| 常用端口 | 二进制承载有约定默认端口,部署时也可能被改到其他端口 |
| 报文类型 | 握手、打开安全通道、普通消息、关闭等,构成会话的基本骨架 |
| 安全策略与模式 | 无、仅签名、签名并加密,决定载荷是否可读 |
| 证书机制 | 应用实例证书与信任列表,证书不被信任时连接会失败 |
| 可读内容 | 未加密时可读服务类型与节点访问;加密时只有会话元数据 |
分析维度
- 会话建立:客户端与服务端的握手、端点选择与安全模式协商是否成功
- 安全通道:通道打开与续期是否正常,是否存在频繁重建
- 服务调用:读取、写入、订阅等操作的分布,写入操作尤其需要关注来源
- 订阅与发布:发布周期与数据量是否稳定,中断会直接影响监视画面
- 异常与重连:连接失败、证书错误与超时的时间分布,指向配置或证书问题
- 客户端清单:有哪些客户端访问该服务端,是否存在清单外的客户端
报文阶段与分析要点
| 阶段 | 作用 | 分析要点 |
|---|---|---|
| 握手 | 协商缓冲区大小与版本 | 失败通常指向版本或参数不兼容 |
| 打开安全通道 | 协商安全策略并建立通道 | 证书与策略不匹配会在此失败 |
| 通道续期 | 维持长期会话 | 频繁续期或失败说明凭据或时间设置异常 |
| 消息交互 | 承载读、写与订阅操作 | 加密后只能看消息大小与频率 |
| 关闭 | 正常结束会话 | 异常中断需要结合网络与设备日志 |
证书相关故障容易被误判成网络问题:连接被拒绝、握手失败、会话反复重建,都可能是证书过期、信任列表未更新或设备时间偏差造成。排查这类问题时,先核对两端的证书状态与时间,再去看网络层。