gpt4 book ai didi

java - PKI-- 读卡器更换

转载 作者:太空宇宙 更新时间:2023-11-03 13:55:39 27 4
gpt4 key购买 nike

我们正在开发一个新的安全项目。我们希望启用服务器端和客户端身份验证。为了允许客户端身份验证,我们想创建可以放入“读卡器”并使用指纹解锁的卡。

现在,目前我们有一些 A 公司的读卡器,为了让我们的客户端(java - 不是浏览器,而是我们自己的一个小软件)使用该卡上的证书,java 程序使用 native 调用允许我们连接到它的 dll。

我正在寻找一种方法来实现与读卡器的通用连接,以防我们将读卡器更改为 B 公司。

我的问题是:

  1. 是否有更好的方式访问证书的读卡器?例如,使用纯 Java 代码(或纯 JDK 代码)并仍然以某种方式检索证书和所有其他所需的操作。

  2. 鉴于没有纯 Java 方法来执行此操作,是否有一种通用方法可以帮助我不依赖于特定的 .dll?

  3. 您认为这有多安全?或许,有一种同样安全的方式可以在没有读卡器的情况下进行客户端身份验证?

最佳答案

Oracle JRE 附带 Sun PKCS#11 provider ,这将允许您插入实现 PKCS#11 API 的 DLL。

就 Java 而言,这绝对是“标准”方式。您的智能卡可以作为 KeyStore 实例加载。如果您的 key 无法从智能卡中提取,PrivateKey 对象仍将被创建用于您的应用程序签名/解密,但您将无法提取私有(private)指数(假设 RSA此处):它按照设计将操作委托(delegate)给卡片。

(我过去曾在 Linux 机器上使用 OpenSC/OpenCT 成功地尝试过它。我相信 PKCS#11 对于 Windows 来说更为罕见,但一些智能卡提供商可能仍会为其提供接口(interface)。)

这有多安全取决于您使用的 PKCS#11 实现。调整您自己的 DLL 以使其适合 PKCS#11 肯定需要一些努力和审查,然后才能将其称为“安全”。

关于java - PKI-- 读卡器更换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10610818/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com