CN108234114A - 一种基于硬件加密算法的ssl的实现方法 - Google Patents

一种基于硬件加密算法的ssl的实现方法 Download PDF

Info

Publication number
CN108234114A
CN108234114A CN201611199648.1A CN201611199648A CN108234114A CN 108234114 A CN108234114 A CN 108234114A CN 201611199648 A CN201611199648 A CN 201611199648A CN 108234114 A CN108234114 A CN 108234114A
Authority
CN
China
Prior art keywords
algorithm
hardware
encryption
message
encryption algorithm
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.)
Pending
Application number
CN201611199648.1A
Other languages
English (en)
Inventor
付正威
朱健伟
孟德伟
申利飞
万淑珍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Standard Software Co Ltd
Original Assignee
China Standard Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Standard Software Co Ltd filed Critical China Standard Software Co Ltd
Priority to CN201611199648.1A priority Critical patent/CN108234114A/zh
Publication of CN108234114A publication Critical patent/CN108234114A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3263Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3263Cryptographic 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
    • H04L9/3268Cryptographic 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 using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]

Abstract

本发明涉及一种基于硬件加密算法的SSL的实现方法,包括如下步骤:S1:通过引擎机制引入硬件加密算法;S2:添加加密套件;S3:改造握手协议消息;其中,所述步骤S1中,通过OpenSSL的引擎机制引入硬件加密算法。本发明提供的基于硬件加密算法的SSL的实现方法,使用不公开算法的硬件加密模块作为SSL的加密引擎,一切加密行为都在硬件加密模块内部实现,所有的加密密钥都存储在硬件加密模块内部,信息的安全不再依赖加密中间件,从而在加密源头上保证了加密的安全性。

Description

