【发布时间】:2015-11-09 02:40:08
【问题描述】:
我需要通过 RSA 解密消息以便通过不安全的通道发送它,但我害怕 Padding Oracle Attack。因此,我已经问了以下问题:
- How to verify the integrity of RSA encrypted messages?
- How to ensure message integrity for RSA ciphers by using javax.crypto.Cipher
就像第一个问题中建议的那样,
但是,由于您使用的是高级加密库,因此您不必担心这一点。该库的作者应该照顾它。
我不应该考虑。据我所知,PKCS#1 v1.5 的 RSA 实现容易受到Padding Oracale Attack 的影响,而OAEP 则不是(假设它实现正确)
因此我想知道 Java 7 中 javax.crypt.Cipher 使用了哪个填充实现
【问题讨论】:
-
这取决于提供者,但很可能是 PKCS1Padding(PKCS#1 v1.5 填充)。为了澄清,你问的是当你没有像
Cipher.getInstance("RSA")那样完全限定密码时使用什么填充? -
@ArtjomB 是的,完全正确。但如果更安全的话,我会使用像 BouncyCastle 这样的不同的。
-
如果你想要一个特定的填充方案,你应该指定它,而不是依赖默认值,尤其是当你不知道它是什么时。
标签: java security cryptography rsa padding-oracle-attack