Windows Vista/7 是否提供了某种通用实用程序和工具来在智能卡上生成不可导出的 RSA/DSA 密钥并从智能卡签署 CSR?
任何提示/技巧/指针都值得赞赏。
PS 我知道 OpenSC/OpenCT 提供的 PKCS15
答案1
通常,Windows 中用于登录的智能卡由 Active Directory 证书服务处理。Windows 服务器角色负责创建、颁发和管理智能卡的 PKI 基础结构。
然而我不确定纯粹基于客户端的解决方案。
答案2
大多数智能卡都有 PKCS#11 接口。GnuTLS 工具集可以通过 PKCS#11 访问智能卡。项目主页上有 GnuTLS 的 Windows 版本。GnuTLS 文档
您还需要一个适用于智能卡的 PKCS#11 驱动程序,您可能可以在卡制造商的主页上找到它。您可以使用选项将 GnuTLS 指向驱动程序--provider="C:\path\to\pkcs11-dll\my_p11_driver.dll"
。
一些智能卡可能有一个选项可以导入自制密钥,并将其标记为“不可导出”。其他智能卡已预装密钥,默认情况下这些密钥是“不可导出”的。您可以使用certtool
GnuTLS 为这些密钥创建证书(或证书请求)。是否要信任预装的密钥材料尚待讨论。但制造商通常会宣传密钥材料是在安全环境中从专用硬件设备创建的,无需任何外部连接。