2017-10-10 214 views
1

我对Android开发相对陌生,以前从未使用过Android Keystore。但我对(理论)概念很熟悉。Android开发:在可信执行环境(TEE)中运行自定义代码,扩展密钥库

我的问题是我必须生成并存储一个密钥,然后使用此密钥在某些数据上运行加密基元。理想情况下,关键是防止以最佳方式提取,例如。密钥生成和所有加密操作仅在安全飞地内运行,以便只有有效负载离开可信区域。

据我所知,这种情况会自动发生,如果使用“正确的”Keystore API,硬件设备将支持它,并且密钥的用法会被适当标记。但是,supported algoritms是有限的。

问题:我可以编写在Trust区域内执行的自定义代码吗?如果是的话,你能指点我一个很好的资源或教程吗?

背景:我需要做了椭圆曲线(巴雷托-Naehrig曲线)与安倍和基于SXDH - 格罗斯 - 萨海-证明最优结构保留的签名一些花哨的东西,现代。显然,Keystore API不支持这种支持。目前代码以C++代码的形式实现,并编译为原生Android代码。这个实现在语义上是正确的,但并没有特别关注实现级别上的安全密钥存储,因为它都是学术原型开发。目前,密钥只是从普通文件读取/写入,而所有操作都在相同的用户地(主)进程中执行。

回答

1

TEE在大多数情况下仅适用于OEM,并且没有SDK可以访问TEE。 Trustby的Kinibi是一个例外,他们向TEE提供SDK。为了访问它,你需要让SDK开发可信应用程序和某种形式的开发板(HIKEY)来测试它。要部署到手机中,您需要与Trustonic达成某种形式的协议,以允许用户使用OTA服务器下载和安装该应用以管理密钥交换。

相关问题