CN113472790A - 基于https协议的信息传输方法、客户端及服务器 - Google Patents
基于https协议的信息传输方法、客户端及服务器 Download PDFInfo
- Publication number
- CN113472790A CN113472790A CN202110744104.3A CN202110744104A CN113472790A CN 113472790 A CN113472790 A CN 113472790A CN 202110744104 A CN202110744104 A CN 202110744104A CN 113472790 A CN113472790 A CN 113472790A
- Authority
- CN
- China
- Prior art keywords
- certificate
- information
- public key
- list
- configuration file
- 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
- 238000000034 method Methods 0.000 title claims abstract description 128
- 230000005540 biological transmission Effects 0.000 title claims abstract description 54
- 238000012546 transfer Methods 0.000 title claims description 6
- 238000012795 verification Methods 0.000 claims abstract description 100
- 238000004422 calculation algorithm Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 description 23
- 238000012545 processing Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 7
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 230000007547 defect Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013496 data integrity verification Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- 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/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/32—Cryptographic 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/3236—Cryptographic 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 using cryptographic hash functions
- H04L9/3239—Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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/32—Cryptographic 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/3263—Cryptographic 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/3265—Cryptographic 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 chains, trees or paths; Hierarchical trust model
-
- 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/32—Cryptographic 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/3263—Cryptographic 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/3268—Cryptographic 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]
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种基于HTTPS协议的信息传输方法、客户端及服务器,可用于信息安全技术领域,所述方法包括:接收服务器传输的待校验证书链;对所述待校验证书链上所有证书的有效期进行校验;若校验通过,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,若校验通过,则与所述服务器建立连接,本发明可更有效且灵活的防范针对HTTPS信息传输过程的“中间人攻击”,保证信息安全传输。
Description
技术领域
本发明涉及计算机技术领域,特别涉及信息安全技术领域,尤其涉及一种基于HTTPS协议的信息传输方法、客户端及服务器。
背景技术
HTTPS,全称是Hyper Text Transfer Protocol over Secure Layer,即安全超本文传输协议。HTTPS是一种以安全为目标的HTTP通道,它在HTTP的基础上,利用SSL/TLS技术实现数据加密、身份验证和数据完整性校验,从而保证了客户端与服务器之间信息传输的安全性。在移动互联网时代,随着社会对个人信息,尤其是个人隐私信息的日益重视,HTTPS目前被广泛的应用在政府、银行、互联网支付等机构和行业移动APP的线上敏感业务场景中。
但是,单纯使用HTTPS协议并不能保证APP客户端与服务器之间信息传输就是安全的,因为HTTPS通讯安全的前提是服务器的站点证书可靠。在实际情况下,第三方可以在客户端与服务器之间,通过DNS劫持等方法,伪造证书来实施“中间人攻击”,以达到窃听或者篡改HTTPS请求及答复信息的目的。为了防范客户端与服务器间HTTPS信息传输过程中可能存在的“中间人攻击”,目前主要采用证书有效期校验、证书域名校验和证书链校验的方法保证信息传输通道的安全,但是以上三种HTTPS证书校验方式在安全性与系统灵活性方面存在的明显不足。
发明内容
本发明的一个目的在于提供一种基于HTTPS协议的信息传输方法,更有效且灵活的防范针对HTTPS信息传输过程的“中间人攻击”,保证信息安全传输。本发明的另一个目的在于提供一种客户端。本发明的再一个目的在于提供一种服务器。本发明的还一个目的在于提供一种计算机设备。本发明的还一个目的在于提供一种可读介质。
为了达到以上目的,本发明一方面公开了一种基于HTTPS协议的信息传输方法,包括:
接收服务器传输的待校验证书链;
对所述待校验证书链上所有证书的有效期进行校验;
若校验通过,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,若校验通过,则与所述服务器建立连接。
优选的,进一步包括在接收服务器传输的待校验证书链,之前:
接收服务器传输的可用证书列表;
将所述可用证书列表中的证书与证书配置文件中的证书信息进行匹配,若匹配不一致,更新所述证书配置文件。
优选的,进一步包括在根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,之前:
获取预设受信任的根证书列表;
确定所述根证书是否在所述根证书列表中,若是,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验。
优选的,所述可用证书列表包括证书的证书ID、CA厂商名称、加密公钥信息、失效时间以及是否有效的证书信息;
所述证书配置文件包括证书的证书ID、CA厂商名称以及公钥信息的哈希值。
优选的,所述将所述可用证书列表中的证书与证书配置文件中的证书信息进行匹配,若匹配不一致,更新所述证书配置文件具体包括:
通过预设RSA私钥对可用证书列表中的每个证书的加密公钥信息进行解密得到公钥信息的哈希值;
若证书配置文件中证书信息的证书ID存在于所述可用证书列表中且所述证书信息中的CA厂商名称以及公钥信息的哈希值与所述可用证书列表中对应证书ID的证书信息相同,则匹配一致;
若证书配置文件中证书信息的证书ID存在于所述可用证书列表中且所述证书信息中的CA厂商名称以及公钥信息的哈希值与所述可用证书列表中对应证书ID的证书信息不同,则匹配不一致,将所述证书配置文件中匹配不一致的证书信息中的CA厂商名称以及公钥信息的哈希值替换为所述可用证书列表中对应证书ID的CA厂商名称以及公钥信息的哈希值;
若证书配置文件中证书信息的证书ID不存在于所述可用证书列表中,则匹配不一致,删除证书配置文件中匹配不一致的证书信息;
若可用证书列表中证书的证书ID不存在于所述证书配置文件中,则匹配不一致,在证书配置文件中新建证书信息,将可用证书列表中匹配不一致的证书的证书信息复制至所述新建证书信息中。
优选的,所述对所述待校验证书链上所有证书的有效期进行校验具体包括:
读取所述证书链上的所有证书的有效期,判断客户端操作系统日期是否在当前证书有效期内;
若是,读取当前证书上层证书的公钥信息,通过上层证书的公钥信息对当前证书的签名信息进行解密得到第一证书摘要;
对所述当前证书的明文信息进行哈希运算得到第二证书摘要;
若所述第一证书摘要与所述第二证书摘要完全匹配,则确定当前证书是否在预设证书吊销列表中,若否,则校验通过。
优选的,所述根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验具体包括:
通过预设哈希算法对所述根证书的公钥信息进行哈希运算得到根证书公钥信息的哈希值;
将所述根证书公钥信息的哈希值与所述预设证书配置文件中对应证书公钥信息的哈希值进行比对,若比对一致,则校验通过。
本发明还公开了一种基于HTTPS协议的信息传输方法,包括:
将待校验证书链传输至客户端,以使所述客户端对所述待校验证书链上所有证书的有效期进行校验,若校验通过,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,若校验通过,与所述客户端建立连接。
优选的,进一步包括:
基于预设条件读取预设可用证书列表;
确定所述可用证书列表中所有证书是否有效得到有效判定结果,根据所述有效判定结果更新所述可用证书列表。
优选的,所述确定所述可用证书列表中所有证书是否有效得到有效判定结果,根据所述有效判定结果更新所述可用证书列表具体包括:
若证书的有效期早于服务器操作系统时间,则更改所述可用证书列表中所述证书的是否有效字段的值为无效;
若证书的有效期晚于服务器操作系统时间的时间间隔小于预设阈值,则向管理人员反馈临期消息提醒。
本发明还公开了一种客户端,包括:
信息接收模块,用于接收服务器传输的待校验证书链;
有效期校验模块,用于对所述待校验证书链上所有证书的有效期进行校验;
一致性校验模块,用于若校验通过,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,若校验通过,则与所述服务器建立连接。
本发明还公开了一种服务器,被配置为将待校验证书链传输至客户端,以使所述客户端对所述待校验证书链上所有证书的有效期进行校验,若校验通过,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,若校验通过,与所述客户端建立连接。
本发明还公开了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,
所述处理器执行所述程序时实现如上所述方法。
本发明还公开了一种计算机可读介质,其上存储有计算机程序,
该程序被处理器执行时实现如上所述方法。
本发明基于HTTPS协议的信息传输方法接收服务器传输的待校验证书链,对所述待校验证书链上所有证书的有效期进行校验,若校验通过,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,若校验通过,则与所述服务器建立连接。由此,本发明通过对服务器的证书链进行有效期校验,并通过根据证书预埋的形式对根证书公钥信息进行校验,有效,规避中间人篡改证书数据的攻击方式。从而,本发明针对HTTPS协议在证书校验阶段存在的风险以及当前证书校验方法在灵活性方面存在的不足,提供了一种保证HTTPS协议下信息安全传输的方法,该方法可更有效且灵活的防范不法分子针对HTTPS信息传输过程的“中间人攻击”。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本发明基于HTTPS协议的信息传输系统具体实施例的结构图;
图2示出本发明基于HTTPS协议的信息传输方法具体实施例的流程图;
图3示出本发明基于HTTPS协议的信息传输方法具体实施例S000的流程图;
图4示出本发明基于HTTPS协议的信息传输方法具体实施例S020的流程图;
图5示出本发明基于HTTPS协议的信息传输方法具体实施例S200的流程图;
图6示出本发明基于HTTPS协议的信息传输方法具体实施例S310的流程图;
图7示出本发明基于HTTPS协议的信息传输方法具体实施例S300的流程图;
图8示出本发明基于HTTPS协议的信息传输方法具体实施例S400的流程图;
图9示出本发明基于HTTPS协议的信息传输方法具体实施例S500的流程图;
图10示出本发明客户端具体实施例的结构图;
图11示出适于用来实现本发明实施例的计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本申请公开的一种基于HTTPS协议的信息传输方法、客户端及服务器可用于信息安全技术领域,也可用于除信息安全技术领域之外的任意领域,本申请公开的一种基于HTTPS协议的信息传输方法、客户端及服务器的应用领域不做限定。
为了便于理解本申请提供的技术方案,下面先对本申请技术方案的相关内容进行说明。本发明实施例提供的基于HTTPS协议的信息传输方法针对HTTPS协议在证书校验阶段存在的风险以及当前证书校验方法在灵活性方面存在的不足,提供了一种保证HTTPS协议下信息安全传输的方法,该方法可更有效且灵活的防范不法分子针对HTTPS信息传输过程的“中间人攻击”。
图1是本发明实施例提供的基于HTTPS协议的信息传输系统的结构示意图,如图1所示,本发明实施例提供的基于HTTPS协议的信息传输系统包括客户端1和服务器2。
其中,客户端1可接收服务器传输的待校验证书链,对所述待校验证书链上所有证书的有效期进行校验,若校验通过,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,若校验通过,则与所述服务器建立连接。
服务器2可将待校验证书链传输至客户端,以使所述客户端对所述待校验证书链上所有证书的有效期进行校验,若校验通过,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,若校验通过,与所述客户端建立连接。
具体的,在HTTPS协议下,客户端(例如,可以是设置有移动APP的终端设备)与服务器建立安全连接的过程包括:
Step1,HTTPS连接建立的基础是建立HTTP连接,所以第一步客户端会与服务器在TCP层完成三次握手,建立HTTP连接;因TCP三次握手为通用技术,此部分内容不再赘述。
Step2,客户端生成随机数Random_C,并向服务器发送客户端的SSL协议版本、加密套件候选列表、压缩算法候选列表以及随机数Random_C。
Step3,服务器接收请求,生成随机数Random_S,向客户端返回服务器证书(包含服务器公钥(S.pub)、有效期、颁发机构等)、选择的加密套件(cipher suite)、选择的压缩算法以及随机数Random_S。
Step4,客户端校验服务器证书合法性,通过RSA或者Diffie-Hellman算法随机数字Pre_master,然后将Random_C、Random_S、Pre_master作为密钥因子,计算得到对称密钥,记为enc_key;并发送以下信息到服务器:
(1)使用服务器证书公钥(S.pub)加密过的随机数字Pre_master,记为enc_pre_master;
(2)使用对称密钥(enc_key)加密过的握手信息;
(3)使用约定压缩算法(如HASH)加密过的握手信息。
Step5,服务器收到客户端发来的信息后,需要进行如下处理:
(1)使用服务器证书私钥(S.pri)解密enc_pre_master,得到Pre_master;
(2)根据前期已经获取的Random_C、Random_S,以及Pre_master,计算得到对称密钥(enc_key);
(3)使用enc_key解密客户端发来的握手信息,并使用约定的压缩算法(如Hash)验证是否与客户端发来的一致;
(4)服务器生成握手信息,分别使用enc_key与约定的压缩算法(如Hash)进行加密,并发送至客户端。
Step6,客户端使用对称私钥enc_key解密握手信息,并使用约定的压缩算法计算(如Hash)握手信息的Hash值,如与服务器返回的Hash值一致,则握手过程结束;后续客户端与服务器之间使用对称密钥enc_key进行加密通信。
在密码学和计算机安全领域中,中间人攻击(Man In The Middle Attack,简称MITM)是指攻击者与通讯的两端(客户端与服务器)分别建立独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话已经被攻击者完成控制。在HTTPS通讯中“中间人攻击”的流程包括:
(1)客户端正常发起HTTPS请求。
(2)中间人通过一定手段劫持了此次访问请求,并伪装成客户端将请求发给服务器。
(3)服务器收到HTTPS请求,向客户端返回服务器公钥,记为公钥(服)。
(4)中间人劫持并存储服务器返回的公钥(服),然后伪造一对非对称密钥,记为公钥(中)与私钥(中)。
(5)中间人将伪造的公钥(公钥(中))发送给客户端。
(6)客户端收到公钥(中)(以为是公钥(服))并验证,验证通过之后生成一对对称密钥,记为对称密钥(客),并使用公钥(中)对对称密钥(客)加密。
(7)客户端向服务器传输经过加密的对称密钥(客)。
(8)中间人劫持到传输信息,使用公钥(中)解密信息,得到并存储对称密钥(客);然后中间人生成对称密钥,记为对称密钥(中),使用公钥(服)重新加密对称密钥(中)。
(9)中间人伪装成客户端将加密的对称密钥(中)发给服务器。
(10)服务器接到到信息,使用服务器私钥(记为私钥(服))进行解密,得到对称密钥(中)(以为是对称密钥(客)),并使用对称密钥(中)加密握手信息。
(11)服务器将加密后的握手信息返回给客户端。
(12)中间人劫持到传输信息,使用对称密钥(中)进行解密得到握手信息,然后使用对称密钥(客)对握手信息进行加密。
(13)中间人传输加密后的握手信息到客户端。
客户端使用对称密钥(客)解密,得到握手信息,建立HTTPS连接完成,但实际上该连接已被中间人控制。
在现有技术中,为了防范客户端与服务器间HTTPS信息传输过程中可能存在的“中间人攻击”,主要采用以下三种方法:
1、证书有效期校验:客户端获取服务器返回的CA证书(服务器证书),并从证书中读取有效期,如判断当前客户端操作系统日期在有效期内,校验通过,同意建立连接;如已超出有效期,则校验失败,拒绝连接;除客户端自行实现证书时间校验外,还可以直接调用客户端所在操作系统接口方法,验证证书的有效时间;
2、证书域名校验:客户端提前在代码或配置文件中预置域名信息;获取服务器返回的CA证书(服务器证书)后,从证书中读取证书拥有者(Owner's Name)的域名,如“*.ABC.com”,判断获取的域名是否与客户端的预置域名一致,如一致,则校验通过,同意建立连接;如校验不一致,则校验失败,拒绝连接;
3、证书链校验:客户端获取服务器返回的CA证书(从服务器证书到根证书的整个证书链),从服务器证书开始,轮询验证当前证书的签发者是否为上层证书的所有者,直到根证书。具体验证方法为:使用上层证书公钥对当前证书签名信息解密,得到证书摘要A,同时客户端程序会使用证书中指明的哈希算法,计算得到证书摘要B,如A、B摘要内容完全匹配,则验证通过;如中间任一次验证失败,则整个验证过程失败,拒绝建立连接;如根证书之前的轮询验证均成功,则客户端程序继续调用操作系统公开的接口(如Java程序可使用keystore方式获取),获取系统中存储的受信任的根证书列表,并进行匹配验证,如我们的根证书与列表中任一根证书匹配,则验证成功,否则验证失败;
其中,第1种方式仅对服务器返回的证书有效期进行验证,保护级别最低,不法分子可使用替换的自签名证书轻易绕过,安全性最差;第2种方式增加了对域名的校验,但目前已有如burpsuite等工具平台可生成任意域名的伪造证书,另外该方式需要在客户端预置服务器域名信息,如服务器域名发生改变,则需要重新发布客户端,灵活性较差。第3种基于证书链的校验方式,安全级别相对较高,但一旦设备持有人受诱导人为信任或安装不法分子伪造的证书,即将伪造的证书添加至客户端所在系统的受信任的根证书列表,该校验方式就会失效。
为了防止中间人对HTTPS的信息传输过程进行攻击,最为关键是客户端对服务器证书的校验;如果客户端对证书未校验,或者没有严格的校验,则就会使攻击者伪造的证书能够通过校验,进而造成后续连带的“中间人攻击”。本发明通过对服务器的证书链进行有效期校验,并通过根据证书预埋的形式对根证书公钥信息进行校验,有效,规避中间人篡改证书数据的攻击方式。从而,本发明针对HTTPS协议在证书校验阶段存在的风险以及当前证书校验方法在灵活性方面存在的不足,提供了一种保证HTTPS协议下信息安全传输的方法,该方法可更有效且灵活的防范不法分子针对HTTPS信息传输过程的“中间人攻击”。
下面以客户端1作为执行主体为例,说明本发明实施例提供的基于HTTPS协议的信息传输方法的实现过程。可理解的是,本发明实施例提供的基于HTTPS协议的信息传输方法的执行主体包括但不限于该客户端1。
根据本发明的一个方面,本实施例公开了一种基于HTTPS协议的信息传输方法。如图2所示,本实施例中,所述方法包括:
S100:接收服务器传输的待校验证书链。
S200:对所述待校验证书链上所有证书的有效期进行校验。
S300:若校验通过,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,若校验通过,则与所述服务器建立连接。
其中,预设证书配置文件中存储有所有有效证书的相关信息,对证书配置文件进行分析可得到可用证书的公钥信息的相关信息,从而可根据证书配置文件对根证书的公钥信息进行校验。
本发明基于HTTPS协议的信息传输方法接收服务器传输的待校验证书链,对所述待校验证书链上所有证书的有效期进行校验,若校验通过,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,若校验通过,则与所述服务器建立连接。由此,本发明通过对服务器的证书链进行有效期校验,并通过根据证书预埋的形式对根证书公钥信息进行校验,有效,规避中间人篡改证书数据的攻击方式。从而,本发明针对HTTPS协议在证书校验阶段存在的风险以及当前证书校验方法在灵活性方面存在的不足,提供了一种保证HTTPS协议下信息安全传输的方法,该方法可更有效且灵活的防范不法分子针对HTTPS信息传输过程的“中间人攻击”。
在优选的实施方式中,如图3所示,所述方法进一步包括在接收服务器传输的待校验证书链,之前的S000:
S010:接收服务器传输的可用证书列表。
S020:将所述可用证书列表中的证书与证书配置文件中的证书信息进行匹配,若匹配不一致,更新所述证书配置文件。
具体的,管理人员可在服务器中维护可用证书列表,保证可用证书列表中的所有证书均可用,从而客户端可从服务器获取可用证书列表并更新客户端中存储的证书配置文件,以保证客户端中的证书配置文件中证书信息的有效和准确。
更优选的,所述可用证书列表包括证书的证书ID、CA厂商名称、加密公钥信息、失效时间以及是否有效的证书信息;所述证书配置文件包括证书的证书ID、CA厂商名称以及公钥信息的哈希值。
在具体例子中,可用证书列表是数据库中的一张二维表,包含“证书ID”、“CA厂商名称”、“加密公钥信息”、“失效时间”以及“是否有效”等主要字段,其中“证书ID”为主键,表中可以存储不同CA厂商根证书公钥;“是否有效”字段中,0标识证书已失效,1标识证书处于有效期。
在新增根证书信息时,管理人员可通过数据库脚本形式,将本次新增的“证书ID”、“CA厂商名称”、“公钥信息”、“失效时间”等维护到可用证书列表中,“是否有效”字段默认置为1(即证书处于有效期)。服务器可通过前台操作页面的形式与管理人员交互,从而支持管理人员对可用证书列表中证书信息进行调整或删除。
同时,客户端中可设置证书配置文件Client.xml,该文件中每条证书信息作为xml配置文件中的一个节点,节点属性中,name属性值对应“证书ID”、desc属性值对应“CA厂商名称”,节点值对应证书“公钥信息”的哈希(Hash)值。
在实际应用中,服务器可提供调用接口,该调用接口是一个面向客户端的可用证书列表查询接口,该接口收到客户端的查询请求后,读取服务器中预先设置的可用证书列表,获取所有“是否有效”字段为1为的证书信息,并按记录集的格式将“证书ID”、“CA厂商名称”以及“加密公钥信息”返回给客户端。其中,公钥信息处理得到加密公钥信息的过程为:采用预先约定的Hash算法(如MD5)对每条记录对应的公钥信息进行哈希运算,得到公钥信息的哈希值,接着使用客户端与服务器约定的RSA公钥对哈希值进行加密得到每条证书信息中的加密公钥信息。其中,服务器可设置文件config.xml,在该文件中定义一个xml节点,其中节点名称为app_server_rsa,节点值为服务器与客户端约定的一对RSA密钥的公钥信息,该公钥信息对应的私钥信息预置在客户端中。
在优选的实施方式中,如图4所示,所述S020将所述可用证书列表中的证书与证书配置文件中的证书信息进行匹配,若匹配不一致,更新所述证书配置文件具体包括:
S021:通过预设RSA私钥对可用证书列表中的每个证书的加密公钥信息进行解密得到公钥信息的哈希值。
S022:若证书配置文件中证书信息的证书ID存在于所述可用证书列表中且所述证书信息中的CA厂商名称以及公钥信息的哈希值与所述可用证书列表中对应证书ID的证书信息相同,则匹配一致。
S023:若证书配置文件中证书信息的证书ID存在于所述可用证书列表中且所述证书信息中的CA厂商名称以及公钥信息的哈希值与所述可用证书列表中对应证书ID的证书信息不同,则匹配不一致,将所述证书配置文件中匹配不一致的证书信息中的CA厂商名称以及公钥信息的哈希值替换为所述可用证书列表中对应证书ID的CA厂商名称以及公钥信息的哈希值。
S024:若证书配置文件中证书信息的证书ID不存在于所述可用证书列表中,则匹配不一致,删除证书配置文件中匹配不一致的证书信息。
S025:若可用证书列表中证书的证书ID不存在于所述证书配置文件中,则匹配不一致,在证书配置文件中新建证书信息,将可用证书列表中匹配不一致的证书的证书信息复制至所述新建证书信息中。
具体的,在实际应用中,客户端启动后,可通过客户端中程序判断客户端是否为当日第一次打开客户端,如否,不做任何处理;如是,客户端可调用服务器的接口申请获取服务器的可用证书列表。客户端从服务器获取可用证书列表,并对可用证书列表进行轮询访问,具体的轮询流程可为:
A、逐条读取记录,读取每条记录中包含的“证书ID”、“CA厂商名称”、“加密公钥信息”(在服务器已经过HASH与RSA算法加密)。
B、使用预置在客户端程序代码中的RSA私钥对加密的“公钥信息”进行解密,得到“公钥信息”的哈希值。
C、客户端程序以“证书ID”为线索,将Client.xml配置文件与记录集进行匹配:
C1:如某“证书ID”在配置文件与记录集中均存在,且“CA厂商名称”、加密的“公钥信息”一致,则不做任何处理;
C2:如某“证书ID”在配置文件与记录集中均存在,但“CA厂商名称”或“公钥信息”不一致,则更新配置文件,以记录集的信息为准;
C3:如某“证书ID”在配置文件中存在,但在记录集中不存在,则在配置文件中删除该节点;
C4:如某“证书ID”在配置文件中不存在,但在记录集中存在,则在配置文件Client.xml中新增一个节点,其中name属性值为“证书ID”、desc属性值为“CA厂商名称”,节点值为计算得到的“公钥信息”Hash值。
在优选的实施方式中,如图5所示,所述S200对所述待校验证书链上所有证书的有效期进行校验具体包括:
S210:读取所述证书链上的所有证书的有效期,判断客户端操作系统日期是否在当前证书有效期内。
S220:若是,读取当前证书上层证书的公钥信息,通过上层证书的公钥信息对当前证书的签名信息进行解密得到第一证书摘要。
S230:对所述当前证书的明文信息进行哈希运算得到第二证书摘要。
S240:若所述第一证书摘要与所述第二证书摘要完全匹配,则确定当前证书是否在预设证书吊销列表中,若否,则校验通过。
具体的,客户端可获取服务器返回的CA证书链(数组格式),对从服务器证书到根证书的所有证书开始轮询读取并校验,一直到根证书循环结束。具体的,待校验证书链上所有证书的有效期校验可包括:
A1:读取证书的有效期,判断当前客户端操作系统日期在证书有效期内,则进入A2;如已超出有效期,则校验失败,拒绝连接。
A2:读取当前证书的上层证书的公钥,使用上层证书公钥对当前证书签名信息解密,得到证书摘要A;同时客户端程序会使用证书中指明的哈希算法,对证书明文信息进行计算,得到证书摘要B,如A、B摘要内容完全匹配,则进入A3;如验证失败,则整个验证过程失败,拒绝建立连接。
A3:客户端程序读取系统的证书吊销列表CRL(Certificate Revocation List),检查当前证书是否在吊销列表中,如否,则继续循环校验上一层证书,如是,则校验失败,拒绝连接。
在优选的实施方式中,如图6所示,所述方法进一步包括在根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,之前的S310:
S311:获取预设受信任的根证书列表。
S312:确定所述根证书是否在所述根证书列表中,若是,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验。
具体的,客户端可通过客户端操作系统的接口(如Java程序可使用keystore方式),获取客户端预先存储的受信任的根证书列表,并进行匹配验证,如根证书与列表中任一根证书匹配,则继续校验,如否则验证失败;
在优选的实施方式中,如图7所示,所述S300根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验具体包括:
S320:通过预设哈希算法对所述根证书的公钥信息进行哈希运算得到根证书公钥信息的哈希值。
S330:将所述根证书公钥信息的哈希值与所述预设证书配置文件中对应证书公钥信息的哈希值进行比对,若比对一致,则校验通过。
具体的,可使用与服务器约定一致的Hash算法(如MD5),对根证书公钥进行Hash计算,得到根证书公钥的哈希值,记为Hash1。然后读取客户端的配置文件Client.xml,轮询Client.xml中的所有节点(证书信息),并将Hash1与节点值(公钥证书的Hash值)进行匹配,如果Hash1与任一节点的节点值匹配,则校验通过;如全部节点值均匹配不成功,则校验失败,拒绝连接。
在优选的实施方式中,服务器可基于预设条件读取预设可用证书列表,确定所述可用证书列表中所有证书是否有效得到有效判定结果,根据所述有效判定结果更新所述可用证书列表。其中,预设条件可以是每日的固定时间或者服务器启动等条件,本领域技术人员在实际应用中可根据实际需求进行设置,本发明对此并不作限定。
在优选的实施方式中,服务器进一步可用于若证书的有效期早于服务器操作系统时间,则更改所述可用证书列表中所述证书的是否有效字段的值为无效;若证书的有效期晚于服务器操作系统时间的时间间隔小于预设阈值,则向管理人员反馈临期消息提醒。在具体例子中,可在服务器设置一个定时线程,该线程在每日24:00自动启动,逐条对“可用证书列表”的证书轮询进行有效性校验。如某条证书的失效时间早于当前时间,则服务器自动将“可用证书列表”中该证书对应的“是否有效”字段置为0,即证书已失效;如某条证书的失效时间晚于当前时间,但距离当前时间已少于预置时间(比如3个月),则会通过系统消息或短信等形式提醒管理人员;如距离当前时间多于预置时间,则不做任何处理。
为了对本发明进行进一步的说明,下面通过两个具体例子来对本发明作进一步的说明,其中第1个实施例可以解决防范中间人攻击的问题。第2个实施例可以解决CA厂商临时证书变更带来的证书不可用问题。两个实施例共同背景定义如下:
客户端APP归属的机构共有A、B、C、D、E共5家CA厂商授权的CA证书,该机构的服务器程序已将5家厂商的根证书公钥信息存储在“可用证书列表”;服务器默认使用厂商授权A的CA证书与客户端通信。
实施例1:增加证书一致性校验可解决中间人攻击的问题。具体的:
Step1:该APP的用户受到攻击者诱导,在本机设备上安装或信任了攻击者的证书(将攻击者的证书加入到了系统的可信任根证书列表)。
Step2:用户使用APP客户端,发起与服务器的HTTPS请求,请求被中间人(攻击者)劫持,导致获取到的是中间人的证书(非服务器证书)。
Step3:客户端获取证书后,依次进行有效期、证书链、吊销列表校验,证书无问题,校验通过。
Step4:继续进行证书一致性校验,因中间人证书已经加入到系统的可信根证书列表,所以可信根证书校验通过。
Step5:客户端将该证书公钥(中间人的证书)使用MD5算法进行Hash运算,得到Hash值,记为Hash2;轮询客户端配置文件Client.xml中的所有节点(证书信息),并将Hash2与节点值(公钥证书的Hash值)进行匹配,因Hash2与全部节点值均匹配不成功,故校验失败,拒绝连接,从而避免了中间人攻击的问题。
实施例2:CA厂商A的证书受到攻击已不可用,为避免安全风险该APP的服务器已紧急切换为厂商B的证书用于HTTPS的通信。
Step1:接到CA厂商A的通知,该厂商根证书及所有授权证书因收到攻击已不可用;我们APP的服务器已紧急将默认HTTPS通信证书由CA厂商A调整为CA厂商B。
Step2:该APP生产管理员进入“配置管理”功能,通过证书管理模块的前台操作页面,将CA厂商A对应证书信息的“是否可用”字段值由1修改为0,并保存生效。
Step3:某用户当日第一次启动客户端,向服务器申请可用证书列表;服务器收到客户端的查询请求后,读取可用证书列表,获取所有“是否有效”字段为1为的证书信息记录,并按记录集的格式将“证书ID”、“CA厂商名称”、以及处理后“公钥信息”返回给客户端;因厂商A的证书可用标识已置为0,所以记录集中不再包含厂商A的证书信息。
Step4:客户端收到服务器接口返回的可用证书信息记录集,并与客户端配置文件Client.xml进行对比,因记录集中没有厂商A的证书信息,故客户端程序会将Client.xml中厂商A的证书信息删除。
Step5:用户使用APP,发起与服务器的HTTPS请求,收到服务器返回的CA证书链(CA厂商B签发的证书链)。
Step6,客户端程序对证书链有效性进行校验,并对证书一致性进行校验,因证书自身的有效期、证书链、吊销列表校验以及根证书可信列表校验、Client.xml中证书信息的匹配校验均无问题,故证书校验通过,从而在不对APP进行改造或升级的条件下,实现了证书的灵活切换。
基于相同原理,本实施例还公开了一种基于HTTPS协议的信息传输方法(执行主体为服务器)。本实施例中,所述方法包括:
将待校验证书链传输至客户端,以使所述客户端对所述待校验证书链上所有证书的有效期进行校验,若校验通过,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,若校验通过,与所述客户端建立连接。
其中,预设证书配置文件中存储有所有有效证书的相关信息,对证书配置文件进行分析可得到可用证书的公钥信息的相关信息,从而可根据证书配置文件对根证书的公钥信息进行校验。
本发明基于HTTPS协议的信息传输方法接收服务器传输的待校验证书链,对所述待校验证书链上所有证书的有效期进行校验,若校验通过,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,若校验通过,则与所述服务器建立连接。由此,本发明通过对服务器的证书链进行有效期校验,并通过根据证书预埋的形式对根证书公钥信息进行校验,有效,规避中间人篡改证书数据的攻击方式。从而,本发明针对HTTPS协议在证书校验阶段存在的风险以及当前证书校验方法在灵活性方面存在的不足,提供了一种保证HTTPS协议下信息安全传输的方法,该方法可更有效且灵活的防范不法分子针对HTTPS信息传输过程的“中间人攻击”。
在优选的实施方式中,所述方法进一步包括在将待校验证书链传输至客户端之前,向客户端传输可用证书列表,以使客户端将所述可用证书列表中的证书与证书配置文件中的证书信息进行匹配,若匹配不一致,更新所述证书配置文件。
具体的,管理人员可在服务器中维护可用证书列表,保证可用证书列表中的所有证书均可用,从而客户端可从服务器获取可用证书列表并更新客户端中存储的证书配置文件,以保证客户端中的证书配置文件中证书信息的有效和准确。
更优选的,所述可用证书列表包括证书的证书ID、CA厂商名称、加密公钥信息、失效时间以及是否有效的证书信息;所述证书配置文件包括证书的证书ID、CA厂商名称以及公钥信息的哈希值。
在具体例子中,可用证书列表是数据库中的一张二维表,包含“证书ID”、“CA厂商名称”、“加密公钥信息”、“失效时间”以及“是否有效”等主要字段,其中“证书ID”为主键,表中可以存储不同CA厂商根证书公钥;“是否有效”字段中,0标识证书已失效,1标识证书处于有效期。
在新增根证书信息时,管理人员可通过数据库脚本形式,将本次新增的“证书ID”、“CA厂商名称”、“公钥信息”、“失效时间”等维护到可用证书列表中,“是否有效”字段默认置为1(即证书处于有效期)。服务器可通过前台操作页面的形式与管理人员交互,从而支持管理人员对可用证书列表中证书信息进行调整或删除。
同时,客户端中可设置证书配置文件Client.xml,该文件中每条证书信息作为xml配置文件中的一个节点,节点属性中,name属性值对应“证书ID”、desc属性值对应“CA厂商名称”,节点值对应证书“公钥信息”的哈希(Hash)值。
在实际应用中,服务器可提供调用接口,该调用接口是一个面向客户端的可用证书列表查询接口,该接口收到客户端的查询请求后,读取服务器中预先设置的可用证书列表,获取所有“是否有效”字段为1为的证书信息,并按记录集的格式将“证书ID”、“CA厂商名称”以及“加密公钥信息”返回给客户端。其中,公钥信息处理得到加密公钥信息的过程为:采用预先约定的Hash算法(如MD5)对每条记录对应的公钥信息进行哈希运算,得到公钥信息的哈希值,接着使用客户端与服务器约定的RSA公钥对哈希值进行加密得到每条证书信息中的加密公钥信息。其中,服务器可设置文件config.xml,在该文件中定义一个xml节点,其中节点名称为app_server_rsa,节点值为服务器与客户端约定的一对RSA密钥的公钥信息,该公钥信息对应的私钥信息预置在客户端中。
在优选的实施方式中,所述将所述可用证书列表中的证书与证书配置文件中的证书信息进行匹配,若匹配不一致,更新所述证书配置文件具体包括:通过预设RSA私钥对可用证书列表中的每个证书的加密公钥信息进行解密得到公钥信息的哈希值。若证书配置文件中证书信息的证书ID存在于所述可用证书列表中且所述证书信息中的CA厂商名称以及公钥信息的哈希值与所述可用证书列表中对应证书ID的证书信息相同,则匹配一致。若证书配置文件中证书信息的证书ID存在于所述可用证书列表中且所述证书信息中的CA厂商名称以及公钥信息的哈希值与所述可用证书列表中对应证书ID的证书信息不同,则匹配不一致,将所述证书配置文件中匹配不一致的证书信息中的CA厂商名称以及公钥信息的哈希值替换为所述可用证书列表中对应证书ID的CA厂商名称以及公钥信息的哈希值。若证书配置文件中证书信息的证书ID不存在于所述可用证书列表中,则匹配不一致,删除证书配置文件中匹配不一致的证书信息。若可用证书列表中证书的证书ID不存在于所述证书配置文件中,则匹配不一致,在证书配置文件中新建证书信息,将可用证书列表中匹配不一致的证书的证书信息复制至所述新建证书信息中。
具体的,在实际应用中,客户端启动后,可通过客户端中程序判断客户端是否为当日第一次打开客户端,如否,不做任何处理;如是,客户端可调用服务器的接口申请获取服务器的可用证书列表。客户端从服务器获取可用证书列表,并对可用证书列表进行轮询访问,具体的轮询流程可为:
D、逐条读取记录,读取每条记录中包含的“证书ID”、“CA厂商名称”、“加密公钥信息”(在服务器已经过HASH与RSA算法加密)。
E、使用预置在客户端程序代码中的RSA私钥对加密的“公钥信息”进行解密,得到“公钥信息”的哈希值。
F、客户端程序以“证书ID”为线索,将Client.xml配置文件与记录集进行匹配:
C1:如某“证书ID”在配置文件与记录集中均存在,且“CA厂商名称”、加密的“公钥信息”一致,则不做任何处理;
C2:如某“证书ID”在配置文件与记录集中均存在,但“CA厂商名称”或“公钥信息”不一致,则更新配置文件,以记录集的信息为准;
C3:如某“证书ID”在配置文件中存在,但在记录集中不存在,则在配置文件中删除该节点;
C4:如某“证书ID”在配置文件中不存在,但在记录集中存在,则在配置文件Client.xml中新增一个节点,其中name属性值为“证书ID”、desc属性值为“CA厂商名称”,节点值为计算得到的“公钥信息”Hash值。
在优选的实施方式中,所述对所述待校验证书链上所有证书的有效期进行校验具体包括:读取所述证书链上的所有证书的有效期,判断客户端操作系统日期是否在当前证书有效期内。若是,读取当前证书上层证书的公钥信息,通过上层证书的公钥信息对当前证书的签名信息进行解密得到第一证书摘要。对所述当前证书的明文信息进行哈希运算得到第二证书摘要。若所述第一证书摘要与所述第二证书摘要完全匹配,则确定当前证书是否在预设证书吊销列表中,若否,则校验通过。
具体的,客户端可获取服务器返回的CA证书链(数组格式),对从服务器证书到根证书的所有证书开始轮询读取并校验,一直到根证书循环结束。具体的,待校验证书链上所有证书的有效期校验可包括:
A1:读取证书的有效期,判断当前客户端操作系统日期在证书有效期内,则进入A2;如已超出有效期,则校验失败,拒绝连接。
A2:读取当前证书的上层证书的公钥,使用上层证书公钥对当前证书签名信息解密,得到证书摘要A;同时客户端程序会使用证书中指明的哈希算法,对证书明文信息进行计算,得到证书摘要B,如A、B摘要内容完全匹配,则进入A3;如验证失败,则整个验证过程失败,拒绝建立连接。
A3:客户端程序读取系统的证书吊销列表CRL(Certificate Revocation List),检查当前证书是否在吊销列表中,如否,则继续循环校验上一层证书,如是,则校验失败,拒绝连接。
在优选的实施方式中,所述方法进一步包括客户端在根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,之前获取预设受信任的根证书列表。确定所述根证书是否在所述根证书列表中,若是,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验。
具体的,客户端可通过客户端操作系统的接口(如Java程序可使用keystore方式),获取客户端预先存储的受信任的根证书列表,并进行匹配验证,如根证书与列表中任一根证书匹配,则继续校验,如否则验证失败;
在优选的实施方式中,所述根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验具体包括:通过预设哈希算法对所述根证书的公钥信息进行哈希运算得到根证书公钥信息的哈希值。将所述根证书公钥信息的哈希值与所述预设证书配置文件中对应证书公钥信息的哈希值进行比对,若比对一致,则校验通过。
具体的,可使用与服务器约定一致的Hash算法(如MD5),对根证书公钥进行Hash计算,得到根证书公钥的哈希值,记为Hash1。然后读取客户端的配置文件Client.xml,轮询Client.xml中的所有节点(证书信息),并将Hash1与节点值(公钥证书的Hash值)进行匹配,如果Hash1与任一节点的节点值匹配,则校验通过;如全部节点值均匹配不成功,则校验失败,拒绝连接。
在优选的实施方式中,如图8所示,所述方法进一步包括S400:
S410:基于预设条件读取预设可用证书列表。
S420:确定所述可用证书列表中所有证书是否有效得到有效判定结果,根据所述有效判定结果更新所述可用证书列表。
在优选的实施方式中,服务器可基于预设条件读取预设可用证书列表,确定所述可用证书列表中所有证书是否有效得到有效判定结果,根据所述有效判定结果更新所述可用证书列表。其中,预设条件可以是每日的固定时间或者服务器启动等条件,本领域技术人员在实际应用中可根据实际需求进行设置,本发明对此并不作限定。
在优选的实施方式中,如图9所示,所述确定所述可用证书列表中所有证书是否有效得到有效判定结果,根据所述有效判定结果更新所述可用证书列表具体包括S500:
S510:若证书的有效期早于服务器操作系统时间,则更改所述可用证书列表中所述证书的是否有效字段的值为无效。
S520:若证书的有效期晚于服务器操作系统时间的时间间隔小于预设阈值,则向管理人员反馈临期消息提醒。
在优选的实施方式中,服务器进一步可用于若证书的有效期早于服务器操作系统时间,则更改所述可用证书列表中所述证书的是否有效字段的值为无效;若证书的有效期晚于服务器操作系统时间的时间间隔小于预设阈值,则向管理人员反馈临期消息提醒。在具体例子中,可在服务器设置一个定时线程,该线程在每日24:00自动启动,逐条对“可用证书列表”的证书轮询进行有效性校验。如某条证书的失效时间早于当前时间,则服务器自动将“可用证书列表”中该证书对应的“是否有效”字段置为0,即证书已失效;如某条证书的失效时间晚于当前时间,但距离当前时间已少于预置时间(比如3个月),则会通过系统消息或短信等形式提醒管理人员;如距离当前时间多于预置时间,则不做任何处理。
由于该方法解决问题的原理与以上方法类似,因此本方法的实施可以参见方法的实施,在此不再赘述。
基于相同原理,本实施例还公开了一种客户端。如图10所示,本实施例中,所述客户端包括信息接收模块11、有效期校验模块12和一致性校验模块13。
其中,信息接收模块11用于接收服务器传输的待校验证书链。
有效期校验模块12用于对所述待校验证书链上所有证书的有效期进行校验。
一致性校验模块13用于若校验通过,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,若校验通过,则与所述服务器建立连接。
由于该客户端解决问题的原理与以上方法类似,因此本客户端的实施可以参见方法的实施,在此不再赘述。
基于相同原理,本实施例还公开了一种服务器。该服务器被配置为将待校验证书链传输至客户端,以使所述客户端对所述待校验证书链上所有证书的有效期进行校验,若校验通过,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,若校验通过,与所述客户端建立连接。
由于该服务器解决问题的原理与以上方法类似,因此本服务器的实施可以参见方法的实施,在此不再赘述。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机设备,具体的,计算机设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
在一个典型的实例中计算机设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的由客户端执行的方法,或者,所述处理器执行所述程序时实现如上所述的由服务器执行的方法。
下面参考图11,其示出了适于用来实现本申请实施例的计算机设备600的结构示意图。
如图11所示,计算机设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM))603中的程序而执行各种适当的工作和处理。在RAM603中,还存储有系统600操作所需的各种程序和数据。CPU601、ROM602、以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶反馈器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口606。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装如存储部分608。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包括用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (14)
1.一种基于HTTPS协议的信息传输方法,其特征在于,包括:
接收服务器传输的待校验证书链;
对所述待校验证书链上所有证书的有效期进行校验;
若校验通过,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,若校验通过,则与所述服务器建立连接。
2.根据权利要求1所述的基于HTTPS协议的信息传输方法,其特征在于,进一步包括在接收服务器传输的待校验证书链,之前:
接收服务器传输的可用证书列表;
将所述可用证书列表中的证书与证书配置文件中的证书信息进行匹配,若匹配不一致,更新所述证书配置文件。
3.根据权利要求1所述的基于HTTPS协议的信息传输方法,其特征在于,进一步包括在根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,之前:
获取预设受信任的根证书列表;
确定所述根证书是否在所述根证书列表中,若是,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验。
4.根据权利要求2所述的基于HTTPS协议的信息传输方法,其特征在于,所述可用证书列表包括证书的证书ID、CA厂商名称、加密公钥信息、失效时间以及是否有效的证书信息;
所述证书配置文件包括证书的证书ID、CA厂商名称以及公钥信息的哈希值。
5.根据权利要求4所述的基于HTTPS协议的信息传输方法,其特征在于,所述将所述可用证书列表中的证书与证书配置文件中的证书信息进行匹配,若匹配不一致,更新所述证书配置文件具体包括:
通过预设RSA私钥对可用证书列表中的每个证书的加密公钥信息进行解密得到公钥信息的哈希值;
若证书配置文件中证书信息的证书ID存在于所述可用证书列表中且所述证书信息中的CA厂商名称以及公钥信息的哈希值与所述可用证书列表中对应证书ID的证书信息相同,则匹配一致;
若证书配置文件中证书信息的证书ID存在于所述可用证书列表中且所述证书信息中的CA厂商名称以及公钥信息的哈希值与所述可用证书列表中对应证书ID的证书信息不同,则匹配不一致,将所述证书配置文件中匹配不一致的证书信息中的CA厂商名称以及公钥信息的哈希值替换为所述可用证书列表中对应证书ID的CA厂商名称以及公钥信息的哈希值;
若证书配置文件中证书信息的证书ID不存在于所述可用证书列表中,则匹配不一致,删除证书配置文件中匹配不一致的证书信息;
若可用证书列表中证书的证书ID不存在于所述证书配置文件中,则匹配不一致,在证书配置文件中新建证书信息,将可用证书列表中匹配不一致的证书的证书信息复制至所述新建证书信息中。
6.根据权利要求4所述的基于HTTPS协议的信息传输方法,其特征在于,所述对所述待校验证书链上所有证书的有效期进行校验具体包括:
读取所述证书链上的所有证书的有效期,判断客户端操作系统日期是否在当前证书有效期内;
若是,读取当前证书上层证书的公钥信息,通过上层证书的公钥信息对当前证书的签名信息进行解密得到第一证书摘要;
对所述当前证书的明文信息进行哈希运算得到第二证书摘要;
若所述第一证书摘要与所述第二证书摘要完全匹配,则确定当前证书是否在预设证书吊销列表中,若否,则校验通过。
7.根据权利要求4所述的基于HTTPS协议的信息传输方法,其特征在于,所述根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验具体包括:
通过预设哈希算法对所述根证书的公钥信息进行哈希运算得到根证书公钥信息的哈希值;
将所述根证书公钥信息的哈希值与所述预设证书配置文件中对应证书公钥信息的哈希值进行比对,若比对一致,则校验通过。
8.一种基于HTTPS协议的信息传输方法,其特征在于,包括:
将待校验证书链传输至客户端,以使所述客户端对所述待校验证书链上所有证书的有效期进行校验,若校验通过,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,若校验通过,与所述客户端建立连接。
9.根据权利要求8所述的基于HTTPS协议的信息传输方法,其特征在于,进一步包括:
基于预设条件读取预设可用证书列表;
确定所述可用证书列表中所有证书是否有效得到有效判定结果,根据所述有效判定结果更新所述可用证书列表。
10.根据权利要求9所述的基于HTTPS协议的信息传输方法,其特征在于,所述确定所述可用证书列表中所有证书是否有效得到有效判定结果,根据所述有效判定结果更新所述可用证书列表具体包括:
若证书的有效期早于服务器操作系统时间,则更改所述可用证书列表中所述证书的是否有效字段的值为无效;
若证书的有效期晚于服务器操作系统时间的时间间隔小于预设阈值,则向管理人员反馈临期消息提醒。
11.一种客户端,其特征在于,包括:
信息接收模块,用于接收服务器传输的待校验证书链;
有效期校验模块,用于对所述待校验证书链上所有证书的有效期进行校验;
一致性校验模块,用于若校验通过,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,若校验通过,则与所述服务器建立连接。
12.一种服务器,其特征在于,被配置为将待校验证书链传输至客户端,以使所述客户端对所述待校验证书链上所有证书的有效期进行校验,若校验通过,根据预设证书配置文件对所述证书链的根证书的公钥信息进行校验,若校验通过,与所述客户端建立连接。
13.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,
所述处理器执行所述程序时实现如权利要求1-10任一项所述方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,
该程序被处理器执行时实现如权利要求1-10任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110744104.3A CN113472790B (zh) | 2021-06-30 | 2021-06-30 | 基于https协议的信息传输方法、客户端及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110744104.3A CN113472790B (zh) | 2021-06-30 | 2021-06-30 | 基于https协议的信息传输方法、客户端及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113472790A true CN113472790A (zh) | 2021-10-01 |
CN113472790B CN113472790B (zh) | 2023-10-27 |
Family
ID=77877050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110744104.3A Active CN113472790B (zh) | 2021-06-30 | 2021-06-30 | 基于https协议的信息传输方法、客户端及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113472790B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363163A (zh) * | 2021-12-09 | 2022-04-15 | 北京六方云信息技术有限公司 | 基于https的设备部署方法、系统、设备及介质 |
CN114499940A (zh) * | 2021-12-22 | 2022-05-13 | 联想(北京)有限公司 | 一种网络连接方法、装置及计算机可读介质 |
CN115021917A (zh) * | 2022-06-24 | 2022-09-06 | 浪潮卓数大数据产业发展有限公司 | 一种基于证书的安全校验方法、系统、设备及介质 |
CN115150162A (zh) * | 2022-07-01 | 2022-10-04 | 阿里云计算有限公司 | 一种根证书更新方法、装置 |
CN116886319A (zh) * | 2023-09-08 | 2023-10-13 | 海马云(天津)信息技术有限公司 | 证书校验方法及装置、通信设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190068580A1 (en) * | 2017-08-23 | 2019-02-28 | Dell Products L. P. | Https enabled client tool |
CN110557255A (zh) * | 2018-05-31 | 2019-12-10 | 北京京东尚科信息技术有限公司 | 一种证书管理的方法和装置 |
CN110677240A (zh) * | 2019-08-29 | 2020-01-10 | 阿里巴巴集团控股有限公司 | 通过证书签发提供高可用计算服务的方法及装置 |
CN111526159A (zh) * | 2020-05-25 | 2020-08-11 | 普联技术有限公司 | 建立数据连接的方法、装置、终端设备及存储介质 |
CN111694591A (zh) * | 2020-06-16 | 2020-09-22 | 深圳前海微众银行股份有限公司 | 证书更新方法、装置、系统、服务端及计算机存储介质 |
CN111740839A (zh) * | 2020-05-26 | 2020-10-02 | 深圳市共进电子股份有限公司 | 一种证书验证方法、装置、终端设备及介质 |
-
2021
- 2021-06-30 CN CN202110744104.3A patent/CN113472790B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190068580A1 (en) * | 2017-08-23 | 2019-02-28 | Dell Products L. P. | Https enabled client tool |
CN110557255A (zh) * | 2018-05-31 | 2019-12-10 | 北京京东尚科信息技术有限公司 | 一种证书管理的方法和装置 |
CN110677240A (zh) * | 2019-08-29 | 2020-01-10 | 阿里巴巴集团控股有限公司 | 通过证书签发提供高可用计算服务的方法及装置 |
CN111526159A (zh) * | 2020-05-25 | 2020-08-11 | 普联技术有限公司 | 建立数据连接的方法、装置、终端设备及存储介质 |
CN111740839A (zh) * | 2020-05-26 | 2020-10-02 | 深圳市共进电子股份有限公司 | 一种证书验证方法、装置、终端设备及介质 |
CN111694591A (zh) * | 2020-06-16 | 2020-09-22 | 深圳前海微众银行股份有限公司 | 证书更新方法、装置、系统、服务端及计算机存储介质 |
Non-Patent Citations (6)
Title |
---|
ADMIN-神风: ""谈HTTPS中间人攻击与证书校验(二)"", 《HTTPS://WWW.CNBLOGS.COM/WH4AM1/P/6616856.HTML》 * |
ADMIN-神风: ""谈HTTPS中间人攻击与证书校验(二)"", 《HTTPS://WWW.CNBLOGS.COM/WH4AM1/P/6616856.HTML》, 25 March 2017 (2017-03-25), pages 1 - 5 * |
ANDROID技术分享: ""Android Https "中间人攻击" 攻防战"", 《HTTPS://WWW.JIANSHU.COM/P/79BBA7E4B6B9?UTM_CAMPAIGN=HUGO&UTM_CONTENT=NOTE&UTM_MEDIUM=WRITER_SHARE&UTM_SOURCE=WEIBO》 * |
ANDROID技术分享: ""Android Https "中间人攻击" 攻防战"", 《HTTPS://WWW.JIANSHU.COM/P/79BBA7E4B6B9?UTM_CAMPAIGN=HUGO&UTM_CONTENT=NOTE&UTM_MEDIUM=WRITER_SHARE&UTM_SOURCE=WEIBO》, 13 January 2020 (2020-01-13) * |
阿里聚安全: ""Android安全开发之安全使用HTTPS"", 《HTTPS://WWW.SONGMA.COM/NEWS/TXTLIST_I29289V.HTML》 * |
阿里聚安全: ""Android安全开发之安全使用HTTPS"", 《HTTPS://WWW.SONGMA.COM/NEWS/TXTLIST_I29289V.HTML》, 29 December 2018 (2018-12-29) * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114363163A (zh) * | 2021-12-09 | 2022-04-15 | 北京六方云信息技术有限公司 | 基于https的设备部署方法、系统、设备及介质 |
CN114499940A (zh) * | 2021-12-22 | 2022-05-13 | 联想(北京)有限公司 | 一种网络连接方法、装置及计算机可读介质 |
CN115021917A (zh) * | 2022-06-24 | 2022-09-06 | 浪潮卓数大数据产业发展有限公司 | 一种基于证书的安全校验方法、系统、设备及介质 |
CN115021917B (zh) * | 2022-06-24 | 2024-05-10 | 浪潮卓数大数据产业发展有限公司 | 一种基于证书的安全校验方法、系统、设备及介质 |
CN115150162A (zh) * | 2022-07-01 | 2022-10-04 | 阿里云计算有限公司 | 一种根证书更新方法、装置 |
CN115150162B (zh) * | 2022-07-01 | 2024-06-04 | 阿里云计算有限公司 | 一种根证书更新方法、装置 |
CN116886319A (zh) * | 2023-09-08 | 2023-10-13 | 海马云(天津)信息技术有限公司 | 证书校验方法及装置、通信设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113472790B (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3661120B1 (en) | Method and apparatus for security authentication | |
US9215232B2 (en) | Certificate renewal | |
US9621355B1 (en) | Securely authorizing client applications on devices to hosted services | |
US8788811B2 (en) | Server-side key generation for non-token clients | |
CN113472790B (zh) | 基于https协议的信息传输方法、客户端及服务器 | |
US20180183587A1 (en) | Blockchain-Assisted Public Key Infrastructure for Internet of Things Applications | |
US8683196B2 (en) | Token renewal | |
US8532620B2 (en) | Trusted mobile device based security | |
US9137017B2 (en) | Key recovery mechanism | |
US20190173873A1 (en) | Identity verification document request handling utilizing a user certificate system and user identity document repository | |
CN110299996B (zh) | 认证方法、设备及系统 | |
US20190312878A1 (en) | Secure communication using device-identity information linked to cloud-based certificates | |
US20110296171A1 (en) | Key recovery mechanism | |
JP2015171153A (ja) | ルート証明書の無効化 | |
US11689367B2 (en) | Authentication method and system | |
CN114978635B (zh) | 跨域认证方法及装置、用户注册方法及装置 | |
US20140013116A1 (en) | Apparatus and method for performing over-the-air identity provisioning | |
CN110838919B (zh) | 通信方法、存储方法、运算方法及装置 | |
CN113271207A (zh) | 基于移动电子签名的托管密钥使用方法、系统、计算机设备及存储介质 | |
CN114598455A (zh) | 数字证书签发的方法、装置、终端实体和系统 | |
US9281947B2 (en) | Security mechanism within a local area network | |
CN117397199A (zh) | 嵌入式设备的安全信任根注册和身份管理 | |
US9882891B2 (en) | Identity verification | |
US20240195641A1 (en) | Interim root-of-trust enrolment and device-bound public key registration | |
CN115150831A (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 |