簡體   English   中英

如何驗證Java卡上的證書有效性?

[英]How to verify a certificate validity on a Java Card?

我知道如何使用Java驗證證書,但由於java卡API的限制(沒有java.io/其他類,只允許使用javacard API + Object + Throwable),我不知道如何在Java卡上執行此操作。

我沒有找到任何javacard兼容的證書庫。 我錯過了什么嗎?

我需要驗證證書是否由CA簽名,以及我需要驗證證書的有效性。

通常,驗證證書對於智能卡來說是一項艱苦的工作。 這些證書的大小通常大於2KiB。 雖然這是用於通用PC的花生,但它不適用於智能卡,其中高端卡通常僅包含8 KiB的RAM。 這是在操作系統,加密協處理器APDU緩沖區和 - 當然 - 您的小程序之間共享的。

還有一個問題:通常智能卡不包含時鍾。 這使得證明證書在有效期內是一件棘手的事情; 基本上你需要一些可靠的時間來保持時間。

然后,證書驗證通常使用CRL或OCSP來檢查證書的狀態。 您可能已經理解,對於這樣一個有限的平台,執行OCSP查找甚至只是解析CRL並不容易。

如果您巧妙地編程,則可以通過證書驗證CA簽名 但通常使用卡可驗證證書 (CVC或CV證書) 這些是“扁平”證書,具有更少的鈴聲和口哨聲,更容易在智能卡中解析。

通過使用較新的,經過驗證的證書的開始日期,您可以使用某種日期棘輪 ,其中使用證書本身中的日期更新時鍾。 但請注意,如果新證書暫時未經過驗證,您仍然無法檢測到過期證書。 CV證書通常不使用CRL,因此您必須信任每個證書,或者如果它們被泄露,您可能需要將某些證書列入黑名單。

盡管Java Card Connected版本可能會有更多支持,但我認為這根本不會對您有所幫助,因為連接版本很少被發現。


CVC的原始規格可以在ISO / IEC 7816-8標准中找到:識別卡 - 集成電路卡 - 第8部分:安全操作的命令和機制 ,附錄A和B.請注意,該標准是付費軟件。

國際民航組織的電子機讀旅行證件和BSI TR 03110文件也定義了這些類型的證書,因此如果你更喜歡免費軟件,你最好根據它制定任何證書規范。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM