◆

HTTPS 原理详解:对称、非对称与混合加密

2023-02-14 01:530

HTTP 的问题

HTTP 本身没有任何保密性,所以 HTTP 传输的数据相当于都是在网上在以明文的方式裸奔,例如抓包工具。为了解决这个问题,出现了各种加密技术:

  • 对称加密:唯一密钥 key1 可用来加密也可用来解密。这样的加密需要双方都拥有密钥 key1,如果第一次传输密钥被第三方截获就玩完。
  • 非对称加密:公钥 key 和私钥 key 都可用于对应的加密和解密,即可用公钥加密私钥解密,也可用私钥加密公钥解密。服务端会生成一对密钥,一个私钥保存在服务端,仅自己知道,另一个是公钥,公钥可以自由发布供任何人使用。客户端的明文通过公钥加密后的密文需要用私钥解密。非对称密钥在加密和解密的过程的使用的密钥是不同的密钥,加密和解密是不对称的,所以称之为非对称加密。与对称密钥加密相比,非对称加密无需在客户端和服务端之间共享密钥,只要私钥不发给任何用户,即使公钥在网上被截获,也无法被解密,仅有被窃取的公钥是没有任何用处的。
  • 混合加密:服务端先用非对称加密的私钥 key2 加密对称加密的密钥 key1 并传给客户端,客户端用非对称加密的公钥 key3 解密出对称加密的密钥 key1,双方都有了密钥 key1,开始利用 key1 加密通信。缺点:中间人可以自己生成非对称加密公钥替换掉服务端公钥发送给客户端,而此时客户端并无法验证公钥的可信性。
  • SSL:首先需要从证书认证机构申请证书(证书中含有证书签名和服务端公钥 key3)。在客户端发起 HTTP 请求时,服务端将证书发送给客户端。客户端认证证书的真伪,然后解密出服务端公钥 key3,用公钥加密自己生成的对称加密密钥 key1 并传给服务端,最后利用 key1 加密进行通话。至于安全性,由于私钥是机构的,可以避免第三方伪造证书。并且就算得到了服务端公钥,也无法解密出公钥 key3 加密过的对称加密密钥 key1。

HTTPS

HTTPS 基于 HTTP 协议,通过 SSL 或 TLS(可以看作 SSL3.0)提供加密处理数据、验证对方身份以及数据完整性保护。特点如下:

  • 内容加密:采用混合加密技术,中间者无法直接查看明文内容
  • 验证身份:通过证书认证客户端访问的是自己的服务器
  • 保护数据完整性:防止传输的内容被中间人冒充或者篡改

HTTPS 和 HTTP 的区别主要如下

  • HTTPS 协议需要到 CA(证书颁发机构)申请证书,一般免费证书很少,需要交费。
  • HTTP 协议运行在 TCP 之上,所有传输的内容都是明文,HTTPS 运行在 SSL/TLS 之上,SSL/TLS 运行在 TCP 之上,所有传输的内容都经过加密的。
  • HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。
  • HTTP 的连接很简单,是无状态的;HTTPS 协议是由 HTTP+SSL 协议构建的可进行加密传输、身份认证的网络协议,可以有效的防止运营商劫持,解决了防劫持的一个大问题,比 http 协议安全。
💬留言板0

还没有留言,来发表第一条吧~

PAGE LOAD / LIVEHTTPS 原理详解:对称、非对称与混合加密加载中