JSSE中的Java SSL预共享密钥模式

JSSE中的Java SSL预共享密钥模式,java,android,ssl,encryption,cryptography,Java,Android,Ssl,Encryption,Cryptography,我正在为PC和Android手机开发安全通信框架,不使用证书和公钥交换。将使用预共享密钥 该框架有自己的身份验证和密钥交换协议 程序如下: 主机相互验证 在两个通信主机相互验证后,它们共享会话私钥 主机之间的通信是使用该密钥加密的 我计划使用SSL进行流量加密,但不使用SSL和第三方SSL库(仅标准JSSE设施) 实际上,SSL将仅用于流量加密(密钥交换和身份验证已经完成) 如何为SSL显式设置预共享密钥 如果JSSE不直接支持它,但可以通过覆盖默认SSL类(SSLEngine、SSLSocke

我正在为PC和Android手机开发安全通信框架,不使用证书和公钥交换。将使用预共享密钥

该框架有自己的身份验证和密钥交换协议

程序如下:

  • 主机相互验证

  • 在两个通信主机相互验证后,它们共享会话私钥

  • 主机之间的通信是使用该密钥加密的

  • 我计划使用SSL进行流量加密,但不使用SSL和第三方SSL库(仅标准JSSE设施)

    实际上,SSL将仅用于流量加密(密钥交换和身份验证已经完成)

    如何为SSL显式设置预共享密钥


    如果JSSE不直接支持它,但可以通过覆盖默认SSL类(SSLEngine、SSLSocketFactory等)来实现,那么如何实现呢?什么类可以对此负责?

    SSL/TLS允许您在证书之外使用多种身份验证机制,例如,您可以使用共享密钥(PSK密码套件)或OpenPGP密钥等。然而,实际上支持这些机制的实现并不多。我不知道Java内置的加密技术是否支持它们。我们的SecureBackbox支持TLS规范中定义的所有机制,包括我提到的那些机制

    看起来您正在重新发明SSL。为什么?我计划使用SSL,但不使用PKI、证书等。这是一个点对点框架,需要删除任何集中控制(特别是证书和CA)。好的,谢谢你的回答。共享机密将用于SSL。Oracle的Java SE JSSE不包含AFAIK的共享机密实现。如何实现Java SSL类(SSLEngine、SSLSocketFactory等)?@АчччёчEmm,您是在问如何实现它们还是?如果您的意思是将这样的东西添加到SecureBackbox,那么我们的愿望列表中就有这样的想法。你可以投票支持它不,我说的是JSSE,不是SecureBackbox。有没有办法通过偏离SSLEngine、SSLSocketFactory等类来覆盖默认的JavaSSL行为?