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