在了解keystore之前,首先需要对安卓平台架构有一定的了解,整体可以参考图如下:

安卓平台架构

其具体内容,可以参考官方文档
平台架构 | Android 开发者 | Android Developers

密钥存储技术,由三部分技术组成:keystore、keymaster,以及TEE(Trusted Execution Environment,可信执行环境),它们分别对应本地C/C++库、hal层,以及linux内核。

keystore是密钥与证书的管理系统,为软件提供密钥存储与加密的API。

keystore提供:

密钥管理
对称/非对称加解密
证书管理
其他功能
keystore整个都是利用TEE技术所存在的,当然也存在没有TEE技术的设备,就利用软件虚拟化TEE,个人感觉是并不安全的,因为可以访问、修改到其中的文件。

可以参考官方说法

Android 密钥库系统 | Android 开发者 | Android Developers

https://source.android.google.cn/security/keystore/?hl=zh-cn

大部分的TEE,也是调用的ARM的trustzone技术进行实现。

TA(Trusted Application)是TEE中完成特定功能的应用。

标签: none

添加新评论