SSL安全证书的实现机制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSL安全证书的实现机制相关的知识,希望对你有一定的参考价值。

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

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

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

参考技术A

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 的最终目标是使用允许消息在通信双方之间自由流动的对称密钥,同时具有更高程度的安全和效率。

怎样确认网站安装了SSL证书?

浏览器内置SSL证书安全验证机制,是全球通行的国际标准。访问受SSL证书保护的网站时,浏览器会自动查验SSL证书状态,确认无误,浏览器才会正常显示安全锁标志。而一旦发现问题,浏览器会报各种不同的安全警告,提示网站的安全证书有问题。

1.网页有不安全因素,浏览器会警告

部署了 SSL 证书的网站正常情况下,浏览器地址栏会自动显示安全锁标志。但如果部署了 SSL 证书的网站有不安全因素,浏览器就会有警告,表明此页面中含有指向其他没有部署 SSL 证书的页面。为了安全起见,建议您选择 “ 否 ” ,浏览器就不显示不安全的内容,这些内容可能是Flash动画或 Java Script;如果选择 “ 是 ” ,则浏览器不会显示安全锁标志。

2、SSL 证书不是由”受信任的根证书颁发机构” 颁发的,浏览器会安全警告

所有浏览器都内置了“受信任的根证书颁发机构”的列表,记录了所有通过WebTrust国际认证,并预置到浏览器中的所有受信任CA机构。以 IE 浏览器为例,您可以在浏览器的“工具—internet选项—内容—证书”,就能看到“受信任的根证书颁发机构”,如下图所示,表明 IE 浏览器能正常识别出这些证书颁发机构颁发的数字证书:
如果SSL 证书不是由浏览器中“受信任的根证书颁发机构”颁发的,则浏览器会有安全警告。如图所示,浏览器的警告信息为 “ 此网站出具的安全证书不是受信任的证书颁发机构颁发的,安全证书问题可能显示试图欺骗您或截获您向服务器发送的数据,建议关闭此网页,并且不要继续浏览该网站。

3、如果SSL 证书可信,则接着检查此 SSL 证书是否已经被吊销

如果是浏览器能识别的 SSL 证书,则接着就要检查此 SSL 证书中的证书吊销列表,如果此证书已经被证书颁发机构吊销,则会显示警告信息:“此组织的证书已被吊销。安全证书问题可能显示试图欺骗您或截获您向服务器发送的数据。建议关闭此网页,并且不要继续浏览该网站。”

4、如果此证书没有被吊销,则接着会检查此证书是否过期

如果此证书没有被吊销,则接着会检查此 SSL 证书是否过期,如果证书已经过了有效期,则一样会显示警告信息:“ 此网站出具的安全证书已过期或还未生效。安全证书问题可能显示试图欺骗您或截获您向服务器发送的数据。建议关闭此网页,并且不要继续浏览该网站。”

5、如果此 SSL 证书是在有效期内,则检查部署此 SSL 证书的网站的域名是否与证书中的域名一致

 
如果此 SSL 证书是在有效期内,则检查部署此 SSL 证书的网站的域名是否与证书中的域名一致,如果不一致,则浏览器也会显示警告信息:“此网站出具的安全证书是为其他网站地址颁发的。安全证书问题可能显示试图欺骗您或截获您向服务器发送的数据。建议关闭此网页,并且不要继续浏览该网站。

6、新版浏览器还要验证此证书是否是EV SSL证书

如果以上都没有问题,新版浏览器(IE7以上版本)还要验证此证书是否是EV SSL证书,如果不是,则显示一般SSL证书的安全锁标志;如果是,则需要按照EV SSL证书标准,显示绿色地址栏、单位名称和安全锁标志等。

以上是关于SSL安全证书的实现机制的主要内容,如果未能解决你的问题,请参考以下文章

UWP 使用SSL证书,保证数据安全

怎样确认网站安装了SSL证书?

企业为啥不能使用自签名SSL证书?

SSL安全证书-概念解析

SSL安全证书-概念解析

网站未安装SSL证书存在哪些安全风险?