从通用浏览器(通过http(s)连接到服务器),最好是从Javascript访问本地智能卡的可能的客户端架构有哪些,最终用户的安装麻烦最少?服务器需要能够至少向卡发出其选择的APDU(或者可能将其中的一部分委托给它生成的客户端代码).我假设在工作PC/SC堆栈的客户端可用,配有智能卡读卡器.自XP,现代OS X和Unix以来,至少在Windows上这是一个合理的假设.
到目前为止,我已确定了以下选项:
javax.smartcardio.从功能的角度来看,这很好,有充分的记录,我可以忍受一些已知的错误,但我害怕在接受Java-as-a-browser-extension时不可抗拒的向下螺旋.还有其他想法吗?
另外:是否有某种方法可以防止浏览器滥用浏览器所拥有的任何PC/SC接口(例如,提供3个错误的PIN来阻止卡片,只是为了它的肮脏;或者制造一些更邪恶的东西).
由于斯堪的纳维亚国家的法律要求,我们正在为网站创建三因素身份验证.客户使用NetID品牌的浏览器插件在浏览器中执行PKCS#11证书身份验证.智能卡由客户的合作伙伴集中供应.
该主题没有太多的在线资源或教程.有人会有任何指向示例实现或教程的指针如何在Web浏览器中进行PKCS11身份验证?
编辑:找到有关SSL客户端证书
看起来认证方法是SSL客户端证书
我们如何管理用户与智能卡之间的关系?
用户是否向我们提供了他们的公钥,我们对他们进行身份验证?
我们是否需要使用我们自己的证书单独签署/配置每个用户?
是否所有用户智能卡都包含一个"通用"密钥,我们根据提供商证书进行测试?
http://www.impetus.us/~rjmooney/projects/misc/clientcertauth.html