ASO114

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

马逾 • 2月前发布

为提高安全性,在 Android O 中,已从 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 中测试您的应用。

了解更多细节,查看文内所有链接,请点击文末“阅读原文”。

推荐阅读:

Android O 中对设备标识符所做的变更

介绍Android原生开发工具包r14

“Google软件开发代理商计划”中国地区正式开启报名

寻找全中国使用TensorFlow的开发者和公司

点击「阅读原文」,查看文内链接

30
标签:
Android
创业者们,如果你或你的朋友想被优派网报道,请狠戳这里    寻求报道
马逾驻站作者
作者简介
0
文章总数
0万
总阅读量
ASO114市场数据分析平台
>