Skip to content

Latest commit

 

History

History
25 lines (15 loc) · 2.49 KB

File metadata and controls

25 lines (15 loc) · 2.49 KB

Android O删除HttpsURLConnection的不安全的TLS版本回退

原标题:Android O to drop insecure TLS version fallback in HttpsURLConnection
链接:https://android-developers.googleblog.com/2017/04/android-o-to-drop-insecure-tls-version.html
作者:Tobias Thierer(软件工程师)
翻译:arjinmc

为了提高安全性, Android 版本的HttpsURLConnection已经删除了不安全的TLS版本回退。

什么是变化,为什么?

TLS版本回退是HTTPS堆栈中的兼容性解决方法,用于连接到不正确实现TLS协议版本协商的服务器。在以前的Android版本中,如果初始TLS握手以特定方式失败,则HttpsURLConnection会重新尝试使用较新的TLS协议版本禁用的握手。在Android O中,它将不再尝试重试。与正确实施TLS协议版本协商的服务器的连接不受影响。

我们正在删除此解决方法,因为它会通过禁用TLS协议版本降级保护来削弱TLS。解决方案不再需要,因为到2015年底,不到0.01%的网络服务器依赖于它。

我的应用程式会受到影响吗?

大多数应用程序不会受到此更改的影响。最简单的方法是使用Android O Developer Preview构建和测试你的应用程序。你的应用程式在Android O中的HTTPS连线不会受到影响:

  • 定位使用最新版本的Chrome或Firefox的网络服务器,因为这些服务器已正确实施TLS协议版本协商。Firefox 37(2015年3月)和Chrome 50(2016年4月)中删除了对TLS版本后备版本的支持。
  • 使用不构建在HttpsURLConnection上面的第三方HTTP库。如果你使用第三方库,我们建议你禁用协议回退。例如,在高达3.6的OkHttp版本中,你可能需要将OkHttpClient配置为仅使用ConnectionSpec.MODERN_TLS。

我的应用程序受到影响 现在怎么办?

如果你的应用程序依赖于TLS版本回退,则其HTTPS连接容易受到降级攻击。要解决这个问题,你应该联系谁操作服务器。如果这不可能做好,那么作为解决方法,你可以使用提供TLS版本回退的第三方HTTP库。请注意,使用此方法会削弱你的应用的TLS安全性。要发现任何兼容性问题,请根据Android O Developer Preview测试你的应用程序。