Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何验证Java卡上的证书有效性?_Java_Certificate_X509certificate_Javacard - Fatal编程技术网

如何验证Java卡上的证书有效性?

如何验证Java卡上的证书有效性?,java,certificate,x509certificate,javacard,Java,Certificate,X509certificate,Javacard,我知道如何用Java验证证书,但由于Java卡API的限制,我不知道如何在Java卡上验证证书(不允许使用Java.io/其他类,只允许使用javacard API+Object+Throwable) 我没有找到任何与javacard兼容的证书库。我错过什么了吗 我需要验证证书是否由CA签署,还需要验证证书的有效性。通常,验证证书对于智能卡来说是一项艰巨的工作。这些证书的大小通常大于2KB。虽然这对于通用PC来说是小菜一碟,但对于智能卡来说却是小菜一碟,因为在智能卡中,高端卡通常只有8kib的R

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

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


我需要验证证书是否由CA签署,还需要验证证书的有效性。

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

还有一个问题:通常智能卡不包含时钟。这使得验证证书是否在有效期内成为一件棘手的事情;基本上,你需要一些可靠的方法来保持时间

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

如果您能巧妙地编程,那么在证书上验证CA的签名当然是可能的。但一般都是使用。这些是“扁平化”证书,具有更少的铃声和口哨,更容易在智能卡中解析

通过使用较新的已验证证书的开始日期,您可以使用某种日期棘轮,其中时钟将使用证书本身中的日期进行更新。但请注意,如果新证书有一段时间没有经过验证,您仍然无法检测过期的证书。简历证书通常不使用CRL,因此您要么必须信任每个证书,要么可能需要在某些证书被泄露时将其列入黑名单

虽然Java Card Connected edition中可能有更多的支持,但我认为这对您没有任何帮助,因为在野外很少发现Connected edition


CVC的原始规范可在附件A和B中找到。请注意,该标准为payware

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