10

我希望使用 JCA 在 TLS 中支持以下密码套件:

  • TLS_PSK_WITH_3DES_EDE_CBC_SHA
  • TLS_PSK_WITH_AES_128_CBC_SHA
  • TLS_PSK_WITH_NULL_SHA
  • TLS_PSK_WITH_AES_128_CBC_SHA256
  • TLS_PSK_WITH_NULL_SHA256

它们在JDK7中可用,但在JDK6和 BouncyCastle 中都不可用。

如果我想要JDK6中的支持,我是否可以扩展JCA来实现对这些PSK扩展的支持,使用JSSE的SPI、提供程序和回调方法。我已经可以在运行时重新定义或添加新的密码实现,但我不确定 JCA 是否提供足够的粒度来在 TLS 中添加新的密码套件。

4

2 回答 2

4

干净的方法是实现您自己的SSLSocketFactory

如果您想尝试添加,我只看到通过反射修改内部类的方法。

相关类是:

com.sun.net.ssl.internal.ssl.CipherSuite

它有一个重载的私有静态方法“add”,用于将密码实现添加到支持的列表中。可能值得一试。

于 2011-06-23T15:17:40.957 回答
3

仍然不确定这是否可能,但我们为 Jessie 库找到了几个 TLS PSK 密码套件的实现。

于 2011-06-20T07:43:07.323 回答