自2019年11月1日起,安卓系统要求所有APP都必须默认阻止所有域名的HTTP流量,包括程序更新和所有Google Play上的新应用程序,确保通过TLS协议保护进入或离开Android设备的所有网络流量。这将适用于所有面向Android 9.0的应用程序,任何需要HTTP连接的内容必须提交特殊声明。
Android 9.0默认阻止HTTP流量
Android 9.0将通过网络安全配置(Network Security Configuration)中的默认设置阻止APP中HTTP流量。网络安全配置(Network Security Configuration)是安卓N版本开始引入的一种安全功能,可以允许安卓开发者们在无需修改App代码的情况下自定义网络安全设置,可以允许或禁止特定域名或整个APP的HTTP流量。当APP包含不安全的NSC配置时(比如允许所有域名存在未加密连接,或在调试模式之外接受用户提供的证书),最新版本的Android Studio和Google Play会在发布前的报告中警告开发人员,确保开发人员了解其安全配置,鼓励整个安卓生态系统采用HTTPS加密。
苹果iOS ATS强制HTTPS加密
苹果iOS和macOS上也有类似功能,称为App Transport Security(ATS)。启用ATS后,它会屏蔽明文HTTP资源加载,强制App通过HTTPS连接网络服务,通过传输加密保障用户数据安全。虽然苹果延长了最后期限,给开发者更多时间做好准备,但在移动APP中使用HTTPS加密连接是必然趋势。
尽快为APP升级HTTPS
不仅比较“敏感”的网页需要进行加密,一些其他类型的页面(如博客或静态主页)同样需要重点保护。HTTPS不仅仅保护发送给访问者的数据,它关系到整个连接的安全。HTTPS提供身份验证、防止DNS欺骗和内容注入,防止连接被用于跟踪、窃取或注入数据,损害终端设备。“所有流量都应该加密,无论内容如何,因为任何未加密的连接都可以用来注入内容,增加潜在易受攻击客户端代码的攻击面或追踪用户。”
用户通过浏览器访问网站时,使用HTTPS的网页会显示醒目的安全锁标识,让用户知道正在访问的网页连接安全。但是在移动应用上,网络连接的安全性就没有那么透明了,用户很难知道APP连接网络时使用的是HTTP还是HTTPS。
因此,移动APP上实现“全站HTTPS加密”变得尤为重要,整个APP流量都通过HTTPS加密连接,防止HTTP页面跳转或重定向到HTTPS页面的过程中被劫持或篡改。
(图片来源于网络)