2016-09-28 49 views
0

应选择哪些EC密码以避免 - secp160k1曲线为弱密码曲线。限制阳光下的椭圆曲线JSSE(JDK 1.8)

我使用JDK 1.8与SunEC为JCA提供商

+0

我投票结束这个问题作为题外话,因为这个用户在这里也有同样的问题:http://security.stackexchange.com/questions/138111/restrict-eliptic-curve-in-sun-jsse-jdk -1-8,那里更好。 – jmingov

+0

@jmingov在这里看起来更合适。 JCA具有禁用特定算法和限制特定于运行时的密钥长度的机制,通常与安全性或加密无关。我会关闭另一个。 – erickson

+0

@erickson好友,你的老板:p让我们试着关闭另一个。 br – jmingov

回答

2

在某些情况下,算法和密钥大小可以使用java.security文件中的JRE限制,但没有一种方法使用限制EC曲线方法。

但是,通过指定您在生成密钥时允许的曲线,可以有效地限制与这些曲线的密钥一致。如果某个曲线不被允许,则不应该有一个密钥对来支持它。

+0

我正在寻找该配置选项,我该如何指定允许的曲线或不允许的曲线。我厌倦了jdk.tls.disabledAlgorithms = EC密钥大小<112但这没有帮助。 – user1493834

+0

@ user1493834抱歉,我忽略了问题主体之外的“JSSE”,并且正在考虑直接使用“KeyAgreement”。无法通过java.security文件拒绝特定曲线,但应该可以要求更长的键。但实际的密钥大小(以位为单位)必须指定,而不是有效的强度。因此,对于EC密钥,如果要禁用所有16​​0位密钥,则应该指定224而不是112。如果您有机会,请尝试一下。如果我有时间设置测试服务器或在网上找到一台服务器,我会试验一下。 – erickson

+0

该配置在tomcat 8.0x上不起作用,即服务器仍然支持较小的大小为162的曲线,但我在tomcat 8.5.5中使用相同的jdk 1.8和相同的自签名证书验证了相同的一组密码。我可以看到它只赞许更强的曲线--256以上。我还没有找到解决办法 – user1493834