原标题:Android O移除HttpsURLConnection中不安全的TLS版本回退

为提高安全性,在 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设置tls版本,Android O移除HttpsURLConnection中不安全的TLS版本回退相关推荐

  1. Android设置toolbar高度,Android基础知识之 Toolbar 的使用

    Toolbar是Android5.0推出的,用来替代ActionBar的控件.可以高度的自定义,使用灵活.官方的ToolBar是必须在5.0以上的系统才能使用, 如果需要在低版本中使用.需要使用sup ...

  2. android 设置listview滚动条,Android ListView 滚动条的设置详解及实例代码

    Android ListView 滚动条的设置详解 1.滚动条的属性 android:scrollbarAlwaysDrawHorizontalTrack 设置是否始终显示水平滚动条.这里用Scrol ...

  3. android设置高度比例,Android控件设置宽高比的方法

    0. 困扰很久的问题 Android控件的宽和高保持比例,这是从我接触Android以来,一直不断会遇到的需求.以前,要么就是在代码里直接设置宽和高,要么就是自定义控件.网上也有开源的自定义ViewG ...

  4. android 设置风格主题,Android Theme 常见主题风格详解

    本文为自己多年来在Android实战开发过程中总结归纳的一些常见问题,现在分享出来希望对初学者有所帮助. 目录 [1. 什么是Style,什么是Theme?] [2. 在定义Theme的时候@符号和? ...

  5. android 设置textview 左边,Android设置图片在TextView上、下、左、右

    一种是在布局文件中的设置 android:drawablePadding="5dp"//图片与文案距离 android:drawableBottom="@drawable ...

  6. android设置自动亮度,Android亮度调节的几种实现方法

    最近在做一个App的设置项,亮度调节.真正做时,发现Android亮度调节比预想要复杂一些.其实目前网上已有不少这方面的资料,但有些博文具有一定误导性.在此将这块内容按照自己理解整理一下. 整体上看, ...

  7. android 设置壁纸,在Android中使用WallpaperManager设置壁纸

    以下是我的代码,我想使用壁纸管理器设置为壁纸.我正在使用Universal Image Loader,但我不知道如何实现壁纸管理器.我的setWall()不起作用,有点令人困惑. import and ...

  8. android 设置单边框,Android设置单边圆角边框

    在drawable新建一个 buttonstyle.xml的文件,内容如下 android:bottomLeftRadius="10dp" android:bottomRightR ...

  9. android 设置系统壁纸,Android HttpURLConnection下载网络图片设置系统壁纸

    需求: 壁纸是url链接,get就能请求到,所以就用get请求到图片,把图片转化为bitmap,然后设置壁纸. 代码: 这里我封装了工具类 package xxxxx.utils; import an ...

最新文章

  1. oracle web API,在Web API程序中使用Swagger做接口文档
  2. 我为什么更喜欢 Mac OS X
  3. Android开发之最简单的布局点击Tab和Fragment切换源码(特别适合初学者)
  4. 程序配置amp;amp;ConfigurationManager
  5. (转)Jetty实战之 安装 运行 部署
  6. python学习之re库
  7. 为什么不使用ipv6计算机网络,ipv6无网络访问权限解决教程
  8. 软件质量管理-复习总结
  9. 软件开发技术文档的编写模块
  10. 典型概率分布(pdf公式和图示)
  11. Python教程(从不懂到入门)
  12. ida android so 断点,IDA Pro 7.0+调试Android so飘云整理(基于Android5.1.1)
  13. STM32F03学习笔记之ADC配置(含DMA配置)
  14. 德日车企瓜分美系车在华市场
  15. 个人碰到的前端问题总结及解决方法1
  16. 2018腾讯游戏客户端岗位暑期实习生面试
  17. 聊聊MySQL的10大经典错误
  18. python基于PHP+MySQL的连锁酒店管理系统
  19. 北京华为HCIE认证网络工程师快速完成设备流量控制和风暴控制
  20. 1008day1:列表-字符串基础知识、正则提取字符串小数、python数据类型、判断为假的方法、格式判断if elif elif else、字符串遍、计算器、提取str字母、斐波那契数列、水仙花数

热门文章

  1. oracle可以面向对象吗,Jbdc助手-数据库操作面向对象的实现(oracle)
  2. 不可不知的STL sort函数实现原理
  3. SpringBoot使用prometheus监控
  4. 哈佛大学 NLP 组开源神经机器翻译系统 OpenNMT
  5. hive中order by,sort by, distribute by, cluster by作用以及用法
  6. java.lang.UnsupportedClassVersionError
  7. 网络游戏性能测试的几点想法
  8. PHP回收机制性能方面考虑的因素
  9. 关于开源精神和抄袭问题
  10. 卓越领袖的的32条经营管理思想