OPCUA协议的安全增强方法技术

技术编号:30788502 阅读:22 留言:0更新日期:2021-11-16 07:51
OPCUA协议的安全增强方法,客户端首先向服务器发送GetEndPoints请求,请求关于服务器的相关信息;DiscoveryEndPoint使用pk(S)、安全模式、SP、UP进行应答;客户端验证pk(S)无误后生成随机数N

【技术实现步骤摘要】
OPCUA协议的安全增强方法


[0001]本专利技术涉及工业控制系统通信协议数据认证安全


技术介绍

[0002]OPCUA即OPC统一架构,是由OPC基金会在传统OPC基础上延伸而来基于Web服务的新的工控协议,并广泛应用于工厂设备之间的远距离交互以及多设备互联,具有跨平台、集成地址空间、封装通用服务接口、定义安全模型等特性。区别于传统的OPC协议,OPCUA协议能够通过互联网实现各种工业系统和设备的远距离数据交换、实现客户端与服务器之间的通信,满足工控系统各个层面数据交换的需求。
[0003]OPCUA安全模型分为三层。最底层为传输层,是保障数据安全通信的基础,也是较为容易被攻击的一层,比如遭受拒绝服务攻击;传输层之上是通信层,安全通道就在这一层建立,通信层采用非对称加密、数字签名等技术保证通道的机密性和完整性;最上层是应用层,基于安全通道客户端和服务器通过协商在应用层创建会话,用来传输设备之间的实时数据、操作指令等,创建会话可以对客户端的身份进行验证和授权。该安全模型为OPCUA的安全性提供了一定的基础,为分析OPCUA两个握手子协议安全性提供指导依据。

技术实现思路

