关于POODLE漏洞,如果我理解正确,它需要客户端在未能与使用服务器通告的更高版本协议的服务器建立安全通道时自动将TLS协议降级为SSLv3.
常见的Java HTTP客户端库,特别是javax.net.ssl.HttpsURLConnection和Apache HttpClient,在无法与服务器建立TLS会话时会自动降级TLS协议吗?如果没有,我是否正确他们不受POODLE攻击的影响,除非(a)服务器仅支持SSLv3,或(b)更高级别的逻辑执行降级?
我正在寻找像http://blog.hagander.net/archives/222-A-few-short-notes-about-PostgreSQL-and-POODLE.html这样的东西,但是对于Java客户端.
我们使用JVM后端运行Web应用程序(Java 7更新75;代码在Scala中,但我不相信这是相关的).我们使用Google通过Oauth进行身份验证.
在过去的几个月中,我们一直在间歇性地无法对用户进行身份验证.
重定向,并从谷歌是成功的,但是当我们试图打电话给token_endpoint在https://www.googleapis.com/oauth2/v4/token验证验证我们有时出现以下情况例外:javax.net.ssl.SSLHandshakeException: server certificate change is restrictedduring renegotiation.
这个关于另一个问题的评论让我发现了一个JDK错误,它可以表现为这个异常(什么意思是"javax.net.ssl.SSLHandshakeException:服务器证书更改在重新协商期间受到限制"以及如何防止它?).
我的工作假设是:
该错误(https://bugs.openjdk.java.net/browse/JDK-8072385)表示仅检查主题备用名称(SAN)列表中的第一个条目.当验证的主机名在SAN列表中但不在列表顶部时,抛出上述异常.
昨天(2015年5月27日)我们看到两个不同的证书是间歇性地从www.googleapis.com提供的.第一个(串行67:1a:d6:10:cd:1a:06:cc)有一个SAN列表,DNS:*.googleapis.com, DNS:*.clients6.google.com, DNS:*.cloudendpointsapis.com, DNS:cloudendpointsapis.com, DNS:googleapis.com而第二个(串行61:db:c8:52:b4:77:cf:78)有一个SAN列表:DNS:*.storage.googleapis.com, DNS:*.commondatastorage.googleapis.com, DNS:*.googleapis.com.
由于JVM中的错误,我们可以验证第一个证书,但是第二个证书会抛出异常(尽管完全有效),因为*.googleapis.com它不是SAN列表中的第一个条目.
修复程序尚未发布7u85(没有提及何时可用).
我已经将我们集群的一个节点降级到7u65,但是证书似乎在我们这样做的时候就已经恢复了(我们看到的最后一个错误是22:20GMT)所以很难确定肯定的解决方案.
有没有其他人经历过这个或类似的东西,除了降级之外还有其他任何解决方法(降级会删除各种其他SSL/TLS检查)?
java jvm-hotspot ssl-certificate google-authentication google-oauth
我对SSL很陌生,并且被看似已知的问题所困扰.我的应用程序是SSL客户端,并调用另一个为双向SSL启用的组件.两个组件中的证书都是正确的,有时连接工作正常.每个服务器都有自己的服务器证书和私钥,但具有相同的根证书和中间证书.
服务器中的SSL检查在Apache SW LB中完成.
|-------------|
/ | Tomcat1 |
|-------------| / |-------------|
|---------->|Apache SW LB |/
| |-------------|\
| \
| \ |-------------|
|-----------| |------------| | | Tomcat 2 |
|SSL Client |---HTTPS--->|Hardware LB |------| |-------------|
|-----------| |------------| | |-------------|
| / | Tomcat3 |
| |-------------| / |-------------|
|---------->|Apache SW LB |/
|-------------|\
\
\|-------------|
| Tomcat4 |
|-------------|
Run Code Online (Sandbox Code Playgroud)
有时我会收到如下错误: -
***
%% Invalidated: [Session-10, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256]
http-nio-8443-exec-10, SEND TLSv1.2 ALERT: fatal, description = bad_certificate
http-nio-8443-exec-10, WRITE: TLSv1.2 Alert, length …Run Code Online (Sandbox Code Playgroud) java ×3
apache ×1
google-oauth ×1
https ×1
jvm-hotspot ×1
security ×1
spring ×1
ssl ×1
tomcat ×1