JAVA智能卡客户端身份验证 - 慢“init keystore”

时间:2013-05-22 09:51:00

标签: java performance smartcard pcsc

我正在开发一个需要通过智能卡进行客户端身份验证的应用程序。

客户端使用智能卡执行相互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 个答案:

答案 0 :(得分:1)

通常,您受智能卡和PKCS#11库(以及可能的底层)的限制。您可以尝试查看卡和读卡器是否配置为使用可用的最大速度。此外,您可以测试是否有任何方法可以缓存卡上的信息,或限制从智能卡检索的数据量。

通常,您正在等待读取卡目录数据(例如,ISO 7816-15兼容结构)。在解析数据(在现代CPU上应该花费很短的时间)之后,通常从卡下载证书。现在这部分可能是占用大部分时间的,所以如果有任何方法可以在CPU上缓存数据,或者只下载所需的证书,那么你可能会获得很多时间。

然而,它取决于使用的库是否以及如何执行此操作,实际上不可能通过PKCS#11提供程序进行配置(据我所知)。询问您的供应商!