![单向认证 vs. 双向认证](http://img.jiangsulong.com/220504/2024423H8-0.jpg)
文章插图
基本概念SSL协议
SSL(Secure Sockets Layer,安全套接字协议)是为网络通信提供安全及数据完整性的一种安全协议 。SSL协议即用到了对称加密也用到了非对称加密(公钥加密),在建立传输链路时,SSL首先对对称加密的密钥使用公钥进行非对称加密,链路建立好之后,SSL对传输内容使用对称加密 。
- 对称加密 :速度高,可加密内容较大,用来加密会话过程中的消息
- 公钥加密 :加密速度较慢,但能提供更好的身份认证技术,用来加密对称加密的密钥
![单向认证 vs. 双向认证](http://img.jiangsulong.com/220504/2024421615-1.jpg)
文章插图
CA证书
我们知道HTTPS使用RSA加密算法来保证秘钥传递的安全性,我们如果保证Server下发的公钥就是真正的Servier给我们的呢,为例解决这个问题,HTTPS使用CA证书解决这个问题,CA证书包含签名信息和公钥,CA证书由权威机构使用自己的私钥对公钥等信息进行签名 。客户端使用对应内置的root证书的公钥对服务端下发的证书签名解密进行验证,如果验证失败则认为当前的证书是非法的 。
证书链
为了防止CA机构的私钥泄露导致大规模的CA证书不再安全,CA机构不会使用root证书私钥对服务器公钥进行签名,而是使用二级证书私钥对服务器公钥进行签名,这样如果中间 CA 的私钥泄漏了,那用根 CA 再签发一个就好了,不会影响到这个根 CA 的所有证书 。
单向认证
![单向认证 vs. 双向认证](http://img.jiangsulong.com/220504/20244255R-2.jpg)
文章插图
SSL 单向认证只需要验证服务端的身份,无需验证客户端的身份 。SSL 单向认证的流程如下图所示 。
![单向认证 vs. 双向认证](http://img.jiangsulong.com/220504/2024423V2-3.jpg)
文章插图
- 客户端发起 HTTPS 建立连接请求,将客户端支持的 SSL 协议版本号、加密算法种类、生成的随机数等信息发送给服务端 。
- 服务端向客户端返回 SSL 协议版本号、加密算法种类、生成的随机数等信息,以及服务端的证书(server.crt) 。
- 客户端验证证书(server.crt)是否合法,并从此证书中获取服务端的公钥:检查证书是否过期、检查证书是否已经被吊销、检查证书是否可信、检查收到的证书中的域名与请求的域名是否一致 。
- 证书验证通过后,客户端生成一个随机数(密钥 K),作为通信过程中对称加密的密钥,并用服务端证书的公钥进行加密,然后发送给服务端 。
- 服务端收到客户端发送的加密信息后,使用私钥(server.key)进行解密,获取对称加密密钥(密钥 K) 。
双向认证
![单向认证 vs. 双向认证](http://img.jiangsulong.com/220504/2024422060-4.jpg)
文章插图
SSL 双向认证需要验证客户端和服务端的身份 。SSL 双向认证的流程如下图所示 。
![单向认证 vs. 双向认证](http://img.jiangsulong.com/220504/2024423F6-5.jpg)
文章插图
- 客户端发起 HTTPS 建立连接请求,将客户端支持的 SSL 协议版本号、加密算法种类、生成的随机数等信息发送给服务端 。
- 服务端向客户端返回 SSL 协议版本号、加密算法种类、生成的随机数等信息,以及服务端的证书(server.crt) 。
- 客户端验证证书(server.crt)是否合法,并从此证书中获取服务端的公钥:检查证书是否过期、检查证书是否已经被吊销、检查证书是否可信、检查收到的证书中的域名与请求的域名是否一致 。
- 服务端要求客户端发送客户端的证书(client.crt),客户端将自己的证书发送至服务端 。
- 服务端验证客户端的证书(client.crt),验证通过后,服务端使用根证书(root.crt)解密客户端证书,然后获取客户端的公钥 。
- 客户端向服务端发送自己所支持的对称加密方案 。
- 服务端从客户端发送过来的对称加密方案中,选择加密程度最高的加密方式,并使用客户端公钥加密后,返回给客户端 。
- 客户端使用客户端的私钥(client.key)解密加密方案,并生成一个随机数(密钥 K),作为通信过程中对称加密的密钥,然后使用服务端证书的公钥进行加密后再发送给服务端 。
推荐阅读
- Nginx vs. HAProxy
- 王者荣耀如何修改实名认证?
- Adobe国际认证:发布 Adob??e Photoshop全部教程目录
- 不用实名认证的游戏有哪些?
- Adobe国际认证-进入 2022 年,创意人士渴望得到什么?
- 新浪微博|比尔盖茨微博认证账号IP属地显示河南:网友一脸问号
- 科普|芥末VS.辣椒:为什么芥末的辣味更让人上头?很神奇
- 普洱茶饼茶八病,普洱茶饼的第一饼电子身份认证
- 密码应用系列之Kerberos身份认证协议
- 索尼|唯一4K骁龙8旗舰!索尼Xperia 1 IV获CF手游赛事用机认证:5月11日发布