我对 Android 开发比较陌生,之前从未使用过 Android Keystore。但我熟悉(理论)概念。
我的问题是我必须生成和存储一个密钥,然后使用这个密钥对一些数据运行加密原语。理想情况下,以最佳方式保护密钥不被提取,ei 密钥生成和所有加密操作仅在安全飞地内运行,以便只有有效负载离开受信任区域。
据我了解,这会自动发生,如果使用“正确”的 Keystore API,硬件设备支持它并且密钥的使用会被适当地标记。但是,支持的算法是有限的。
问题:我可以编写在信任区内执行的自定义代码吗?如果是的话,你能指点我一个好的资源或教程吗?
背景:我需要使用 Abe 的 Optimal Structure-Preserving Signatures 和基于 SXDH 的 Groth-Sahai-Proofs 在椭圆曲线(Barreto-Naehrig 曲线)上做一些花哨的现代东西。显然,开箱即用的 Keystore API 不支持这一点。目前,该代码被实现为 C++ 代码并编译为原生 Android 代码。该实现在语义上是正确的,但在实现级别上没有特别注意安全密钥存储,因为这都是学术原型开发。目前,密钥只是从普通文件读/写,所有操作都在同一个用户域(主)进程中执行。