基于随机数隐式协商的TLS协议会话密钥还原方法技术

技术编号:20824779 阅读:29 留言:0更新日期:2019-04-10 07:13
针对现有TLS中间件安全防护方法无法满足目前以及未来的TLS中间件使用场景,本发明专利技术提供一种基于随机数隐式协商的TLS协议会话密钥还原方法:1.中间件生成公私钥对,将公钥发送给客户端;2.客户端保存公钥,和服务器进行握手,构造握手报文发送给服务器;3.中间件保存握手报文并转发到服务器;4.服务器向客户端发送报文;5.中间件计算握手报文加密密钥;6.中间件对报文进行解密,并通过计算,还原会话密钥,同时转发收到的报文;7.客户端收到服务器报文后,向中间件发送报文;8.中间件将报文转发给服务器,并生成会话复用主密;9.中间件解密TLS流量,执行中间件功能。本发明专利技术可用于TLS中间件技术,提供基于网络的安全属性,且大幅减少中间件的计算开销。

【技术实现步骤摘要】
基于随机数隐式协商的TLS协议会话密钥还原方法
本专利技术属于计算机网络安全
,涉及一种安全传输协议会话密钥还原方法,具体涉及一种基于随机数隐式协商的传输层安全(TransportLayerSecurity,TLS)协议会话密钥还原方法。
技术介绍
计算机时代,终端面临的最大安全威胁是各类计算机病毒,防毒卡、杀毒软件等能够提供有效的安全防护。而网络时代,终端所面临的安全威胁剧增起来:包括木马、间谍软件、劫持攻击、钓鱼邮件、钓鱼网络等等。此时除了在终端上安装安全软件外,还需要在网络边界架设防火墙、入侵检测系统IDS/IPS、内容审核、数据审计等更多的基于网络的安全防御方法。不同于基于主机的各种安全软件,基于网络的安全设施并不能对主机环境进行深度扫描监测,但是,这些设施却构成了一个更全面、更通用的安全体系。基于网络流量的安全检查,不特别针对某一主机,而是针对网络内的所有主机,因此其检查的范围更广,能搜集的决策信息也更多,更有利于探查、评估网络威胁。同时,它不依赖主机环境,使用上更通用、普遍,特别是对于资源有限、缺乏“自我保护”的IoT设备,其效用更加明显。另外,这种安全机制,也是对主机安全软件的一种补充增强,一些安全检查设备能够帮助抵御内部人员安装未授权软件,并在一个受感染的主机禁用安全软件时提供反馈。基于网络的安全设施中,一个重要组成部分是TLS中间件。TLS中间件能被用于监视、拦截或者转发企业环境和移动网络中的HTTPS流量。比如,防火墙和IDS依赖于网络流量的检查以实现基于边界的安全策略。根据安全功能需求的不同,这些中间件可以被部署为流量监控设备或在线设备。一个流量监控中间件可执行威胁监测、入侵检测、加密审计、合规监视等功能。一个在线设备中间件可能适用于防止非法下载、阻止已知威胁URLs、强制使用强安全密码、阻止数据泄露等应用场景。目前的TLS中间件安全防护方法主要包括以下五种:1)中间人技术(Man-in-the-middleattack,简称MITM)。使用中间人技术来获取四层以上流量的明文信息。该方法适用于客户端位于企业网络内部的应用场景。企业网络内部生成根证书,安装到TLS客户端中,并将根证书的私钥交给中间件。客户端发起和服务器之间的TLS握手时,中间件伪造服务器的证书,与客户端建立连接;同时,中间件与服务器建立TLS连接。所有在客户端和服务器之间通信的加密数据,实际都被TLS中间件进行了重新加密,然后转发。但中间人技术存在以下技术问题:使用在客户端安装定制根证书的中间人技术中,由于客户端实质是与中间件建立了TLS连接,这实际上是破坏了密钥协商的“抗未知密钥共享”安全,因此客户端建立的TLS连接失去了应有的源认证性,即客户端不能对与之通信的服务器的身份进行认证,也不能保证中间件会对服务器的身份进行认证。另外,使用该技术的中间件需要解密和重新加密转发流量,计算开销大。2)中间件内置服务器私钥方法。该方法适用于服务器位于企业网络内部的应用场景,并且使用静态RSA和静态Diffie-Hellman进行密钥交换的TLS密码套件。企业管理员将服务器的私钥内置于TLS中间件,中间件监听客户端和服务器之间的握手过程,使用服务器的私钥计算会话密钥。但中间件内置服务器私钥方法存在以下技术问题:TLS的新标准版本1.3中,已经放弃了静态RSA和静态Diffie-Hellman握手,改用(EC)Diffie-Hellman握手。每次握手时,客户端和用户端都会产生临时密钥对用于密钥计算。因此,中间件内置服务器私钥的方法不适用于TLS1.3。3)BlindBox。学术工作BlindBox使用一种可搜索加密方案。在正常的TLS加密流量之外,BlindBox要求客户端或服务器将流量明文使用可搜索加密方案进行加密,与正常TLS流量同时传输。中间件可在BlindBox可搜索加密流量上执行一些特定的检测功能。但BlindBox使用可搜索加密技术的问题在于,它只满足一部分中间件的需求——例如入侵检测这种主要运用模式匹配的中间件。而另一些中间件,比如压缩代理(compressionproxies)需要进行任意计算(arbitrarycomputation),就无法使用可搜索加密技术。4)mcTLS。mcTLS修改原有TLS协议,使中间件参与握手过程密钥协商,细粒度控制中间件对TLS流量的读写权限。mcTLS将数据按照中间件的读写权限进行切分,握手完成后为每块数据生成多个对称密钥,拥有对应读写权限的中间件可生成相应的密钥。mcTLS方案的问题:首先,mcTLS大幅修改原有协议,不兼容现有协议,难以部署使用;其次,mcTLS的握手过程引入了大量额外的通信开销和计算开销。5)带外密钥传输。该方案在TLS握手完成后,由客户端或服务器将会话密钥传输给中间件。但带外密钥传输的方法引入了额外的网络通信开销。
技术实现思路
针对现有TLS中间件安全防护方法均无法满足目前以及未来的TLS中间件使用场景,本专利技术提供一种基于随机数隐式协商的TLS协议会话密钥还原方法,可用于TLS中间件技术,提供基于网络的安全属性。本专利技术的目的是提供一种基于随机数隐式协商的TLS协议会话密钥还原方法,并满足以下特征:1)是一种通用方法,能用于任何TLS中间件;2)适用于TLS各个版本,包括最新版本TLS1.3;3)无需额外的TLS连接传输密钥,也无需使用中间人技术将TLS连接分割为两条TLS连接;4)兼容原有TLS协议,支持普通TLS客户端与增强的TLS客户端的通信;5)不破坏TLS连接的源认证性;6)一条TLS会话只需一个密钥,无需额外的密钥管理;7)能进行权限限制,即可限定中间件是否能访问TLS会话的加密数据。技术方案如下:第一步,中间件生成公私钥对(skm,pkm),skm为中间件的私钥,pkm为中间件的公钥,其中g为椭圆曲线x25519的生成元。中间件将私钥skm秘密保存,将公钥pkm发送给客户端;第二步,客户端收到公钥pkm后,保存到本地,用于后续建立TLS连接时生成握手临时私钥。客户端和服务器进行握手,使用中间件公钥pkm构造握手报文ClientHello,并将握手报文发送给服务器。具体步骤如下:2.1)客户端发起TLS连接,选择随机数r,计算gr,客户端将gr填充到握手报文ClientHello的随机数字段。2.2)对于客户端支持ECDHE密钥交换的每条椭圆曲线,客户端计算握手临时密钥其中,HKDF函数定义参见RFC8446,name为椭圆曲线的名称,len为客户端握手临时密钥长度。客户端将eskc对应的公钥填充到握手报文ClientHello的密钥交换扩展key_share中。2.3)客户端将构造好的握手报文ClientHello发送给服务器。第三步,中间件监听到握手报文ClientHello后,保存到本地,并将握手报文ClientHello转发到服务器。第四步,服务器收到握手报文ClientHello,向客户端发送ServerHello报文、EncryptedExtensions报文、Certificate报文、CertificateVerify报文、serverFinished报文,其中,ServerHello报文为服务器握手报文,Enc本文档来自技高网
...

