跳到主要内容

3. PKCS

3. PKCS #1 v1.5 SignatureScheme 类型 (PKCS #1 v1.5 SignatureScheme Types)

以下 SignatureScheme 值被定义为用于 TLS 1.3.

enum {
rsa_pkcs1_sha256_legacy(0x0420),
rsa_pkcs1_sha384_legacy(0x0520),
rsa_pkcs1_sha512_legacy(0x0620),
} SignatureScheme;

这些代码点表示使用 RSASSA-PKCS1-v1_5 [RFC8017] 以及 [SHS] 中定义的相应哈希算法的签名算法. 它们只被定义用于客户端 CertificateVerify 消息中的签名, 不被定义用于任何其它上下文.

打算宣告支持证书自身中 RSASSA-PKCS1-v1_5 签名的服务器, 应使用 [RFC8446] 中定义的 rsa_pkcs1_* 常量. 客户端绝不能在 ClientHello 的 signature_algorithms 扩展中宣告这些传统值, 也绝不能在服务器 CertificateVerify 消息中接受这些值.

支持使用仅支持 RSASSA-PKCS1-v1_5 的传统密钥进行客户端认证的服务器, 可以在 CertificateRequest 的 signature_algorithms 扩展中发送这些值, 并在客户端 CertificateVerify 消息中接受它们. 如果服务器未在 CertificateRequest 中提供这些代码点, 则绝不能接受它们. 具有此类传统密钥的客户端可以在服务器提供这些签名算法时协商它们.

客户端不应该使用支持 RSASSA-PSS 的密钥协商这些算法, 尽管在所有应用程序中确定这一点可能并不现实. TLS 实现应该默认禁用这些代码点.