Android密钥库简析
2018-09-10李阳天
计算机与网络 2018年2期
李阳天
Android的密钥库已经推出很多年了,它为应用开发者提供了一种使用加密密钥进行身份验证和加密的方式。密钥库将密钥资料存放在应用的进程空间之外,因此,密钥资料不会在可能受到网络钓鱼攻击的情形下被應用意外透露给用户,不会通过其他某种渠道泄漏,也不会在应用遭到入侵时陷入危险之中。
许多设备也在安全硬件中为密钥库密钥提供基于硬件的安全机制,这种机制将密钥资料完全存储在Android系统之外,因此即使Linux内核遭受入侵,密钥资料也不会泄漏。在绝大多数Android设备中,安全硬件都是主CPU的一种特殊模式,其通过硬件与Linux内核及Android用户空间强制隔离。有些设备还使用单独的安全微处理器。
Android提供的API可以让应用确定给定密钥库密钥是否处于安全硬件中,但是如果操作系统受到入侵,这些API将变得不可靠。密钥认证让设备的安全硬件可以验证某个非对称密钥是否处于安全硬件中,从而在Android OS遭受入侵时为密钥提供保护。
密钥库最初在Android 4.0中引入,密钥采用用户的密码进行加密。Android 4.1添加了使用设备安全硬件的基础架构。
在Android 6.0之前,密钥库仅支持RSA和ECDSA。在Android 6.0中,密钥库得到显著增强,增加了对AES和HMAC的支持。此外,加密运算的其他关键要素(例如RSA补位和AES区块链接模式)也移入安全硬件中。
在Android 6.0中,密钥库还能够限制特定密钥的使用方式。可以应用的最有用限制是用户身份验证绑定。这种限制允许将密钥的使用“绑定”到用户密码(他们的PIN码、图案或口令)或者指纹。……
登录APP查看全文