【技术保护点】
1.基于随机数隐式协商的TLS协议会话密钥还原方法,其特征在于,包括以下步骤:第一步,中间件生成公私钥对(skm,pkm),skm为中间件的私钥,pkm为中间件的公钥,

【技术特征摘要】
1.基于随机数隐式协商的TLS协议会话密钥还原方法,其特征在于,包括以下步骤:第一步,中间件生成公私钥对(skm,pkm),skm为中间件的私钥,pkm为中间件的公钥,其中g为椭圆曲线x25519的生成元;中间件将私钥skm秘密保存,将公钥pkm发送给客户端;第二步,客户端收到公钥pkm后,保存到本地;客户端和服务器进行握手,使用中间件公钥pkm构造握手报文ClientHello,并将握手报文发送给服务器;第三步,中间件监听到握手报文ClientHello后,保存到本地,并将握手报文ClientHello转发到服务器;第四步,服务器收到握手报文ClientHello,向客户端发送ServerHello报文、EncryptedExtensions报文、Certificate报文、CertificateVerify报文、serverFinished报文,其中,ServerHello报文为服务器握手报文,EncryptedExtensions报文为服务器加密扩展报文,Certificate报文为证书报文,CertificateVerify报文为证书判定报文,serverFinished报文为服务器握手结束报文;第五步,中间件监听到ServerHello报文,根据报文key_share扩展中选择的椭圆曲线计算客户端的握手临时私钥并计算Diffie-Hellman密钥交换结果其中epks为服务器所选择的临时握手公钥,HKDF函数定义参见RFC8446;然后,中间件计算握手报文加密密钥;第六步,中间件收到EncryptedExtensions、Certificate、CertificateVerify、serverFinished报文后,对报文进行解密,并通过计算,还原会话密钥,得到主密钥master_secret,同时转发收到的EncryptedExtensions、Certificate、CertificateVerify、serverFinished报文给客户端;第七步,客户端收到服务器报文后,向中间件发送客户端证书报文Certificate、证书判定报文CertificateVerify,以及客户端握手结束报文clientFinished;第八步,中间件收到客户端发送的Certificate、CertificateVerify和clientFinished报文后,将报文转发给服务器,并利用函数Derive-Secret(master_secret,“resmaster”,ClientHello...clientFinished)生成会话复用主密钥resumption_master_secret,其中master_secret为第六步生成的主密钥,ClientHello...clientFinished为从客户端握手报文到客户端握手结束报文之间所有的报文内容,其中,Derive-Secret函数的定义参见RFC8446;第九步,客户端和服务器握手完成,中间件解密TLS流量,执行中间件功能。2.如权利要求1所述的基于随机数隐式协商的TLS协议会话密钥还原方法,其特征在于,所述第二步具体包括以下步骤:2.1)客户端发起TLS连接,选择随机数r,计算gr,客户端将gr填充到握手报文ClientHello的随机数字段;2.2)对于客户端支持ECDHE密钥交换的每条椭圆曲线,客户端计算握手临时密钥其中,HKDF函数定义参见RFC8446,name为椭圆曲线的名称,len为客户端握手临时密钥长度;客户端将eskc对应的公钥填充到握手报文ClientHello的密钥交换扩展key_share中;2.3)客户端将构造好的握手报文ClientHello发送给服务器。3.如权利要求1所述的基于随机数隐式协商的TLS协议会话密钥还原方法,其特征在于,所述第五步中间件计算握手报文加密密钥,具体包括下述步骤,其中,HKDF-Extract、HKDF-Expand-Label和Derive-Secret等函数的定义参见RFC8446:5.1)利用HKDF-Extract(0,psk)生成初期密钥early_secret,其中psk为服务器和客户端之间的预共享密钥,early_secret为生成的初期密钥,用于生成后续其他密钥;5.2)利用Derive-Secret(early_secret,“derived”,“”)生成第一临时密钥temp_secret_1,其中early_secret为步骤5.1中生成的初期密钥,temp_secret_1为第一临时密钥,用于生成后续其他密钥;5.3)利用HKDF-Extract(temp_secret_1,Z)生成握手密钥handshake_secret,其中temp_secret_1为步骤5.2中生成的第一临时密钥,Z为服务器和客户端之间Diffie-Hellman密钥协商结果;5.4)利用Derive-Secret(handshake_secret,“chstraffic”,ClientHello...ServerHello)生成客户端握手流量密钥client_handshake_traffic_secret,其中handshake_secret为步骤5.3中生成的握手密钥,ClientHello...ServerHello为从客户端ClientHello报文到服务器ServerHello报文之间的所有报文内容;5.5)利用Derive-Secret(handshake_secret,“shstraffic”,ClientHello...ServerHello)生成服务器握手流量密钥server_handshake_traffic_secret,其中handshake_secret为步骤5.3中生成的握手密钥,ClientHello...ServerHello...

【专利技术属性】
技术研发人员:陈荣茂李杰苏金树陈曙晖王小峰张博锋孙一品王飞刘宇靖
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:湖南,43

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

1