我正在GPF-加密棒在 ubuntu 11.04 上运行,使用 Firefox 5.0。使用智能卡是一件很棒的事情,但我没有找到任何好的使用方法。也许只是缺乏理解。
第一的:我的 Cryptostick(智能卡)工作正常。我使用它通过 ssh 连接到远程服务器。我可以看到我的智能卡gpg --card-status
并ssh-add -l
显示我的密钥。一切正常。
第二:我已经建立了一个网站,需要apache2/mod-ssl 客户端身份验证和
SSLVerifyClient require
SSLCACertificateFile conf/whatever/ca.crt
SSLVerifyDepth 1
我通过使用 openssl 生成我自己的 CA,并创建由我自己的 CA 签名的证书并将其导入 Firefox 来实现这一点。也可以。
问题:现在我想用我的智能卡在这个网站上进行身份验证。大多数时候我都会读到一些关于将 pkcs#11 库加载到 Firefox 中的内容。我试过
- /usr/lib/pkcs11/libcoolkeypk11.so 来自 coolkey 包
- 由我的智能卡制造商推广:http://smartcard-auth.de/download-de.html
两者都无法通过 Firefox 加载。Firefox 只会显示“无法加载模块”,而没有提供任何进一步的信息(在我的情况下,原始错误消息是德语的)。我对证书和 pcks#11、firefox 等的内部原理一无所知。
我有几个问题:
- 我可以使用 USB 智能卡在网站上进行身份验证吗?
- 如果是,我需要什么库才能让 Firefox/5.0 使用我的智能卡?这是否取决于我的卡,所以每张卡都需要一个特殊的 pkcs#11 驱动程序?
如果我设法让 Firefox 使用我的智能卡,我想我必须设法将子密钥上传到我的智能卡,以便使用我自己生成的网络服务器 CA。但这是另一个故事。
如果您需要更多信息来帮助我,请告诉我。我没有把每一点都放在这里以使我的问题简短。
答案1
您可以在网站上使用 USB 智能卡和加密棒进行身份验证。多年来,每个流行的浏览器都支持此机制。
所需的驱动程序是特定于卡的。对于 Crypto Stick 和 Firefox,您需要此处提供的 PKCS#11 驱动程序:http://smartcard-auth.de/download-en.html(OpenSC 将在其下一版本 0.12.2 中支持 Crypto Stick,然后可以替代使用。对于 Windows 下的 Internet Explorer 和 Chrome 浏览器,您需要此 Minidriver:http://www.mysmartlogon.com/products/openpgp-smart-card-mini-driver.html)
如果 Firefox 显示“无法加载模块”,请确保在 Linux 下使用 .so 文件,在 Windows 下使用 .dll 文件。
如果成功,您需要在 Crypto Stick 上生成证书(您可以直接在 Firefox 中执行此操作,例如在 CAcert.org 中)或导入现有证书。后者有点棘手,因为在撰写本文时驱动程序支持有限。