我正在为PC和Android手机开发安全通信框架,不需要使用证书和公钥交换。将使用预共享密钥。
该框架有自己的认证和密钥交换协议。
程序如下:
我计划使用SSL进行流量加密,但不使用和第三方SSL库(只有标准的JSSE设施)。
实际上,SSL只用于流量加密(密钥交换和身份验证已经完成)。
如何显式地为SSL设置预共享密钥?
如果JSSE不直接支持它,但是可以通过重写默认的SSL类(SSLEngine、SSLSocketFactory等)来实现,那么该如何做呢?哪些班能对此负责?
发布于 2014-01-20 14:31:46
SSL/TLS允许您使用除证书之外的几种身份验证机制,例如。您可以使用共享秘密(PSK密码套件)或OpenPGP密钥等。然而,实际支持这些机制的实现并不多。我不知道Java内置密码技术是否支持它们。我们的SecureBlackbox确实支持TLS规范中定义的所有机制,包括我提到的那些机制。
发布于 2021-09-08 21:35:43
您可以在这里找到开放源码的TLS PSK JSSE套接字工厂,这些工厂由Bouncy城堡供电,并在Apache v2许可下发布:https://github.com/clover/pskfactories。
该项目包括示例用法。
或者,WolfSSL似乎也有一个支持PSK的JSSE实现。它是由本机代码驱动的,因此与纯Java相比,启动和运行的工作量可能要大一些。除非你购买商业许可证,否则它也是GPLv2。
https://stackoverflow.com/questions/21234355
复制相似问题