HTTPS基础

作者: 李冬冬 | 来源:发表于2016-07-04 11:15 被阅读192次

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

HTTPS需要解决的问题

  • 服务器认证(客户端知道他们是在与真正的而不是伪造的服务器通话)
  • 客户端认证(服务器知道他们是在与真正的而不是伪造的客户端通话)
  • 完整性(客户端和服务器的数据不会被修改,中间人攻击,简单的方法是提供传输数据的md5,但是md5依旧可以被重新计算)
  • 加密(客户端和服务器的对话是私密的,无需担心被窃听)
  • 效率(一个足够快的算法,以便低端的客户端和服务器使用)
  • 普适性(基本上所有的客户端和服务器都支持这些协议)
  • 管理的可扩展性(在任何地方的任何人都可以立即进行安全通信)
  • 适应性(能够支持当前最知名的安全方法)
  • 在社会上的可行性(满足社会的政治文化需要)

HTTPS提供的解决方案

  • 通过可证明组织真实性的 EV SSL证书 可以证明服务器是否规范
  • 使用客户端证书确认客户端
  • 应用层在发送数据时通过附加MAC(Message Authentication Code)的报文摘要来保证数据完整性
  • HTTPS采用共享密钥加密和公开密钥加密两者并用的混合加密机制,若密钥能够实现安全转换,那么有可能会考虑仅使用公开密钥来通信。但是公开密钥加密和共享密钥加密相比,其处理速度要慢。可以通过公开密钥建立一个安全的通信,然后传递共享密钥,降低资源的消耗。
  • HTTPS在传输的时候需要进行SSL通信会增加网络负载,同时数据的加密和解密也会增加CPU和内存的消耗,因此HTTPS会比HTTP效率低

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

相关文章

  • HTTPS基础

    本章是HTTPS那些事儿的第一篇文章,其他相关文章请参见:前言本篇主要讲解Https的基础知识,涉及到以下几点: ...

  • HTTPS基础

    HTTPS是在HTTP和TCP之间添加了安全传输层,目前使用TLS作为安全传输层 HTTPS需要解决的问题 服务器...

  • Https基础

    关键词说明 HttpsHypertext Transfer Protocol over Secure Socket...

  • https之一 https基础

    1、http的缺点 HTTP 协议采用明文传输信息,存在信息窃听、信息篡改和信息劫持的风险。 通信的明文有可能被窃...

  • HTTPS 基础原理

    写在前面 现在的互联网金融市场火爆异常,人人想分一杯羹,黑帽子对互联网金融公司也非常热衷,公司的服务器近段时间遭遇...

  • HTTPS基础原理

    前言:前段时间被问到HTTPS的相关问题,由于离看相关问题的时间很久了再加上自己也没有实践过,很多点没有说出来,因...

  • HTTPS基础讲解

    1 HTTPS 点击了解HTTP基础知识[https://jingzh.blog.csdn.net/article...

  • HTTPS基础知识

    HTTPS是安全超文本传输协议,是一个安全通信通道,它基于HTTP开发用于在客户计算机和服务器之间交换信息。它使用...

  • HTTPS基础知识

    HTTPS基础知识:HTTPS (Secure Hypertext Transfer Protocol)安全超文本...

  • HTTPS基础知识

    HTTPS基础知识:HTTPS (Secure Hypertext Transfer Protocol)安全超文本...

网友评论

    本文标题:HTTPS基础

    本文链接:https://www.haomeiwen.com/subject/wubcjttx.html