联想|深入理解https进行SSL单向认证的全过程

联想|深入理解https进行SSL单向认证的全过程

文章图片



HTTPS是如何进行SSL单向认证的?带着这个问题我们来了解HTTPS原理:
HTTPS是工作于SSL层之上的HTTP协议 , SSL(安全套接层)工作于TCP层之上 , 向应用层提供了两个基本安全服务:认证和保密 。 SSL有三个子协议:握手协议 , 记录协议和警报协议 。 其中握手协议实现服务器与客户端的认证与密钥交换 , 记录协议进行数据加密并保证数据的完整性 , 警报协议则规定了错误类型和处理机制 。

客户端通信过程
1.客户端向服务器请求HTTPS连接
2.服务器确认并返回证书(证书含有公钥)
【联想|深入理解https进行SSL单向认证的全过程】3.客户端验证服务器发来的证书
4.确认成功 , 生成随机密钥A用公钥进行加密后发给服务器
5.服务器用私钥解密出随机密钥A并发出确认 , 握手完成
使用握手时协商好的共享密钥进行保密通信
使用握手时协商好的共享密钥进行保密通信
单向认证 SSL 协议不需要客户拥有CA证书 。 双方具体的通讯内容 , 是加过密的数据 , 如果有第三方攻击 , 获得的只是加密的数据 , 第三方要获得有用的信息 , 就需要对加密的数据进行解密 , 这时候的安全就依赖于密码方案的安全 。 而幸运的是 , 目前所用的密码方案 , 只要通讯密钥长度足够的长 , 就足够的安全 。 这也是我们强调要求使用128位加密通讯的原因 。
一般Web应用都是采用SSL单向认证的 , 原因很简单 , 用户数目广泛 , 且无需在通讯层对用户身份进行验证 , 一般都在应用逻辑层来保证用户的合法登入 。 但如果是企业应用对接 , 情况就不一样 , 可能会要求对客户端(相对而言)做身份验证 。 这时就需要做SSL双向认证 。