CN106411528B - 一种基于隐式证书的轻量级认证密钥协商方法 - Google Patents
一种基于隐式证书的轻量级认证密钥协商方法 Download PDFInfo
- Publication number
- CN106411528B CN106411528B CN201610906053.9A CN201610906053A CN106411528B CN 106411528 B CN106411528 B CN 106411528B CN 201610906053 A CN201610906053 A CN 201610906053A CN 106411528 B CN106411528 B CN 106411528B
- Authority
- CN
- China
- Prior art keywords
- opc
- server
- mac
- customer end
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
- H04L9/3273—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
- H04L9/0844—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
Abstract
本发明涉及一种基于隐式证书的轻量级认证密钥协商方法,属于身份认证技术领域,该方法用于OPC UA服务器与OPC UA客户端之间安全通道的建立和会话密钥的生成。在该认证密钥协商过程中涉及三个实体:可信的证书颁发机构CA、OPC UA客户端A、OPC UA服务器B。OPC UA服务器B和OPC UA客户端A在CA完成身份注册后以获取各自的隐式证书。然后,OPC UA服务器B和OPC UA客户端A采用轻量级的算法完成实体间双向认证和密钥协商。本发明针对现有OPC UA安全机制不适用于资源受限的通信环境问题,提出了一种基于隐式证书的轻量级认证密钥协商方法。它可以高效、安全地适用于具有大量资源受限的嵌入式OPC UA设备的工业网络。
Description
技术领域
本发明属于身份认证技术领域,具体地说,尤其涉及一种基于隐式证书的轻量级认证密钥协商方法。
背景技术
随着工业物联网的发展,工业网络和系统规模日益扩大,用户希望把从工厂底层的设备信息到高层的企业决策信息都能够有效地集成和整合,使工厂里各种各样的自动化、信息化系统都能够有效利用需要的信息,工业自动化系统对大范围信息共享的要求愈加强烈。然而,在工业自动化系统中一般都有多个厂商的设备,而且工业网络控制系统采用不同的通信技术以及信息交换标准,这难以做到信息在工业自动化系统中互联互通,容易造成“信息孤岛”难题,使的过程控制层和企业管理层无法全面及时地掌握工业生产状况,严重影响工业的智能化、企业管理信息化的发展水平。
为了解决此问题,OPC基金会提出了OPC通信协议,它为企业打破工业网络专属通讯协议的壁垒,提出了重要的解决方案。但是,OPC协议仅适用于微软平台,缺乏必要的安全机制。在2006年,OPC基金会推出了新一代技术OPC UA,让OPC实现了更大程度的突破。在安全方面,OPC UA提供了一个非常灵活的安全模型,保证了客户端和服务器的合法性,用户的合法性,客户端和服务器之通信数据的保密性、完整性、可用性。而今,OPC UA技术发展进入了嵌入式OPC UA应用的新阶段。但由于嵌入式设备的内存空间有限,操作系统简单、低功耗的要求,给OPC UA在嵌入式领域的发展带来了极大挑战。在安全方面,OPC UA规范中提出的安全策略在嵌入式现场设备中实现起来过于繁重,会直接影响到工业的实时性需求。目前,OPC UA规范中安全机制主要存在以下不足:
1)OPC UA安全机制的实现是基于PKI公钥基础设施技术,该技术并不适用于资源受限嵌入式现场设备,如射频识别标签。对于资源受限嵌入式现场设备而言,证书和证书撤销列表的存储需要占用一定的内存;另外,基于证书的签名、加密算法对计算能力有限的设备而言,其计算开销过于繁重。
2)OPC UA规范第7部分中提出的安全策略(如Basic128、Basic256)是基于RSA公钥算法。目前技术已能在有效时间内破译512比特的RSA密钥。考虑到系统的安全性,必须增加RSA密钥长度。RSA公钥算法的密钥长度的增加,会使算法的运算效率降低,尤其是计算速度缓慢。这限制了OPC UA规范中的安全策略在资源受限的嵌入式设备中的使用。
发明内容
有鉴于此,针对以上现有技术中的不足,本发明的目的在于提供一种基于隐式证书的轻量级认证密钥协商方法,该方法能够解决OPC UA在资源受限环境中使用问题,保证信息传输的端到端的安全。
为达到上述目的,本发明提供如下技术方案:
一种基于隐式证书的轻量级认证密钥协商方法,其认证密钥协商过程中涉及三个实体:可信的证书颁发机构CA、OPC UA客户端A、OPC UA服务器B。该方法的步骤包含以下几个:
(1)可信的证书颁发机构CA、OPC UA客户端A和OPC UA服务器B的条件初始化配置。
(2)在步骤(1)完成以后,OPC UA客户端A和OPC UA服务器B必须在可信的证书颁发机构CA完成注册以获取各自的隐式证书。
(3)在步骤(2)完成以后,OPC UA客户端A和OPC UA服务器B开始进行双向身份认证。
(4)在步骤(3)完成以后,OPC UA客户端A和OPC UA服务器B开始进行密钥协商。当密钥协商完成以后,OPC UA客户端A和OPC UA服务器B之间的安全通道建立完成。在安全通道之上,OPC UA客户端A和OPC UA服务器B可利用协商出的对称密钥进行会话通信。
更进一步,根据所述的可信的证书颁发机构CA、OPC UA客户端A和OPC UA服务器B的条件初始化配置具体步骤如下:
(1)可信的证书颁发机构CA需先建立一套合适的椭圆曲线(ECC)域参数[q,a,b,G,n,h],其中,q为域尺寸,a和b为椭圆曲线系数,G为基点,n为基点G的阶数,h为余因子。
(2)可信的证书颁发机构CA确定使用散列函数的类型,在本发明中,采用Whirlpool散列算法,该算法实现过程是进行消息分组,分组的长度为512位,填充同MD5,其中消息长度占最后256位,所以,Whirlpool有更高的计算速度和较低的碰撞率。
(3)可信的证书颁发机构CA、OPC UA客户端A和OPC UA服务器B选定伪随机位生成器,其生成的随机数取值范围是[1,...,n-1],其中n为基点G的阶数。
(4)可信的证书颁发机构CA根据椭圆曲线域参数生成自身的公私钥对(kCA,KCA),kCA是CA的私钥,KCA是CA的公钥。
更进一步,根据所述的OPC UA客户端A和OPC UA服务器B在可信的证书颁发机构CA的注册过程具体步骤如下:
(1)OPC UA客户端A和OPC UA服务器B均可作为证书请求者。首先,证书请求者发送其身份信息ID至本地可信的证书颁发机构CA;其次,可信的证书颁发机构CA验证证书请求者的身份信息是否合法,如果证书请求者身份合法,则CA回应一条信息至证书请求者,其信息包含CA的身份标识IDCA和公钥KCA,以及一些加密套件(CipherSuite),如散列函数、椭圆曲线域参数等。否则,直接终止通信。
(2)当证书请求者收到来自CA的响应后,产生一个随机数K,并计算临时公钥R,R=KG,然后利用不带密钥的散列函数生成消息完整性码MIC(ID,R)。最后构造请求信息R||MIC(ID,R)发送至CA。
(3)CA收到消息R||MIC(ID,R)后,首先利用相同的方式计算消息完整性码MIC(ID,R),如果消息完整性码验证不通过,则终止通信。反之,首先产生一个随机数NCA,其次计算隐式证书因子D,D=R+NCAG,并利用D构造隐式证书Cert=Encode[D,ID,Text],其中,Text为证书的一些基本信息,如证书的有效期限、版本号等。再次计算隐式证书哈希摘要值e=H(Cert)和签名s=eNCA+kCA(modn)。然后利用不带密钥的散列函数生成消息完整性码MIC[Cert,s,IDCA]。最终构造响应信息Cert||s||MIC(Cert,s,IDCA)发送至证书请求者。
(4)当证书请求者收到证书来自CA的响应信息Cert||s||MIC(Cert,s,IDCA)后,首先利用相同的方式计算消息完整性码MIC[Cert,s,IDCA],判断其是否与响应信息中的校验码相同,如果消息完整性码验证不通过,则终止通信。反之,证书请求者可根据收到的隐式证书计算出自己的私钥y=eK+s(modn)和公钥Y=eD+KCA。
进一步,当OPC UA客户端A和OPC UA服务器B均在CA完成注册以后,两者可利用获取到的隐式证书进行认证和密钥协商。
进一步,在OPC UA客户端A和OPC UA服务器B进行认证之前,OPC UA客户端A必须通过发现服务(FindServers)机制才可以与OPC UA服务器建立通信。
更进一步,根据所述的OPC UA客户端A和OPC UA服务器B之间的双向认证过程具体步骤如下:
(1)首先OPC UA客户端A需要发送服务请求(GetEndpoints)至OPC UA服务器B,以获取OPC UA服务器B中用于建立安全通道和会话的安全配置信息。
(2)当OPC UA服务器B收到服务请求(GetEndpoints)后,则通过服务响应(EndpointDescription)把安全配置信息发送至OPC UA客户端A。其中,这些安全配置信息主要包括OPC UA服务器B的隐式证书、信息安全模型和安全策略等。
(3)OPC UA客户端A收到服务响应(EndpointDescription)后,产生一个随机数R1,并计算客户端临时公钥L,L=R1G。然后利用带密钥的散列函数生成L的消息鉴别码MAC(L,Q),其中Q为OPC UA客户端A的公钥。然后把信息L||MAC(L,Q)发送到OPC UA服务器B。
(4)OPC UA服务器B收到信息L||MAC(L,Q)后,首先根据服务请求(GetEndpoints)获取的OPC UA客户端A隐式证书CertA重构出客户端公钥Q=eD+KCA,其中e为隐式证书CertA的哈希摘要值,e=H(CertA)。然后利用相同的方式计算客户端临时公钥L的消息鉴别码MAC(L,Q)1,将MAC(L,Q)和MAC(L,Q)1作比较,如果两者不相同,则终止通信。反之,OPC UA服务器B产生随机数R2,并利用带密钥的散列函数生成R2的消息鉴别码MAC(R2,M),其中M为OPC UA服务器B的公钥,把R2||MAC(R2,M)发送到OPC UA客户端A。
(5)OPC UA客户端A收到R2||MAC(R2,M)后,首先根据服务响应(EndpointDescription)获取的OPC UA服务器B隐式证书CertB重构出服务器公钥M=e1D1+KCA,其中e1为隐式证书CertB的哈希摘要值,e1=H(CertB)。然后利用相同的方式计算R2的消息鉴别码MAC(R2,M)1,将MAC(R2,M)1和MAC(R2,M)作比较,如果两者不相同,则终止通信。反之,计算V=R1+R2q,其中,q为OPC UA客户端A的私钥。随后产生一个新的随机数R4,并利用带密钥的散列函数生成消息鉴别码MAC(V,R4,Q),把V||R4||MAC(V,R4,Q)发送到OPC UA服务器B。
(6)OPC UA服务器B收到V||R4||MAC(V,R4,Q)后,首先利用相同的方式计算消息鉴别码MAC(V,R4,Q)1,将MAC(V,R4,Q)和MAC(V,R4,Q)1作比较,如果两者不相同,则终止通信。反之,计算VG和R2Q+L,并判断两者是否相等。如果不相等,则OPC UA服务器B对OPC UA客户端A的身份认证不通过,直接终止通信。反之,OPC UA服务器B产生一个新的随机数R3,并计算服务器临时公钥L1,L1=R3G和V1=R3+R4m,其中,m为OPC UA服务器B的私钥,并利用带密钥的散列函数生成消息鉴别码MAC(V1,L1,M),把信息V1||L1||MAC(V1,L1,M)发送到OPC UA客户端A。
(7)OPC UA客户端A收到V1||L1||MAC(V1,L1,M)后,首先利用相同的方式计算消息鉴别码MAC(V1,L1,M)1,将MAC(V1,L1,M)和MAC(V1,L1,M)1作比较,如果两者不相同,则终止通信。反之,OPC UA客户端A计算V1G和R4M+L1,并判断两者是否相等。如果不相等,则OPC UA客户端A对OPC UA服务器B的身份认证不通过,直接终止通信。反之,OPC UA客户端A和服务器B完成了双向的身份认证,这保证了通信双方身份的合法性。
进一步,OPC UA客户端A和OPC UA服务器B完成双向认证后,双方可利用之前获取到对方公钥,通过ECDH密钥协商机制衍生出对称密钥,为会话通信提供必要的密钥材料,其衍生出的对称密钥为aM=bQ。
本发明的有益效果在于:
性能分析:与现有OPC UA规范中认证和密钥协商相比,本发明采用隐式证书和ECC算法。在相同安全强度下,隐式证书的尺寸小于数字证书的尺寸,同时OPC UA设备不需要存储证书撤销列表。因此,本发明降低了资源受限嵌入式OPC UA设备的存储开销;在计算开销方面,本发明的认证过程只需要用到简单的哈希运算、椭圆曲线的点群运算、异或运算和随机数的产生,没有复杂的幂指运算。因此,从运算效率来讲,本发明降低了资源受限嵌入式OPC UA设备的计算开销。在通信开销方面,在一次认证过程中,本发明传输的认证信息为简单的隐式证书、随机数、MAC码等,并且在认证完成后,会话密钥的计算也不必增加额外的通信开销。与OPC UA规范中的认证过程相比较,本发明降低了资源受限嵌入式OPC UA设备的通信开销。
安全性分析:本发明在每次OPC UA客户端A和OPC UA服务器B间认证和密钥协商过程中,传输的认证信息是动态变化的,并且认证消息与会话密钥的计算没有联系,因此攻击者很难从认证消息中获取到重要的会话密钥信息。OPC UA客户端A和OPC UA服务器B各自维护一个伪随机位生成器,因此认证信息可抵抗重放攻击。同时,认证信息的MAC码也可有效维护信息的完整性。进一步,即使攻击者截获或者篡改认证信息,妨碍OPC UA客户端A和OPCUA服务器B间的身份认证和会话建立,但攻击者是不能以假冒身份通过认证的。
总而言之,本发明中所述方案所需的存储开销、计算开销和通信开销较少,同时安全性高,非常适用于资源受限嵌入式OPC UA设备通信网络。
附图说明
为了使本发明的目的、技术方案更加清楚,本发明提供如下附图进行说明:
图1为OPC UA通信网络架构模型;
图2为OPC UA安全模型;
图3为初始化条件建立过程图;
图4为OPC UA客户端A和OPC UA服务器B注册过程图;
图5为OPC UA客户端A和OPC UA服务器B间认证和密钥协商过程图。
具体实施方式
下面结合附图给出一个非限定性的实施例对本发明做进一步阐述。
本发明涉及一种基于隐式证书的轻量级认证密钥协商方法,用于OPC UA服务器与OPC UA客户端之间安全通道的建立和会话密钥的生成。图1为OPC UA通信网络架构模型,如图1所示,该模型由企业管理层、过程控制层和现场设备层三部分组成。企业管理层的信息交互一般通过Internet进行,其功能包含数据管理、客户管理、生成调度等。过程控制层需要具备与企业管理层和现场设备层保持双向通信能力,从企业管理层接收生产计划,经过分解处理后,向现场设备发出生产指令。过程控制层能够对生产工艺进行实时控制和调整,实现了物料、设备、人员的信息协同。现场设备层包含了大量的现场设备,主要根据过程控制层的生产指令进行产品的加工。同时,该模型主要包含三类实体:可信的证书颁发机构CA、OPC UA客户端、OPC UA服务器。
可信的证书颁发机构CA:主要负责创建、发布和管理OPC UA客户端和服务器的证书,它是OPC UA安全机制实现的重要组成部分。
OPC UA客户端:主要负责获取OPC UA服务器的信息,用于生产监控、生产调度等,它可以充分利用相应服务的API获取OPC UA服务器信息。
OPC UA服务器:工业网络中的现场设备可充当OPC UA服务器,它主要为客户端提供两种类型的服务,一种是接受来自客户端的连接和通知订阅请求,另一种是发布事件响应到客户端,如报警、程序执行结果等。
如图2所示,它描述了OPC UA安全模型。该模型是一个三层架构,应用层主要负责建立起客户端与服务器之间的会话,并管理用户的身份鉴别与授权请求。应用层的会话服务完成了工业控制过程中数据、设置、命令的传输,为了保证会话通信的安全,每一个会话都需建立在安全通道之上;安全通道用于保障客户端和服务器之间通信的安全,确保数据的保密性、完整性以及客户端和服务器的合法性;传输层位于最底层,主要通过利用Socket连接实现安全数据的传输和发送。由图2可知,OPC UA客户端与服务器之间的通信必须建立在安全通道之上,其实质是一个安全的逻辑连接。它保证了OPC UA客户端和服务器身份的合法性,同时也为会话通信提供了必要的密钥材料,确保会话层通信消息的完整性、机密性、可用性。为了保证安全通道建立顺利完成,本发明提出一种基于隐式证书的轻量级认证密钥协商实现方法用于安全通道的建立,其实现的前提初始条件包括一下几个,如图3所示:
(1)可信的证书颁发机构CA需先建立一套合适的椭圆曲线(ECC)域参数[q,a,b,G,n,h],其中,q为域尺寸,a和b为椭圆曲线系数,G为基点,n为基点G的阶数,h为余因子。
(2)可信的证书颁发机构CA确定使用散列函数的类型,本发明建议采用Whirlpool散列算法,该算法实现过程是进行消息分组,分组的长度为512位,填充同MD5,其中消息长度占最后256位,所以,Whirlpool有更高的计算速度和较低的碰撞率。
(3)可信的证书颁发机构CA、OPC UA客户端A和OPC UA服务器B选定伪随机位生成器,其生成的随机数取值范围是[1,...,n-1],其中n为基点G的阶数。
(4)可信的证书颁发机构CA根据椭圆曲线域参数生成自身的公私钥对(kCA,KCA),kCA是CA的私钥,KCA是CA的公钥。
进一步,当完成上述初始条件以后,OPC UA客户端A和OPC UA服务器B均需要在CA完成身份注册以获取各自的隐式证书,其注册过程如图4所示。证书的请求者既可以是OPCUA客户端A,也可以为OPC UA服务器B,其注册获取证书的过程可分为以下几个步骤:
Step1:OPC UA客户端A和OPC UA服务器B均可作为证书请求者。首先,证书请求者发送其身份信息ID至本地可信的证书颁发机构CA;其次,可信的证书颁发机构CA验证证书请求者的身份信息是否合法,如果证书请求者身份合法,则CA回应一条信息至证书请求者,其信息包含CA的身份标识IDCA和公钥KCA,以及一些加密套件,如散列函数、椭圆曲线域参数等。否则,直接终止通信。
Step2:当证书请求者收到来自CA的响应后,产生一个随机数K,并计算临时公钥R,R=KG,然后利用不带密钥的散列函数生成消息完整性码MIC(ID,R)。最后构造请求信息R||MIC(ID,R)发送至CA。
Step3:CA收到消息R||MIC(ID,R)后,首先利用相同的方式计算消息完整性码MIC(ID,R),如果消息完整性码验证不通过,则终止通信。反之,首先产生一个随机数NCA,其次计算隐式证书因子D=R+NCAG,并利用D构造隐式证书Cert=Encode[D,ID,Text],其中,Text为证书的一些基本信息,如证书的有效期限、版本号等。再次计算隐式证书哈希摘要值e=H(Cert)和签名s=eNCA+kCA(modn)。然后利用不带密钥的散列函数生成消息完整性码MIC[Cert,s,IDCA]。最终构造响应信息Cert||s||MIC(Cert,s,IDCA)发送至证书请求者。
Step4:当证书请求者收到证书来自CA的响应信息Cert||s||MIC(Cert,s,IDCA)后,首先利用相同的方式计算消息完整性码MIC[Cert,s,IDCA],如果消息完整性码验证不通过,则终止通信。反之,证书请求者可根据收到的隐式证书计算出自己的私钥y=eK+s(modn)和公钥Y=eD+KCA。
进一步,当OPC UA客户端A和OPC UA服务器B均在CA完成注册以后,首先两者需在创建安全信道之前做一系列的准备工作,OPC UA客户端A必须通过发现服务(FindServers)机制才才可以与OPC UA服务器B建立通信,然后通过服务请求(GetEndpoints)获取OPC UA服务器B中用于建立安全通道和会话的安全配置信息,其中,这些安全配置信息主要包括OPC UA服务器的隐式证书、信息安全模型和安全策略等。当完成上述准备工作以后,OPC UA客户端A和OPC UA服务器B可以进行认证和密钥协商,如图5所示,其认证具体步骤如下:
Step1:首先OPC UA客户端A需要发送服务请求(GetEndpoints)至OPC UA服务器B,以获取OPC UA服务器B中用于建立安全通道和会话的安全配置信息。
Step2:当OPC UA服务器B收到服务请求(GetEndpoints)后,则通过服务响应(EndpointDescription)把安全配置信息发送至OPC UA客户端A。其中,这些安全配置信息主要包括OPC UA服务器B的隐式证书、信息安全模型和安全策略等。
Step3:OPC UA客户端A收到服务响应(EndpointDescription)后,产生一个随机数R1,并计算客户端临时公钥L,L=R1G,其中Q为OPC UA客户端A的公钥。然后利用带密钥的散列函数生成L的消息鉴别码MAC(L,Q)。然后把信息L||MAC(L,Q)发送到OPC UA服务器。
Step4:OPC UA服务器B收到信息L||MAC(L,Q)后,首先根据服务请求(GetEndpoints)获取的OPC UA客户端A隐式证书CertA重构出客户端公钥Q=eD+KCA,其中e为隐式证书CertA的哈希摘要值,e=H(CertA)。然后利用相同的方式计算客户端临时公钥L的消息鉴别码MAC(L,Q)1,将MAC(L,Q)和MAC(L,Q)1作比较,如果两者不相同,则终止通信。反之,OPC UA服务器B产生随机数R2,并利用带密钥的散列函数生成R2的消息鉴别码MAC(R2,M),其中,M为OPC UA服务器B的公钥,把R2||MAC(R2,M)发送到OPC UA客户端A。
Step5:OPC UA客户端A收到R2||MAC(R2,M)后,首先根据服务响应(EndpointDescription)获取的OPC UA服务器B隐式证书CertB重构出服务器公钥M=e1D1+KCA,其中e1为隐式证书CertB的哈希摘要值,e1=H(CertB)。然后利用相同的方式计算R2的消息鉴别码MAC(R2,M)1,将MAC(R2,M)1和MAC(R2,M)作比较,如果两者不相同,则终止通信。反之,计算V=R1+R2q,其中,q为OPC UA客户端A的私钥。随后产生一个新的随机数R4,并利用带密钥的散列函数生成消息鉴别码MAC(V,R4,Q),把V||R4||MAC(V,R4,Q)发送到OPC UA服务器B。
Step6:OPC UA服务器B收到V||R4||MAC(V,R4,Q)后,首先利用相同的方式计算消息鉴别码MAC(V,R4,Q)1,将MAC(V,R4,Q)和MAC(V,R4,Q)1作比较,如果两者不相同,则终止通信。反之,计算VG和R2Q+L,并判断两者是否相等。如果不相等,则OPC UA服务器B对OPC UA客户端A的身份认证不通过,直接终止通信。反之,OPC UA服务器B产生一个新的随机数R3,并计算服务器临时公钥L1,L1=R3G和V1=R3+R4m,其中,m为OPC UA服务器B的私钥,并利用带密钥的散列函数生成消息鉴别码MAC(V1,L1,M),把V1||L1||MAC(V1,L1,M)发送到OPC UA客户端A。
Step7:OPC UA客户端A收到V1||L1||MAC(V1,L1,M)后,首先利用相同的方式计算消息鉴别码MAC(V1,L1,M)1,将MAC(V1,L1,M)和MAC(V1,L1,M)1作比较,如果两者不相同,则终止通信。反之,OPC UA客户端A计算V1G和R4M+L1,并判断两者是否相等。如果不相等,则OPC UA客户端A对OPC UA服务器B的身份认证不通过,直接终止通信。反之,OPC UA客户端A和服务器B完成了双向的身份认证,这保证了通信双方身份的合法性。
Step8:OPC UA客户端A和OPC UA服务器B完成双向认证后,双方可利用之前获取到对方公钥,通过ECDH密钥协商机制衍生出对称密钥,为会话通信提供必要的密钥材料,其衍生出的对称密钥为aM=bQ。
当完成上述步骤以后,OPC UA客户端A和服务器B之间可利用对称密钥aB=bA进行信息的传输。
以上只是对本发明的优选实施例进行了描述。对该技术领域的技术人员来说,根据以上实施方式可以很容易地对本发明作各种改动或修改。因此,本发明并不局限于上述实施方式,其仅仅作为例子对本发明的一种形态进行详细、示范性的说明。在不背离本发明宗旨的范围内,本领域的技术人员在本发明技术方案范围内进行的等效变化和修饰同样落入本发明方法权利要求所限定的范围。
Claims (1)
1.一种基于隐式证书的轻量级认证密钥协商方法,其特征在于:该方法主要包括三个部分:条件初始化配置阶段、注册阶段、认证和密钥协商阶段;在该认证密钥协商过程中涉及三个实体:可信的证书颁发机构(CA,Certificate Authority)、OPC统一架构——OPC UA(OPC Unified Architecture)客户端A、OPC UA服务器B;
所述注册阶段利用不带密钥的散列函数将注册使用的参数与身份ID信息进行绑定,并生成消息完整性码MIC,保证注册阶段交互信息的完整性和可用性;
所述认证和密钥协商阶段具体过程如下:
1)首先OPC UA客户端A需要发送服务请求GetEndpoints至OPC UA服务器B,以获取OPCUA服务器B中用于建立安全通道和会话的安全配置信息;
2)当OPC UA服务器B收到服务请求GetEndpoints后,通过服务响应EndpointDescription把安全配置信息发送至OPC UA客户端A;其中,这些安全配置信息主要包括OPC UA服务器B的隐式证书、信息安全模型和安全策略等;
3)OPC UA客户端A收到服务响应EndpointDescription后,产生一个随机数R1,并计算客户端临时公钥L,L=R1G,其中G为椭圆曲线基点;然后利用带密钥的散列函数生成L的消息鉴别码MAC(L,Q),其中Q为OPC UA客户端A的公钥;然后把信息L||MAC(L,Q)发送到OPC UA服务器B;其中,||表示字符串连接符;
4)OPC UA服务器B收到信息L||MAC(L,Q)后,首先根据服务请求GetEndpoints获取的OPC UA客户端A隐式证书CertA重构出客户端公钥Q=eD+KCA,其中,KCA为CA的公钥,D为隐式证书因子,e为隐式证书CertA的哈希摘要值,e=H(CertA);然后利用相同的方式计算L的消息鉴别码MAC(L,Q)1,将MAC(L,Q)和MAC(L,Q)1作比较,如果两者不相同,则终止通信;反之,OPC UA服务器B产生随机数R2,并利用带密钥的散列函数生成R2的消息鉴别码MAC(R2,M),其中,M为OPC UA服务器B的公钥,把R2||MAC(R2,M)发送到OPC UA客户端A;
5)OPC UA客户端A收到R2||MAC(R2,M)后,首先根据服务响应EndpointDescription获取的OPC UA服务器B隐式证书CertB重构出服务器公钥M=e1D1+KCA,其中,D1为服务器B隐式证书因子,e1为隐式证书CertB的哈希摘要值,e1=H(CertB);然后利用相同的方式计算R2的消息鉴别码MAC(R2,M)1,将MAC(R2,M)1和MAC(R2,M)作比较,如果两者不相同,则终止通信;反之,计算V=R1+R2q,其中,q为OPC UA客户端A的私钥;随后产生一个新的随机数R4,并利用带密钥的散列函数生成消息鉴别码MAC(V,R4,Q),把V||R4||MAC(V,R4,Q)发送到OPC UA服务器B;
6)OPC UA服务器B收到V||R4||MAC(V,R4,Q)后,首先利用相同的方式计算消息鉴别码MAC(V,R4,Q)1,将MAC(V,R4,Q)和MAC(V,R4,Q)1作比较,如果两者不相同,则终止通信;反之,计算VG和R2Q+L,并判断两者是否相等;如果不相等,则OPC UA服务器B对OPC UA客户端A的身份认证不通过,直接终止通信;反之,OPC UA服务器B产生一个新的随机数R3,并计算服务器临时公钥L1,L1=R3G和V1=R3+R4m,其中,m为OPC UA服务器B的私钥,并利用带密钥的散列函数生成消息鉴别码MAC(V1,L1,M),把V1||L1||MAC(V1,L1,M)发送到OPC UA客户端A;
7)OPC UA客户端A收到V1||L1||MAC(V1,L1,M)后,首先利用相同的方式计算消息鉴别码MAC(V1,L1,M)1,将MAC(V1,L1,M)和MAC(V1,L1,M)1作比较,如果两者不相同,则终止通信;反之,OPC UA客户端A计算V1G和R4M+L1,并判断两者是否相等,如果不相等,则OPC UA客户端A对OPC UA服务器B的身份认证不通过,直接终止通信;反之,OPC UA客户端A和服务器B完成了双向的身份认证,这保证了通信双方身份的合法性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610906053.9A CN106411528B (zh) | 2016-10-17 | 2016-10-17 | 一种基于隐式证书的轻量级认证密钥协商方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610906053.9A CN106411528B (zh) | 2016-10-17 | 2016-10-17 | 一种基于隐式证书的轻量级认证密钥协商方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106411528A CN106411528A (zh) | 2017-02-15 |
CN106411528B true CN106411528B (zh) | 2019-06-14 |
Family
ID=58012460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610906053.9A Active CN106411528B (zh) | 2016-10-17 | 2016-10-17 | 一种基于隐式证书的轻量级认证密钥协商方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106411528B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018208546A1 (en) * | 2017-05-08 | 2018-11-15 | Amazon Technologies, Inc. | Generation of shared secrets using pairwise implicit certificates |
CN107483429B (zh) * | 2017-08-09 | 2019-10-11 | 北京中软信科技有限公司 | 一种数据加密方法和装置 |
CN107682859B (zh) * | 2017-08-31 | 2020-07-14 | 上海华为技术有限公司 | 消息处理方法及相关设备 |
CN107959725B (zh) * | 2017-12-14 | 2020-08-25 | 浙江工商大学 | 基于椭圆曲线的考虑发布与订阅双方隐私的数据交互方法 |
CN108011888B (zh) * | 2017-12-15 | 2020-12-29 | 东软集团股份有限公司 | 一种实现证书重构的方法、装置及存储介质、程序产品 |
CN108199897B (zh) * | 2018-01-17 | 2021-06-04 | 重庆邮电大学 | 一种支持缓存管理的opc ua多服务器聚合方法 |
CN108989302B (zh) * | 2018-07-04 | 2021-06-22 | 光大环保技术研究院(南京)有限公司 | 一种基于密钥的opc代理连接系统和连接方法 |
CN109981289B (zh) * | 2019-03-26 | 2020-03-31 | 电子科技大学 | 隐式证书下的椭圆曲线数字签名算法的批认证方法 |
CN109978518B (zh) * | 2019-03-27 | 2021-07-02 | 数据通信科学技术研究所 | 一种隐式证书分发方法及系统 |
CN110324351B (zh) * | 2019-07-10 | 2021-06-15 | 厦门嵘拓物联科技有限公司 | 一种网络协同制造中信息互联的系统及方法 |
CN110661613B (zh) * | 2019-09-26 | 2021-10-22 | 如般量子科技有限公司 | 基于联盟链的抗量子计算隐式证书颁发方法及系统 |
CN110912686B (zh) * | 2019-10-15 | 2023-05-05 | 福建联迪商用设备有限公司 | 一种安全通道的密钥的协商方法及系统 |
EP3907960A1 (en) * | 2020-05-07 | 2021-11-10 | ABB Schweiz AG | Method of enabling a secure communication to a target device over a network |
CN111885058B (zh) * | 2020-07-23 | 2022-05-13 | 伊拉克巴士拉大学 | 物联网云中端到端智能设备通信的轻量级消息传递方法 |
EP3952201A1 (en) | 2020-08-07 | 2022-02-09 | ABB Schweiz AG | Trust establishment through certificate management in open platform communications unified architecture |
CN114124368B (zh) * | 2020-08-31 | 2023-04-14 | Oppo广东移动通信有限公司 | 一种数据传输方法、客户端、服务端及存储介质 |
CN112383395B (zh) * | 2020-12-11 | 2024-01-23 | 海光信息技术股份有限公司 | 密钥协商方法及装置 |
CN113204751A (zh) * | 2021-05-28 | 2021-08-03 | 深圳市纽创信安科技开发有限公司 | 一种轻量级的sm2国密证书的生成方法和系统 |
CN113645218A (zh) * | 2021-08-06 | 2021-11-12 | 兰州理工大学 | Opcua协议的安全增强方法 |
CN114499848B (zh) * | 2022-01-26 | 2023-05-30 | 无锡融卡科技有限公司 | 会话密钥生成装置及方法 |
CN114500070B (zh) * | 2022-02-10 | 2023-07-18 | 上海蓝长自动化科技有限公司 | 一种基于秘密分享算法的mqtt协议安全通信方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889433A (zh) * | 2006-07-20 | 2007-01-03 | 上海交通大学 | 基于隐式公钥证书的双方认证密钥协商方法及系统 |
CN102075522A (zh) * | 2010-12-22 | 2011-05-25 | 北京航空航天大学 | 一种结合数字证书和动态密码的安全认证与交易方法 |
CN103733564A (zh) * | 2011-06-10 | 2014-04-16 | 塞尔蒂卡姆公司 | 利用隐式证书链的数字签名 |
CN103931214A (zh) * | 2012-11-08 | 2014-07-16 | 华为技术有限公司 | 一种获取公钥的方法及设备 |
-
2016
- 2016-10-17 CN CN201610906053.9A patent/CN106411528B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889433A (zh) * | 2006-07-20 | 2007-01-03 | 上海交通大学 | 基于隐式公钥证书的双方认证密钥协商方法及系统 |
CN102075522A (zh) * | 2010-12-22 | 2011-05-25 | 北京航空航天大学 | 一种结合数字证书和动态密码的安全认证与交易方法 |
CN103733564A (zh) * | 2011-06-10 | 2014-04-16 | 塞尔蒂卡姆公司 | 利用隐式证书链的数字签名 |
CN103931214A (zh) * | 2012-11-08 | 2014-07-16 | 华为技术有限公司 | 一种获取公钥的方法及设备 |
Non-Patent Citations (1)
Title |
---|
"Two-phase Authentication Protocol for Wireless Sensor Networks in Distributed IoT Applications";Pawani Porambage等;《2014 IEEE Wireless Communications and Networking Conference》;20141120;2728-2733 * |
Also Published As
Publication number | Publication date |
---|---|
CN106411528A (zh) | 2017-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106411528B (zh) | 一种基于隐式证书的轻量级认证密钥协商方法 | |
CN111083131B (zh) | 一种用于电力物联网感知终端轻量级身份认证的方法 | |
CN103780618B (zh) | 一种基于访问授权票据的跨异构域身份认证及会话密钥协商方法 | |
CN101741842B (zh) | 一种基于可信计算实现可信ssh的方法 | |
EP2391083B1 (en) | Method for realizing authentication center and authentication system | |
CN101378315B (zh) | 认证报文的方法、系统、设备和服务器 | |
CN107852404A (zh) | 保密通信的相互认证 | |
CN106790064B (zh) | 可信根服务器-云计算服务器模型中双方进行通信的方法 | |
CN108989318A (zh) | 一种面向窄带物联网的轻量化安全认证及密钥交换方法 | |
CN103731756A (zh) | 一种基于智能云电视网关的智能家居远程安全访问控制实现方法 | |
CN103475666A (zh) | 一种物联网资源的数字签名认证方法 | |
CN109243020A (zh) | 一种基于无证书的智能锁身份认证方法 | |
CN109361508A (zh) | 数据传输方法、电子设备及计算机可读存储介质 | |
US20160357954A1 (en) | Method for controlling access to a production system of a computer system not connected to an information system of said computer system | |
WO2014187210A1 (zh) | 一种电子签名令牌私钥的备份方法和系统 | |
US9672367B2 (en) | Method and apparatus for inputting data | |
CN108965342A (zh) | 数据请求方访问数据源的鉴权方法及系统 | |
CN108632251A (zh) | 基于云计算数据服务的可信认证方法及其加密算法 | |
TWI556618B (zh) | Network Group Authentication System and Method | |
CN109922022A (zh) | 物联网通信方法、平台、终端和系统 | |
KR20120072032A (ko) | 모바일 단말의 상호인증 시스템 및 상호인증 방법 | |
CN104158807A (zh) | 一种基于PaaS的安全云计算方法和系统 | |
GB2611674A (en) | Federated security for multi-enterprise communications | |
CN101888383B (zh) | 一种可扩展的可信ssh的实现方法 | |
CN104820807B (zh) | 一种智能卡数据处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220510 Address after: 901, 8 / F, building 2, yard 30, Shixing street, Shijingshan District, Beijing Patentee after: KYLAND TECHNOLOGY Co.,Ltd. Address before: 400065 Chongqing Nan'an District huangjuezhen pass Chongwen Road No. 2 Patentee before: CHONGQING University OF POSTS AND TELECOMMUNICATIONS |