c++ - 不使用 pin 列出来自 CAC 的证书

标签 c++ smartcard nss cac pcsc

我正在开发 CAC 身份验证应用。

我正在运行 RHEL 5.5,并在我的机器上连接了一个读卡器。当我插入智能卡/CAC 时,时钟所在窗口的右上角会弹出一个通知,单击图标(带锁的卡)可以访问“智能卡管理器”GUI出现。通过显示智能卡管理器,我可以查看卡上的证书列表以及详细信息等,而无需输入 PIN。

现在,另一方面,在我的 C++ 代码中,当我使用 nss 库获取插槽和列表证书时,我无法在不输入 pin 的情况下获取证书列表。

我想做的是从卡上获取证书列表,并在带有 pin 文本字段的对话框中将该列表呈现给用户,以便用户可以输入 pin,然后选择用于身份验证的证书全部在一个步骤中,而不是应用程序必须显示一个单独的 pin 对话框,然后弹出证书选择,但似乎不可能使用 nss 库,但另一方面,智能卡管理器 gui 可以轻松地做到这一点。如果有一个单独的 api 可以用来从 CAC 获取证书列表,有人能给我指出正确的方向吗???谢谢!

最佳答案

  • 在网络上搜索“友好证书”或“公开可读证书”功能/机制(加载模块时为 0x1<<28)- 默认情况下,NSS 假定在任何可以之前需要 PIN从 token 中读取。恕我直言,将其保留为默认值是完全愚蠢的...
  • 请务必考虑密码键盘阅读器(PKCS#11 中 protected 身份验证路径),因为您希望为具有此功能的用户提供更好的安全性支持。当连接了密码键盘阅读器时,不应显示 PIN 输入文本框。

关于c++ - 不使用 pin 列出来自 CAC 的证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3205423/

相关文章:

smartcard - 个性化中安全域与小程序的关系

java - 使用 javax.smartcardio 读取 NFC Mifare Ultralight 卡

objective-c - IOS 应用程序将数据发送到 REST API 服务内容类型定义错误

javascript - NSS 3.18.1 公共(public)功能是否支持 PKCS11 验证功能

c++ - optional<map<string, string>> 中的值在非常特殊的情况下得到 "corrupted"

c++ - 立方体 OPENGL 上缺少面

c++ - FastCGI与C++除了spawn-fcgi之外的其他启动方式

c++ - 在虚拟桌面qt中获取特定屏幕的中心

c - OpenSC 与 openCryptoKI

ssl - 如何使用 keytool 创建证书链?