[发明专利]一种基于TCM的SSL协议在审
申请号: | 201810222609.1 | 申请日: | 2018-03-19 |
公开(公告)号: | CN108377186A | 公开(公告)日: | 2018-08-07 |
发明(设计)人: | 张兴兰;任冠华 | 申请(专利权)人: | 北京工业大学 |
主分类号: | H04L9/08 | 分类号: | H04L9/08;H04L9/32;H04L9/06;H04L29/06 |
代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 张慧 |
地址: | 100124 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开一种基于可信密码模块TCM的SSL协议,用于客户端和服务器两方的通信,从以下方面进行设计,1)利用平台身份证书提供基于硬件和系统层面的认证;2)通过芯片的存储主密钥对预主密钥的保护,使得数据交换前,双方共享密钥的传输得到了更好的保证。本协议将TCM模块应用到SSL协议中,建立通信双方基于硬件和系统层面的认证,并且提升了加密算法,使得握手阶段,双方数据传输得到了更好的保证,为记录协议部分的信息传输提供更强的安全保障,增强了抵御攻击的能力,提高了协议的安全性。 | ||
搜索关键词: | 系统层面 主密钥 可信密码模块 双方共享密钥 安全保障 加密算法 建立通信 模块应用 数据传输 数据交换 握手阶段 信息传输 客户端 认证 服务器 身份证 存储 芯片 保证 传输 攻击 记录 通信 | ||
【主权项】:
1.一种基于TCM的SSL协议,其特征在于,用于服务器和客户端通信,其流程包括以下步骤,其中,客户端简称C,服务器端简称S,1)C→S:ClinentHello(C、Verc_c、Ran_c、Suit_c)SSL客户端通过ClientHello消息将它支持的SSL版本、加密算法、密钥交换算法、hmac算法信息发送给SSL服务器;2)S→C:SeverHello(S、Ver_s、Ran_s、Suit_s),与1)相对应,SSL服务器通过Server Hello消息将Server端支持的SSL版本、加密算法、密钥交换算法、hmac算法信息发送给SSL客户端;3)S→C:SSL服务器进行SSL证书认证,将携带自己公钥信息的数字证书PubKCertS和服务器公钥PubKS发送给SSL客户端;4)S→C:SSL服务器进行平台认证,将自身的平台身份证书PEKCertS和对应的平台身份公钥PEKS发送给SSL客户端;5)S:服务器端封装TCM证书信息为m1:m1=(PEKS,PEKCertS);封装SSL证书信息为m2:m2=(PubKS,PubKCertS);6)S:服务器端计算m1的哈希值hm1:hm1=hmac(m1);计算m2的哈希值hm2:hm2=hmac(m2);计算m1、m2的哈希值hm12:hm12=hmac(m1||m2);7)S:服务器端生成签名密钥对KS、KP,服务器端进行数字双签名得到DSS:DSS=aenc(m12,KCS),利用数字双签名将TCM平台身份证书和SSL证书关联在一起,表名此次SSL协议的特定平台环境为TCM中的信息;8)S→C:服务器端把KS,m1,DSS及m1的哈希值hm1发送给客户端TCM即TCMC,这样TCM只能得到m2的杂凑值,但得不到m2;把KP,m2,DSS及m2的哈希值hm2发送给客户端主机HC,这样HC只能得到m1的杂凑值而得不到m1;9)C:客户端TCM进行平台身份和SSL证书对应关系验证:计算hm12'=adec(DSS,KP);计算hm1=hmac(m1);验证方程hm12=hmac(m1||m2)是否成立,若成立则签名有效,继续以下步骤,否则终止此次协议;10)C:客户端主机进行平台身份和SSL证书对应关系验证:计算hm12'=adec(DSS,KP);计算hm2=hmac(m2);验证方程hm12=hmac(m1||m2)是否成立,若成立则签名有效,继续以下步骤,否则终止此次协议;11)C:客户端TCM验证PEKS和PEKCertS;12)C→S:客户端发送PEKC和PEKCertC给服务器,服务器验证PEKC和PEKCertC;13)S→C:服务器发送Server Hello Done消息,通知SSL客户端版本和加密套件协商结束,开始进行密钥交换;14)S→C:服务器端主机HS调用TCM_CreateKeyExchange();服务器TS接到调用后:(1)创建秘钥协商会话,随机生成会话句柄shdY(2)随机生成临时秘钥私钥y,计算临时秘钥公钥Y=gy(3)将临时秘钥对(y,Y)存储在TCM中并与句柄shdY绑定;TS返回Y,shdY给HS,HS将Y发送给客户端HC;15)C→S:客户端主机HC随机生成一个预主秘钥PreMasterSecret;客户端TCM即TC:(1)随机生成临时秘钥私钥x,计算临时秘钥公钥X=gx(2)计算seed=SM2KE(PEKC,PEKS,Y,X),K1=kdf('encryption',seed),K2=kdf('intergrity',seed)(3)计算a=senc(PreMasterSecret,K1),b=hmac(a,K2),sblob=(a,b)TC返回X和Sblob给HC,HC将X和Sblob传给HS,TC同时删除临时秘钥对(x,X);16)S:服务器端TCM即TS:(1)计算seed=SM2KE(PEKB,PEKA,Y,X),K1=kdf('encryption',seed),K2=kdf('intergrity',seed)(2)将sblob前32字节赋值给b,其余字节赋值给a(3)验证b=hmac(a,K2),(4)计算PreMasterSecret=sdec(a,K1),(5)用SMK存储主秘钥保护PreMasterSecret=sdec(a,K1):keyBlob=senc(PreMasterSecret,SMK);17)S:服务器端TCM所有者调用TCM_ReleaseExchangeSessign(shdY),TS接到调用后,删除shdY指向的临时秘钥对(y,Y);18)S:服务器端主机利用协商好的算法及参数Ver_c、Ver_s计算得到主密钥MasterSecret,接着计算Finished消息的内容,及哈希值:MD5(MASTERSecret+Pad2+MD5(HandshakeMessages+MasterSecret+Pad1))+SHA(MASTERSecret+Pad2+SHA(HandshakeMessages+MasterSecret+Pad1))公式中HandshakeMessages表示握手消息指从客户端问候消息开始的内容,不包括此消息在内的到这个步骤的信息,Pad1和Pad2为填充字节;19)S→C:服务器HS传送ChangeCiperSpec、Finished给客户端HC。客户端HC计算主密钥MasterSecret=hmac(PreMasterSecret),HC计算Finished消息的内容,Finished'=MD5(MASTERSecret+Pad2+MD5(HandshakeMessages+MasterSecret+Pad1))+SHA(MASTERSecret+Pad2+SHA(HandshakeMessages+MasterSecret+Pad1))比较Finished'和Finished,相同表示消息未被篡改,最后客户端也将Finished'发给服务器表示整个握手过程的结束;20)S:服务器验证客户端发送的Finished'消息,如果成立,则可以分块导出MasterSecret。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810222609.1/,转载请声明来源钻瓜专利网。