如何使用UKEY中的数字证书验证用户身份?

问题描述

用户已经有了X.509数字证书,安装在USBKEY里。现在我想实现使用UKEY登录自己开发的应用程序,实现身份认证。我想身份认证过程实际是用户证明自己拥有私钥的过程,大致可以用读到的公钥对某个信息加密,然后调用用户私钥解密,这个过程中UKEY驱动会自动接管调用私钥解密过程,确保私钥不出UKEY。使用C#自带的库可以枚举用户的证书,并读出其中的内容。问题是这些操作并不需要用到私钥,也就不会用到用户的PIN码。光能读出这些只能证明用户在说他自己是谁,没法证明他就是。那自己写的程序如何才能通过数字证书验证用户的身份呢?我感觉应该有标准机制来验证用户身份的吧?期待示例代码。

解决方案

解决方案二:
自己做。多数UKEY支持CSP接口。问题出来了,使用正确的CSP名称初始化provider时,提示密钥集不存在。但事实上初始化的时候根本没有指定密钥集。而有时候却可以成功。
解决方案三:
问题已解决。初始化提示没有指定密钥集是因为默认是交换密钥,手工指定为签名密钥就好了。这个方法不好,因为要找到具体的密钥容器需要读取注册表,使用默认容器的话要求电脑上只插了这一个UKEY。相关代码:CspParameterscsp=newCspParameters(1,ProviderName);csp.Flags=CspProviderFlags.UseDefaultKeyContainer;csp.KeyNumber=2;//指定为签名密钥RSACryptoServiceProviderrsa=newRSACryptoServiceProvider(csp);...
解决方案四:
最近我也在写一个这样的UKEY认证,能给我看看你怎么写的吗?

时间: 2024-09-13 16:36:29

如何使用UKEY中的数字证书验证用户身份?的相关文章

在ASP应用中验证用户身份(3)

三.用户身份验证 为简单计,本文只讨论在服务器端的用户身份验证.登录页面是通过调用ASPSecurity.inc中的signUserOn函数验证用户身份的.signUserOn检查数据库中是否存在和用户输入的名字.密码匹配的记录:function signUserOn(aSignon, aPassword)dim dict' 用户输入的名字aSignon = lcase(trim(aSignon))' 用户输入的密码aPassword = lcase(trim(aPassword))' 提取用户

在ASP应用中验证用户身份(4)

在ASP应用中验证用户身份(4) 作者:仙人掌工作室 四.在安全页面中检查是否已经验证用户身份 每一个受保护的页面都应该检查用户身份是否已经验证.这是因为用户有可能为这些页面做了书签,如果不在这些页面中验证用户已经登录,就不能保证浏览页面的是经过授权的合法用户. 为检查是否已经验证用户身份,可以测试在signUserOn中创建的Session("User")是否是一个对象.类型是否正确等.如果上述测试失败,则重定向浏览器到登录页面signOn.asp.对于不支持Cookies的浏览器,

数字证书应用全攻略——检查电脑上中的数字证书

如果你要查看自己的电脑上有哪些 数字证书,可以使用以下四种方法:一.用MMC来查看单击"开始/运行",输入MMC打开"控制台",点击菜单"文件→添加/删除管理单元",在弹出的 对话框中点击"添加"按钮, 然后在管理单元列表中双击"证书",选中"我的用户账户",再点击"完成"按钮,回到"控制台根节点",窗口下面显示就是当前用户的所有证书.二.用cer

在ASP应用中验证用户身份

    交互式的Web应用比那些只提供静态Web页面的站点要求考虑更多的安全问题.注册与密码是保护敏感信息最为常用的手段.由于ASP没有直接提供验证用户身份的方法,因此,用户必须执行登录过程以便应用系统保存和提取用户相关信息.    一.示例站点概貌    本文通过一个示例站点ASPSecurity说明ASP应用中注册与密码保护的一般实现过程.我们把用户信息保存在Web服务器上的一个Access97数据库中,DSN名称为   ASPSecurity.唯一的数据库表拥有以下字段:Signon(文本

在ASP应用中验证用户身份(1)

交互式的Web应用比那些只提供静态Web页面的站点要求考虑更多的安全问题.注册与密码是保护敏感信息最为常用的手段.由于ASP没有直接提供验证用户身份的方法,因此,用户必须执行登录过程以便应用系统保存和提取用户相关信息. 一.示例站点概貌 本文通过一个示例站点ASPSecurity说明ASP应用中注册与密码保护的一般实现过程.我们把用户信息保存在Web服务器上的一个Access97数据库中,DSN名称为ASPSecurity.唯一的数据库表拥有以下字段:Signon(文本,注册的用户名),Pass

Linux中如何以不同的用户身份运行程序?

Linux中如何以不同的用户身份运行程序? 在管理Linux的过程当中,有些时候我们需要针对特定的用户,赋予一定的权限去执行某些程序,哪么应该如何去指定以不同的用户身份去运行相应的程序呢?我们可以通过su命令来实现: su - userhttp://www.aliyun.com/zixun/aggregation/11696.html">name -c "/path/to/command" 示例如下: [root@localhost software]# whereis

网络安全 数字证书-验证数字证书方面的问题

问题描述 验证数字证书方面的问题 网站安装了数字证书后,通过哪种方式可以知道发送到服务器的报文是加密的.目前用了fiddler2的工具,发现截取到的报文还是明文,并且可以修改内容.所以想了解安装数字证书后有什么特征,在测试方面有哪些需要注意地. 解决方案 需要网站支持https,然后浏览器用https的URL访问

备份和恢复电脑中的数字证书

数字证书也称CA证书,它是由一串很长的编码组成, 里面包括证书申请者的名称等相关信息.数字证书一般是由CA认证机构签发的,证明证书主体与证书中所包含的公钥是惟一的对应关系, 所以它在网络上广泛应用,下面我们就来介绍一下怎么样对数字证书进行备份和恢复. 备份数字证书 首先在"运行" 对话框中输入"MMC"来打开"控制台",接着点击菜单"文件→添加/删除管理单元",在弹出的对话框中点击"添加"按钮. 然后在管理

在ASP应用中验证用户身份(2)

二.初始化以及用户输入合法性检查 当一个ASP应用启动的时候,IIS就会寻找一个global.asa文件.如果该文件存在,就开始执行Application_onStart.在这里可以初始化应用级的变量和常量.下面的代码在Application_OnStart中初始化一个数组来跟踪任意时刻登录系统的所有用户: Sub Application_OnStartApplication("Users") = Array()End Sub 在执行Application_OnStart之后,ASP引