Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java服务器中是否可以获得客户端提供的SSL/TLS密码套件?_Java_Sockets_Ssl - Fatal编程技术网

在Java服务器中是否可以获得客户端提供的SSL/TLS密码套件?

在Java服务器中是否可以获得客户端提供的SSL/TLS密码套件?,java,sockets,ssl,Java,Sockets,Ssl,在Java服务器中,是否可以在协商时获得客户机提供的密码套件?有一种方法可以获取协商密码套件: String cipherSuite = someSSLServerSocket.getSession().getCipherSuite(); 我可以使用openssl,nmap测试远程客户端,但事实并非如此。如果你是客户端,一次握手所做的一切就是确定服务器是否会协商给定的密码套件(“支持”这个词太模糊)。通过尝试连续握手,您可以枚举每个密码套件,将其提供给服务器,并查看它是否会握手并使用密码套件与

在Java服务器中,是否可以在协商时获得客户机提供的密码套件?有一种方法可以获取协商密码套件:

String cipherSuite = someSSLServerSocket.getSession().getCipherSuite();

我可以使用
openssl
nmap
测试远程客户端,但事实并非如此。

如果你是客户端,一次握手所做的一切就是确定服务器是否会协商给定的密码套件(“支持”这个词太模糊)。通过尝试连续握手,您可以枚举每个密码套件,将其提供给服务器,并查看它是否会握手并使用密码套件与您建立连接。完成每个密码套件的检查后,您将知道服务器准备接受哪些密码套件。或者,你可以让我帮你做。不,作为一个服务器。客户端在握手期间发送可用的密码套件。问题是——如何获得这些信息?也许是通过扩展SSLServerSocket?啊,好的,对不起,我没有给予足够的关注。让我看看我能找到什么。对不起,信息在使用后似乎被扔掉了。您可以看到在的第209行创建了类
ClientHello
的对象。客户端提供的密码套件是该类中的一个字段,但在处理握手消息之后,不会保留任何内容。我不知道如何自定义SSL类来保留该信息。越来越近:)因此我们需要重写
processMessage(…)
constructor。如果您是客户机,您在一次握手中要做的就是确定服务器是否将协商给定的密码套件(“支持”一词太模糊)。通过尝试连续握手,您可以枚举每个密码套件,将其提供给服务器,并查看它是否会握手并使用密码套件与您建立连接。完成每个密码套件的检查后,您将知道服务器准备接受哪些密码套件。或者,你可以让我帮你做。不,作为一个服务器。客户端在握手期间发送可用的密码套件。问题是——如何获得这些信息?也许是通过扩展SSLServerSocket?啊,好的,对不起,我没有给予足够的关注。让我看看我能找到什么。对不起,信息在使用后似乎被扔掉了。您可以看到在的第209行创建了类
ClientHello
的对象。客户端提供的密码套件是该类中的一个字段,但在处理握手消息之后,不会保留任何内容。我不知道如何自定义SSL类以保留该信息。越来越近:),因此我们需要重写
processMessage(…)
constructor。