睿诚科技协会

SSL协议具体用了哪些加密技术?

对称加密、非对称加密、哈希算法密钥交换算法,下面我将详细解释每一种技术及其在 SSL/TLS 中的作用。

SSL协议具体用了哪些加密技术?-图1
(图片来源网络,侵删)

对称加密

这是 SSL/TLS 中用于实际数据加密的核心技术。

  • 工作原理:通信双方共享同一个密钥,使用这个密钥进行加密和解密,加解密速度快,效率高,适合加密大量数据。
  • 在 SSL/TLS 中的作用
    1. 在完成“握手”过程并建立安全通道后,所有传输的应用层数据(如网页内容、图片、API 响应等)都使用对称加密进行加密。
    2. 这保证了数据的机密性,即使数据包被截获,攻击者没有密钥也无法解密内容。
  • 常见算法
    • AES (Advanced Encryption Standard):目前最主流、最安全的对称加密算法,是 TLS 1.2 和 1.3 中的首选。
    • 3DES (Triple DES):一种较老的算法,因其安全性漏洞和性能问题,在 TLS 1.2 中已被弃用,TLS 1.3 中完全移除。
    • ChaCha20:一种较新的流加密算法,在某些场景下(尤其是在移动设备上)性能优于 AES,也受到 TLS 1.3 的青睐。

核心问题:最大的挑战是密钥分发,如何在通信开始前,安全地将这个共享密钥交给对方?这就需要非对称加密技术。


非对称加密

非对称加密解决了对称加密的密钥分发难题,主要用于身份验证安全地交换对称密钥

  • 工作原理:它使用一对密钥:公钥私钥
    • 公钥:可以自由分发,用于加密数据或验证签名。
    • 私钥:必须由密钥持有者严格保密,用于解密数据或创建签名。
    • 用公钥加密的数据,只能用对应的私钥解密;反之,用私钥签名的数据,只能用对应的公钥验证。
  • 在 SSL/TLS 中的作用
    1. 身份验证:在 SSL 握手过程中,服务器会将其数字证书(其中包含服务器的公钥)发送给客户端,客户端用预置的信任根证书的公钥来验证这个服务器证书的真伪,这确保了你正在和声称的那个服务器通信,而不是一个冒名顶替的中间人,这保证了身份的真实性
    2. 密钥交换:客户端生成一个“预主密钥”(Pre-Master Secret),然后使用服务器证书中的公钥对其进行加密,再发送给服务器,由于只有服务器拥有对应的私钥,所以只有服务器能解开这个加密信息,从而安全地得到了这个预主密钥,双方再基于这个预主密钥计算出最终的对称会话密钥,这保证了密钥交换的安全性
  • 常见算法
    • RSA:最经典和广泛使用的非对称加密算法,用于加密和签名验证。
    • ECDSA (Elliptic Curve Digital Signature Algorithm):基于椭圆曲线的数字签名算法,与 RSA 相比,在提供相同安全级别的情况下,密钥更短,计算和通信开销更小,性能更好,是 TLS 1.3 中的首选签名算法。
    • Diffie-Hellman (DH):一种专门用于密钥交换的算法,允许双方在不安全的通道上协商出一个共享的密钥,而无需预先交换任何秘密信息,TLS 1.3 中的 (EC)DHE 密钥交换算法就是其演进版。

哈希算法

哈希算法确保了数据的完整性不可篡改性

