跳到主要内容

认识

2024年04月07日
柏拉文
越努力,越幸运

一、认识


Preview

HTTP 是超文本传输协议, 通信端口为 80, 通信过程为 DNS 解析 -> TCP 连接 -> 传输数据, 中间没有任何安全传输相关的模块。HTTPS 是超文本传输安全协议, 通信端口为 443, 通信过程为 DNS 解析 -> TCP 连接 -> SSL / TLS 连接 -> 传输数据, TLS 相对于 SSL 更安全。其作用为: 对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全、对网站服务器进行真实身份认证

https 通过数字证书验证服务器是否为信任的服务器, 采用非对称加密的方式交换密钥,然后使用对称加密的方式对数据进行加密,并且对消息的内容采用摘要算法得到消息摘要,这样对端在解密数据后可以通过相同的消息摘要算法对计算后的消息摘要和传过来的消息摘要进行对比,从而判断数据是否经过篡改。

1.1 SSL

Preview

如图,TLSSSL 的升级版,而且 TLS1.2 版本以下都已废弃,目前主要用的是**TLS 1.2** 和 TLS 1.3。而 OpenSSL 则是开源版本的

浏览器和服务器通信之前,会先协商,选出他们都支持的加密套件,用于实现安全的通信。加密套件的命名格式为:

Preview

如最后一个组合,意味着:

  • ECDHE: 握手时,使用ECDHE算法交换密钥;

  • ECDSA: 使用ECDSA算法进行签名;

  • AES128-GCM: 使用AES256对称加密算法进行通信,密钥长度128,分组模式GCM

  • SHA256: 使用SHA256算法进行消息的完整性验证和产生随机数。

1.2 TLS

Preview

如图,TLSSSL 的升级版,而且 TLS1.2 版本以下都已废弃,目前主要用的是**TLS 1.2** 和 TLS 1.3。而 OpenSSL 则是开源版本的

浏览器和服务器通信之前,会先协商,选出他们都支持的加密套件,用于实现安全的通信。加密套件的命名格式为:

Preview

如最后一个组合,意味着:

  • ECDHE: 握手时,使用ECDHE算法交换密钥;

  • ECDSA: 使用ECDSA算法进行签名;

  • AES128-GCM: 使用AES256对称加密算法进行通信,密钥长度128,分组模式GCM

  • SHA256: 使用SHA256算法进行消息的完整性验证和产生随机数。

二、特点


2.1 优点

  • 内容加密,中间无法查看原始内容

  • 身份认证,保证用户访问正确。如访问百度,即使DNS被劫持到第三方站点,也会提醒用户没有访问百度服务,可能被劫持

  • 数据完整性,防止内容被第三方冒充或篡改

  • 虽然不是绝对安全,但是现行架构下最安全的解决文案了,大大增加了中间人的攻击成本

2.2 缺点

  • 要钱,功能越强大的证书费用越贵

  • 证书需要绑定IP,不能在同一个IP上绑定多个域名

  • https双方加解密,耗费更多服务器资源

  • https握手更耗时,降低一定用户访问速度(优化好就不是缺点了)

三、问题


3.1 HTTP 与 HTTPS 的区别

HTTP 是超文本传输协议, 通信端口为 80, 通信过程为 DNS 解析 -> TCP 连接 -> 传输数据, 中间没有任何安全传输相关的模块。HTTPS 是超文本传输安全协议, 通信端口为 443, 通信过程为 DNS 解析 -> TCP 连接 -> SSL / TLS 连接 -> 传输数据, TLS 相对于 SSL 更安全。其作用为: 对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全、对网站服务器进行真实身份认证

参考资料


(建议精读)HTTP灵魂之问,巩固你的 HTTP 知识体系

HTTPS:网络安全攻坚战 | SSL,TLS,CA,RSA,ECDHE