【发布时间】:2011-01-22 22:10:51
【问题描述】:
我正在构建一个 python 应用程序来从网站中提取数据。应用程序必须使用 CAC 卡和 pin 进行身份验证(HTTPS/SSL)才能发出请求。
我的假设是否正确,即您无法从 CAC 卡中检索私钥,因此无法使用像 PyKCS 这样的 PKCS #11 Wrapper?
有什么提示或资源可以解决这个问题吗?
【问题讨论】:
标签: python smartcard pkcs#11 cac
我正在构建一个 python 应用程序来从网站中提取数据。应用程序必须使用 CAC 卡和 pin 进行身份验证(HTTPS/SSL)才能发出请求。
我的假设是否正确,即您无法从 CAC 卡中检索私钥,因此无法使用像 PyKCS 这样的 PKCS #11 Wrapper?
有什么提示或资源可以解决这个问题吗?
【问题讨论】:
标签: python smartcard pkcs#11 cac
我会尝试找出 ECA 证书是否是合适的替代品。例如,有些网站接受 CAC 和 ECA 证书。欲了解更多信息:http://iase.disa.mil/pki/eca/certificate.html
【讨论】:
身份验证和签名密钥通常在卡上生成并且不可提取,这与可以/应该在某处托管的加密密钥不同。
有关 M2Crypto 的示例,请参阅 Need help using M2Crypto.Engine to access USB Token,该示例解释了如何通过 PKCS#11 使用智能卡在 python 中访问网站。
【讨论】:
你是对的。这就是智能卡保护私钥安全的全部目的。如果您的应用程序在 Windows 中运行,您可以尝试使用 WININET.DLL 进行连接,安装正确的中间件后,它应该会自动处理启用 CAC 的站点的身份验证。
【讨论】: