互联网科技技术文程序员

HTTPS基础

2016-07-04  本文已影响192人  李冬冬

HTTPS是在HTTP和TCP之间添加了安全传输层,目前使用TLS作为安全传输层

HTTPS需要解决的问题

HTTPS提供的解决方案

SSL通信

下图展示SSL通信的简单过程

ssl_shake.png
  1. 客户端发送 Client Hello 报文开始SSL通信。报文中包含客户端支持的SSL的指定版本,加密组件列表
  2. 服务器可进行SSL通信时,会以 Server Hello 报文作为应答。和客户端一致,在报文中包含SSL版本以及加密组件。服务器的加密组件是从接收到的客户端加密组件中筛选出来的
  3. 之后服务器发送 Certificate 报文。报文中包含公开密钥证书
  4. 最后服务器发送 Server Hello Done 报文通知客户端,最初阶段的SSL握手协商结束
  5. SSL第一次握手结束之后,客户端以 Client Key Exchange 报文作为回应。报文中包含通信加密中使用的一种被称为 Pre-master secret 的随机密码串。该报文已用步骤3中的公开密钥进行加密
  6. 接着客户端继续发送 Change Cipher Spec 报文。该报文会提示服务器,在报文结束后的通信会采用 Pre-master secret 密钥加密
  7. 客户端发送 Finished 报文。该报文包含连接至今全部报文的整体校验值。这次握手协商是否能够成功,要以服务器是否能够正确解密该报文作为判定标准
  8. 服务器同样发送 Change Cipher Spec 报文
  9. 服务器同样发送 Finished 报文
  10. 服务器和客户端的 Finished 报文交换完毕之后,SSL连接就算建立完成,通信会受到SSL的保护
  11. 应用层协议通信,客户端发送HTTP请求,服务器发送HTTP应答
  12. 客户端断开连接。断开连接时,发送 close_notify 报文

参考资料

  1. HTTP权威指南
  2. 图解HTTP
上一篇 下一篇

猜你喜欢

热点阅读