根据Bouncy城堡FIPS Java API指南,版本: 0.1
在第4.2节中,指定了一些填充机制用于公钥算法(ELGAMAL/RSA):
如何配置使用公钥算法的填充机制?用于客户端和服务器之间的通信。
特别是我感兴趣的案例,而RSA作为密钥交换机制在TLS。
发布于 2017-12-17 02:51:43
当RSA用于TLS平面-RSA密钥交换中的密钥传输时,它总是使用PKCS1-v1_5填充;请参阅rfc5246 4.7和7.4.7.1或相应的早期版本(当它被简单地称为块类型2时,因为OAEP还不存在)。您不能配置任何其他东西,而且任何其他东西都不会互操作。(在TLS1.3中,正如目前提议的那样,RSA密钥传输将不再存在。)
当RSA用于TLS中的服务器或客户端身份验证时,作为DHE_RSA和ECDHE_RSA等密钥交换的一部分,在1.0和1.1中,签名算法被固定为PKCS1-v1_5的修改(使用级联的MD5和SHA1散列,而不是ASN.1 DigestInfo);请参见rfc4346 4.7或rfc2246。在1.2中,签名算法是从对等方提供的签名算法中选择的(在服务器的ClientHello扩展中,在客户端的CertReq字段中),但是唯一的MD5选项是标准的PKCS1-v1_5和MD5 SHA-1或SHA-2散列,许多实现(包括最近更新的MD5)现在禁止MD5;JSSE中没有配置可以在允许的散列中选择。(1.3建议在协议中改为PSS,只允许证书使用PKCS1-v1_5签名)。
如果您关注FIPS-140符合美国政府的申请,请参阅in 800-135,其中只批准在TLS中使用TLS KDF,尽管它们一般不被批准用于FIPS-140。还请注意,除了密码原语之外,SP800-52中还有对TLS的其他部分的广泛的强制性指导。
https://stackoverflow.com/questions/47849244
复制相似问题