gpt4 book ai didi

authentication - 使用USB token 或智能卡上的数字签名证书从浏览器进行用户身份验证

转载 作者:行者123 更新时间:2023-12-04 06:40:14 25 4
gpt4 key购买 nike

我想从客户端的USB令牌或智能卡上获得带有数字签名的浏览器用户身份验证的JavaScript代码。但是我不知道如何使用USB令牌从浏览器对登录请求(例如authtoken)或UserID和Passwrd进行数字签名。我需要在浏览器上弹出一个窗口,以选择USB令牌形式的证书。我的用户在其PC上安装了各种品牌的USB令牌和相应的驱动程序。

我需要用户不必选择已分配驱动程序的解决方案。

最佳答案

从新的Modern Browser产品中逐步淘汰了Java applet,Active X等方法。近年来,有关WebCrypto API的讨论很多,但是截至目前,WebCrypto API尚不提供对(Windows)或任何其他密钥存储区或本地加密USB /智能卡设备的访问。
对于使用Digital Signature从浏览器进行身份验证,可用的此类免费Chrome扩展程序之一是Signer.Digital chrome扩展程序。本地系统(运行于Windows或Linux上的Chrome / Edge浏览器后面的主机)Windows安装程序可以从https://signer.digital/downloads/Signer.Digital.Chrome.Host.Setup.zip下载
安装此主机并重新启动Chrome会自动添加Signer.Digital Chrome Extension
此扩展的实际工作以here表示
测试步骤:

为您的USB令牌或智能卡安装设备驱动程序-这将使您的证书在Windows证书存储区中

安装上面指示的setup

重新启动Chrome浏览器。

打开this link

放入UserID和密码,然后单击“注册”按钮-这将要求选择“数字签名”并在服务器上注册(仅对于此会话-不永久)。

然后再次输入相同的用户名和密码,并选择相同的证书,然后单击登录。选择其他证书将不允许登录。


从扩展名调用方法的Javascript:
要在服务器上注册证书:

//Get Selected Certificate Information 
SignerDigital.getSelectedCertificate()
.then(
function (CertInfo) {
//Success returns Certificate Subject and Thumbprint
},
function (errmsg) {
//Send errmsg to server or display the result in browser.
}
);

要使用数字签名进行身份验证或登录,请执行以下操作:
SignerDigital.signAuthToken(authToken, "SHA-256")       //or "SHA256"
.then(
function (SignData) { //Success returns Signed Auth Token
},
function (errmsg) {
//Send errmsg to server or display the result in browser.
}
);

签署PDF:
    //Calculate Sign for the Hash by Calling function from Extension SignerDigital
SignerDigital.signPdfHash(hash, $("#CertThumbPrint").val(), "SHA-256") //or "SHA256"
.then(
function (signDataResp) {
//Send signDataResp to Server
},
function (errmsg) {
//Send errmsg to server or display the result in browser.
}
);

如果失败:返回错误消息,以“ SDHost错误:”开头
来自浏览器的用户身份验证
Web Authentication using Digital Signature

关于authentication - 使用USB token 或智能卡上的数字签名证书从浏览器进行用户身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55757258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com