400-900-6808
登录
当前位置: 首页 > 资讯中心 > 什么是 SSL 密码套件?

什么是 SSL 密码套件?

什么是 SSL 密码套件?

    密码套件是有关如何通过 SSL(安全套接字层)或 TLS(传输层安全性)保护网络的说明集。因此,密码套件提供了有关在使用 HTTPS、FTPS、SMTP 和其他网络协议时如何传输安全数据的基本信息。此信息采用算法和协议的形式,帮助确定 Web 服务器如何保护客户端的 Web 流量。密码套件规定服务器应使用哪种算法来建立安全可靠的连接。但重要的是要记住,密码套件不仅可以确保安全性,还可以确保 HTTPS 连接的兼容性和性能。


密码套件如何工作?

    密码套件在客户端应用程序和服务器通过 SSL/TLS 连接交换信息之前开始发挥作用。正如 JSCAPE 所指出的,客户端应用程序启动所谓的 SSL 握手。该过程的一部分涉及通知服务器它支持哪些密码套件。服务器接收该信息,并将客户端应用程序支持的密码套件与其支持的算法进行比较。如果找到支持的方法的匹配项,服务器将通知客户端应用程序并建立安全连接。如果找不到匹配项,服务器将拒绝连接。

    由于 Web 服务器将最终确定将使用的密码套件,因此请务必优先考虑在服务器上列出的密码套件列表。在下面的部分中,我们将概述构成密码套件的组件算法,以便您可以更好地了解在 Web 服务器上列出的密码的功能。您的选择还可能受到您的用户和他们使用的技术的影响。


密码套件由什么组成?

密钥交换算法

    为了在通过SFTP和HTTPS等不同的安全文件传输协议传输数据时保证数据的机密性,数据必须加密。此过程要求通信双方具有共享密钥,以加密和解密数据。这种类型的加密方案称为对称加密。

    但是,对称加密确实有其弱点。如果攻击者能够获得共享密钥,那么他们可以轻松解密所有数据。因此,该行业开发了密钥交换协议,用于在不安全的网络上安全交换对称密钥。这些协议被称为密钥交换算法,包括 RSA、DH、ECDH 和 ECDHE。


身份验证算法

    为了确保正确和安全地传输数据,Web 服务器需要验证接收数据的用户的身份。通常,此过程涉及用户输入一组凭据,包括用户名和密码。为了促进此身份验证过程,密码套件采用 RSA、DSA 和 ECDSA 等身份验证算法。


批量数据加密

    为了确保数据的安全传输,密码套件附带了批量数据加密算法。AES、3DES 和 CAMELLA 是此类中最常见的一些算法。正如 Microsoft 所指出的,批量加密密钥是通过使用 CryptHashSessionKey 对其中一个 MAC 密钥以及消息内容和其他数据进行哈希处理来生成的。


消息身份验证代码 (MAC) 算法

    消息身份验证代码 (MAC) 算法是与消息内容一起发送的一条信息,用于对消息进行身份验证。发送方和接收方共享一个通用密钥,以便 MAC 算法正常工作。但是这种方法有一个缺点:它无法防止身份验证代码的故意更改。在某些情况下,入侵者可能会更改消息,然后计算新的校验和,并最终将原始校验和替换为新值。普通的循环冗余校验 (CRC) 算法可以提供帮助,但它仅适用于检测消息的随机损坏部分,而不是攻击者的故意更改。此算法的一些最常见示例是 SHA 和 MD5。


密码套件是什么样子的

    综上所述,下面是一个密码套件名称的示例:DHE_RSA_AES256_SHA256。这个特殊的密码套件使用 DHE 作为其密钥交换算法,RSA 作为其身份验证算法,AES256 作为其批量数据加密算法,以及 SHA256 作为其消息身份验证代码 (MAC) 算法。


与 Cipher Suites 相关的弱点

    过去曾出现过几个网络级漏洞。其中包括基于 SSL/TLS 的漏洞,如 Heartbleed 和 POODLE。为了缓解这些漏洞,组织应使用不同版本的可用密码套件或禁止接受易受攻击的套件。例如,要防御 POODLE,需要禁用 SSLv3。禁用密码套件有时会导致兼容性问题,但 JSCAPE 指出,大多数主要的 Web 浏览器都会在基于 SSL/TLS 的漏洞发布后更新其密码套件。因此,组织应建议 Web 用户安装新的软件补丁,以避免兼容性问题。


TLS 1.2 和 TLS 1.3 中支持的密码套件

    TLS 1.2 是采用率最高的 TLS 版本,总共有 37 个密码。但是,并非所有它们都足够安全。因此,推荐的密码套件已缩减为以下内容:


· TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256


· TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384


· TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256


· TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384


· TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256


· TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384


· TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256


· TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384


· TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256


· TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384


· TLS_DHE_RSA_WITH_AES_128_GCM_SHA256


· TLS_DHE_RSA_WITH_AES_256_GCM_SHA384


· TLS_DHE_RSA_WITH_AES_128_CBC_SHA


· TLS_DHE_RSA_WITH_AES_256_CBC_SHA


· TLS_DHE_RSA_WITH_AES_128_CBC_SHA256


· TLS_DHE_RSA_WITH_AES_256_CBC_SHA256


· TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256


· TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305


· TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256


· TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305


    TLS 1.3 的开发是为了解决 TLS 1.2 最重要的缺点之一:处理 SSL/TLS 握手所花费的时间。TLS 1.3 消除了 RSA 算法,该算法使用大型加密密钥来加密和解密数据。因此,SSL 密码套件不再列出证书类型(RSA 或 ECDSA)和密钥交换机制(DHE 或 ECDHE)。这大大减少了 TLS 1.3 的 SSL 密码套件列表,现在有五个推荐的 SSL 密码套件:


· TLS_AES_256_GCM_SHA384


· TLS_CHACHA20_POLY1305_SHA256


· TLS_AES_128_GCM_SHA256


· TLS_AES_128_CCM_8_SHA256


· TLS_AES_128_CCM_SHA256