您的位置:首页 > 其它

使用USB Key(加密狗)实现身份认证

2011-03-18 16:31 405 查看
首先你需要去买一个加密狗设备,加密狗是外形酷似U盘的一种硬件设备!这里我使用的坚石诚信公司的ET99产品

公司项目需要实现一个功能,就是客户使用加密狗登录, 客户不想输入任何密码之类的东西,只需要插上类似U盘的加密狗就验证身份登录!(当然如果U盘掉了,也就不安全了哦),当时这个分配给我的时候,就给了我个ET99设备(类似于U盘那东西),和官方网站!去官方下载资料(API&DEMO&DOC),当时我自己心里也没有底,只有先试试吧!正好今天“试”出来了,和大家分享一下!

ET99的安全性:

登录用户必须先输入自己的USERPIN进行验证后才有权限完成计算。
USERPIN有最大重试次数限制,连续输入错误会锁死。从而防止硬件丢失后,被不合法的用户反复重试。
存储在ET99多功能锁中的密钥不能被任何人获取。
用户登录时必须具备硬件和保护硬件的USERPIN双重因子时才能登录。有硬件,不知道USERPIN或者知道USERPIN,没有硬件,都是没有办法登录的。比传统的用户名和密码方式大大增加的登录用户的安全性。(类似于银行的U盾)
保障了系统开发商的利益。使用硬件登录,不存在用户名密码共享的问题
ET99的认证方式

在整个认证过程中,ET99采用冲击响应的认证方式。当需要在网络上验证用户身份时,先由客户端向服务器发出一个验证请求。服务器接到此请求后生成一个随机数并通过网络传输给客户端(此为冲击)。客户端将收到的随机数提供给ET99,由ET99使用该随机数与存储在ET99中的密钥进行HMAC-MD5运算并得到一个结果作为认证证据传给服务器(此为响应)。与此同时,服务器也使用该随机数与存储在服务器数据库中的该客户密钥进行HMAC-MD5运算,如果服务器的运算结果与客户端传回的响应结果相同,则认为客户端是一个合法用户。

如何开始:1、在运行ET99全功能Active控件和ET99网页安全Active控件之前,请把FT_ET99_API.dll、ET99_MOD.dll和ET99_FULL.dll拷贝到系统目录下(一般位于windows系统中的system32目录下),然后注册全功能Active控件和网页Active控件,命令行命令如下:regsvr32ET99_MOD.dll和regsvr32ET99_FULL.dll.

2.初始化设备:









到这一步还没有结束呢,我操作的时候就以为结束了,部署官方的et99_sample_csharp_bs示例程序,怎么也登录不进去!因为这里还没有写入Key!





而就是写入Key到数据库和ET99设备中这里需要我们来开发!(之前不清楚AspInit干什么,一头雾水)!

1.实现AspInit页面功能,把key和用户名写入到ET99和数据库中





2.第一步实现了就可以去登录试试了





3.前面不是说PIN为16位吗?怎么这里你才输入4位呢?这样的话,那个客户愿意记住16位的PIN呢?就需要自己写个修改PIN页面了!第一次修改的时候,你还得输入16位PIN码,以后就不用了!





4.现在总是大功告成了吧,还没呢?不是说要自动登录吗?怎么还要我点击登录呢?这个这个,好像不行吧!其他网站也是只有记住用户名和密码啊?好像还是需要去点击一下登录按钮吧!老大说:"就先这样吧!"。还好今天早上,突然想到了思路,用户第一次成功登录后,把PID,PIN写入Cookie里面,当下次登录的时候直接在Cookie里面获取,在使用JS调用登录按钮的click()事件即可!可是很多人说cookie不安全啊,呵呵,就算别人获取到cookie里面的值又想怎么,ET99设备他总没有!必须拥有PID+PIN+ET99设备才可以成功登录!有个小插曲,做自动登录的时候,因为onload事件调用登录按钮的click()事件形成了死循环,一直在onload一直在click()!最后在前台JS声明个count计数变量,后台登录成功之后在把count值修改一下即可!到此基本结束!
结语:
这一周基本都在做这个!其中也遇到过很多错误!很感谢/article/5537744.html这位大哥写的ET99Tools,个人觉得比官方的还好!特别是异常处理那块!(当然我程序中异常处理也是直接copy他的代码过去ET99_API.cs),官方的文档也要仔细的看,当时我就是由于走马观的看了看,程序抛出的异常都不知道什么情况,比如执行有些函数必须的前置条件,结果前置条件都没有执行,当然程序会出错!另:winform程序是引用ET99_MOD.dll,而asp.net程序则是引用ET99_FULL.dll,之前也是DLL引用错了,一直在错!
源程序+官方资料+ET99Tools(上面链接哪位仁兄写的)下载

Technorati标签:ET99,加密狗,坚石诚信,usbKey,身份认证,自动登录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: