Java http客户端和POODLE

伊卡加诺维奇

关于POODLE漏洞,如果我理解正确,它要求客户端无法在使用服务器发布的更高版本协议与服务器建立安全通道时,将TLS协议自动降级为SSLv3。

当无法与服务器建立TLS会话时,常见的Java HTTP客户端库,特别是javax.net.ssl.HttpsURLConnection和Apache HttpClient是否自动降级TLS协议?如果不是,我是否可以纠正它们不受POODLE攻击的影响,除非(a)服务器仅支持SSLv3,或者(b)较高级别的逻辑执行降级?

我正在寻找类似http://blog.hagander.net/archives/222-A-few-short-notes-about-PostgreSQL-and-POODLE.html之类的东西,但适用于Java客户端。

ok2c

Apache HttpClient没有实现任何TLS协议方面。它依靠JSSE API进行TLS / SSL握手并建立安全的SSL会话。除了SSL主机名验证逻辑外,就TLS / SSL而言,Apache HttpClient与其在其中运行的JRE一样安全(或易受攻击)。


更新: 默认情况下,HttpClient 4.3始终使用TLS,因此,除非明确将其配置为使用SSLv3,否则HttpClient 应该 不容易受到基于POODLE的攻击

事实证明这是错误的。一个必须从支持的协议列表中明确删除SSLv3!

SSLContext sslContext = SSLContexts.custom()
        .useTLS() // Only this turned out to be not enough
        .build();
SSLConnectionSocketFactory sf = new SSLConnectionSocketFactory(
        sslContext,
        new String[] {"TLSv1", "TLSv1.1", "TLSv1.2"},
        null,
        SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
CloseableHttpClient client = HttpClients.custom()
        .setSSLSocketFactory(sf)
        .build();

更新2:从版本4.3.6开始,HttpClient默认禁用所有版本的SSL(包括SSLv3)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Google OAuth Java客户端和Twitter API

来自分类Dev

Java客户端混合使用TCP和UDP功能

来自分类Dev

java非阻塞HTTP客户端

来自分类Dev

Java和jax-rpc中的WebService客户端

来自分类Dev

TCP服务器和客户端Java

来自分类Dev

Java客户端中的RabbitMQ通道和线程

来自分类Dev

无法在Java中运行简单的HTTP客户端

来自分类Dev

Java Jersey PUT方法和工作客户端

来自分类Dev

Java客户端证书和密钥库

来自分类Dev

通过HTTP代理的Java FTPS客户端

来自分类Dev

Java SockJS Spring客户端和消息大小

来自分类Dev

HTTP流与Java Jersey客户端异常下降

来自分类Dev

Java的11 HTTP客户端异步执行

来自分类Dev

确实Java的HTTP客户端处理压缩

来自分类Dev

差异发送的字节数和连接时使用Java和HTTP客户端4中实行的JMeter

来自分类Dev

java延迟http客户端请求处理

来自分类Dev

Java服务器和客户端时间

来自分类Dev

java http apache客户端未收到内容

来自分类Dev

使用Socket的Android客户端和Java桌面通信

来自分类Dev

C ++客户端和Java Server消息

来自分类Dev

Java HTTP客户端请求设置超时

来自分类Dev

Java客户端和Erlang服务器?

来自分类Dev

TCP服务器和客户端Java

来自分类Dev

Java Jersey PUT方法和工作客户端

来自分类Dev

Java使用HTTP客户端4.5客户端get语句

来自分类Dev

Java客户端和浏览器客户端之间的响应代码变化

来自分类Dev

java:HTTP服务器和客户端之间的HTTP会话

来自分类Dev

Akka-http,在 Java 中获取客户端 IP

来自分类Dev

oAuth 令牌与 Java Apache http 客户端