Android P 引入了若干可提高应用和运行应用的设备安全性的功能。 本页面介绍对第三方应用开发者最重要的变化,须要他们牢记在心。android
在 Android P 中,系统表明应用提供指纹身份验证对话框。 此功能会建立标准化的对话框外观、风格和位置,让用户能够更放心地确信,他们是在根据可信的指纹凭据检查程序验证身份。算法
若是您的应用使用 FingerprintManager 向用户显示指纹身份验证对话框,请迁移应用的逻辑以改用 FingerprintDialog,后者依赖系统来显示该对话框。数组
注:在应用中使用 FingerprintDialog 以前,应该先使用 hasSystemFeature() 函数以确保设备支持 FEATURE_FINGERPRINT。安全
若是设备不支持指纹身份验证,能够回退为使用 createConfirmDeviceCredentialIntent() 函数验证用户的 PIN 码、图案或密码。服务器
发布时安装有 Android P 的受支持设备赋予您使用 Protected Confirmation API 的能力。 借助这个新增的 API,应用能够利用 ConfirmationDialog 的实例向用户显示提示,请他们批准一个简短的声明。 应用能够经过这个声明再次确认,用户确实想完成一项敏感事务,例如付款。数据结构
若是用户接受该声明,应用会收到由密钥哈希消息身份验证代码 (HMAC) 保护的加密签名。 该签名由可信执行环境 (TEE) 生成,该环境会对显示的确认对话框以及用户输入进行保护。 该签名具备很高的可信度,它表示用户已看过声明并赞成其内容。架构
注意:Protected Confirmation API 不会为用户提供安全信息通道。 应用没法承担 Android 平台所提供机密性保证以外的任何其余保证。 具体地讲,请勿使用该 API 显示您一般不会显示在用户设备上的敏感信息。 用户确认消息后,其完整性将获得保证,但应用必须仍使用传输中数据加密来确保已签署消息的机密性。app
要在应用中提供高可信度用户确认,请完成如下步骤:框架
注:因为密钥是使用 setUserConfirmationRequired() 建立的,所以只能用于签署以 dataThatWasConfirmed 参数形式返回的数据。函数
签署任何其余种类数据的尝试不会得到成功。 收到签名后,您的服务器应对其进行检查。 若是签名有效,您便可从 dataThatWasConfirmed 中提取 extraData 和 promptText,并验证 extraData 与以前存储的内容是否匹配。做为最后一项检查,服务器应检查 promptText 是否与出如今额外数据中的事务详情一致。若是此步骤成功,则服务器能够执行该事务,由于它已得到高可信度的确认,用户已看到并批准了 promptText 中的消息;
5.添加与如下代码段所示内容相似的逻辑以显示对话框自己:
注:包含全屏对话框的确认提示界面没法进行自定义。 但框架会为您处理按钮文本的本地化。
发布时安装了 Android P 的受支持设备可拥有 StrongBox Keymaster,这个 Keymaster HAL 的实现位于一个硬件安全性模块内。 该模块包含本身的 CPU、安全存储空间、真实随机数生成器以及抵御软件包篡改和未经受权线刷应用的附加机制。 检查存储在 StrongBox Keymaster 中的密钥时,系统会经过可信执行环境 (TEE) 证明密钥的完整性。
为支持低能耗的 StrongBox 实现,为一部分算法和密钥长度提供了支持:
使用 KeyStore 类生成或导入密钥时,您须要经过将 true 传递给 KeyGenParameterSpec.Builder类或 KeyProtection.Builder 类中的 setIsStrongBoxBacked() 函数,指示在 StrongBox Keymaster 中存储密钥的偏好。
注:若是 StrongBox Keymaster 不可用于特定算法和与密钥关联的密钥长度,框架会引起一个 StrongBoxUnavailableException。
Android P 增长了密钥加密的安全性,添加了利用新增的 ASN.1 编码密钥格式将已加密密钥安全导入密钥库的功能。 Keymaster 随后会在密钥库中将密钥解密,所以密钥的内容永远不会以明文形式出如今设备的主机内存中。
注:只有附带 Keymaster 4 的新发布设备支持此功能。
要支持以安全方式将已加密密钥导入密钥库,请完成如下步骤:
4.将该 WrappedKeyEntry 对象传入接受 Keystore.Entry 对象的 setEntry() 的重载。
点击这里前往 “Android Developers 官方文档” 查看详细信息