【发布时间】:2015-12-11 14:35:27
【问题描述】:
是否可以从 Java Bouncy Castle 使用 SSL/TLS 连接到远程服务器,然后获取服务器支持的密码套件列表?我需要接收它的 HEX 值,如果可能的话,还需要接收它的“字符串常量”(可能只针对客户自己知道的那些)。
我需要使用任何协议(HTTPS、AMQPS、STOMPS……)连接到任何端口。
【问题讨论】:
标签: java ssl cryptography bouncycastle tls1.2
是否可以从 Java Bouncy Castle 使用 SSL/TLS 连接到远程服务器,然后获取服务器支持的密码套件列表?我需要接收它的 HEX 值,如果可能的话,还需要接收它的“字符串常量”(可能只针对客户自己知道的那些)。
我需要使用任何协议(HTTPS、AMQPS、STOMPS……)连接到任何端口。
【问题讨论】:
标签: java ssl cryptography bouncycastle tls1.2
您可以做的是编写一个CipherSuiteFinder 类,该类调用一个重写的TlsClientProtocol,它只是为服务器提供一个单一的密码套件。为此,您需要创建一个派生自 DefaultTlsClient 的新类,该类扩展 AbstractTlsClient。
提供协议并收到响应后,您关闭连接。如果服务器没有出错,它接受了单个提供的密码套件,这意味着该密码套件存在。 然后您可以按照 TLS 标准关闭连接来很好地关闭连接,只有在一切完成后才关闭套接字。
现在CipherSuiteFinder 只需遍历密码套件并收集结果。
HTTP 和 STOMP 等顶级协议无关紧要;它们仅在 TLS 连接建立后调用。
【讨论】: