CN110336666A - 一种增强ssl/tls协议中随机数随机性的方法 - Google Patents
一种增强ssl/tls协议中随机数随机性的方法 Download PDFInfo
- Publication number
- CN110336666A CN110336666A CN201910644205.6A CN201910644205A CN110336666A CN 110336666 A CN110336666 A CN 110336666A CN 201910644205 A CN201910644205 A CN 201910644205A CN 110336666 A CN110336666 A CN 110336666A
- Authority
- CN
- China
- Prior art keywords
- random number
- server
- client
- pms
- ssl
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- 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
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/168—Implementing security features at a particular protocol layer above the transport layer
Abstract
本发明公开了一种增强SSL/TLS客户端随机数随机性的方法,包括以下步骤:SSL/TLS客户端利用伪随机数发生器生成随机数CR,并将随机数CR封装在第一握手消息中发送给SSL/TLS服务端,SSL/TLS客户端在从SSL/TLS服务端接收到其响应于第一握手消息而发送的第二握手消息后,对该第二握手消息进行解析,以获取服务端随机数SR,SSL/TLS客户端利用获取的服务端随机数SR将随机数CR更新为客户端随机数CR’。本发明解决现有方法中由于SSL/TLS客户端产生的客户端随机数的随机性不足,所导致的主密钥容易泄露、并进而导致SSL/TLS协议存在重大安全风险的技术问题。
Description
技术领域
本发明属于信息安全领域,更具体地,涉及一种增强SSL/TLS协议中随机数随机性的方法。
背景技术
安全套接层(Secure Sockets Layer,简称SSL)及其继任者传输层安全(Transport Layer Security,简称TLS)是为网络通信提供安全及数据完整性的一种安全协议。
SSL/TLS协议采用非对称密码算法进行身份鉴别和密钥交换,身份鉴别通过后,SSL/TLS服务端和SSL/TLS客户端根据SSL/TLS客户端生成的预主密钥各自计算产生主密钥,进而根据主密钥推导出工作密钥,最后使用工作密钥进行加解密和完整性校验。其中,预主密钥是由SSL/TLS客户端产生,包含46个字节的随机数,主密钥是通过预主密钥、客户端随机数、服务端随机数、以及常量字符产生。
目前,SSL/TLS服务端通常采用专业的硬件真随机数发生器来生成服务端随机数,其随机性能够得到保障;但SSL/TLS客户端通常为软件形态,其产生客户端随机数通常是通过调用操作系统的随机数函数来实现,这样方式生成的随机数是伪随机数,并不具有随机性。一旦随机数的随机性不足,会导致主密钥泄露,从而导致SSL/TLS协议存在重大安全风险。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种增强SSL/TLS协议中随机数随机性的方法,其目的在于,解决现有方法中由于SSL/TLS客户端产生的客户端随机数的随机性不足,所导致的主密钥容易泄露、并进而导致SSL/TLS协议存在重大安全风险的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种增强SSL/TLS客户端随机数随机性的方法,包括以下步骤:
(1)SSL/TLS客户端利用伪随机数发生器生成随机数CR,并将随机数CR封装在第一握手消息中发送给SSL/TLS服务端。
(2)SSL/TLS客户端在从SSL/TLS服务端接收到其响应于第一握手消息而发送的第二握手消息后,对该第二握手消息进行解析,以获取服务端随机数SR;
(3)SSL/TLS客户端根据获取的服务端随机数SR生成客户端随机数CR’,和/或使用伪随机数发生器,并根据服务端随机数SR生成客户端预主密钥PMS’。
优选地,步骤(3)中根据获取的服务端随机数SR生成客户端随机数CR’具体为:
利用获取的服务端随机数SR将随机数CR更新为客户端随机数CR’;
或者
使用伪随机数发生器,并利用获取的服务端随机数SR作为种子生成客户端随机数CR’。
优选地,将随机数CR更新为CR’的方式为:
如果随机数CR和服务端随机数SR的比特长度相等,则计算客户端随机数其中为异或运算符;如果随机数CR的比特长度大于服务端随机数SR的长度,则对服务端随机数SR进行补位处理以得到更新后的服务端随机数SR’,并计算客户端随机数如果随机数CR的比特长度小于服务端随机数SR的比特长度,则对服务端随机数SR进行减位处理以得到更新后的服务端随机数SR’,并计算客户端随机数
或者
将随机数CR更新为CR’为CR’=F(CR,SR),其中F表示运算函数,其为哈希函数、HMAC函数、或PRF函数等。
优选地,步骤(3)中使用伪随机数发生器,并根据服务端随机数SR生成客户端预主密钥PMS’具体是:
使用伪随机数发生器生成预主密钥PMS,并根据生成的预主密钥PMS和服务端随机数SR生成客户端预主密钥PMS’;
或者
使用伪随机数发生器,并利用获取的服务端随机数SR作为种子生成客户端随机数PMS’。
优选地,根据生成的预主密钥PMS和服务端随机数SR生成客户端预主密钥PMS’的方式为:
如果预主密钥PMS和服务端随机数SR的比特长度相等,则计算 其中为异或运算符;如果预主密钥PMS的比特长度大于服务端随机数SR的长度,则对服务端随机数SR进行补位处理得到更新后的服务端随机数SR’,并计算如果预主密钥PMS的比特长度小于服务端随机数SR的长度,则对服务端随机数SR进行减位处理以得到更新后的服务端随机数SR’,并计算
或者
计算PMS’=F(PMS,SR),其中F为运算函数,其为Hash函数、HMAC函数、或PRF函数等。
按照本发明的另一个方面,提供了一种增强SSL/TLS客户端随机数随机性的方法,包括以下步骤:
(1)SSL/TLS客户端利用伪随机数发生器生成随机数CR,并将随机数CR封装在第一握手消息中发送给SSL/TLS服务端;
(2)SSL/TLS客户端在从SSL/TLS服务端接收到其响应于第一握手消息而发送的第二握手消息后,对该第二握手消息进行解析,以获取随机数种子密钥RS;
(3)SSL/TLS客户端根据获取的服务端随机数RS生成客户端随机数CR’,和/或使用伪随机数发生器,并根据服务端随机数SR生成客户端预主密钥PMS’。
优选地,随机数种子密钥RS是SSL/TLS服务端通过将随机产生的种子密钥和服务端随机数SR进行拼接后得到,拼接方式可以为SR||种子密钥或种子密钥||SR。
优选地,步骤(3)中根据获取的服务端随机数RS生成客户端随机数CR’具体为:
利用获取的随机数种子密钥RS将随机数CR更新为客户端随机数CR’;
或者
使用伪随机数发生器,并利用获取的服务端随机数RS作为种子生成客户端随机数CR’。
优选地,将随机数CR更新为客户端随机数CR’的方式为:
如果随机数CR和随机数种子密钥RS的比特长度相等,则计算客户端随机数其中为异或运算符;如果随机数CR的比特长度大于随机数种子密钥RS的长度,则对随机数种子密钥RS进行补位处理以得到更新后的随机数种子密钥RS’,并计算如果随机数CR的比特长度小于随机数种子密钥RS的长度,则对随机数种子密钥RS进行减位处理以得到更新后的随机数种子密钥RS’,并计算
或者
计算CR’=F(CR,RS),其中F表示运算函数,其为哈希函数、HMAC函数、或PRF函数等。
优选地,步骤(3)中使用伪随机数发生器,并根据服务端随机数SR生成客户端预主密钥PMS’具体是:
使用伪随机数发生器生成预主密钥PMS,并根据生成的预主密钥PMS和服务端随机数SR生成客户端预主密钥PMS’;
或者
使用伪随机数发生器,并利用获取的服务端随机数SR作为种子生成客户端随机数PMS’。
优选地,根据生成的预主密钥PMS和服务端随机数SR生成客户端预主密钥PMS’的方式为:
如果预主密钥PMS和服务端随机数SR的比特长度相等,则计算 其中为异或运算符;如果预主密钥PMS的比特长度大于服务端随机数SR的长度,则对服务端随机数SR进行补位处理得到更新后的服务端随机数SR’,并计算如果预主密钥PMS的比特长度小于服务端随机数SR的长度,则对服务端随机数SR进行减位处理以得到更新后的服务端随机数SR’,并计算
或者
计算PMS’=F(PMS,SR),其中F为运算函数,其为Hash函数、HMAC函数、或PRF函数等。
按照本发明的另一个方面,提供了一种增强SSL/TLS客户端随机数随机性的方法,包括以下步骤:
(1)SSL/TLS客户端利用伪随机数发生器生成随机数CR,并将随机数CR封装在第一握手消息中发送给SSL/TLS服务端。
(2)SSL/TLS客户端从SSL/TLS服务端接收其响应于第一握手消息而发送的第二握手消息;
(3)SSL/TLS客户端使用Hash函数对从第一握手信息开始到当前时刻为止的所有与握手相关的消息进行计算,以得到计算结果HR;
(4)SSL/TLS客户端根据得到的运算结果HR生成客户端随机数CR’,和/或使用伪随机数发生器,并根据服务端随机数SR生成客户端预主密钥PMS’。
优选地,步骤(4)中根据得到的运算结果HR生成客户端随机数CR’具体为:
根据得到的运算结果HR将随机数CR更新为CR’;
或者
使用伪随机数发生器,并利用运算结果HR作为种子生成客户端随机数CR’。
优选地,将随机数CR更新为CR’的方式为:
如果随机数CR和运算结果HR的比特长度相等,则计算其中为异或运算符;如果随机数CR的比特长度大于运算结果HR的长度,则对运算结果HR进行补位处理以得到更新后的运算结果HR’,并计算如果随机数CR的比特长度小于运算结果HR的比特长度,则对运算结果HR进行减位处理以得到更新后的运算结果HR’,并计算
或者
计算CR’=F(CR,HR),其中F表示运算函数,其为哈希(Hash)函数、HMAC函数、或PRF函数等。
优选地,步骤(4)中使用伪随机数发生器,并根据服务端随机数SR生成客户端预主密钥PMS’具体是:
使用伪随机数发生器生成预主密钥PMS,并根据生成的预主密钥PMS和服务端随机数SR生成客户端预主密钥PMS’;
或者
使用伪随机数发生器,并利用获取的服务端随机数SR作为种子生成客户端随机数PMS’。
优选地,根据生成的预主密钥PMS和运算结果HR生成客户端预主密钥PMS’的方式为:
如果预主密钥PMS和运算结果HR的比特长度相等,则计算 其中为异或运算符;如果预主密钥PMS的比特长度大于运算结果HR的比特长度,则对运算结果HR进行补位处理以得到更新后的运算结果HR’,并计算如果预主密钥PMS的比特长度小于运算结果HR的长度,则对运算结果HR进行减位处理以得到更新后的运算结果HR’,并计算
或者
计算PMS’=F(PMS,HR),其中F为运算函数,其为Hash函数、HMAC函数、或PRF函数等。
优选地,第一握手消息是Client Hello消息,第二握手消息是Server Hello消息,随机数CR是嵌入到Client Hello消息中的随机数字段中进行传递。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
1、由于本发明SSL/TLS客户端产生客户端随机数、以及预主密钥的过程,是使用了服务端利用硬件真随机数发生器所产生的服务端随机数或随机数种子密钥,从而提高了客户端随机数的随机性,利用该客户端随机数和预主密钥后续生成的主密钥不容易泄露,从而提升了SSL/TLS协议的安全性。
2、本发明的方法不改变SSL/TLS协议流程及数据包,实施代价低。
附图说明
图1是根据本发明第一种实现方式的增强SSL/TLS协议中随机数随机性的方法的流程图;
图2是根据本发明第二种实现方式的增强SSL/TLS协议中随机数随机性的方法的流程图;
图3是根据本发明第三种实现方式的增强SSL/TLS协议中随机数随机性的方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示,根据本发明的第一种实施方式,提供了一种增强SSL/TLS客户端随机数随机性的方法,包括以下步骤:
(1)SSL/TLS客户端利用伪随机数发生器生成随机数CR,并将随机数CR封装在第一握手消息中发送给SSL/TLS服务端。
具体而言,本步骤中的第一握手消息是Client Hello消息,随机数CR是嵌入到Client Hello消息中的随机数(Random)字段中进行传递。
(2)SSL/TLS客户端在从SSL/TLS服务端接收到其响应于第一握手消息而发送的第二握手消息后,对该第二握手消息进行解析,以获取服务端随机数SR;
具体而言,本步骤中的第二握手消息是Server Hello消息。
在本步骤中,服务端随机数SR是SSL/TLS服务端通过调用硬件真随机数发生器生成,并嵌入到Server Hello消息中的随机数(Random)字段中进行传递。
(3)SSL/TLS客户端利用获取的服务端随机数SR将随机数CR更新为客户端随机数CR’。
在一种实施方式中,将随机数CR更新为CR’的方式为:如果随机数CR和服务端随机数SR的比特长度相等,则计算客户端随机数其中为异或运算符;如果随机数CR的比特长度大于服务端随机数SR的长度,譬如随机数CR的比特长度=服务端随机数SR的比特长度+l(其中l为任意自然数),则对服务端随机数SR进行补位处理以得到更新后的服务端随机数SR’,补位规则为可任意取服务端随机数SR中的l比特,补位至服务端随机数SR的任意位置,以使得更新后的服务端随机数SR’的比特长度和随机数CR的比特长度相同,并计算客户端随机数如果随机数CR的比特长度小于服务端随机数SR的比特长度,譬如服务端随机数SR的比特长度=随机数CR的比特长度+l,则对服务端随机数SR进行减位处理以得到更新后的服务端随机数SR’,减位规则为可以任意去掉服务端随机数SR中的l比特,使得更新后的服务端随机数SR’的比特长度和随机数CR的比特长度相同,并计算客户端随机数
作为另一种可替换的实施方式,将随机数CR更新为CR’为CR’=F(CR,SR),其中F表示运算函数,其包括但不限于哈希(Hash)函数、用于消息认证的密钥哈希(Keyed-Hashingfor Message Authentication,简称HMAC)函数、伪随机函数(Pseudo random function,简称PRF)等。
作为另一种可替换的实施方式,步骤(3)可被替换为:
(3’)SSL/TLS客户端使用伪随机数发生器,并利用获取的服务端随机数SR作为种子生成客户端随机数CR’。
SSL/TLS客户端还可以利用服务端随机数SR来增强预主密钥(premaster secret,简称PMS),对应地,本发明增强SSL/TLS客户端随机数随机性的方法可进一步包括上述步骤(3)之后的以下步骤:
(4)SSL/TLS客户端使用伪随机数发生器生成预主密钥PMS,并根据生成的预主密钥PMS和服务端随机数SR生成客户端预主密钥PMS’。
应该注意的是,本步骤(4)也可以单独作为步骤(3)的替换方式。
在一种实施方式中,根据生成的预主密钥PMS和服务端随机数SR生成客户端预主密钥PMS’的方式为:如果预主密钥PMS和服务端随机数SR的比特长度相等,则计算其中为异或运算符;如果预主密钥PMS的比特长度大于服务端随机数SR的长度,譬如预主密钥PMS的比特长度=服务端随机数SR的比特长度+l,则对服务端随机数SR进行补位处理得到更新后的服务端随机数SR’,补位规则为可任意取服务端随机数SR中的l比特,补位至服务端随机数SR的任意位置,使得更新后的服务端随机数SR’的比特长度和预主密钥PMS的比特长度相同,并计算 如果预主密钥PMS的比特长度小于服务端随机数SR的长度,譬如服务端随机数SR的比特长度=预主密钥PMS的比特长度+l,则对服务端随机数SR进行减位处理以得到更新后的服务端随机数SR’,减位规则为可以任意去掉服务端随机数SR中的l比特,使得更新后的服务端随机数SR’的比特长度和预主密钥PMS的比特长度相同,并计算
作为另一种可替换的实施方式,根据生成的预主密钥PMS和服务端随机数SR生成客户端预主密钥PMS’的方式为PMS’=F(PMS,SR),其中F为运算函数,其包括但不限于Hash函数、HMAC函数、PRF函数等。
作为另一种可替换的实施方式,步骤(4)可被替换为:
(4’)SSL/TLS客户端使用伪随机数发生器,并利用获取的服务端随机数SR作为种子生成客户端随机数PMS’。
应该理解的是,上述步骤(4’)也可以单独作为上述步骤(3)或者步骤(3’)的替换方式。
如图2所示,根据本发明的第二种实施方式,提供了另一种增强SSL/TLS客户端随机数随机性的方法,包括以下步骤:
(1)SSL/TLS客户端利用伪随机数发生器生成随机数CR,并将随机数CR封装在第一握手消息中发送给SSL/TLS服务端;
具体而言,本步骤中的第一握手消息是Client Hello消息,随机数CR是嵌入到Client Hello消息中的随机数(Random)字段中进行传递。
(2)SSL/TLS客户端在从SSL/TLS服务端接收到其响应于第一握手消息而发送的第二握手消息后,对该第二握手消息进行解析,以获取随机数种子密钥RS;
具体而言,本步骤中的第二握手消息是Server Hello消息。
在本步骤中,随机数种子密钥RS是SSL/TLS服务端通过将种子密钥和服务端随机数SR进行拼接后得到,拼接方式可以为SR||种子密钥或种子密钥||SR。
服务端随机数SR是28字节,它是SSL/TLS服务端通过调用硬件真随机数发生器生成,并嵌入到Server Hello消息中的随机数(Random)字段中生成,随后,SSL/TLS服务端在该随机数字段中扩展增加随机产生的种子密钥,并将服务端随机数SR和种子密钥进行拼接后,嵌入到Server Hello消息进行传递。
(3)SSL/TLS客户端利用获取的随机数种子密钥RS将随机数CR更新为客户端随机数CR’。
在一种实施方式中,将随机数CR更新为客户端随机数CR’的方式为:如果随机数CR和随机数种子密钥RS的比特长度相等,则计算客户端随机数其中为异或运算符;如果随机数CR的比特长度大于随机数种子密钥RS的长度,譬如随机数CR的比特长度=随机数种子密钥RS的比特长度+l,则对随机数种子密钥RS进行补位处理以得到更新后的随机数种子密钥RS’,补位规则为可任意取随机数种子密钥RS中的l比特,补位至随机数种子密钥RS的任意位置,使得更新后的随机数种子密钥RS’的比特长度和随机数CR的比特长度相同,并计算如果随机数CR的比特长度小于随机数种子密钥RS的长度,譬如随机数种子密钥RS的比特长度=随机数CR的比特长度+l,则对随机数种子密钥RS进行减位处理以得到更新后的随机数种子密钥RS’,减位规则为可以任意去掉随机数种子密钥RS中的l比特,以使得更新后的随机数种子密钥RS’的比特长度和随机CR的比特长度相同,并计算
作为另一种可替换的实施方式,将随机数CR更新为客户端随机数CR’的方式为CR’=F(CR,RS),其中F表示运算函数,其包括但不限于哈希(Hash)函数、用于消息认证的密钥哈希(Keyed-Hashing for Message Authentication,简称HMAC)函数、伪随机函数(Pseudorandom function,简称PRF)等。
作为另一种可替换的实施方式,步骤(3)可被替换为:
(3’)SSL/TLS客户端使用伪随机数发生器,并利用获取的服务端随机数RS作为种子生成客户端随机数CR’。
SSL/TLS客户端还可以利用随机数种子密钥RS来增强预主密钥(premastersecret,简称PMS),对应地,本发明增强SSL/TLS客户端随机数随机性的方法可进一步包括上述步骤(3)之后的以下步骤:
(4)SSL/TLS客户端使用伪随机数发生器生成预主密钥PMS,并根据生成的预主密钥PMS和随机数种子密钥RS生成客户端预主密钥PMS’。
应该注意的是,本步骤(4)也可以单独作为步骤(3)的替换方式。
在一种实施方式中,根据生成的预主密钥PMS和随机数种子密钥RS生成客户端预主密钥PMS’的方式为:如果预主密钥PMS和随机数种子密钥RS的比特长度相等,则计算其中为异或运算符;如果预主密钥PMS的比特长度大于随机数种子密钥RS的比特长度,譬如预主密钥PMS的比特长度=随机数种子密钥RS的比特长度+l,则对随机数种子密钥RS进行补位处理以得到更新后的随机数种子密钥RS’,补位规则为可任意取随机数种子密钥RS中的l比特,补位至随机数种子密钥RS的任意位置,以使得更新后的随机数种子密钥RS’的比特长度和预主密钥PMS的比特长度相同,并计算如果预主密钥PMS的比特长度小于随机数种子密钥RS的比特长度,譬如随机数种子密钥RS的比特长度=预主密钥PMS的比特长度+l,则对随机数种子密钥RS进行减位处理以得到更新后的随机数种子密钥RS’,减位规则为可以任意去掉随机数种子密钥RS中的l比特,以使得更新后的随机数种子密钥RS’的比特长度和预主密钥PMS的比特长度相同,并计算
作为另一种可替换的实施方式,根据生成的预主密钥PMS和随机数种子密钥RS生成客户端预主密钥PMS’的方式为PMS’=F(PMS,RS),其中F为运算函数,其包括但不限于Hash函数、HMAC函数、PRF函数等。
作为另一种可替换的实施方式,步骤(4)可被替换为:
(4’)SSL/TLS客户端使用伪随机数发生器,并利用获取的服务端随机数RS作为种子生成客户端随机数PMS’。
应该注意的是,本步骤(4’)也可以单独作为步骤(3)或步骤(3’)的替换方式。
如图3所示,根据本发明的第三种实施方式,提供了又一种增强SSL/TLS客户端随机数随机性的方法,包括以下步骤:
(1)SSL/TLS客户端利用伪随机数发生器生成随机数CR,并将随机数CR封装在第一握手消息中发送给SSL/TLS服务端。
具体而言,本步骤中的第一握手消息是Client Hello消息,随机数CR是嵌入到Client Hello消息中的随机数(Random)字段中进行传递。
(2)SSL/TLS客户端从SSL/TLS服务端接收其响应于第一握手消息而发送的第二握手消息;
(3)SSL/TLS客户端使用Hash函数对从第一握手信息开始到当前时刻为止的所有与握手相关的消息进行计算,以得到计算结果HR;
(4)SSL/TLS客户端根据得到的运算结果HR将随机数CR更新为CR’。
在一种实施方式中,将随机数CR更新为CR’的方式为:如果随机数CR和运算结果HR的比特长度相等,则计算其中为异或运算符;如果随机数CR的比特长度大于运算结果HR的长度,譬如随机数CR的比特长度=运算结果HR的比特长度+l,则对运算结果HR进行补位处理以得到更新后的运算结果HR’,补位规则为可任意取运算结果HR中的l比特,补位至运算结果HR的任意位置,使得更新后的运算结果HR’的比特长度和随机数CR的比特长度相同,并计算如果随机数CR的比特长度小于运算结果HR的比特长度,譬如运算结果HR的比特长度=随机数CR的比特长度+l,则对运算结果HR进行减位处理以得到更新后的运算结果HR’,减位规则为可以任意去掉运算结果HR中的l比特,使得更新后的运算结果HR’的比特长度和随机数CR的比特长度相同,并计算
作为另一种可替换的实施方式,将随机数CR更新为CR’的方式为CR’=F(CR,HR),其中F表示运算函数,其包括但不限于哈希(Hash)函数、用于消息认证的密钥哈希(Keyed-Hashing for Message Authentication,简称HMAC)、伪随机函数(Pseudo randomfunction,简称PRF)等。
作为另一种可替换的实施方式,步骤(4)可被替换为:
(4’)SSL/TLS客户端使用伪随机数发生器,并利用运算结果HR作为种子生成客户端随机数CR’。
SSL/TLS客户端还可以利用HR来增强预主密钥(premaster secret,简称PMS),对应地,本发明增强SSL/TLS客户端随机数随机性的方法可进一步包括上述步骤(4)之后的以下步骤:
(5)SSL/TLS客户端使用伪随机数发生器生成预主密钥PMS,并根据生成的预主密钥PMS和运算结果HR生成客户端预主密钥PMS’。
应该注意的是,本步骤(5)也可以单独作为步骤(4)的替换方式。
在一种实施方式中,根据生成的预主密钥PMS和运算结果HR生成客户端预主密钥PMS’的方式为:如果预主密钥PMS和运算结果HR的比特长度相等,则计算其中为异或运算符;如果预主密钥PMS的比特长度大于运算结果HR的比特长度,譬如预主密钥PMS的比特长度=运算结果HR的比特长度+l,则对运算结果HR进行补位处理以得到更新后的运算结果HR’,补位规则为可任意取运算结果HR中的l比特,补位至运算结果HR的任意位置,使得更新后的运算结果HR’的比特长度和预主密钥PMS的比特长度相同,并计算如果预主密钥PMS的比特长度小于运算结果HR的长度,譬如运算结果HR的比特长度=预主密钥PMS的比特长度+l,则对运算结果HR进行减位处理以得到更新后的运算结果HR’,减位规则为可以任意去掉运算结果HR中的l比特,以使得更新后的运算结果HR’的比特长度和预主密钥PMS的比特长度相同,并计算
作为另一种可替换的实施方式,根据生成的预主密钥PMS和运算结果HR生成客户端预主密钥PMS’的方式为PMS’=F(PMS,HR),其中F为运算函数,其包括但不限于Hash函数、HMAC函数、PRF函数等。
作为另一种可替换的实施方式,步骤(5)可被替换为:
(5’)SSL/TLS客户端使用伪随机数发生器,并利用运算结果HR作为种子生成客户端随机数PMS’。
应该注意的是,本步骤(5’)也可以单独作为步骤(4)或步骤(4’)的替换方式。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (17)
1.一种增强SSL/TLS客户端随机数随机性的方法,其特征在于,包括以下步骤:
(1)SSL/TLS客户端利用伪随机数发生器生成随机数CR,并将随机数CR封装在第一握手消息中发送给SSL/TLS服务端。
(2)SSL/TLS客户端在从SSL/TLS服务端接收到其响应于第一握手消息而发送的第二握手消息后,对该第二握手消息进行解析,以获取服务端随机数SR;
(3)SSL/TLS客户端根据获取的服务端随机数SR生成客户端随机数CR’,和/或使用伪随机数发生器,并根据服务端随机数SR生成客户端预主密钥PMS’。
2.根据权利要求1所述的方法,其特征在于,步骤(3)中根据获取的服务端随机数SR生成客户端随机数CR’具体为:
利用获取的服务端随机数SR将随机数CR更新为客户端随机数CR’;
或者
使用伪随机数发生器,并利用获取的服务端随机数SR作为种子生成客户端随机数CR’。
3.根据权利要求2所述的方法,其特征在于,将随机数CR更新为CR’的方式为:
如果随机数CR和服务端随机数SR的比特长度相等,则计算客户端随机数其中为异或运算符;如果随机数CR的比特长度大于服务端随机数SR的长度,则对服务端随机数SR进行补位处理以得到更新后的服务端随机数SR’,并计算客户端随机数如果随机数CR的比特长度小于服务端随机数SR的比特长度,则对服务端随机数SR进行减位处理以得到更新后的服务端随机数SR’,并计算客户端随机数
或者
将随机数CR更新为CR’为CR’=F(CR,SR),其中F表示运算函数,其为哈希函数、HMAC函数、或PRF函数等。
4.根据权利要求1所述的方法,其特征在于,步骤(3)中使用伪随机数发生器,并根据服务端随机数SR生成客户端预主密钥PMS’具体是:
使用伪随机数发生器生成预主密钥PMS,并根据生成的预主密钥PMS和服务端随机数SR生成客户端预主密钥PMS’;
或者
使用伪随机数发生器,并利用获取的服务端随机数SR作为种子生成客户端随机数PMS’。
5.根据权利要求4所述的方法,其特征在于,根据生成的预主密钥PMS和服务端随机数SR生成客户端预主密钥PMS’的方式为:
如果预主密钥PMS和服务端随机数SR的比特长度相等,则计算 其中为异或运算符;如果预主密钥PMS的比特长度大于服务端随机数SR的长度,则对服务端随机数SR进行补位处理得到更新后的服务端随机数SR’,并计算如果预主密钥PMS的比特长度小于服务端随机数SR的长度,则对服务端随机数SR进行减位处理以得到更新后的服务端随机数SR’,并计算
或者
计算PMS’=F(PMS,SR),其中F为运算函数,其为Hash函数、HMAC函数、或PRF函数等。
6.一种增强SSL/TLS客户端随机数随机性的方法,其特征在于,包括以下步骤:
(1)SSL/TLS客户端利用伪随机数发生器生成随机数CR,并将随机数CR封装在第一握手消息中发送给SSL/TLS服务端;
(2)SSL/TLS客户端在从SSL/TLS服务端接收到其响应于第一握手消息而发送的第二握手消息后,对该第二握手消息进行解析,以获取随机数种子密钥RS;
(3)SSL/TLS客户端根据获取的服务端随机数RS生成客户端随机数CR’,和/或使用伪随机数发生器,并根据服务端随机数SR生成客户端预主密钥PMS’。
7.根据权利要求6所述的方法,其特征在于,随机数种子密钥RS是SSL/TLS服务端通过将随机产生的种子密钥和服务端随机数SR进行拼接后得到,拼接方式可以为SR||种子密钥或种子密钥||SR。
8.根据权利要求6所述的方法,其特征在于,步骤(3)中根据获取的服务端随机数RS生成客户端随机数CR’具体为:
利用获取的随机数种子密钥RS将随机数CR更新为客户端随机数CR’;
或者
使用伪随机数发生器,并利用获取的服务端随机数RS作为种子生成客户端随机数CR’。
9.根据权利要求8所述的方法,其特征在于,将随机数CR更新为客户端随机数CR’的方式为:
如果随机数CR和随机数种子密钥RS的比特长度相等,则计算客户端随机数其中为异或运算符;如果随机数CR的比特长度大于随机数种子密钥RS的长度,则对随机数种子密钥RS进行补位处理以得到更新后的随机数种子密钥RS’,并计算如果随机数CR的比特长度小于随机数种子密钥RS的长度,则对随机数种子密钥RS进行减位处理以得到更新后的随机数种子密钥RS’,并计算
或者
计算CR’=F(CR,RS),其中F表示运算函数,其为哈希函数、HMAC函数、或PRF函数等。
10.根据权利要求6所述的方法,其特征在于,步骤(3)中使用伪随机数发生器,并根据服务端随机数SR生成客户端预主密钥PMS’具体是:
使用伪随机数发生器生成预主密钥PMS,并根据生成的预主密钥PMS和服务端随机数SR生成客户端预主密钥PMS’;
或者
使用伪随机数发生器,并利用获取的服务端随机数SR作为种子生成客户端随机数PMS’。
11.根据权利要求10所述的方法,其特征在于,根据生成的预主密钥PMS和服务端随机数SR生成客户端预主密钥PMS’的方式为:
如果预主密钥PMS和服务端随机数SR的比特长度相等,则计算 其中为异或运算符;如果预主密钥PMS的比特长度大于服务端随机数SR的长度,则对服务端随机数SR进行补位处理得到更新后的服务端随机数SR’,并计算如果预主密钥PMS的比特长度小于服务端随机数SR的长度,则对服务端随机数SR进行减位处理以得到更新后的服务端随机数SR’,并计算
或者
计算PMS’=F(PMS,SR),其中F为运算函数,其为Hash函数、HMAC函数、或PRF函数等。
12.一种增强SSL/TLS客户端随机数随机性的方法,其特征在于,包括以下步骤:
(1)SSL/TLS客户端利用伪随机数发生器生成随机数CR,并将随机数CR封装在第一握手消息中发送给SSL/TLS服务端。
(2)SSL/TLS客户端从SSL/TLS服务端接收其响应于第一握手消息而发送的第二握手消息;
(3)SSL/TLS客户端使用Hash函数对从第一握手信息开始到当前时刻为止的所有与握手相关的消息进行计算,以得到计算结果HR;
(4)SSL/TLS客户端根据得到的运算结果HR生成客户端随机数CR’,和/或使用伪随机数发生器,并根据服务端随机数SR生成客户端预主密钥PMS’。
13.根据权利要求12所述的方法,其特征在于,步骤(4)中根据得到的运算结果HR生成客户端随机数CR’具体为:
根据得到的运算结果HR将随机数CR更新为CR’;
或者
使用伪随机数发生器,并利用运算结果HR作为种子生成客户端随机数CR’。
14.根据权利要求13所述的方法,其特征在于,将随机数CR更新为CR’的方式为:
如果随机数CR和运算结果HR的比特长度相等,则计算其中为异或运算符;如果随机数CR的比特长度大于运算结果HR的长度,则对运算结果HR进行补位处理以得到更新后的运算结果HR’,并计算如果随机数CR的比特长度小于运算结果HR的比特长度,则对运算结果HR进行减位处理以得到更新后的运算结果HR’,并计算
或者
计算CR’=F(CR,HR),其中F表示运算函数,其为哈希(Hash)函数、HMAC函数、或PRF函数等。
15.根据权利要求12所述的方法,其特征在于,步骤(4)中使用伪随机数发生器,并根据服务端随机数SR生成客户端预主密钥PMS’具体是:
使用伪随机数发生器生成预主密钥PMS,并根据生成的预主密钥PMS和服务端随机数SR生成客户端预主密钥PMS’;
或者
使用伪随机数发生器,并利用获取的服务端随机数SR作为种子生成客户端随机数PMS’。
16.根据权利要求12所述的方法,其特征在于,根据生成的预主密钥PMS和运算结果HR生成客户端预主密钥PMS’的方式为:
如果预主密钥PMS和运算结果HR的比特长度相等,则计算 其中为异或运算符;如果预主密钥PMS的比特长度大于运算结果HR的比特长度,则对运算结果HR进行补位处理以得到更新后的运算结果HR’,并计算如果预主密钥PMS的比特长度小于运算结果HR的长度,则对运算结果HR进行减位处理以得到更新后的运算结果HR’,并计算
或者
计算PMS’=F(PMS,HR),其中F为运算函数,其为Hash函数、HMAC函数、或PRF函数等。
17.根据权利要求1、6、12中任意一项所述的方法,其特征在于,
第一握手消息是Client Hello消息;
第二握手消息是Server Hello消息;
随机数CR是嵌入到Client Hello消息中的随机数字段中进行传递。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910644205.6A CN110336666B (zh) | 2019-07-17 | 2019-07-17 | 一种增强ssl/tls协议中随机数随机性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910644205.6A CN110336666B (zh) | 2019-07-17 | 2019-07-17 | 一种增强ssl/tls协议中随机数随机性的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110336666A true CN110336666A (zh) | 2019-10-15 |
CN110336666B CN110336666B (zh) | 2022-08-05 |
Family
ID=68145504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910644205.6A Active CN110336666B (zh) | 2019-07-17 | 2019-07-17 | 一种增强ssl/tls协议中随机数随机性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110336666B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111526007A (zh) * | 2020-03-26 | 2020-08-11 | 郑州信大捷安信息技术股份有限公司 | 一种随机数生成方法及系统 |
CN111988143A (zh) * | 2020-08-28 | 2020-11-24 | 百度时代网络技术(北京)有限公司 | 密钥更新方法、装置、设备以及存储介质 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070180227A1 (en) * | 2005-03-01 | 2007-08-02 | Matsushita Electric Works, Ltd. | Decryption apparatus for use in encrypted communications |
CN103294447A (zh) * | 2013-05-30 | 2013-09-11 | 华为技术有限公司 | 一种生成随机数的方法和装置 |
CN103684754A (zh) * | 2013-12-03 | 2014-03-26 | 中国电子科技集团公司第三十研究所 | 一种基于gpu集群的wpa共享密钥破解系统 |
CN104468560A (zh) * | 2014-12-02 | 2015-03-25 | 中国科学院声学研究所 | 网络保密数据明文的采集方法及系统 |
WO2015095463A1 (en) * | 2013-12-18 | 2015-06-25 | Akamai Technologies, Inc. | Providing forward secrecy in a terminating tls connection proxy |
CN106161449A (zh) * | 2016-07-19 | 2016-11-23 | 青松智慧(北京)科技有限公司 | 无密钥认证传输方法及系统 |
CN106357396A (zh) * | 2016-09-23 | 2017-01-25 | 浙江神州量子网络科技有限公司 | 数字签名方法和系统以及量子密钥卡 |
CN106790090A (zh) * | 2016-12-23 | 2017-05-31 | 北京奇虎科技有限公司 | 基于ssl的通信方法、装置及系统 |
CN108200028A (zh) * | 2017-12-27 | 2018-06-22 | 飞天诚信科技股份有限公司 | 一种区块链安全获取服务器可信数据的方法及系统 |
CN108234114A (zh) * | 2016-12-22 | 2018-06-29 | 中标软件有限公司 | 一种基于硬件加密算法的ssl的实现方法 |
CN108964897A (zh) * | 2018-06-28 | 2018-12-07 | 如般量子科技有限公司 | 基于群组通信的身份认证系统和方法 |
CN109067746A (zh) * | 2018-08-10 | 2018-12-21 | 北京奇虎科技有限公司 | 客户端与服务器之间的通信方法及装置 |
CN109347835A (zh) * | 2018-10-24 | 2019-02-15 | 苏州科达科技股份有限公司 | 信息传输方法、客户端、服务器以及计算机可读存储介质 |
CN109831464A (zh) * | 2019-04-01 | 2019-05-31 | 北京百度网讯科技有限公司 | 用于解密数据的方法和装置 |
-
2019
- 2019-07-17 CN CN201910644205.6A patent/CN110336666B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070180227A1 (en) * | 2005-03-01 | 2007-08-02 | Matsushita Electric Works, Ltd. | Decryption apparatus for use in encrypted communications |
CN103294447A (zh) * | 2013-05-30 | 2013-09-11 | 华为技术有限公司 | 一种生成随机数的方法和装置 |
CN103684754A (zh) * | 2013-12-03 | 2014-03-26 | 中国电子科技集团公司第三十研究所 | 一种基于gpu集群的wpa共享密钥破解系统 |
WO2015095463A1 (en) * | 2013-12-18 | 2015-06-25 | Akamai Technologies, Inc. | Providing forward secrecy in a terminating tls connection proxy |
CN104468560A (zh) * | 2014-12-02 | 2015-03-25 | 中国科学院声学研究所 | 网络保密数据明文的采集方法及系统 |
CN106161449A (zh) * | 2016-07-19 | 2016-11-23 | 青松智慧(北京)科技有限公司 | 无密钥认证传输方法及系统 |
CN106357396A (zh) * | 2016-09-23 | 2017-01-25 | 浙江神州量子网络科技有限公司 | 数字签名方法和系统以及量子密钥卡 |
CN108234114A (zh) * | 2016-12-22 | 2018-06-29 | 中标软件有限公司 | 一种基于硬件加密算法的ssl的实现方法 |
CN106790090A (zh) * | 2016-12-23 | 2017-05-31 | 北京奇虎科技有限公司 | 基于ssl的通信方法、装置及系统 |
CN108200028A (zh) * | 2017-12-27 | 2018-06-22 | 飞天诚信科技股份有限公司 | 一种区块链安全获取服务器可信数据的方法及系统 |
CN108964897A (zh) * | 2018-06-28 | 2018-12-07 | 如般量子科技有限公司 | 基于群组通信的身份认证系统和方法 |
CN109067746A (zh) * | 2018-08-10 | 2018-12-21 | 北京奇虎科技有限公司 | 客户端与服务器之间的通信方法及装置 |
CN109347835A (zh) * | 2018-10-24 | 2019-02-15 | 苏州科达科技股份有限公司 | 信息传输方法、客户端、服务器以及计算机可读存储介质 |
CN109831464A (zh) * | 2019-04-01 | 2019-05-31 | 北京百度网讯科技有限公司 | 用于解密数据的方法和装置 |
Non-Patent Citations (2)
Title |
---|
D. SIMON: ""The EAP-TLS authentication protocol"", 《RFC 5216》 * |
吴永强: ""国密SSL安全通信协议的研究与实现"", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111526007A (zh) * | 2020-03-26 | 2020-08-11 | 郑州信大捷安信息技术股份有限公司 | 一种随机数生成方法及系统 |
CN111526007B (zh) * | 2020-03-26 | 2022-02-11 | 郑州信大捷安信息技术股份有限公司 | 一种随机数生成方法及系统 |
CN111988143A (zh) * | 2020-08-28 | 2020-11-24 | 百度时代网络技术(北京)有限公司 | 密钥更新方法、装置、设备以及存储介质 |
CN111988143B (zh) * | 2020-08-28 | 2024-03-01 | 百度时代网络技术(北京)有限公司 | 密钥更新方法、装置、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110336666B (zh) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111585749B (zh) | 数据传输方法、装置、系统及设备 | |
CN103516516B (zh) | 文件安全共享方法、系统 | |
CN107528688A (zh) | 一种基于加密委托技术的区块链密钥保管及恢复方法、装置 | |
US20150341178A1 (en) | Certificate issuing system, client terminal, server device, certificate acquisition method, and certificate issuing method | |
CN107005413A (zh) | 安全连接及相关服务的高效启动 | |
EP3476078B1 (en) | Systems and methods for authenticating communications using a single message exchange and symmetric key | |
CN108377186A (zh) | 一种基于tcm的ssl协议 | |
RU2008142008A (ru) | Способы аутентификации, шифрования и декодирования идентификатора клиентского терминала и устройства для их реализации | |
CN109614818A (zh) | 可授权的基于身份的带关键词搜索加密方法 | |
CN108259407B (zh) | 一种基于时间戳的对称加密方法及系统 | |
CN105025019A (zh) | 一种数据安全分享方法 | |
CN111464301A (zh) | 一种密钥管理方法及系统 | |
CN109474419A (zh) | 一种活体人像照片加密、解密方法及加解密系统 | |
CN109005184A (zh) | 文件加密方法及装置、存储介质、终端 | |
CN109905384B (zh) | 数据迁移方法及系统 | |
CN109068322A (zh) | 解密方法、系统、移动终端、服务器及存储介质 | |
CN104092551B (zh) | 一种基于rsa算法的安全密钥传输方法 | |
CN110336666A (zh) | 一种增强ssl/tls协议中随机数随机性的方法 | |
CN105612728A (zh) | 隐含共享密钥的安全数据通道鉴权 | |
CN108965824A (zh) | 基于cpk的视频监控方法、系统、摄像头、服务器及客户端 | |
CN111052673A (zh) | 匿名广播方法、密钥交换方法、匿名广播系统、密钥交换系统、通信装置、程序 | |
CN107040550A (zh) | 即时通信过程中的数据加密方法 | |
GB2488753A (en) | Encrypted communication | |
CN110611679A (zh) | 一种数据传输方法、装置、设备及系统 | |
CN114666040B (zh) | 基于量子密码网络的射频识别认证系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |