HTTPS为什么会出现


https解决了什么

由于 HTTP 天生​​明文传输​​​的特性,在 HTTP 的传输过程中,任何人都有可能从中​​截获、修改或者伪造​​​请求发送,所以可以认为 HTTP 是不安全的;在 HTTP 的传输过程中不会验证通信方的身份,因此 HTTP 信息交换的双方可能会遭到伪装,也就是​​没有用户验证​​​;在 HTTP 的传输过程中,接收方和发送方并​​不会验证报文的完整性​​,综上,为了结局上述问题,HTTPS 应用而生。

什么是HTTPS

HTTP:​​超文本传输协议(Hypertext Transfer Protocol)​​​协议,它是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。
HTTPS 的全称是​​​Hypertext Transfer Protocol Secure​​​,它用来在计算机网络上的两个端系统之间进行​​安全的交换信息(secure communication)​​​,它相当于在 HTTP 的基础上加了一个​​Secure 安全​​​的词眼,那么我们可以给出一个 HTTPS 的定义:​​HTTPS 是一个在计算机世界里专门在两点之间安全的传输文字、图片、音频、视频等超文本数据的约定和规范​​​。 HTTPS 是 HTTP 协议的一种扩展,它本身并不保传输的证安全性,那么谁来保证安全性呢?在 HTTPS 中,使用​​传输层安全性(TLS)​​​或​​安全套接字层(SSL)​​对通信协议进行加密。也就是 HTTP + SSL(TLS) = HTTPS。

HTTPS做了什么

HTTPS 协议提供了三个关键的指标:

  • ​加密(Encryption)​​, HTTPS 通过对数据加密来使其免受窃听者对数据的监听,这就意味着当用户在浏览网站时,没有人能够监听他和网站之间的信息交换,或者跟踪用户的活动,访问记录等,从而窃取用户信息。
  • ​数据一致性(Data integrity)​​​,数据在传输的过程中不会被窃听者所修改,用户发送的数据会​​完整​​的传输到服务端,保证用户发的是什么,服务器接收的就是什么。
  • ​身份认证(Authentication)​​​,是指确认对方的真实身份,也就是​​证明你是你​​(可以比作人脸识别),它可以防止中间人攻击并建立用户信任。

HTTPS 协议其实非常简单,RFC 文档很小,只有短短的 7 页,里面规定了新的协议名,默认​​端口号443​​​,至于其他的​​应答模式、报文结构、请求方法、URI、头字段、连接管理​​等等都完全沿用 HTTP,没有任何新的东西。

什么是SSL/TLS


认识SSL/TLS

SSL即​​安全套接字层​​​,它在OSI七层网络模型中处于第五层,SSL 在 1999 年被 IETF(互联网工程组)更名为 TLS ,即​​传输安全层​​​,直到现在,TLS 一共出现过三个版本,1.1、1.2 和 1.3 ,目前最广泛使用的是 1.2,所以接下来的探讨都是基于 TLS 1.2 的版本上的。
TLS 用于两个通信应用程序之间提供保密性和数据完整性。TLS 由​​​记录协议、握手协议、警告协议、变更密码规范协议、扩展协议​​​等几个子协议组成,综合使用了​​对称加密、非对称加密、身份认证​​等许多密码学前沿技术(如果你觉得一项技术很简单,那你只是没有学到位,任何技术都是有美感的,牛逼的人只是欣赏,并不是贬低)。