keystore基础
在了解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中完成特定功能的应用。