我想要的是在 psk 处于活动状态时测试 tls 握手。我还想查看在客户端(我的笔记本电脑)和公共服务器之间的连接期间交换的每个 http 标头。现在我想知道是否有可以进行测试的公共 psk tls 服务器。
问候。
我怀疑互联网上是否有使用 PSK 的 Web 服务器开放供公众测试。我也怀疑浏览器是否支持 PSK 密码套件。但是您可以使用带有 openssl 的 PSK 设置您自己的 Web 服务器:
openssl s_server -psk 1a2b3c4d -nocert -www
和匹配的客户端:
openssl s_client -connect 127.0.0.1:4433 -psk 1a2b3c4d
至于HTTP协议:它独立于TLS层,即使用PSK或普通的证书认证都不会改变。
即使某些公共 TLS 服务器支持 PSK,您也无法使用它测试您的客户端。公钥身份验证(大多数 TLS 服务器使用)的工作方式与 PSK 之间存在根本区别。
公钥认证: 在公钥服务器认证(不涉及客户端认证)的情况下,服务器发送一个证书,其中包含一个公钥,客户端加密它的预主密钥并将其发送到只有服务器的服务器可以解密。这样,两者都具有相同的预主密钥,并且可以使用相同的推导集来进一步推导最终密钥。
预共享密钥: 顾名思义,预共享要求双方之间预共享相同的密钥。他们只是在他们之间交换 ID 以指示他们将使用哪个预共享来生成最终密钥。
因此,即使有支持 PSK 的服务器,您也应该拥有相同的一组(或至少一个)密钥,这是不可能的,因为这些服务器不会与除了它之外的任何人共享其密钥应该与(合法客户)共享。
因此,对您来说最好的方法是使用 openssl 的测试客户端和服务器工具并对其进行测试。