一种基于硬件加密算法的SSL的实现方法
技术领域
本发明涉及计算机安全技术领域,具体涉及一种基于硬件加密算法的SSL的实现方法。
背景技术
2013年的棱镜门事件,暴露出我国计算机及网络系统等信息化基础设施长期依赖国外产品,面临安全隐患的问题。
密码技术是信息安全保障的核心,我国绝大部分行业核心领域长期依赖国际通用的密码算法体系,主要包括DES、3DES、AES、RSA、SHA-1、MD5等密码算法。随着密码技术和计算技术的发展,以及RSA预留后门、RSA1024算法风险等事件的影响,信息系统进行国产密码算法升级改造已成为当务之急,成为我国信息安全自主可控的主要手段之一。
SSL是Secure Socket Layer的英文缩写,意思是安全套解层协议,指使用公钥和私钥技术组合的安全网络通讯协议。SSL协议是网景公司(Netscape)推出的基于web应用的安全协议,SSL协议指定了一种在应用程序协议(如Http、Telnet、NMTP和FTP等)和TCP/IP协议之间提供数据安全性分层的机制,它为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证,主要用于提供应用程序间数据传送的安全性,完整性。在SSL的支持下,网络上的信息服务与商务活动有了很好的发展。由于电子商务技术在我国的应用,SSL在我国也有很大的发展,但是由于种种原因,SSL在我国受到了一些局限,主要存在如下问题:
1、依赖国外密码产品,将面临安全隐患,我国党、政、军等众多部门和单位的内部网络建设面临信息交流与保密的矛盾,而我国计算机网络保密技术研究和技术防范手段相对滞后,技术安全保密方面的压力越来越大。
2、国外主流的安全协议在核心密码算法上都有出口限制,如只允许40位或56位的RC4和512位的RSA算法出口等,而且协议代码不公开。这样的算法强度引入我国后,根本无法满足我国实际应用中的安全需求。
处在网络高速发展和科技突飞猛进的时代,信息安全技术是具有对抗性的的敏感技术,面对日益迫切的需要,唯一的出路就是自主创新。当然,自主创新并不排斥吸收国际上的先进技术,相反,只有密切跟踪国际信息安全技术的新发展才能知己知彼,为我所用。
因此,我们应该参照国际上先进的信息安全技术自主研制安全系统。在国际同行的研究基础上,尽量吸取和掌握其思想、原理的先进性,结合我国自主密码算法,设计或改造相关的网络安全协议,将这些协议实现与现有应用系统和自主可控的操作系统结合起来是十分必要的。
OpenSSL中的SSL实现是基于其算法库中的公开密码算法的。SSL协议位于TCP/IP协议模型的网络层和应用层之间,图2为SSL握手消息交互过程示意图,如图所示:SSL协议实际上是由共同工作的两层协议组成。
SSL握手协议、SSL改变密码格式协议、SSL告警协议、HTTP、FTP等,我们都可以看成是SSL记录协议封装的上层应用层数据。
实现SSL加密连接建立的过程主要是由SSL握手协议完成的,如图1所示,为SSL协议在网络协议中的位置示意图,从图1中可以看出SSL握手协议的消息交互过程。
通过对握手交互过程代码的分析可知,其中用到的加密算法有随机数生成算法、杂凑算法、对称加密算法、非对称加密算法、密钥交换算法,用到的证书是x509数字证书。对这些算法在协议中的使用的详细说明如下:
1、在hello消息中客户端和服务端都要生成一个用于生成主密钥(master key)的32字节的随机数(主密钥由客户端和服务端各自生成的一个随机数和客户端秘钥交换消息中生成的预主秘钥共同生成),在这里用到了随机数生成算法。
2、在证书(certificate)消息中服务端要向客户端证明自己的身份,客户端有时也需要向服务端证明自己的身份,这里用到了x509数字证书,证书的生成与验证中用到了RSA签名验签算法。
3、在客户端密钥交换(client_key_exchange)消息中客户端要向服务端发送预主密钥,发送过程用到RSA公钥加密算法或ECDH密钥交换算法等。
4、在证书验证(certificate_verify)消息中,客户端为了证书自己发送的证书是自己的,就使用与证书公钥对应的私钥签名一段数据发送给服务端,服务端收到后如果能用证书的公钥对签名验证,则证明证书确实属于客户端,在这里用到了RSA签名验签算法。
5、在握手结束(finished)消息中,客户端和服务端首先要对之前所有的握手消息的摘要结果做消息认证码计算,然后用前面协商出的对称密钥对消息内容做对称加密,这里主要用到了杂凑算法md5、sha-1和对称加密算法,所有这些提到的算法都是OpenSSL算法库中实现的公开算法。
当前OpenSSL的SSL实现中用到的加密算法都是OpenSSL自带的公开算法,算法可能存在的漏洞以及SSL代码可能的漏洞都由可能被不怀好意者利用,造成信息安全事故。
发明内容
为解决现有技术的不足,本发明提供了一种基于硬件加密算法的SSL的实现方法,包括如下步骤:
S1:通过引擎机制引入硬件加密算法;
S2:添加加密套件;
S3:改造握手协议消息;
其中,所述步骤S1中,通过OpenSSL的引擎机制引入硬件加密算法。
其中,所述步骤S1中,通过在引擎对象中实现要引入OpenSSL中的算法对象,建立该算法对象的算法调用接口与加密设备提供的接口之间的联系来实现硬件加密算法的引入。
其中,所述步骤S1中,通过引擎对象提供的ctrl函数以命令的形式向其注册证书管理接口。
其中,所述步骤S2中,添加的加密套件为对应于硬件加密算法的加密套件。
其中,所述步骤S3包括:
S31:改造Client Hello消息;
S32:改造Server Hello消息;
S33:改造Certificate消息;
S34:改造Client Key Exchange消息;
S35:改造Finished消息。
其中,所述步骤S31包括:把用到的随机数生成算法替换为硬件密码模块提供的随机数生成算法。
其中,所述步骤S32包括:在Server Hello消息的发送过程中添加对是否是硬件密码模块提供的证书的判断,若是,则使用硬件密码模块提供的随机数生成算法。
其中,所述步骤S33包括:将硬件密码模块提供的证书代替数字证书及到根CA的整个证书链,并发送给客户端,其中,硬件密码模块提供的证书包括身份证书及加密证书。
其中,所述步骤S34包括:
S341:通过引擎对象的ctrl函数和获取证书公钥的命令获取服务端发送过来的加密证书中的公钥;
S342:通过引擎对象调用硬件密码模块提供的随机数生成算法生成预主密钥;
S343:使用步骤S341中提取的公钥和硬件密码模块提供的公钥加密函数加密预主密钥,并把加密结果和加密过程产生的解密密钥填充到要发送给服务端的消息中;
S344:使用预主密钥和硬件密码模块提供的杂凑算法生成主密钥。
其中,所述步骤S35包括:将Finished消息中用到的杂凑算法和对称加密算法替换为硬件密码模块提供的对应算法
本发明中,所谓的“RSA”,是指一种应用广泛的基于大整数因式分解困难原理的公钥密码算法。
本发明中,所谓的“DES”,全称为“Data Encrytion Standard”,是指一种对称加密算法。
本发明中,所谓的“3DES”,全称为“Triple Data Encryption Algorithm”,是指三重数据加密算法,相当于对每块数据做三次DES加密。
本发明中,所谓的“AES”,全称为“Advanced Encryption Standrad”,是指一种对称加密算法。
本发明中,所谓的“MD5”,全称为“Message Digest Algorithm 5”,是指一种输出16字节摘要值的消息摘要算法。
本发明中,所谓的“SHA-1”,全称为“Secure Hash Algorithm”,是指一种输出20字节摘要值的消息摘要算法。
本发明中,所谓的“EVP”,全称为“高等级加密函数(high-level cryptographicfunctions)”,是指一系列封装了OpenSSL加密库里面所有算法的函数。通过这样的统一的封装,使得只需要在初始化参数的时候做很少的改变,就可以使用相同的代码但采用不同的加密算法进行数据的加密和解密。
本发明中,所谓的“对称加密”,是指采用对称密码编码技术,加密和解密使用相同的密钥,使用起来简单快捷,密钥较短,且破译困难,典型的算法有DES、3DES、AES、IDEA等。
本发明中,所谓的“非对称密码”,是指算法使用两个密钥,一个公开密钥,一个私有密钥。使用其中一个密钥加密的数据只能通过另一个密钥将解密,非对称加密技术的保密性较好,它消除了最终用户交换密钥的需要,但加密和解密需要的时间长,速度慢,不适用于对文件加密,适合对少量数据加密。
本发明中,所谓的“杂凑算法”,又称为摘要算法或哈希算法,是指将不定长的数据通过数学变换转化为固定长度的短数据,杂凑算法具有不可逆性,即由消息到杂凑值很容易,但由杂凑值推出原始消息却是不可能的。
本发明中,所谓的“密钥交换”,是通信双方获得一致的对称密钥的重要途径,针对对称密码算法一致面临的密钥的分发与管理的问题。常用的密钥交换算法有RSA公钥加密算法和DH算法。
本发明中,所谓的“引擎机制”,是指OpenSSL提供的一种能够透明使用第三方提供的软件加密库或者硬件加密设备进行加密的方法。
本发明中,所谓的“引擎对象”,是指根据引擎机制创建的对应与软件加密库或硬件加密设备的一个对象实例,它包含了所有要引入到OpenSSL的硬件加密算法。
本发明中,所谓的“加密引擎”,是指提供加密算法的实体,软件加密库或硬件加密设备。
本发明提供的基于硬件加密算法的SSL的实现方法,使用不公开算法的硬件加密模块作为SSL的加密引擎,一切加密行为都在硬件加密模块内部实现,所有的加密密钥都存储在硬件加密模块内部,信息的安全不再依赖加密中间件,从而在加密源头上保证了加密的安全性。
附图说明
图1: SSL协议在网络协议中的位置示意图;
图2: SSL握手消息交互过程示意图;
图3:本发明中引擎对象与软件栈接口关系示意图。
具体实施方式
为了对本发明的技术方案及有益效果有更进一步的了解,下面配合附图详细说明本发明的技术方案及其产生的有益效果。
本发明提供的基于硬件加密算法的SSL实现方法。其总体思路是:SSL协议对硬件密码算法的支持首先要求OpenSSL通过引擎机制引入硬件加密算法,然后增加对应于硬件加密算法的加密套件,并在协议中涉及到加密算法使用的地方增加对硬件加密算法的支持,尽量保证SSL协议原有结构不变,以及使通用的公开算法的使用不受影响。
常见的SSL实现有OpenSSL、JSSE、Bouncy Castle、GnuTLS、NSS等,本发明将以OpenSSL的SSL实现为例说明如何实现基于硬件加密算法的SSL协议,对于其它的实现,也可以参照本发明提供的下述实施例通过类似的改造完成,同样能实现本发明的目的。
本发明的某一具体实现方法及具体思路如下:
1、通过引擎机制引入硬件加密算法
OpenSSL的引擎机制提供了标准的算法注册接口,使OpenSSL能够方便的集成第三方加密设备所提供的软件加密库。这使得 OpenSSL能够与绝大部分加密库或者加密设备协调工作。OpenSSL的引擎支持所有类型的算法,只要在引擎对象中实现要引入OpenSSL中的算法对象,建立该算法对象的算法调用接口与加密设备提供的接口之间的联系,就可以通过EVP接口指定引擎对象名正常使用该算法。
图3为本发明中加密引擎与软件栈接口关系示意图,其清晰地表明加密引擎、EVP接口、应用程序、硬件加密模块接口库之间的关系。
但有一些接口比如密钥的加载与卸载、证书操作接口,在引擎对象中没有对应的接口,只能通过引擎对象的ctrl函数以命令的形式向引擎注册。这样应用程序通过EVP接口或引擎对象的ctrl函数就可以调用硬件密码模块提供的算法和证书管理接口了。
也即,本发明另外提供了一种在不修改OpenSSL引擎机制代码的情况下,通过引擎对象的ctrl接口引入非算法接口(比如证书操作接口)的方法。
2、加密套件的添加
加密套件指定了SSL协议中使用的具体加密算法,在启动SSL通信时用户可以指定所要用的加密套件。SSL协议代码改造的第一步就是在加密套件列表中添加一个对应于硬件加密算法的加密套件,该套件指明了SSL协商过程中要用到的由硬件密码模块提供的认证算法、密钥交换算法、杂凑算法、对称加密算法。
3、握手协议消息的改造
根据引擎对象加载后,对象中实现的加密算法就可以实时调用的情况,修改SSL握手交互过程,用引擎对象中实现的加密算法替换其中使用的公开算法。在具体实施时,并不是所有的握手协议消息都需要改造,在本发明中,对应的Client Hello消息、Server Hello消息、Certificate消息、Client Key Exchange消息及Finished消息需要改造,而对应的Server Key Exchange消息、Server Hello Done消息及Change Cipher Spec消息不需要改造,具体原理和改造方法如下:
(1)Client Hello消息的改造
该消息是SSL客户端向SSL服务端发送的,消息中只涉及到对随机数生成算法的使用,所以这里需要把用到的随机数生成算法替换为硬件密码模块提供的随机数生成算法。
(2)Server Hello消息的改造
该消息根据Client Hello消息内容确定本次通信采用的安全参数。该消息中同样是生成了一个随机数并且发送给对方,由于服务端在启动时指明了本端的证书,如果指定的证书是由硬件加密模块提供的,那么此处的随机数生成算法就可以采用硬件加密模块提供。因此该消息的发送过程中添加了对是否是硬件密码模块提供的证书的判断,若是,则使用硬件密码模块提供的随机数生成算法。
(3)Certificate消息的改造
SSL服务器将携带自己公钥信息的数字证书和到根CA的整个证书链发给客户端,客户端使用这个公钥完成以下任务:(1)客户端可以使用该公钥来验证服务端的身份,因为只有服务端有对应的私钥能解密它的公钥加密的数据;(2)用于对预主密钥进行加密,这个预主密钥就是客户端为秘钥交换生成的随机数,客户端用服务端的公钥对其进行了加密后发送给服务端。
修改Certificate消息并没有添加新的接口,只是在原来的证书发送接口中增加了在硬件密码模块算法套件下,需要发送的证书是硬件密码模块提供的证书。比较特殊的是,硬件密码模块提供的证书中既有身份证书又有加密证书,身份证书用于身份识别,加密证书可用于密钥交换消息中加密预主密钥,所以证书消息中包括有两个证书。
(4)Server Key Exchange消息
服务端密钥交换阶段(可选步骤),之所以说是可选步骤,是因为只有在下列场景下这个步骤才会发生:1)协商采用了RSA加密,但是服务端的证书没有提供RSA公钥;2)协商采用了DH加密,但是服务端的证书没有提供DH参数;3)协商采用了fortezza_kea加密,但是服务端的证书没有提供参数。
该步骤是对上一步“Certificate”的一个补充,为了让整个SSL握手过程能正常进行。因为该消息是可选步骤,并且硬件密码模块提供的证书中是有用于加密的证书的,所以该消息不做修改。
(5)Server Hello Done消息
SSL服务器发送Server Hello Done消息,通知SSL客户端版本和加密套件协商结束。该消息是告诉客户端服务端的握手消息发送完毕,消息内容只有一个字节的数据,所以不做修改。
(6)Client Key Exchange消息的改造
SSL客户端验证SSL服务器的证书合法后,利用证书中的公钥加密SSL客户端随机生成的预主密钥,并通过Client Key Exchange消息发送给SSL服务器。
密钥交换消息的修改是比较重要的过程,在该消息的发送过程中添加了一个对前面协商出的加密套件的判断,如果是硬件密码模块密码算法套件就需要完成以下4个步骤:
1)通过引擎对象的ctrl函数获取服务端发送过来的加密证书中的公钥;
2)通过引擎对象调用硬件密码模块提供的随机数生成算法生成预主密钥;
3)使用第一步骤中提取的公钥和硬件密码模块提供的公钥加密函数加密预主密钥并把加密结果和加密过程产生的解密秘钥填充到要发送给服务端的消息中;
4)使用预主密钥和硬件密码模块提供的杂凑算法生成主密钥。
因此,本发明提出了在SSL通信中使用硬件中的身份证书做身份验证,使用加密证书中的公钥和公钥加密算法做密钥交换(验证和加密过程都在硬件模块内完成)的方法。
(7)Change Cipher Spec消息
在必须的安全参数协商完成后,SSL客户端和SSL服务器都会发送Change Cipher Spec消息,通知对方后续报文将采用协商好的对称密钥和加密套件进行加密和HMAC计算。该消息与所使用的算法套件无关,所以不做修改。
(8)Finished消息的改造
Finished消息是客户端和服务端都要发送且发送流程相同的一个消息,目的是对之前握手消息的完整性作验证。握手层数据中客户端发出的Finished消息是第一条使用新的加密参数进行加密来实现自我保护的消息,它能够确认所有之前的握手消息没有被攻击者篡改过。消息中用到的杂凑算法和对称加密算法需要替换为硬件密码模块提供的对应算法。
本发明所能实现的有益效果是:
1、实现了基于硬件加密算法的安全的SSL通信。
2、避免了算法自身的漏洞或算法中隐藏的后门等算法相关的不安全因素。
3、解决了原SSL协议在实现过程中主密钥可能会留存在主机的内存上或操作系统中虚拟内存将敏感数据甚至主密钥都交换到硬盘上,导致密钥泄露的问题。
虽然本发明已利用上述较佳实施例进行说明,然其并非用以限定本发明的保护范围,任何本领域技术人员在不脱离本发明的精神和范围之内,相对上述实施例进行各种变动与修改仍属本发明所保护的范围,因此本发明的保护范围以权利要求书所界定的为准。

