2016-11-20 96 views
1

我想要的是当psk处于活动状态时测试tls握手。 我也想看到客户端(我的笔记本电脑)和公共服务器之间的连接期间交换的每个http头。 现在我想知道是否有公共的psk tls服务器,我可以做我的测试。是否有公共的psk服务器来测试tls握手?

问候。

+0

尝试我的小而未完成的项目[TlsPskServer2](https://github.com/afarber/jetty-newbie/tree/master/TlsPskServer2/src/main/java/de/afarber/tlspskserver2)。 –

回答

2

我怀疑是否有一台网络服务器在互联网上使用PSK打开公共测试。另外我怀疑浏览器是否支持PSK密码套件。但你可以设置使用PSK使用OpenSSL自己的Web服务器:

openssl s_server -psk 1a2b3c4d -nocert -www 

和匹配的客户端:

openssl s_client -connect 127.0.0.1:4433 -psk 1a2b3c4d 

对于HTTP协议:它是独立于TLS层,即它不如果使用PSK或使用证书的正常认证,请更改。

0

即使某些公共TLS服务器支持PSK,您也无法使用它测试您的客户端。公钥认证(大多数TLS服务器使用的)的工作方式和PSK之间存在着根本的区别。

公共密钥验证: 公开的柜面密钥服务器验证(不涉及客户端身份验证的),服务器会发送一个证书,其中包含一个公共密钥和客户端加密它的预主秘密,并发送它到服务器只有服务器可以解密。通过这种方式,两者都具有相同的预主秘密,并且可以使用相同的派生集来进一步导出最终密钥。

预共享密钥: 正如名称所示,预共享需要双方预先拥有相同的密钥。他们只是交换他们之间的ID来表明他们将使用哪个Pre-Shared来生成最终密钥。

因此,即使有支持PSK的服务器,您也应该拥有相同的一组密钥(或至少一个),这是不可能的,因为这些服务器不会与任何人分享密钥应该与谁共享(合法客户)。

因此,最好的方法是使用openssl的测试客户端和服务器工具并对其进行测试。