首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从智能卡读取数据以验证用户身份?

如何从智能卡读取数据以验证用户身份?
EN

Stack Overflow用户
提问于 2014-11-10 22:30:58
回答 2查看 808关注 0票数 0

我有一个要求,其中用户将使用连接到其PC的智能卡(令牌)。当他访问网站时,我需要通过从智能卡读取证书信息对用户进行身份验证,然后使用数据库验证此数据。如果信息正确,则登录用户;否则显示错误消息或证书。

我们使用SSL(HTTPS)连接,该连接由不同于智能卡所使用的CA的CA进行身份验证。

我如何在Java中做到这一点呢?

EN

回答 2

Stack Overflow用户

发布于 2014-11-11 06:02:41

您对预期身份验证过程的描述显示了一个不同寻常的弱点。证书持有公钥和一些额外的数据,如用户名等,即完全由公共数据组成。通常,用户应用其私钥来生成签名,而您使用证书中的公钥来验证签名,这样做的好处是,通过生成签名,卡可以间接证明用户知道私钥所需的PIN,还可以防止重放攻击。此外,证书的数据库条目也不是必需的,因为您可以使用证书中的卡号之类的内容。(但是,您可能需要记录其他信息,如关联的用户角色)。

票数 1
EN

Stack Overflow用户

发布于 2021-07-14 21:27:13

用户需要向门户预先注册他的公钥(或者说包含公钥的证书)。然后在登录/认证时,用户在浏览器端使用智能卡或usb令牌中的私钥对authtoken (即"UserID|Password")进行签名,并将带有authtoken和签名令牌的请求发送到服务器。在服务器端,使用用户注册的公钥对签名的token进行验证,如果签名验证成功,则允许用户访问portal。

在浏览器端,您可以使用来自Digital Signing Browser Extension的签名Javascript API

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26852637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档