Claims (10)

1.一种基于硬件加密算法的SSL的实现方法,其特征在于,包括如下步骤:
S1:通过引擎机制引入硬件加密算法;
S2:添加加密套件;
S3:改造握手协议消息;
其中,所述步骤S1中,通过OpenSSL的引擎机制引入硬件加密算法。
2.如权利要求1所述的基于硬件加密算法的SSL的实现方法,其特征在于:所述步骤S1中,通过在引擎对象中实现要引入OpenSSL中的算法对象,建立该算法对象的算法调用接口与加密设备提供的接口之间的联系来实现硬件加密算法的引入。
3.如权利要求1所述的基于硬件加密算法的SSL的实现方法,其特征在于:所述步骤S1中,通过引擎对象提供的ctrl函数以命令的形式向其注册证书管理接口。
4.如权利要求1所述的基于硬件加密算法的SSL的实现方法,其特征在于:所述步骤S2中,添加的加密套件为对应于硬件加密算法的加密套件。
5.如权利要求1所述的基于硬件加密算法的SSL的实现方法,其特征在于,所述步骤S3包括:
S31:改造Client Hello消息;
S32:改造Server Hello消息;
S33:改造Certificate消息;
S34:改造Client Key Exchange消息;
S35:改造Finished消息。
6.如权利要求5所述的基于硬件加密算法的SSL的实现方法,其特征在于:所述步骤S31包括:把用到的随机数生成算法替换为硬件密码模块提供的随机数生成算法。
7.如权利要求5所述的基于硬件加密算法的SSL的实现方法,其特征在于:所述步骤S32包括:在Server Hello消息的发送过程中添加对是否是硬件密码模块提供的证书的判断,若是,则使用硬件密码模块提供的随机数生成算法。
8.如权利要求5所述的基于硬件加密算法的SSL的实现方法,其特征在于:所述步骤S33包括:将硬件密码模块提供的证书代替数字证书及到根CA的整个证书链,并发送给客户端,其中,硬件密码模块提供的证书包括身份证书及加密证书。
9.如权利要求5所述的基于硬件加密算法的SSL的实现方法,其特征在于:所述步骤S34包括:
S341:通过引擎对象的ctrl函数和获取证书公钥的命令获取服务端发送过来的加密证书中的公钥;
S342:通过引擎对象调用硬件密码模块提供的随机数生成算法生成预主密钥;
S343:使用步骤S341中提取的公钥和硬件密码模块提供的公钥加密函数加密预主密钥,并把加密结果和加密过程产生的解密密钥填充到要发送给服务端的消息中;
S344:使用预主密钥和硬件密码模块提供的杂凑算法生成主密钥。
10.如权利要求5所述的基于硬件加密算法的SSL的实现方法,其特征在于:所述步骤S35包括:将Finished消息中用到的杂凑算法和对称加密算法替换为硬件密码模块提供的对应算法。
CN201611199648.1A 2016-12-22 2016-12-22 一种基于硬件加密算法的ssl的实现方法 Pending CN108234114A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611199648.1A CN108234114A (zh) 2016-12-22 2016-12-22 一种基于硬件加密算法的ssl的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611199648.1A CN108234114A (zh) 2016-12-22 2016-12-22 一种基于硬件加密算法的ssl的实现方法

