0

我正在尝试创建一个浏览器应用程序,它将访问需要 TLS 相互客户端身份验证的服务器。应用程序需要能够通过 PKCS#11 接口提供客户端证书和密钥。

在查看了有关 Android 的相互 tls 的各种文章后,我相信 PKCS#11 要求排除了使用 Android KeyChain/将证书添加到 Android 上的默认密钥库(因为无法直接访问私钥)。

我有 PKCS#11 接口工作,所以我可以使用私钥来签署数据。

有没有办法拦截 Android 使用密钥对数据进行签名的调用,以便我可以使用 PKCS#11 接口?目前,我唯一的选择似乎是实现我自己的 TLS 堆栈来实现这一点。

4

1 回答 1

2

这取决于:) 你的目标是什么平台?在 Jelly Bean 上,密钥库中对硬件设备有一些支持,因此您可以编写一个使用 PKCS#11 的 keymaster 模块。但是,这是一个操作系统组件,因此需要实现您自己的 ROM。您还可以开发自己的由 PKCS#11 模块支持的 JCE 提供程序。然后,在您的浏览器中,确保 SSL 引擎在进行客户端身份验证时使用您的提供程序。

于 2012-07-25T02:34:15.923 回答