我正在开发一个需要通过智能卡进行客户端身份验证的应用程序。
客户端使用智能卡执行相互的SSL认证。
有一个效率问题:客户端身份验证很慢。在任何到web服务的互联网流量之前,有大约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上运行。
我正在尝试各种解决方法和解决方案来避免这种延迟,但我认为这是由于智能卡的内部初始化造成的,我无法避免。
你在想什么?我能不能以某种方式避免这么晚呢?
谢谢!
发布于 2013-05-24 06:41:49
通常,您会受到智能卡和PKCS#11库(以及可能的底层)的限制。您可以尝试查看卡和读卡器是否配置为使用可用的最大速度。此外,您还可以测试是否有任何方法可以缓存卡上的信息,或者限制从智能卡检索的数据量。
通常情况下,您会等待读取卡目录数据(例如ISO 7816-15兼容结构)。解析数据(在现代CPU上需要很短的时间)之后,通常从卡中下载证书。现在,这部分可能是花费大部分时间的部分,所以如果有任何方法可以在CPU上缓存数据,或者只下载所需的证书,那么您可能会获得大量时间。
然而,这取决于所使用的库,如果以及如何做到这一点,这是不可能通过PKCS#11提供程序进行配置(据我所知)。请询问您的供应商!
https://stackoverflow.com/questions/16688730
复制相似问题