一般来说,我对智能卡的认证知之甚少,所以如果下面的内容没有意义的话,请指出或纠正我。
让我说:
我试着在网上搜索信息,但没有占上风。台阶会是什么?我的第一个想法是:
设置一个web服务,这将允许为每个用户保存(例如)乒乓球游戏的分数。每当有人试图通过客户端应用程序提交分数时,他只能将智能卡插入读取器。
然后,本机c调用通过.NET从智能卡读取公钥并发送到我的自定义web服务,该服务使用CA-s身份验证OCSP web服务来证明公钥/公钥证书(?)的有效性。如果公钥是安全有效的,则使用公钥加密随机字节序列,并将其发送到客户端应用程序。如果客户端应用程序将正确解密的随机字节序列与乒乓球游戏的分数一起发回,则将该分数保存在数据库中供给定用户使用。
我的问题是,这样做对吗?关于智能卡认证,我还应该知道些什么?
发布于 2012-02-20 09:50:41
这听起来太复杂了,而且方向完全错误。
首先,“在.NET客户端应用程序中实现用户身份验证的要求”。.Net应用程序在用户会话中运行,这意味着用户身份验证已经发生。太晚了。
但是智能卡登录已经被支持了。这是由SCardSvr.exe (智能卡服务)与WinLogon一起完成的。作为一种服务,它并不局限于这种方式。但显然,WinLogon不会以这种方式与您的服务合作。那就不太安全了
正确的解决方案是实现“智能卡加密服务提供商”(CSP)。这是一个非常重要的解决方案,如果您遇到了像您这样的不可能的需求。
发布于 2012-04-12 22:02:53
如果您想自己进行身份验证,而不是信任操作系统,是的,您是在正确的轨道上。
在os级别使用智能卡的AFAIK需要域身份验证。如果不是,您的所有用户都使用域,则必须进行身份验证。(例:因特网用户)
更实用的方法是;
这种方式更少的聊天和更少的数据传输。
您可以使用.net API计算散列,也可以自己使用智能卡,但是智能车通常比较慢,如果安全性不太严格,我建议使用.net API。
https://softwareengineering.stackexchange.com/questions/135841
复制相似问题