SSL协议具体用了哪些加密技术?-图2
(图片来源网络,侵删)
  • 工作原理:将任意长度的输入数据(“消息”)转换成一个固定长度的、唯一的字符串(“哈希值”或“),好的哈希算法具有单向性(无法从哈希值反推原文)和抗碰撞性(极难找到两个不同的原文产生相同的哈希值)。
  • 在 SSL/TLS 中的作用
    1. 数据完整性校验:在握手阶段和后续的数据传输中,发送方会对传输的数据块进行哈希计算,然后将哈希值(作为“消息认证码”MAC 的一部分)一起发送,接收方收到数据后,用同样的哈希算法计算一次,并与收到的哈希值比对,如果一致,说明数据在传输过程中没有被篡改;如果不一致,则说明数据已被损坏或被恶意修改,这保证了数据的完整性
    2. 数字签名:在创建数字签名时,服务器并不是直接对证书内容进行加密,而是先对证书内容进行哈希计算,得到一个摘要,然后用服务器的私钥对这个摘要进行加密,客户端收到后,用服务器的公钥解密出摘要,再自己对证书内容做一次哈希,比对两个摘要是否一致,这比直接加密整个证书更高效。
  • 常见算法
    • SHA-2 (Secure Hash Algorithm 2):包括 SHA-256, SHA-384 等,是目前最安全、最常用的哈希算法,是 TLS 1.2 和 1.3 的基础。
    • MD5SHA-1:已被证明存在严重漏洞,容易发生碰撞,在 SSL/TLS 中被完全弃用。

密钥交换算法

这是 SSL/TLS 握手阶段的“明星”,它巧妙地结合了对称和非对称加密的优点,实现了安全高效的密钥协商。

  • 工作原理:其核心思想是:使用非对称加密来安全地协商一个只有双方知道的临时对称密钥(会话密钥),后续的数据通信则使用这个高效的对称密钥。
  • 在 SSL/TLS 中的作用:它的主要任务是生成双方共享的“预主密钥”或“共享密钥”,并确保这个密钥的生成过程是“前向保密”的。
  • 常见算法
    • RSA 密钥交换:一种较老的、不提供前向保密的方式,客户端用服务器的公钥加密一个随机数(预主密钥)发送过去,如果服务器的私钥在未来某天泄露,攻击者可以解密历史记录,计算出会话密钥。
    • DHE (Diffie-Hellman Ephemeral) / ECDHE (Elliptic Curve Diffie-Hellman Ephemeral)这是现代 TLS 1.3 的核心和推荐算法
      • Ephemeral (临时/短暂):意味着每次握手都会生成一对新的临时的公私钥对,用完即弃。
      • 前向保密:这是它最大的优势,因为每次会话的密钥都是独立的、临时的,即使服务器的长期私钥泄露,攻击者也无法解密过去任何一次会话的通信内容,因为那些临时密钥早已被丢弃。
      • 工作流程:双方各自生成一个临时的私钥,并交换对应的公钥,双方利用自己的私钥和对方的公钥,通过数学计算,各自独立地、但得到完全相同的一个共享密钥,整个过程不需要传输任何秘密信息。

总结与演变

技术类别 作用 常见算法 (TLS 1.2) 常见算法 (TLS 1.3)
对称加密 加密传输的应用数据 AES, 3DES, ChaCha20 AES, ChaCha20 (3DES 已移除)
非对称加密 身份验证、数字签名 RSA, ECDSA ECDSA (RSA 作为备选,但推荐 ECDSA)
哈希算法 确保数据完整性、创建数字签名 MD5, SHA-1, SHA-256 SHA-256, SHA-384 (MD5, SHA-1 已移除)
密钥交换 安全协商对称会话密钥 RSA, DHE, ECDHE 仅支持 (EC)DHE (移除了不安全的 RSA 密钥交换)

SSL/TLS 协议的演变趋势非常清晰:

  1. 淘汰不安全的算法:持续移除已被证明存在漏洞的旧算法(如 3DES, MD5, SHA-1, RSA 密钥交换)。
  2. 拥抱高性能和高安全性:优先选择性能更好、安全性更高的现代算法,如 AES, ChaCha20, ECDSA, ECDHE
  3. 强制前向保密:在 TLS 1.3 中,前向保密 已成为强制要求,极大地提升了长期安全性。

SSL/TLS 就像一个精密的安全工具箱,从里面挑选最合适的工具(加密算法),按照正确的顺序(握手流程),组合使用,以实现机密性、完整性、身份认证和前向保密这四大核心安全目标。

SSL协议具体用了哪些加密技术?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