ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-05-27 14:51:40  阅读:318  来源: 互联网

标签:java certificate x509certificate javacard


我知道如何使用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).这些是“扁平”证书,具有更少的铃声和口哨声,更容易在智能卡中解析.

通过使用较新的,经过验证的证书的开始日期,您可以使用某种日期棘轮,其中使用证书本身中的日期更新时钟.但请注意,如果新证书暂时未经过验证,您仍然无法检测到过期证书. CV证书通常不使用CRL,因此您必须信任每个证书,或者如果它们被泄露,您可能需要将某些证书列入黑名单.

尽管Java Card Connected版本可能会有更多支持,但我认为这根本不会对您有所帮助,因为连接版本很少被发现.

CVC的原始规格可以在ISO/IEC 7816-8 standard: Identification cards — Integrated circuit cards — Part 8: Commands and mechanisms for security operations附录A和附件中找到. B.请注意,此标准是付费软件.

国际民航组织的电子机读旅行证件和BSI TR 03110文件也定义了这些类型的证书,因此如果你更喜欢免费软件,你最好根据它制定任何证书规范.

标签:java,certificate,x509certificate,javacard
来源: https://codeday.me/bug/20190527/1164073.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有