SSL安全证书的实现机制

如题所述

TLS/SSL的功能实现主要依赖于三类基本算法:散列函数 Hash、对称加密和非对称加密,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性。

解决上述身份验证问题的关键是确保获取的公钥途径是合法的,能够验证服务器的身份信息,为此需要引入权威的第三方机构CA。CA 负责核实公钥的拥有者的信息,并颁发认证"证书",同时能够为使用者提供证书验证服务,即PKI体系。

基本的原理为,CA负责审核信息,然后对关键信息利用私钥进行"签名",公开对应的公钥,客户端可以利用公钥验证签名。CA也可以吊销已经签发的证书,基本的方式包括两类 CRL 文件和 OCSP。CA使用具体的流程如下:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-05-31

SSL安全机制是依靠数字证书来实现的。用户与IIS服务器建立连接后,服务器会把数字证书与公用密钥发送给用户,用户端生成会话密钥,并用公共密钥对会话密钥进行加密,然后传递给服务器,服务器端用私人密钥进行解密,这样,用户端和服务器端就建立了一条安全通道,只有SSL允许的用户才能与IIS服务器进行通信。
具体过程如下 :1.Client Hello:客户端将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息(如加密算法和能支持的密钥大小)发送到服务器。
2.Server Hello:服务器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送给客户端
3.Certificate(可选):服务器发一个证书或一个证书链到客户端,证书链开始于服务器公共钥匙并结束于证明权威的根证书。该证书用于向客户端确认服务器的身份,该消息是可选的。如果配置服务器的SSL需要验证服务器的身份,会发送该消息。多数电子商务应用都需要服务器端身份验证。
4.Certificate Request(可选):如果配置服务器的SSL需要验证用户身份,还要发出请求要求浏览器提供用户证书。 多数电子商务不需要客户端身份验证,不过,在支付过程中经常需要客户端身份验证。
5.Server Key Exchange(可选):如果服务器发送的公共密钥对加密密钥的交换不是很合适,则发送一个服务器密钥交换消息。
6.ServerHelloDone:通知客户端,服务器已经完成了交流过程的初始化。
7.Certificate(可选):客户端发送客户端证书给服务器。仅当服务器请求客户端身份验证的时候会发送客户端证书
8.Client Key Exchange:客户端产生一个会话密钥与服务器共享。在SSL握手协议完成后,客户端与服务器端通信信息的加密就会使用该会话密钥。如果使用RSA加密算法,客户端将使用服务器的公钥将会话加密后再发送给服务器。服务器使用自己的私钥对接收的消息进行解密得到共享的会话密钥。
9.Certificate Verify:如果服务器请求验证客户端,则这消息允许服务器完成验证过程。
10.Change cipher spec:客户端要求服务器在后续的通信中使用加密模式
11.Finished:客户端告诉服务器已经准备好安全通信了。
12.Change cipher spec:服务器要求客户端在后续的通信中使用加密模式
13.Finished:服务器告诉客户端它已经准备好安全通信了。SSL握手完成的标志
14.Encrypted Data:客户端和服务端在安全信道上进行加密信息的交流
当上述动作完成之后,两者的资料传送就会加密。发送时信息用会话密钥加密形成一个数据包A,对称密钥用非对称算法加密形成另一个数据包B,再把两个包一起发送。接收的过程域发送正好相反,先用非对称算法打开对称密钥的加密包B,获得会话密钥,然后再用会话密钥解密数据包A,获取发送过来的信息原文。会话密钥还被描述为对称密钥,或“共享秘密”。具有对称密钥很重要,因为它减少了事务双方所需执行的计算量。如果每个消息都要求对 Nonce 和哈希进行新的交换,那么性能将会下降。因此,SSL 的最终目标是使用允许消息在通信双方之间自由流动的对称密钥,同时具有更高程度的安全和效率。

相似回答