我正在尝试创建一个浏览器应用程序,该应用程序将访问需要TLS相互客户端身份验证的服务器。应用程序需要能够通过PKCS#11接口提供客户端证书和密钥。
在看过各种关于用于安卓的相互tls的文章后,我相信PKCS#11的要求排除了使用安卓密钥链/将证书添加到安卓的默认密钥库中(因为私钥不能直接访问)。
我让PKCS#11接口正常工作,因此我可以使用私钥对数据进行签名。
有没有办法拦截安卓使用密钥签名数据的调用,这样我就可以使用PKCS#11接口了?目前看来,我唯一的选择就是实现自己的TLS堆栈来实现这一点。
发布于 2012-07-25 10:34:16
这取决于:)您的目标平台是什么?在Jelly Bean上,在密钥库中有一些对硬件设备的支持,所以你可以编写一个使用你的PKCS#11的密钥主模块,但是,这是一个操作系统组件,所以它需要实现你自己的PKCS#11。您还可以开发自己的由PKCS#11模块支持的JCE提供程序。然后,在您的浏览器中,确保SSL引擎在执行客户端身份验证时使用您的提供者。
https://stackoverflow.com/questions/11640706
复制相似问题