一、SSL协议简介
- 随着网络通信和电子商务等服务和资源进入人们的日常生活,人们在享受网络带来的便利的同时,面临着各种各样的安全隐患。
- 我们经常接触到的就有邮箱登录,网上购物,电子银行等等,大部分均基于 HTTP 协议。
- 但HTTP[RFC2616]最初应用于INTERNET时没有使用密码,安全性很低,因此随着人们对安全性需求的提高,为用户提供面向通道安全的HTTPS协议应运而生。
- HTTPS中的S即为SSL(Secure Sockets Layer)协议。
- HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是HTTP的安全版,其采用的协议即为SSL协议。
- HTTPS默认使用TCP端口443,也可以指定其他的TCP端口。URI格式为https//:URL,例如:https://twitter.com/。
- SSL协议可实现以下三个功能:
1)实现强制的服务器认证和可选的客户端认证。
2)保证传输数据的保密性
3)保证传输数据的完整性
二、SSL协议工作流程
SSL 握手协议是SSL协议中最重要同时也是最复杂的协议。SSL 握手协议主要负责算法协商、身份验证和确定密钥。
SSL握手过程分为四种:
- Full Handshake : 全流程握手,C/S双方从无到有建立SSL连接;
- Resume session Handshake : C/S双方曾经建立过连接,但中途断了,SSL会话信息还有保留,只需要执行部分握手流程就可建立SSL连接;
- Server Re-negotiation Handshake : 已经建立了SSL连接,但server端为了某些原因(比如安全性)要求重新对密钥进行协商,也只需要执行部分握手流程;
- Client Re-negotiation Handshake : 已经建立SSL连接,但client端为了某些原因要求重新协商,只需执行部分握手流程。