Publications (1)

Publication Number Publication Date
CN108234114A true CN108234114A (zh) 2018-06-29

Family

ID=62656261

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611199648.1A Pending CN108234114A (zh) 2016-12-22 2016-12-22 一种基于硬件加密算法的ssl的实现方法

Country Status (1)

Country Link
CN (1) CN108234114A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110336666A (zh) * 2019-07-17 2019-10-15 武汉信安珞珈科技有限公司 一种增强ssl/tls协议中随机数随机性的方法
CN110677389A (zh) * 2019-09-09 2020-01-10 杭州迪普科技股份有限公司 基于ssl协议的混合攻击防护方法和装置
CN111555881A (zh) * 2020-03-23 2020-08-18 中安云科科技发展(山东)有限公司 使用sdf、skf实现国密ssl协议的方法及系统
CN111600867A (zh) * 2020-05-12 2020-08-28 腾讯科技(深圳)有限公司 一种数据加密方法和相关设备
CN111970120A (zh) * 2020-07-27 2020-11-20 山东华芯半导体有限公司 一种基于openssl的加密卡安全应用机制的实现方法
CN112398826A (zh) * 2020-11-03 2021-02-23 北京天融信网络安全技术有限公司 基于国密的数据处理方法、装置、存储介质及电子设备
CN112564912A (zh) * 2020-11-24 2021-03-26 北京金山云网络技术有限公司 建立安全连接的方法、系统、装置和电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014624A1 (en) * 2000-07-31 2003-01-16 Andes Networks, Inc. Non-proxy internet communication
CN1787525A (zh) * 2005-11-15 2006-06-14 上海格尔软件股份有限公司 双证书在ssl协议中的应用方法
CN101820342A (zh) * 2010-03-31 2010-09-01 北京飞天诚信科技有限公司 硬件加密引擎的实现方法
CN102055759A (zh) * 2010-06-30 2011-05-11 北京飞天诚信科技有限公司 一种硬件引擎的实现方法
CN102970134A (zh) * 2012-12-11 2013-03-13 成都卫士通信息产业股份有限公司 将硬件密码设备的算法用于pkcs#7数据封装的方法及系统
CN104484153A (zh) * 2014-12-29 2015-04-01 珠海全志科技股份有限公司 一种应用层获取真随机数的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014624A1 (en) * 2000-07-31 2003-01-16 Andes Networks, Inc. Non-proxy internet communication
CN1787525A (zh) * 2005-11-15 2006-06-14 上海格尔软件股份有限公司 双证书在ssl协议中的应用方法
CN101820342A (zh) * 2010-03-31 2010-09-01 北京飞天诚信科技有限公司 硬件加密引擎的实现方法
CN102055759A (zh) * 2010-06-30 2011-05-11 北京飞天诚信科技有限公司 一种硬件引擎的实现方法
CN102970134A (zh) * 2012-12-11 2013-03-13 成都卫士通信息产业股份有限公司 将硬件密码设备的算法用于pkcs#7数据封装的方法及系统
CN104484153A (zh) * 2014-12-29 2015-04-01 珠海全志科技股份有限公司 一种应用层获取真随机数的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
吴永强: "国密SSL安全通信协议的研究与实现", 《中国优秀硕士学位论文全文数据库(电子期刊)》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110336666A (zh) * 2019-07-17 2019-10-15 武汉信安珞珈科技有限公司 一种增强ssl/tls协议中随机数随机性的方法
CN110677389A (zh) * 2019-09-09 2020-01-10 杭州迪普科技股份有限公司 基于ssl协议的混合攻击防护方法和装置
CN110677389B (zh) * 2019-09-09 2022-01-25 杭州迪普科技股份有限公司 基于ssl协议的混合攻击防护方法和装置
CN111555881A (zh) * 2020-03-23 2020-08-18 中安云科科技发展(山东)有限公司 使用sdf、skf实现国密ssl协议的方法及系统
CN111600867A (zh) * 2020-05-12 2020-08-28 腾讯科技(深圳)有限公司 一种数据加密方法和相关设备
CN111600867B (zh) * 2020-05-12 2021-10-29 腾讯科技(深圳)有限公司 一种数据加密方法和相关设备
CN111970120A (zh) * 2020-07-27 2020-11-20 山东华芯半导体有限公司 一种基于openssl的加密卡安全应用机制的实现方法
CN111970120B (zh) * 2020-07-27 2024-03-26 山东华芯半导体有限公司 一种基于openssl的加密卡安全应用机制的实现方法
CN112398826A (zh) * 2020-11-03 2021-02-23 北京天融信网络安全技术有限公司 基于国密的数据处理方法、装置、存储介质及电子设备
CN112564912A (zh) * 2020-11-24 2021-03-26 北京金山云网络技术有限公司 建立安全连接的方法、系统、装置和电子设备
CN112564912B (zh) * 2020-11-24 2023-03-24 北京金山云网络技术有限公司 建立安全连接的方法、系统、装置和电子设备

