Firefox 通过浏览器访问ePass2003自动令牌
我已将ePass2003自动令牌加载到自签名证书中。我得到了lib**.so文件以加载到firefox中,现在firefox可以在令牌中列出证书。我的要求是访问用于签名、加密和解密的密钥库,即用于加密操作的公钥和私钥。我可以请求有关javascript API的指导,以便执行上述加密操作。披露:我为CISPL工作 要访问ePass2003或任何智能卡或加密USB令牌,您需要使用浏览器扩展。据我所知,浏览器可能会使用加密设备的密钥进行TLS握手。我公司提供这样的扩展签名。数字浏览器扩展。及 Windows主机可以从以下位置下载: 在windows上,我们不需要PKCS#11,但我们使用windows CSP。因此,必须在Windows客户端设备上安装USB令牌驱动程序,才能在web浏览器上运行。所以这个文件不是针对Windows的,而是针对Linux的 Linux主机使用这个.so文件和PKCS#11来完成任务,但这对ePass2003用户是透明的,主机应用程序负责这一点 我的要求是访问用于签名、加密和解密的密钥库,即用于加密操作的公钥和私钥。请允许我请求有关javascript API的指导,以便执行上述加密操作 我列出了javascript API(Signer.Digital版本1.6.3)提供的:Firefox 通过浏览器访问ePass2003自动令牌,firefox,hardware,pki,pkcs#11,hsm,Firefox,Hardware,Pki,Pkcs#11,Hsm,我已将ePass2003自动令牌加载到自签名证书中。我得到了lib**.so文件以加载到firefox中,现在firefox可以在令牌中列出证书。我的要求是访问用于签名、加密和解密的密钥库,即用于加密操作的公钥和私钥。我可以请求有关javascript API的指导,以便执行上述加密操作。披露:我为CISPL工作 要访问ePass2003或任何智能卡或加密USB令牌,您需要使用浏览器扩展。据我所知,浏览器可能会使用加密设备的密钥进行TLS握手。我公司提供这样的扩展签名。数字浏览器扩展。及 Win
SignerDigital.getSelectedCertificate(certThumbPrint=“”,showExpired=false,keyUsageFilter=128)
keyUsageFilter值应符合System.Security.Cryptography.X509Certificates.X509KeyUsageFlags枚举,并且可以添加(求和)多个值
SignerDigital.signHash=函数(散列,certAlgorithm,certThumbPrint=“”)
SignerDigital.signAuthToken=函数(authtoken,certAlgorithm,certThumbPrint=“”,showExpired=false)
certAlgorithm是一个需要使用的算法。例如:“SHA256”或“SHA-256”
此处可以使用showExpired标志,允许用户仅使用过期证书登录,并仅提供对用户可以上载其新证书的区域的访问
SignerDigital.signPdfHash=函数(散列、certThumbPrint、certAlgorithm)
SignerDigital.signXML=function(xmlDoc、xmlSignParms、certThumbPrint)
SignerDigital.encryptB64Data=函数(b64Data,UseAeppadding,certThumbPrint=“”,showExpired=false,keyUsageFilter=32)
例如:
var strotenc=“要加密的明文字符串。”;
var strB64Data=btoa(strotenc);
log(“明文字符串的Base64字符串:“+strB64Data”);
//不要提供最后一个parm-certThumbPrint来打开选择证书的对话框。
SignerDigital.encryptB64Data(strB64Data,false,“224D7F695ABF0E22EA8D314497F5B56AEFA96FFE”)//对于PKCS1填充为false,对于OAEP填充为true
.那么(
函数(EncryptedB64String){//成功返回xmlSign
log(“加密的Base64字符串:“+EncryptedB64String”);
log(“加密字符串:+atob(EncryptedB64String));
},
函数(ErrMsg){
console.log(ErrMsg);
}
)
感谢您以最清晰、最完整的方式回答问题。我现在能够根据上面给出的脚本使用令牌中的公钥加密文本。由于上述问题,我的项目暂停了,多亏了你,它现在有轮子了。我已经测试了上面的脚本,如果有人想在小的实现中使用它,请ping我。再次感谢。您好@BharatVasant。您能为.net core提供这个吗?是的。我们有.NET核心库和现成的应用程序。您不需要浏览器来访问硬件密钥;本地应用程序在这方面做得非常好(事实上,您的扩展证明了这一点;它使用本地应用程序作为“本地消息传递”服务器来破坏浏览器沙箱)。用户不需要采取行动来确保他们下载的内容安全;默认情况下,它应该是-需要是-安全的。不过,我很高兴听到你在进步。还考虑禁用对密钥的透明访问,至少对于给定站点的密钥的首次访问,尤其是不要使用公开数据(CURT指纹)来识别用于透明访问的秘密密钥。这听起来是一个巨大的改进!我去看看。