gpt4 book ai didi

java - 如何验证 Java Card 上的证书有效性?

转载 作者:搜寻专家 更新时间:2023-11-01 02:01:54 30 4
gpt4 key购买 nike

我知道如何使用 Java 验证证书,但由于 java 卡 API 的限制(没有 java.io/其他类,只有 javacard API + Object + Throwable,我不知道如何在 java 卡上执行此操作允许)。

我没有找到任何与 javacard 兼容的证书库。我错过了什么吗?

我需要验证证书是否由 CA 签名,并且我需要验证证书的有效性。

最佳答案

通常验证证书对于智能卡来说是一项艰巨的工作。这些证书的大小通常大于 2KiB。虽然这对于通用 PC 来说是微不足道的,但对于智能卡来说却不是这样,因为智能卡中的高端卡通常只有 8 KiB 的 RAM。这在操作系统、加密协处理器、APDU 缓冲区和 - 当然 - 您的小程序之间共享。

还有一个问题:智能卡通常不包含时钟。这使得验证证书是否在有效期内成为一件棘手的事情;基本上,您需要一些值得信赖的计时方式。

还有一个事实是,证书验证通常使用 CRL 或 OCSP 来检查证书的状态。正如您可能理解的那样,执行 OCSP 查找甚至只是解析 CRL 对于这样一个受限的平台来说并不容易。

通过证书验证 CA 的签名 如果您巧妙地对其进行编程,那当然是可能的。但总的来说Card Verifiable Certificates (CVC's or CV-certificates)被使用。这些是“扁平化”证书,花里胡哨的东西更少,更容易在智能卡中解析。

通过使用更新的、经过验证的证书的开始日期,您可以使用某种日期ratchet,其中使用证书本身中的日期更新时钟。但请注意,如果新证书有一段时间没有经过验证,您仍然无法检测到过时的证书。 CV 证书通常不使用 CRL,因此您要么必须信任每个证书,要么在某些证书遭到破坏时可能需要将其列入黑名单。

尽管 Java Card Connected 版本可能提供更多支持,但我认为这对您没有任何帮助,因为 Connected 版本很少在野外被发现。


CVC 的原始规范可以在 ISO/IEC 7816-8 standard: Identification cards — Integrated circuit cards — Part 8: Commands and mechanisms for security operations 中找到, Annex A & B。注意这个标准是付费软件。

ICAO eMRTD 和 BSI TR 03110 文档也定义了这些类型的证书,因此如果您更喜欢免费软件,最好以任何证书规范为基础。

关于java - 如何验证 Java Card 上的证书有效性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43984228/

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