安卓系统将在11月强制HTTPS协议

发布时间:2019/10/20 21:18:22 打印 字号:

安卓系统要求自2019年11月1日起,所有APP都必须默认阻止所有域名的HTTP流量,包括程序更新和所有Google Play上的新应用程序,确保通过TLS协议保护进入或离开Android设备的所有网络流量。

80%的安卓APP流量默认HTTPS加密

Network Security Configuration(网络安全配置,简称NSC)策略是安卓系统的一项安全功能,可以允许安卓开发者们通过声明性的配置文件自定义网络安全设置,允许或阻止特定域名或整个APP的HTTP流量。安卓7版本开始引入NSC策略,安卓9开始默认配置阻止所有域名HTTP流量的策略。

默认阻止HTTP协议的策略发挥出很好效果,目前80%的安卓APP采用HTTPS加密流量,而针对安卓9及更高版本占比更高,约有90%的APP默认采用HTTPS加密流量。

1.png

安卓希望这些数字能够继续提高,因此要求自2019年11月1日起,所有应用程序(包括程序更新和所有Google Play上的新应用)必须至少以安卓9的NSC策略为目标,默认加密所有APP流量,任何未加密的连接必须是开发人员明确选择的结果。

当APP包含不安全的NSC配置时(比如允许所有域名存在未加密连接,或在调试模式之外接受用户提供的证书),最新版本的Android Studio和Google Play会在发布前的报告中警告开发人员,确保开发人员了解其安全配置,鼓励整个安卓生态系统采用HTTPS加密。

2.png向Android Studio中的开发人员显示警告的示例3.png在发布前报告中向开发人员显示警告的示例

怎么做才能保护我的APP

对于针对安卓9及更高版本的APP,默认对所有传输中的网络流量进行加密,并且仅信任安卓CA标准列表里的机构签发的证书。只有提供精心设置的例外声明文件,APP才能提供HTTP明文传输。

如果你的APP需要允许流量指向特定域名,可以通过添加一个NSC文件来做到这一点,该文件在默认安全策略中仅包含这些例外情况。请记住 你应该对不安全连接接收的数据保持警惕,他极有可能在传输过程中遭遇篡改。

4.jpg

如果你的app出于测试目的需要接受用户安装的证书(例如,在测试期间连接到本地服务器),请通过代码设置仅在调试模式下允许,确保你的APP生产版本中的连接是安全的。

5.jpg

安卓开发者为APP升级HTTPS加密,避免因默认阻止http流量导致应用程序连接不可用。