UKEY开发 用户登录流程
UKEY版本:UKEY2000D
最近公司接了一个开发项目,需要开发一个使用UKEY进行用户身份认证的功能,看了一些开发文档和资料后自己整理了一下用户登录的流程。
下面先介绍一下UKEY的内部结构,也就是那个像U盘一样的东西,通常叫他加密锁、加密狗。下面就是加密锁的内部结构:
如图所示,在加密锁内部有各种算法,这些算法都是开发商设置在加密锁内部的固话算法,不同的开发商应该会设置不同的算法。所以这里我就不会具体的将算法函数列出来了。
虽然算法不同,但是对于身份认证的原理都应该是相同的,我就主要讲一下用户登录时认证身份的流程吧。
- 用户插入加密狗
- 打开指定的登录网站(需要安装一个浏览器的插件才能够使用加密狗)
- 网站将会识别加密狗是否已经插入,没有插入的话提示无法登录。
- 网站成功识别并检测到对应的加密狗已经插入
- 用户输入用户名密码,点击登录
- 服务器返回一个随机数
- 提示用户需要输入pin码(pin码为加密狗的密码,相当于用户身份的密码,只有加密狗和Pin嘛同时在手里才能确定身份,大大提高了安全性,即使Pin码泄露,没有拿到加密狗也无法登录,或者即使丢了加密狗不知道Pin码同样不能登录)
- 客户端使用Pin码对服务器返回的随机数进行签名,签名过程会验证Pin码的正确性,Pin码错误将无法进行签名,也就无法登录,Pin码正确后将会使用加密锁内部的私钥对随机数进行签名。这一步骤的所有过程都是在加密锁内部执行的。
- Pin码验证正确并成功签名后,将用户信息和签名后的数据传到服务器。
- 服务器收到用户数据后使用公钥对签名数据进行验证。
- 验证通过即为合法用户,允许用户登录,验证失败为不合法用户,可能是用户使用了其他用户的加密狗。
当然,既然是开发,那么加密狗内部是密钥、用户身份、Pin码都是需要进行设置的,一个用户对应一份密钥对应一个Pin码才是对的。同样我将会说一下我理解的设置流程:
- 在新建用户的时候,插入一个新的加密狗。
- 将用户对应的Pin码和密钥存入数据库。
- 数据保存成功后再设置加密狗的Pin码,设置加密狗密钥。
- 有的加密狗还可以添加插入后自动打开指定网址和下载指定控件并运行的功能,具体操作请查阅开发商提供的开发文档。
当然,用户既然有忘记密码的情况,也会有忘记Pin码的情况,这时可以联系管理员进行查看或者修改Pin码,因为修改新Pin码必须要使用到原来的Pin码(防止了黑客拿到用户的加密狗修改Pin码的情况),所以服务器数据库保存的Pin码就很有用了。
我理解的UKEY身份认证流程和设置流程就是这样的了。
以上如果有不对的地方,请大神指出,感激不尽!!!
UKEY开发 用户登录流程相关推荐
- android studio 微信登录界面,如何使用Android Studio开发用户登录界面
满意答案 zhou9081 2016.05.21 采纳率:51% 等级:7 已帮助:411人 如何使用Android Studio开发用户登录界面,具体解决方案如下: 解决方案1: <:t ...
- 微信小程序用户登录流程思路及主要代码
微信小程序用户登录流程思路 由于微信官方不允许在刚进入小程序的时候,弹出用户登陆页面,需要在进入小程序后,用户主动点击才能进入登陆页面.此时,将会给小程序开发者在设计用户登陆页面时,带来一定的麻烦.现 ...
- php开发用户登录模块,使用CodeIgniter开发用户登录注册模块
本文介绍使用CodeIgniter来开发一个用户登录和注册的小模块,有详细的数据库表和ci代码. 1.数据库设计 字段 类型 空 额外 索引 id int(10) 否 auto_increment p ...
- 小程序短视频项目———开发用户登录注册(一)
二. 新建小程序注册模块,配置好注册页面. regist.wxml <view><view class="login-icon"><image cla ...
- 学习淘淘商城第八十七课(单点登录用户登录流程分析及用户登录Service层)
我们先来看下登录流程图,如下图所示. 用户登录涉及到三个部分,第一部分是淘淘商城前台工程,第二部分是单点登录服务,第三部分是Redis服务.具体流程下图已经说的很明白了,我就不再啰嗦一遍了,相比于传统 ...
- vue-element-admin用户登录流程
1.vue-element-ui简介 vue-element-ui集成了vue和element-ui框架. 是一个后台前端解决方案,它基于 vue 和 element-ui实现.它使用了最新的前端技术 ...
- java ee用户登录_EE Servlet 3:使用会话和过滤器开发用户登录
java ee用户登录 我在上一篇文章中介绍了Application类,您可以在其中设置后端服务. 我添加的一个示例服务是UserService . 该服务将加载包含用户名和密码集的Java用户属性文 ...
- EE Servlet 3:使用会话和过滤器开发用户登录
我在上一篇文章中介绍了Application类,您可以在其中设置后端服务. 我添加的一个示例服务是UserService . 该服务将加载包含用户名和密码集的Java用户属性文件: 稍后将用于对用户进 ...
- Openstack的用户登录流程
openstack的用户登录,需要获得集中权限. token 只需要提供用户名和密码即可获得,接口 http://public_url/tokens method:POST body:{"a ...
- 菜鸟级springmvc+spring+mybatis整合开发用户登录功能(下)
昨天介绍了mybatis与spring的整合,今天我们完成剩下的springmvc的整合工作. 要整合springmvc首先得在web.xml中配置springmvc的前端控制器DispatcherS ...
最新文章
- 使用BPF跟踪Linux内核
- 【转】js之iframe子页面与父页面通信
- svn merge 回滚
- 怎么这两天总能看到刺激我的好东西
- 中科大在50年代的教学理念
- 宏基因组大数据分析的质量控制流程规范
- 正则表达式 —— 一种模式描述语言(贪婪匹配与惰性匹配)
- python写论文有帮助吗_python中有帮助函数吗
- jdk8官网下载地址
- LaTeX 安装及环境配置
- oeasy教您玩转vim - 005 - # 程序本质
- 老视频修复完整教程:Topaz Video Enhance AI 提升分辨率+RIFE算法补帧
- Python笔记。超详细的基本语法
- WPF学习系列 游戏-选张图片做成9宫格拼图
- 面向初学者的 Python IDE:Thonny,你值得一试
- 送戒指创意 让婚礼不再单调
- 推荐9个大气美观的前后端分离项目:前端react,vue,ts,ElementUI,Angular等,后端mysql,springBoot,myBatis,springSecurity,cloud等
- 杏花巷口,清香两拂袖
- 报错:‘Concatenate’layer requires inputs with matching shapes expect for the concat axis. 解决思路
- JS获取yyyy-MM-dd HH:mm:ss格式的时间