应用文档
超级狗身份认证使用指南
更新时间:2018-11-16 15:12:12 点击量:
产品简介
工作原理
超级狗双因素身份认证可以使网络访问者经过双重认证才能获得网络访问授权。授权的访问者必须持有超级狗并且知道其口令。访问者需要把超级狗插入 USB 接口中,并且输入正确的口令,以证实自己的身份。如果身份认证服务器不能识别访问者的身份,网络访问将被拒绝。
超级狗双因素身份认证向用户提供了比传统用户名口令方式更安全的网络身份认证机制。
工作原理
超级狗利用内置算法采用查询响应的方式对访问者身份进行验证和确认。
当身份认证服务器发给超级狗查询值时,超级狗使用内置算法计算出匹配的响应值,并通过网络发送给服务器。查询值是随机的,因此拦截超级狗与服务器的通讯数据并不能帮助破解。此方式与输入口令验证方式相比更安全,更难于破解, 因为口令并没有在网络上传输。
超级狗采用单向不可逆哈希算法计算响应值。超级狗内置了智能卡芯片,能够有效地防止硬件复制或伪造。超强的硬件保护,使算法不可被非法读取,从而保障了安全性。
不同开发商购买的超级狗内置的算法因子不同,可以有效防止其他人购买超级狗伪装成合法用户。
已通过的测试环境
服务器端支持 JSP、 ASP.NET 和 PHP。
客户端支持主流浏览器。目前已测试的平台如下:
客户端支持主流浏览器。目前已测试的平台如下:
Windows XP: IE8, Firefox, Google Chrome
Windows 7: IE8, IE9, IE10, Firefox, Google Chrome
Windows 8: IE10, Firefox, Google Chrome
Windows 8.1: IE11, Firefox, Google Chrome
Windows 10: IE11, Firefox, Google Chrome
用户登录流程
以使用 IE 浏览器为例,使用其它浏览器时略有区别。
以使用 IE 浏览器为例,使用其它浏览器时略有区别。
1. 浏览登录页面,如 http://localhost:8080/Authentication/Login.jsp 。客户端会自动提示加载安装 ActiveX 控件,点击安装,完成控件的安装,如果已经安装了控件则不会提示。
2. 页面的 javascript 代码调用控件的 SetCheckDogCallBack(“insertDog”,”removeDog”) 方法设置 js 回调函数。“insertDog”插入超级狗的响应函数,“removeDog”拔出超级狗的响应函数。
3. 页面的 javascript 代码调用控件的 Open (Scope, AuthorCode) 方法,打开超级狗。只有打开狗以后才可访问后续的处理函数,使用结束后需调用 Close () 方法关闭超级狗。参数 Scope 表示在多个超级狗同时存在的情况下,可以打开特定的狗;参数AuthorCode 是从服务端的 auth_code.xml 配置文件中读取的算法数据。
4. 页面的 javascript 代码调用控件的 VerifyUserPin(PIN) 方法,验证用户输入的口令与超级狗中的口令是否一致。
5. 页面的 javascript 代码调用 getChallenge() 方法发送 httpRequest 请求,获取服务端随机生成的挑战数据,服务端同时把数据记录到 session 中。
6. 页面的 javascript 代码调用控件的 GetDigest (PIN) 方法,对挑战数据进行加密处理。
7. 页面的 javascript 代码调用 doAuth () 方法发送 httpRequest 请求,把从ActiveX 控件中获取的 DogID 和加密的挑战数据发送给服务端。服务端的verifyDigest()方法对数据进行比对。
8. 对登录的用户进行数据库(Access Database)的查询匹配,如果匹配成功则可以访问
主页。
用户注册流程
以使用 IE 浏览器为例,使用其它浏览器时略有区别。
1. 浏览登录页面,如: http://localhost:8080/Authentication/Register.jsp 。客户端会自动加载提示安装 ActiveX 控件,点击安装,完成控件的安装,如果已经安装了控件则不会提示。
2. 页面的 javascript 代码调用控件的 SetCheckDogCallBack(“insertDog”,”removeDog”) 方法设置 js 回调函数。“insertDog”,插入超级狗的响应函数,“removeDog”拔出超级狗的响应函数。
3. 页面的 javascript 代码调用控件的 Open (Scope, AuthorCode) 方法,打开超级狗。只有打开狗以后才可访问后续的处理函数,使用结束后需调用 Close () 方法关闭超级狗。参数 Scope 表示在多个超级狗同时存在的情况下,可以打开特定的狗;参数AuthorCode 是从服务端的 auth_code.xml 配置文件中读取的算法数据。
4. 页面的 javascript 代码调用控件的 VerifyUserPin(PIN) 方法,对于新注册的超级狗需要先验证,输入初始参数“12345678”。
5. 页面的 javascript 代码调用 getChallenge() 方法发送 httpRequest 请求,获取服务端随机生成的挑战数据,服务端同时把数据记录到 session 中。
6. 页面的 javascript 代码调用控件的 GetDigest (PIN) 方法,对挑战数据进行加密处理。
7. 页面的 javascript 代码调用 doAuth () 方法发送 httpRequest 请求,把从ActiveX 控件中获取的 DogID 和加密的挑战数据发送给服务端。服务端的verifyDigest()方法对数据进行比对。
8. 对新注册的用户记录用户信息,把信息写入数据库(Access Database)。
9. 数据库写入成功后,调用 ActiveX 控件的 RegisterUser(username, PIN)方法,把注册信息写入到超级狗里。
用户修改口令流程
以使用 IE 浏览器为例,使用其它浏览器时略有区别。
1. 浏览登录页面,如:http://localhost:8080/Authentication/ModifyPin.jsp 。客户端会自动加载提示安装 ActiveX 控件,点击安装,完成控件的安装,如果已经安装了控件则不会提示。
2. 页面的 javascript 代码调用控件的 SetCheckDogCallBack(“insertDog”,”removeDog”) 方法设置 js 回调函数。“insertDog”,插入超级狗的响应函数,“removeDog”拔出超级狗的响应函数。
3. 页面的 javascript 代码调用控件的 Open (Scope, AuthorCode) 方法,打开超级狗。只有打开狗以后才可访问后续的处理函数,使用结束后需调用 Close () 方法关闭超级狗。参数 Scope 表示在多个超级狗同时存在的情况下,可以打开特定的狗;参数AuthorCode 是从服务端的 auth_code.xml 配置文件中读取的算法数据。
4. 页面的 javascript 代码调用控件的 VerifyUserPin(PIN) 方法,验证用户输入的旧口令与超级狗中的口令是否一致。