Android Q是谷歌发布的第10代安卓操作系统,开发的三大主题是:创新、安全、隐私。本文主要介绍安卓Android Q引入的安全和隐私机制和策略。
隐私
隐私是开发Android Q过程中的首要考虑因素,目前用户对APP和手机收集和使用的信息的控制和透明是非常主要的。Android Q在跨平台改善隐私方面有明显的变化。
注:开发者将需要检查新的安全特征并测试开发的APP。根据每个APP的核心功能、目标和其他因素,带来的影响是不同的。
设备位置
首先看一下设备位置。APP可以要求用户请求访问位置的权限,但是在新版本的Android Q中,用户会看到更多的选项来允许访问位置,如图1所示。用户可以授予APP全部位置数据的访问权限或运行时权限。PHP大马
图1
Android Q中还引入了新的位置权限ACCESS_BACKGROUND_LOCATION,该权限运行app在后台访问位置信息,这样就增加了额外对位置的控制。
Scoped storage
除了位置意外,还引入了一个新的特征scoped storage来给与用户更多的安全。Android Q中仍然使用READ_EXTERNAL_STORAGE 和WRITE_EXTERNAL_STORAGE权限,但Android Q中的APP默认给外部存储filtered view 。
这样的APP只能看到特定的目录和特定类型的媒体文件,而读写文件夹中的文件都不需要权限。开发者在设备存储中还可以有自己的空间,而无需要求特定的权限。
注:文件如何包含在filtered view以及如何更新app以继续共享、访问、修改保存在外部存储设备上的文件参见https://developer.android.com/preview/privacy/scoped-storage#filtered-view。
从安全的角度来看,这是一个很有利的更新。可以阻止依赖授予敏感数据访问权限的恶意APP,因为用户之前只能看到一个对话框然后选yes,现在可以了解地更加详细。
后台限制
另一个重要的变化是对开发者从后台在没有用户交互的情况下启动活动有了限制。这一特性可以减少中断,并让用户对屏幕显示的内容有更多的控制。
这一变化在运行Android Q系统的所有APP都生效。即使app有level 28或更低级的API,而且原来安装在Android 9的设备上,设备升级到Android Q后限制仍然是有效的。
数据和ID
为了防止被记录和追踪,从Android Q开始,谷歌要求app开发者在访问设备的IMEI和序列化等不可重置的id前要请求特定的权限READ_PRIVILEGED_PHONE_STATE。
Android Q设备默认情况下会传输一个随机的MAC地址。虽然谷歌在Android 6.0中引入了MAC地址随机化功能,即智能手机在后台WiFi或蓝牙扫描过程中仍然中可以广播随机的MAC地址。需要注意的是,安全研究人员已经证明了使用随机的MAC地址也可以记录和追踪设备。
无线网络限制
Android Q中引入的另一个安全相关的特征就是app无法启用或关闭WiFi。WifiManager.setWifiEnabled()方法会返回false。
目前Android Q用户会通过设置面版来启用或关闭WiFi,这是一个允许app来在app内向用户显示设置的API。
为了保护用户的隐私,对WiFi为了列表的手动设备被限制在系统app和 device policy controllers (DPCs)中。给定的DPC可以是设备所有者也可能是配置文件所有者。
权限
Android Q修改了READ_FRAME_BUFFER, CAPTURE_VIDEO_OUTPUT和CAPTURE_SECURE_VIDEO_OUTPUT权限的范围。目前是signature-access,所以可以防止对设备屏幕内容的静默访问。
图2
需要访问设备屏幕内容的APP需要使用 MediaProjection API。如果APP目标是Android 5.1(API level 22)及更低,在Android Q上首次运行时用户会看到一个权限请求,如图2所示。这样用户就可以取消或修改系统在安装app时所授予的权限。
此外,Android Q中引入了新的权限ACTIVITY_RECOGNITION,app在检测用户的步数或对用户活动进行分类时需要请求该权限。这可以在设置的设备传感器数据中看到。天天好彩
安全
Android Pie中引入了BiometricPrompt API来帮助APP使用生物数据,包括面部、指纹和虹膜。为了保证用户的安全,Android Q 对该API进行了扩展以支持更多的用例,包括隐形和显性认证。
首先说一下显性认证,用户必须要执行操作才能继续。比如按一下指纹传感器,或进行面部或虹膜认证,用户必须要点击一个按钮才能继续。所有大额支付都要通过显性认证。
隐形认证不需要用户的额外操作。比如,sign-in和自动填充就是这样,在简单、不重要的交易上无需执行复杂的操作。
Android Q还引入了对TLS 1.3的支持。与TLS 1.2相比,TLS 1.3建立的连接要快约40%。从安全的角度来看,TLS 1.3也更干净、错误率更低、更加可靠。从隐私的角度来看,TLS 1.3加密了握手数据来更好地保护参与方的身份。
BiometricPrompt中还加入了一个新的特征就是在调用BiometricPrompt之前检查设备是否支持生物认证。这在app想要显示“enable biometric sign-in”或使用类似的登入页时非常有用。
Adiantum是引入的存储加密机制,当你的手机落入他人之手时可以保护你的数据。Adiantum在密码学领域是一个创新,设计的目的就是保证设备在没有加速加密的情况下来确保所有的设备都进行加密并且使加密更加有效。在Android Q中,Adiantum成为安卓平台的一部分,Google也准备更新Android Compatibility Definition Document (CDD)来要求所有的新安卓设备使用其中严重允许的加密算法来进行加密。
Beta 5
Android Q Beta 1是今年3月13日发布,目前已经可以现在Beta 5版本。如果有用户想尝试Beta版本可以访问android.com/beta 页面来讲i按察设备是否在支持的列表中,并下载beta版。
Android 10 Q发布时间轴
根据Android 10 Q发布时间轴,在今年3季度之前,还会有一个bata版本发布。开发者应该关注Android Q并开始学习其中引入的新的特征和API。
还有一个问题就是Android Q到底会叫什么名字呢?以Q开头的候选名其实很少,包括:
· Qurabiya
· Quindim
· Queen of Puddings
· Qottab
· Quesito
· Queijadinha
· Quirks
· Quince