我有一个 Java 应用程序,可以从智能卡读取证书并使用它们登录用户。该应用程序还可以使用其他登录方法(用户名和密码)跟踪失败的登录尝试。
我想知道是否可以在没有 PIN 码的情况下从智能卡读取用户信息?我想将失败的 pin 条目标记为失败的登录尝试,但因为我需要 pin 来从证书中读取别名,所以我无法知道哪个用户正在尝试登录。有没有办法在没有 Java 中的 pin 的情况下读取这些信息?
我尝试根据此线程的建议加载 KeyStore 对象:Getting certificates from PKCS11 Smartcard without PIN/password但没有运气。我什至不知道这是否可能。
我可以在不输入 PIN 的情况下从 ActivClient 代理看到某些信息,但不知道 Java 是否可以以某种方式检索这些信息。这就是我加载 keystore 的方式:
KeyStore keyTest = KeyStore.getInstance("PKCS11",pkcs11Provider);
keyTest.load(null,null);
即使我没有指定回调处理程序,上面仍然要求输入 pin。 pkcs11Provider 是包含 ActivClient dll 的 cfg。通常我使用 pin 回调处理程序加载 keystore 。
最佳答案
经过一番调查,这在很大程度上取决于您使用的卡类型以及您使用的 PKCS11 库。没有一个答案适合所有情况。
关于java - 无需 PIN 码即可读取智能卡信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26871054/