簡體   English   中英

Java Sun PKCS#11提供程序,未設置HSM令牌LOGIN REQUIRED標志,並且別名為空

[英]Java Sun PKCS#11 provider, HSM token LOGIN REQUIRED flag not set and empty list of aliases

我是Pavel,主要是Java開發人員。 這是我的問題:

我正在嘗試使用Java Sun PKCS#11提供程序在HSM插槽中列出別名,並且得到一個空列表。 我已經在Windows XP / Server平台上使用Java 6和Java 7進行了嘗試。 我下載了Sun PKCS#11源,並進行了檢查,打開了調試程序,做了其他技巧,因此最終我發現別名映射為空,因為令牌的LOGIN_REQUIRED標志未設置。 在Sun PKCS#11實現中,只有一個IF構造,因此,即使未將此標志設置為PIN字節提供給密鑰庫,也不會進行C_Login調用! 我發現這很奇怪! 有人可以解釋一下這是Sun PKCS#11提供程序實現中的錯誤還是背后有一個一般性的想法? 無論如何,當我“破解”原始源代碼時,如果提供了PIN,無論是否設置了LOGIN_REQUIRED標志,並且從令牌中獲取別名,它都會使令牌登錄到令牌!

沒錯,Sun PKCS#11提供程序在查找別名時會嘗試查找所有公開可見的私鑰(無需登錄)。 之后,它將嘗試為私鑰找到可行的證書鏈(首先通過PKCS#11 ID,然后通過X509頒發者)。

我不知道為什么,但是在我看來,PKCS#11提供程序在引入Sparc T1處理器(尼亞加拉)的同時就啟用了,該處理器包含一個加密處理器。 Sun / Oracle從未提供過任何兼容性數據-我想他們的主要重點是使T1在Java中運行-但是,這只是一個猜測。 肯定知道要問的唯一方法。

如果您想擁有更好的提供者,則可以看一下IAIK軟件(其較低級別的開放源代碼,由Sun / Oracle使用實現)。 他們確實提供了支持和兼容性聲明。 但是,這是商業產品。

或者,您也可以接受您的補丁,我當然會對在使用PKCS#11 FindObjects查找可用私鑰之前登錄的選項感興趣。 如果您提交錯誤報告,我一定會投票支持。

暫無
暫無

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

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