logologo

23 | HTTPS是什么?SSL/TLS又是什么?

Nov 3 · 10min

归纳

  1. 因为 HTTP 是明文传输,所以不安全,容易被黑客窃听或篡改;
  2. 通信安全必须同时具备机密性、完整性、身份认证和不可否认这四个特性;
  3. HTTPS 的语法、语义仍然是 HTTP,但把下层的协议由 TCP/IP 换成了 SSL/TLS;
  4. SSL/TLS 是信息安全领域中的权威标准,采用多种先进的加密技术保证通信安全;OpenSSL 是著名的开源密码学工具包,是 SSL/TLS 的具体实现。

为什么要有https

  1. http天生明文传输,容易被篡改,不安全

什么是安全的

通常认为,如果通信过程具备了四个特性,就可以认为是“安全”的,这四个特性是:机密性、完整性,身份认证和不可否认。

  1. 机密性:只能对可信的人可见,对别人是不可见的
  2. 完整性:在传输过程中,保证没有被篡改过
  3. 身份认证:证明你真的是你
  4. 不可否认:不能否认已经发生过的事情

什么是https

  1. 新的协议:https
  2. 新的端口号:443
  3. https = http + SSL/TLS

SSL/TLS

SSL 即安全套接层(Secure Sockets Layer),在 OSI 模型中处于第 5 层(会话层),由网景公司于 1994 年发明,有 v2 和 v3 两个版本,而 v1 因为有严重的缺陷从未公开过。

TLS 由记录协议、握手协议、警告协议、变更密码规范协议、扩展协议等几个子协议组成,综合使用了对称加密、非对称加密、身份认证等许多密码学前沿技术

浏览器和服务器在使用 TLS 建立连接时需要选择一组恰当的加密算法来实现安全通信,这些算法的组合被称为“密码套件”(cipher suite,也叫加密套件)。

TLS使用的密码套件

其实 TLS 的密码套件命名非常规范,格式很固定。基本的形式是“密钥交换算法 + 签名算法 + 对称加密算法 + 摘要算法”

ECDHE-RSA-AES256-GCM-SHA384

握手时使用 ECDHE 算法进行密钥交换,用 RSA 签名和身份认证,握手后的通信使用 AES 对称算法,密钥长度 256 位,分组模式是 GCM,摘要算法 SHA384 用于消息认证和产生随机数。”

CC BY-NC-SA 4.0 2021 © Promise L