0

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

客户端使用智能卡执行相互 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 中运行。

我正在尝试各种解决方法和解决方案来避免这种情况,但我认为这是由于智能卡的内部初始化,我无法避免。

你有什么想法?我能以某种方式避免这么晚吗?

谢谢!

4

1 回答 1

1

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

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

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

于 2013-05-23T22:41:49.470 回答