[发明专利]一种基于TPM的Modbus/TCP协议的安全增强方法有效
| 申请号: | 201610218409.X | 申请日: | 2016-04-10 |
| 公开(公告)号: | CN105721500B | 公开(公告)日: | 2019-01-15 |
| 发明(设计)人: | 杨静;詹静;吴欢;陶政 | 申请(专利权)人: | 北京工业大学 |
| 主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L9/14;H04L9/30;H04L9/32;H04L12/26;G06F21/44;G06F21/57 |
| 代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 刘萍 |
| 地址: | 100124 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | 一种基于TPM的Modbus/TCP协议的安全增强方法属于工业控制领域和信息技术领域。工业控制系统的安全关系到国家安全。现有的安全方案中,并没有从根本上解决通信的安全认证问题,存在客户机、服务器被冒充及密钥窃取的问题。本发明引入可信计算思想,为设备增加可信计算模块(TPM),用TPM的身份认证密钥保证设备身份可信,设备操作系统及组态软件的度量信息保证设备的状态可信性。在可信服务器的参与下,完成双方的身份和状态认证。在协议格式上增加了Hash Item,保证报文的完整性。TPM的绑定密钥及授权数据PCR保证密钥Kms生成过程中的安全性,用HMAC及密钥Kms保证通信过程中双方身份的认证性。 | ||
| 搜索关键词: | 一种 基于 tpm modbus tcp 协议 安全 增强 方法 | ||
【主权项】:
1.一种基于TPM的Modbus/TCP协议的安全增强方法,其特征在于:本协议运行之前,可信设备即客户机A和服务器B中存储可信服务器AS的公钥Ks_Pub;AS中存储所有可信设备的可信状态信息,即存储工控软件度量值的PCR值、身份认证密钥的公钥、绑定密钥的公钥构成白名单;协议运行包括以下三个过程:(1)身份验证过程该过程中,A代表Modbus通信中的客户机,B代表服务器;身份验证过程通信步骤如下:步骤1.1:A→B:req,Na;req,Na分别是客户机A向服务器B发出的通信请求、随机数;步骤1.2:服务器B收到客户机A的请求req和随机数Na后,将PCR值与随机数Na串联后计算摘要值,调用TPM_Quote计算PCR的签名值QuoteB;步骤1.3:B→A:QuoteB,Nb;QuoteB,Nb分别为服务器B发送给客户机A的PCR签名和随机数;步骤1.4:A→AS:ReqB,Ns;ReqB,Ns分别为客户机A向可信服务器AS发送要求服务器B相关信息的请求和随机数;步骤1.5:可信服务器AS查找白名单后将服务器B的信息Kb_Pub,Pcrb,BAIK_Pub与Ns串联后用Ks_Pri签名,签名值为SIGNS;用Kb_Pub,Pcrb,BAIK_Pub与SIGNS构建报文Bdata;式中Kb_Pub为服务器B的绑定密钥的公钥,Pcrb为服务器B相应的PCR值,BAIK_Pub为服务器B的身份认证密钥的公钥,Ks_Pri为AS的私钥,其中SIGNS=Sign(Ks_Pri,Kb_Pub,Pcrb,BAIK_Pub);步骤1.6:AS→A:Bdata;可信服务器AS向客户机A发送服务器B的相关信息报文Bdata;步骤1.7:客户机A用可信服务器AS的公钥Ks_Pub验证AS的签名SIGNS及随机数Ns;客户机A从报文Bdata中得到服务器B的PCR值、服务器B身份认证密钥的公钥BAIK_Pub及服务器B的绑定密钥的公钥Kb_Pub后,验证服务器B的签名QuoteB;上述验证操作均成功后,客户机A生成随机数Nc,将客户机A的PCR值用身份认证密钥的私钥AAIK_Pri签名生成QuoteA,QuoteA=TPM_Quote(AAIK_Pri,Pcra,Nc);步骤1.8:A→B:QuoteA,Nc;QuoteA,Nc分别是客户机A向服务器B发送的PCR签名和随机数;步骤1.9:服务器B调用verifyQuote()验证客户机A的签名QuoteA,若返回值为success,则服务器B生成随机数Nd,并利用客户机A的绑定密钥的公钥Ka_Pub加密Nc,Nd;Bok=TSS_Bind(Ka_Pub,Nc||Nd);步骤1.10:B→A:Bok;Bok为服务器B向客户机A发送的确认客户机A可信的报文;步骤1.11:客户机A用绑定密钥的私钥Ka_Pri解密Bok,即调用TPM_UnBind(Ka_Pri,Bok,keyAuth),keyAuth为创建绑定密钥时的授权数据,在此选用客户机A的PCR值,在该函数执行过程中,首先验证该授权数据keyAuth是否与现在客户机A中相应PCR的值一致,一致才可使用绑定密钥的私钥Ka_Pri;解密后,验证随机数Nc是否与步骤1.8中发送给服务器B的随机数Nc相等;若相等,则客户机A生成HMAC运算中使用的对称密钥Kms,同时生成随机数Ne,将Kms,Nd,Ne用服务器B的绑定密钥的公钥Kb_Pub加密,生成Keys,Keys=TSS_Bind(Kb_Pub,Kms||Nd||Ne);步骤1.12:A→B:Keys;Keys是客户机包含对称密钥Kms的报文;步骤1.13:服务器B用绑定密钥的私钥Kb_Pri解密报文Keys;之后验证随机数Nd是否与步骤1.9中生成的Nd一致,若一致,则接收客户机A发送的对称密钥Kms;然后用客户机A的绑定密钥的公钥Ka_Pub加密报文Keys中客户机A的随机数Ne,Brekeys=TSS_Bind(Ka_Pub,Ne);步骤1.14:B→A:Brekeys;服务器B告诉客户机A确实收到了对称密钥Kms;步骤1.15:客户机A用绑定密钥的私钥Ka_Pri将Brekeys解密;验证随机数Ne是否与步骤1.11中生成的随机数一致,一致则客户机A确定服务器B收到了对称密钥Kms;(2)安全通信过程:步骤2.1:客户机A根据实际工控环境中PLC的计算能力选择Hash算法,记为hashAlg;sdata为hashAlg,HMAC(Kms,data),data;data为Modbus/TCP请求报文sdata中的Modbus/TCP PDU字段数据;步骤2.2:A→B:sdata;sdata为客户机A的Modbus/TCP请求报文;步骤2.3:用HMAC计算sdata的数据域,即HMAC(Kms,data)与sdata中的Hash Item值比较,若不相等,则A不可信;若相等,说明请求报文真实可信,服务器B向客户机A发送回复报文redata,redata为hashAlg,HMAC(Kms,responsedata),responsedata;responseda ta为Modbus/TCP回复报文中Modbus/TCP PDU字段数据;步骤2.4:A→B:redata;redata是服务器B向客户机A发送的Modbus/TCP回复报文;步骤2.5:客户机A用HMAC和密钥Kms计算回复报文redata的数据域responsedata,将HMAC(Kms,responsedata)值与redata中的Hash Item值比较,两者相等则客户机A接收回复报文redata,否则客户机A认为服务器B是冒充的;(3)可信更新验证过程客户机A和服务器B因为均安装了TPM芯片,且流程一样,在可信更新协议中统称为可信设备T;可信更新验证过程具体步骤如下:步骤3.1:AS→T:Nonce,reqAuth(T);其中AS代表可信服务器,T代表可信设备,Nonce,reqAuth(T)分别表示可信服务器AS向可信设备T发送的随机数和验证请求;步骤3.2:可信设备T将可信服务器AS请求的PCR值(Pcrt)与随机数Nonce,调用TPM_Quote接口签名,即Quote=TPM_Quote(TAIK_Pri,Pcrt,Nonce),TAIK_Pri代表可信设备T的身份认证密钥的私钥,Pcrt代表可信服务器AS请求的可信设备T的PCR值;步骤3.3:可信设备T用可信设备T的PCR值(Pcrt)和可信设备T的签名Quote构建回复报文resp,即resp=Pcrt,Quote;步骤3.4:T→AS:resp;可信设备T向可信服务器AS发送回复报文resp;步骤3.5:可信服务器AS用verifyQuote(TAIK_Pub,Pcrt,Quote,Nonce)验证可信设备T的签名Quote及随机数Nonce;TAIK_Pub为可信设备T的身份认证密钥的公钥,Pcrt为T的PCR值,Quote为步骤3.2中可信设备T生成的PCR签名,Nonce 是步骤3.1中可信服务器生成的随机数;verifyQuote()返回success,则可确认T的PCR值Pcrt及随机数Nonce在传输过程中未被篡改;步骤3.6:可信服务器AS将接收到的可信设备的PCR值Pcrt与AS白名单中可信设备T的PCR值Pcrt比较;若相等,则说明可信设备T的状态是可信的,可信服务器AS中可信设备T的白名单条目不发生改变;若不相等,可信服务器AS需要向可信设备T的admin用户发送请求报文;请求报文中询问是否发生了系统主动更新操作;若admin用户的回复报文中指明没有发生主动更新操作,可信服务器AS向可信设备T的admin用户发出警告,同时切断T平台与其他设备的通信;若可信设备T的admin用户的回复报文中指明发生了更新操作,同时发送了可信设备T的TPM新生成的绑定密钥的公钥Kt_Pub,可信则服务器AS更新白名单库中可信设备T的PCR值和绑定密钥的公钥Kt_Pub;若可信服务器AS更新了白名单库中可信设备T的信息,需进行以下操作:若可信设备T的设备类型为客户机,则可信服务器AS将可信设备T的白名单信息推送到工业控制系统所有的服务器中;之后可信服务器AS向可信设备T发送启动身份验证的消息,可信设备T将重新发起与服务器的身份认证过程;若可信设备T的设备类型为服务器,则可信服务器AS向所有的客户机广播消息,消息内容为:与可信设备T通信应重新发起进行身份验证过程;切断通信的方式为:若可信设备T的设备类型为服务器,可信服务器AS将可信设备T的设备IP地址发送给客户机,客户机与可信设备T通信时将重新发起身份认证过程;若可信设备T的设备类型为客户机,可信服务器AS则向所有服务器推送可信设备T的设备状态不可信的消息,服务器接收到可信设备T不可信的消息时,将可信设备T的对称密钥Kms置为无效,此时可信设备T与服务器无法正常通信。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610218409.X/,转载请声明来源钻瓜专利网。
- 上一篇:一种升降式汽车停车库
- 下一篇:一种轻量级地址自动分配协议安全认证方法