Similar Documents

Publication Publication Date Title
US20220158832A1 (en) Systems and Methods for Deployment, Management and Use of Dynamic Cipher Key Systems
CN108234114A (zh) 一种基于硬件加密算法的ssl的实现方法
CN100558035C (zh) 一种双向认证方法及系统
CN101409619B (zh) 闪存卡及虚拟专用网密钥交换的实现方法
CN106131207B (zh) 一种旁路审计https数据包的方法及系统
CN110889696A (zh) 一种基于sgx技术的联盟区块链秘钥存储方法、装置、设备及介质
CN103441839A (zh) 一种量子密码在ip安全通信中的使用方法和系统
EP4150879A1 (en) Constructing a distributed ledger transaction on a cold hardware wallet
CN105991569A (zh) 一种tls通讯数据安全传输方法
CN109194474A (zh) 一种数据传输方法及装置
US11722466B2 (en) Methods for communicating data utilizing sessionless dynamic encryption
Obert et al. Recommendations for trust and encryption in DER interoperability standards
CN114036539A (zh) 基于区块链的安全可审计物联网数据共享系统及方法
TW201537937A (zh) 統一身份認證平臺及認證方法
CN114629646A (zh) 基于混合后量子密钥封装和协商的安全传输方法及系统
Luring et al. Analysis of security features in DLMS/COSEM: Vulnerabilities and countermeasures
GB2543359A (en) Methods and apparatus for secure communication
KR101929355B1 (ko) 고유 일련번호 및 대칭키를 이용한 암복호화 시스템
CN115801232A (zh) 一种私钥保护方法、装置、设备及存储介质
Weith DLMS/COSEM protocol security evaluation
Arora et al. Handling Secret Key Compromise by Deriving Multiple Asymmetric Keys based on Diffie-Hellman Algorithm
CN106357403A (zh) 一种链路通讯加密保护的装置及方法,安全报文处理系统
CN202713365U (zh) 一种对网络数据流硬件加密的系统
CN108306899B (zh) 一种云服务环境中对敏感数据进行安全传输的方法
US11811924B1 (en) System and method of securing a server using elliptic curve cryptography

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180629