Google为Keystore加入新功能,提升Android设备安全性

Android Keystore是个与网络安全息息相关的加密工具,可以让程序开发者通过这些工具保护用户的机密数据,避免App受到各种形式的攻击。 Android 9也导入了许多Keystore的新功能,例如限制密钥使用以保护机密数据,以及保护App或操作系统中的密钥材料,提升网络安全防护能力。

Keystore的一个特色是能将加密基元(Cryptographic Primitives)从Android操作系统下的软件函数库移动到网络安全相关硬件组件,不但能够以硬件方式保障密钥,也让密钥仅能在硬件组件中使用,提高面对攻击的抵抗力。

另一方面,在移动设备待机时如果接收到E-mail或即时通信等信息,往往不需马上进行处理,这时候可能包含机密数据的信息就会在屏幕锁定的状态下发送至对应的App,并且必需确保在用户解锁屏幕前都处于安全状态。

Android 9的Keystore导入称为Keyguard-Bound的加密机制,来解决这个问题,它可以在屏幕锁定时进行加密与验证工作,但是无法进行解密或数字签署,如果设备在锁定时受到PIN、密码保护的话,Keyguard-Bound则会让任何尝试使用密钥的操作无效化,如此一来就能在设备待机或锁定时保护用户的机密数据,并只在用户需要时提供数据访问权限,大幅提升安全性。

虽然Keyguard-Bound与传统的身份验证机制相当类似,但两者却有个决定性的差异,那就是传统身份验证则会锁定设备的一段时间之后才锁定密钥,而Keyguard -Bound则会立刻锁定密钥,需要解锁后才能再次使用密钥。

由于Keyguard-Bound属于操作系统层级功能,所以兼容于任何执行Android 9的设备,但是它仍可搭配硬件加密机制,以进一步提高安全性。

Secure Key Import(安全密钥导入)是Android 9 Keystore的另一个新功能,让App可以将现有密钥更安全地导入Keystore。

密钥的根源(Origin of Key,可能存储于服务器)可以通过用户设备上的公钥进行非对称式加密,以利进行密钥交换。服务器会在密钥的加密过程中一并写入描述,让回传的密钥数据仅能在配对的Keystore硬件组件上解密,并仅能在该设备上使用。

另一方面,密钥在传输的过程中对App、操作系统而言是不透明的,意为着只能在配对的硬件组件中运行,也能发挥提高安全性的效果。

Secure Key Import能在App与设备间进行密钥沟通时发挥保护作用,避免密钥被拦截、窃取,或是传输到设备外部,比方Google Pixel 3智能手机就通过Secure Key Import确保Google Pay的安全,以免密钥从系统的主内存中被窃取出来。

需要注意的是,Secure Key Import需搭配专属的硬件,因此只能在特定Android设备发挥作用,与Keyguard-Bound一体通用的支持性有所不同。

如果读者想要进一步了解Keystore,可甚至Android资源中心阅读相关数据。