2013-05-22 34 views
0

我正在開發一個需要通過智能卡進行客戶端身份驗證的應用程序。JAVA智能卡客戶端身份驗證 - 緩慢的「初始密鑰庫」

客戶端使用智能卡執行相互SSL認證。

存在效率問題:客戶端身份驗證緩慢。在網絡服務的任何互聯網流量出現之前,延遲時間約爲6秒。

這裏的日誌:

2013-05-20 16:54:38,986 DEBUG (HttpConnection.java:692) - Open connection to ***** 
keyStore is : NONE 
keyStore type is : pkcs11 
keyStore provider is : SunPKCS11-SmartCard 
init keystore 

==== HERE IS A DELAY OF ABOUT 6 SECONDS!!!! 

init keymanager of type SunX509 

客戶端在Linux上運行。

我正在嘗試各種解決方法和解決方案來避免這種遲到,但我認爲這是由於智能卡的內部初始化,我無法避免。

您怎麼看?我能以某種方式避免這種遲到嗎?

謝謝!

回答

1

通常情況下,您受到智能卡和PKCS#11庫(以及可能的底層)的限制。您可以嘗試查看卡和讀卡器是否配置爲使用可用的最大速度。此外,您可以測試是否有任何方法來緩存卡上的信息,或者限制從智能卡檢索的數據量。

通常情況下,您正在等待讀取卡片目錄數據(例如ISO 7816-15兼容結構)。在解析數據(在現代CPU上需要非常短的時間)之後,通常會從卡上下載證書。現在這部分可能是大部分時間需要的,所以如果有任何方法可以將數據緩存在CPU上,或者只下載所需的證書,那麼您可能會花費很多時間。

但是,它取決於所使用的庫是否以及如何執行此操作,通過PKCS#11提供程序(據我所知)不可能配置此功能。詢問你的供應商!

+0

你說得對!智能卡的供應商已經發布了一個新的Linux共享庫,現在訪問時間約爲3秒。感謝您的回答! – ryuujin

+0

很高興能有幫助:) –

相關問題