[0004]本专利技术的目的是提供一种OPCUA协议的安全增强方法。
[0005]本专利技术是OPCUA协议的安全增强方法,其步骤为:
[0006]步骤(1)客户端首先向检测端点DiscoveryEndPoint发送GetEndPoint请求,请求关于服务器的相关信息;
[0007]步骤(2)检测端点DiscoveryEndPoint向客户端发送消息{GERes,pk(S),SignEnc,SP,UP},其中pk(S)为服务器的公钥、SignEnc表示安全模式为签密、SP和UP分别为安全策略和用户策略,其中SP和UP用于加密原语协商;
[0008]步骤(3)客户端收到DiscoveryEndPoint发送的服务器公钥pk(S)后进行验证,验证无误后生成随机数N
C
,验证失败则终止操作;随机数N
C
用于代表客户端的身份;
[0009]步骤(4)生成随机数N
C
后,客户端发送OpenSecureChannel请求、客户端公钥pk(C)、使用服务器公钥加密随机数N
C
后的{N
C
}pk(S)、接收者的公钥pk(S)给服务端,并分别使用服务端公钥pk(S)、客户端私钥sk(C)对整体进行加密和签名;发送的消息即为:{OSCReq,pk(C),{N
C
}pk(S),pk(S)}pk(S),{h(OSCReq,pk(C),{N
C
}pk(S),pk(S))}sk(C);
[0010]步骤(5)服务器收到消息后,对收到的随机数N
C
进行验证,验证无误后生成随机数N
S
,验证失败则终止操作;随机数N
S
用于代表服务端的身份;
[0011]步骤(6)生成随机数N
S
后,服务端发送OpenSecureChannel应答、使用客户端公钥加密随机数N
S
后的{N
S
}pk(C)、标识符ST、生命周期TTL、接收者的公钥pk(C)给客户端,并分别使用客户端公钥pk(C)、服务端私钥sk(S)对整体进行加密和签名;发送的消息即为:{OSCRes,{N
S
}pk(C),ST,TTL,pk(C)}pk(C),{h(OSCRes,{N
S
}pk(C),ST,TTL,pk(C))}sk(S)。
[0012]本专利技术的有益之处在于:
[0013](1)防止欺骗攻击:本专利技术能有效防止身份的欺骗攻击。客户端向服务端发送开放安全通道请求时,在发送的消息中添加了接受方即服务端的公钥pk(S),同样,服务端向客户端发送应答响应时,在发送的消息中添加了接受方即客户端的公钥pk(C),这样确保接受方的身份不会被篡改。因此,避免了攻击者将消息重新发送到非法主机。
[0014](2)提高随机数的保密性:本方法有效提高随机数的保密性。采用密钥包装机制将在客户端与服务端交互过程中出现的所有随机数N
C
替换为{N
C
}pk(S),随机数N
S
替换为{N
S
}pk(C)。在消息流中对随机数N
C
和N
S
进行加密,确保随机数的保密性,进而解决随机数的身份认证问题。
附图说明
[0015]图1是OPCUA的OpenSecureChannel子协议改进后的签密模式消息流模型图。
具体实施方式
[0016]本专利技术是OPCUA协议的安全增强方法,其步骤为:
[0017]步骤(1)客户端首先向检测端点DiscoveryEndPoint发送GetEndPoint请求,请求关于服务器的相关信息;
[0018]步骤(2)检测端点DiscoveryEndPoint向客户端发送消息{GERes,pk(S),SignEnc,SP,UP},其中pk(S)为服务器的公钥、SignEnc表示安全模式为签密、SP和UP分别为安全策略和用户策略,其中SP和UP用于加密原语协商;
[0019]步骤(3)客户端收到DiscoveryEndPoint发送的服务器公钥pk(S)后进行验证,验证无误后生成随机数N
C
,验证失败则终止操作;随机数N
C
用于代表客户端的身份;
[0020]步骤(4)生成随机数N
C
后,客户端发送OpenSecureChannel请求、客户端公钥pk(C)、使用服务器公钥加密随机数N
C
后的{N
C
}pk(S)、接收者的公钥pk(S)给服务端,并分别使用服务端公钥pk(S)、客户端私钥sk(C)对整体进行加密和签名;发送的消息即为:{OSCReq,pk(C),{N
C
}pk(S),pk(S)}pk(S),{h(OSCReq,pk(C),{N
C
}pk(S),pk(S))}sk(C);
[0021]步骤(5)服务器收到消息后,对收到的随机数N
C
进行验证,验证无误后生成随机数N
S
,验证失败则终止操作;随机数N
S
用于代表服务端的身份;
[0022]步骤(6)生成随机数N
S
后,服务端发送OpenSecureChannel应答、使用客户端公钥加密随机数N
S
后的{N
S
}pk(C)、标识符ST、生命周期TTL、接收者的公钥pk(C)给客户端,并分别使用客户端公钥pk(C)、服务端私钥sk(S)对整体进行加密和签名;发送的消息即为:{OSCRes,{N
S
}pk(C)本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.OPCUA协议的安全增强方法,其特征在于,其步骤为:步骤(1)客户端首先向检测端点DiscoveryEndPoint发送GetEndPoint请求,请求关于服务器的相关信息;步骤(2)检测端点DiscoveryEndPoint向客户端发送消息{GERes,pk(S),SignEnc,SP,UP},其中pk(S)为服务器的公钥、SignEnc表示安全模式为签密、SP和UP分别为安全策略和用户策略,其中SP和UP用于加密原语协商;步骤(3)客户端收到DiscoveryEndPoint发送的服务器公钥pk(S)后进行验证,验证无误后生成随机数N
C
,验证失败则终止操作;随机数N
C
用于代表客户端的身份;步骤(4)生成随机数N
C
后,客户端发送OpenSecureChannel请求、客户端公钥pk(C)、使用服务器公钥加密随机数N
C
后的{N
C
}pk(S)、接收者的公钥pk(S)给服务端,并分别使用服务端公钥pk(S)、客户端私钥sk(C)对整体进行加密和签名;发送的消息即...

【专利技术属性】
技术研发人员:龚翔马庄宇冯涛方君丽郑路王晶
申请(专利权)人:兰州理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1