第 3 章 支持的标准和协议
Red Hat Certificate System 基于许多公共和标准协议和 RFC,以确保实现最佳性能和互操作性。本章介绍了证书系统 {VER} 使用或支持的主要标准和协议,以帮助管理员有效地规划其客户端服务。
3.1. TLS、ECC 和 RSA
传输层安全性(TLS)协议是客户端和服务器之间验证和加密的通信的通用标准。客户端和服务器身份验证都通过 TLS 进行。
TLS 使用公钥和对称密钥加密的组合。对称密钥加密比公钥加密快得多,但公钥加密提供了更好的身份验证技术。TLS 会话始终从名为 握手、服务器和客户端之间的初始通信交换开始。握手允许服务器使用公钥技术向客户端进行身份验证(可选)允许客户端向服务器进行身份验证,然后允许客户端和服务器在创建用于快速加密、解密和完整性的会话期间创建用于快速加密、解密和完整性验证的对称密钥。
TLS 支持各种不同的加密算法 或密码,用于验证服务器和客户端、传输证书和建立会话密钥等操作。客户端和服务器可能支持不同的密码套件或一组密码。在其他功能中,握手还决定服务器和客户端如何协商使用哪些密码套件相互验证、传输证书并建立会话密钥。
密钥交换算法(如 RSA 和 Elliptic Curve Diffie-Hellman (ECDH))管理服务器和客户端在 TLS 会话中使用的对称密钥的方式。TLS 支持 ECC (Elliptic Curve Curve Cryptography)密码套件和 RSA。证书系统原生支持 RSA 和 ECC 公钥加密系统。
在最近,密钥交换算法被密钥交换 协议 取代,其中两个或更多方在建立用于安全通信的通用密钥时,这两个或多个方都可以影响结果。密钥协议优先于密钥交换,因为它允许实施 Perfect Forward Secrecy (PFS)。当使用 PFS 时,随机公钥(也称为临时密码参数或临时 密钥)会根据密钥协议的非确定算法为每个会话生成。因此,没有单个 secret 值可能会导致多个消息受到破坏,从而保护过去和将来的通信。
随着计算功能增加,需要较长的 RSA 密钥来提供安全性。推荐的 RSA 密钥长度为 2048 位。虽然许多服务器继续使用 1024 位密钥,但服务器应至少迁移到 2048 位。对于 64 位机器,请考虑使用更强大的密钥。所有 CA 应该至少使用 2048 位密钥,以及更强大的密钥(如 3072 或 4096 位)。
3.1.1. 支持的密码套件
密码和哈希算法与各种漏洞和安全强度一致。作为一般规则,红帽认证系统遵循 NIST 指南,并支持与服务器密钥相关的 TLS 1.1 和 TLS 1.2 密码套件。
3.1.2. 推荐的 TLS 密码套件
传输层安全性(TLS)协议是客户端和服务器之间验证和加密的通信的通用标准。Red Hat Certificate System 支持 TLS 1.1 和 1.2。
当服务器充当服务器或客户端时,Red Hat Certificate System 支持以下密码套件:
- ECC* TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- RSA* TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
- 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_RSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384