首先你需要去买一个加密狗设备,加密狗是外形酷似U盘的一种硬件设备! 这里我使用的坚石诚信公司的ET99产品
公司项目需要实现一个功能,就是客户使用加密狗登录, 客户不想输入任何密码之类的东西,只需要插上类似U盘的加密狗就验证身份登录! (当然如果U盘掉了,也就不安全了哦), 当时这个分配给我的时候,就给了我个ET99设备(类似于U盘那东西),和官方网站! 去官方下载资料(API & DEMO & DOC ),当时我自己心里也没有底,只有先试试吧! 正好今天“试”出来了,和大家分享一下!
ET99的安全性:
- 登录用户必须先输入自己的USER PIN进行验证后才有权限完成计算。
- USER PIN有最大重试次数限制,连续输入错误会锁死。从而防止硬件丢失后,被不合法的用户反复重试。
- 存储在ET99多功能锁中的密钥不能被任何人获取。
- 用户登录时必须具备硬件和保护硬件的USER PIN双重因子时才能登录。有硬件,不知道USER PIN或者知道USER PIN,没有硬件,都是没有办法登录的。比传统的用户名和密码方式大大增加的登录用户的安全性。(类似于银行的U盾)
- 保障了系统开发商的利益。使用硬件登录,不存在用户名密码共享的问题
ET99的认证方式
在整个认证过程中,ET99采用冲击响应的认证方式。当需要在网络上验证用户身份时,先由客户端向服务器发出一个验证请求。服务器接到此请求后生成一个随机数并通过网络传输给客户端(此为冲击)。客户端将收到的随机数提供给ET99,由ET99使用该随机数与存储在ET99中的密钥进行HMAC-MD5运算并得到一个结果作为认证证据传给服务器(此为响应)。与此同时,服务器也使用该随机数与存储在服务器数据库中的该客户密钥进行HMAC-MD5运算,如果服务器的运算结果与客户端传回的响应结果相同,则认为客户端是一个合法用户。