Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.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 阻止对X509ExtendedKeyManager的调用#选择客户端_Java_Android_Ssl_Ssl Certificate - Fatal编程技术网

Java 阻止对X509ExtendedKeyManager的调用#选择客户端

Java 阻止对X509ExtendedKeyManager的调用#选择客户端,java,android,ssl,ssl-certificate,Java,Android,Ssl,Ssl Certificate,我想实现一个自定义X509KeyManager,它具有返回特定客户机标识的逻辑。 可以通过向用户显示UI来选择客户机标识,并根据选择返回相同的标识 选择客户端(字符串[]键类型、主体[]颁发者、套接字) 一个解决方案是在做出选择之前阻止此回调的调用方。但我不确定这是否安全 请让我知道是否有适当的方法来实现这一点。另一方面,我会在任何SSL握手事件之前进行选择 我还想知道java/Android的底层是否为SSL握手进行了缓存。 同一主机端口组合是否存在任何类型的超时,即对于同一主机端口,SSL握

我想实现一个自定义X509KeyManager,它具有返回特定客户机标识的逻辑。 可以通过向用户显示UI来选择客户机标识,并根据选择返回相同的标识
选择客户端(字符串[]键类型、主体[]颁发者、套接字)

一个解决方案是在做出选择之前阻止此回调的调用方。但我不确定这是否安全

请让我知道是否有适当的方法来实现这一点。另一方面,我会在任何SSL握手事件之前进行选择

我还想知道java/Android的底层是否为SSL握手进行了缓存。 同一主机端口组合是否存在任何类型的超时,即对于同一主机端口,SSL握手将不会发生,直到超时发生? 例如,iOS NSURLConnection为同一主机端口组合保持10分钟的超时(无SSL握手)

提前谢谢

一个解决方案是在做出选择之前阻止此回调的调用方。但我不确定这是否安全

我不知道你所说的“安全”是什么意思,所以我不能解决这个问题。在该方法返回之前,SSL握手无法继续,因此它肯定不会损害SSL。但是,这可能会导致对等方超时。我不认为这是一个“安全”风险,但你可能会,

请让我知道是否有适当的方法来实现这一点。另一方面,我会在任何SSL握手事件之前进行选择

我也不知道你说的“适当”是什么意思。如果有帮助的话,浏览器会完全按照您的建议运行

我还想知道java/Android的底层是否为SSL握手进行了缓存

SSL会话被缓存,并且它们的信任材料(共享机密、会话密钥、证书)

同一主机端口组合是否存在任何类型的超时,即对于同一主机端口,SSL握手将不会发生,直到超时发生?例如,iOS NSURLConnection为同一主机端口组合保持10分钟的超时(无SSL握手)


我不知道这是什么意思。NSURLConnection超时与所有其他超时类似:它设置响应出现的最长时间,如果超过该时间,将导致错误情况。它没有你声称的效果。默认值似乎是4分钟,而不是10分钟。如果您询问如何设置读取超时,答案在文档中。如果您询问默认情况下是否存在读取超时,答案是否。

Hi@EJP感谢您的回答,只是为了补充我的问题:使用safe,我的意思是较低层可能会有一些SSL握手超时/对等超时,我们可以预期最终用户会延迟一些时间来完成选择。因此,获得对等超时的机会非常高。对于缓存的注释会话超时(机密、会话密钥、证书),我没有看到这样的行为,因为当我执行相同的请求时,我总是得到chooseClientAlias回调。请求端点使用双向SSL方案进行保护。如果我错了,请纠正我。@Lorne的侯爵,你有X509ExtendedKeyManager包装类的好例子吗?在我的例子中,重写方法选择seclientalias或选择seengineclientalias永远不会被调用!您能够拥有X509ExtendedKeyManager包装类吗?在我的例子中,重写方法选择seclientalias或选择seengineclientalias永远不会被调用!