SSL证书认证方式分为单向认证和双向认证,SSL单向认证的是服务端的合法性,服务器是合法的就继续通讯,不管客户端是不是合法。SSL证书双向认证和单向认证原理基本差不多,SSL证书单向认证客户端仅需要认证服务端,而在SSL证书双向认证中增加了服务端对客户端的认证。
互联网上几乎的Web应用都是采用SSL证书单向认证方式,因为客户端数目广泛,所以无需做在通讯层做用户身份验证,一般都在应用逻辑层来保证用户的合法登入和数据安全。
先了解SSL证书单向认证的过程:
依据上图可以看出,服务器端拥有一对非对称密钥:B_公钥和B_私钥。
详细过程如下:
1、客户端发起HTTPS请求,将SSL协议版本的信息发送给服务端。
2、服务端去CA机构申请来一份CA证书,将CA证书发送给客户端。
3、客户端读取CA证书的明文信息,采用相同的hash散列函数计算得到信息摘要,对比证书中的信息摘要。如果一致,则证明证书是可信的,然后取出了服务端公钥;
4、客户端生成一个随机数(密钥F),用刚才等到的服务端B_公钥去加密这个随机数形成密文,发送给服务端。
5、服务端用自己的B_私钥去解密这个密文,得到了密钥F
6、服务端和客户端在后续通讯过程中就使用这个密钥F进行通信了。和之前的非对称加密不同,这里开始就是一种对称加密的方式
在一些是企业应用对接,情况就不一样,可能会要求对客户端做身份验证,这时就需要做双向认证。
先了解SSL证书双向认证的过程:
SSL证书双向认证详细过程如下:
1、客户端发起HTTPS请求,将SSL协议版本的信息发送给服务端。
2、服务端去CA机构申请来一份CA证书,证书里面有服务端公钥和签名,将CA证书发送给客户端。
3、客户端读取CA证书的明文信息,采用相同的hash散列函数计算得到信息摘要(hash目的:验证防止内容被修改),然后用操作系统带的CA的公钥去解密签名(因为签名是用CA的私钥加密的),对比证书中的信息摘要。如果一致,则证明证书是可信的,然后取出了服务端公钥
4、客户端发送自己的客户端证书给服务端,证书里面有客户端的公钥:C_公钥
5、客户端发送支持的对称加密方案给服务端,供其选择
6、服务端选择完加密方案后,用刚才得到的C_公钥去加密选好的加密方案
7、客户端用自己的C_私钥去解密选好的加密方案,客户端生成一个随机数(密钥F),用刚才等到的服务端B_公钥去加密这个随机数形成密文,发送给服务端。
8、服务端和客户端在后续通讯过程中就使用这个密钥F进行通信了。和之前的非对称加密不同,这里开始就是一种对称加密的方式
扫码赞赏,鼓励支持
相关问题
Centos 7.x 下做端口映射/端口转发Windows server 2008/2012/2016/2019 服务器桌面不显示我的电脑(计算机)的解决方案No input file specified的解决方法网站如何添加工信部网站备案号和链接代码腾讯云对象存储内网与外网地址访问Windows远程桌面多个用户如何同时使用Chrome谷歌浏览器?