在线客服

MSN

演示
演示
后台演示
开发说明
我们专门研究网站加密狗(锁)、网络加密狗(锁)及其相关系统开发。
适用性
适合于所有网站,包括php,asp,.net,jsp等各种类型的网站用于硬件加密认证。
①会员、VIP登陆
②后台管理员登陆
③企业OA系统登陆
④各类缴费系统
⑤Shopex,Ecshop,CS-Cart,WordPress等各种建站系统
⑥贵金属交易平台
⑦代理商数据权限控制
⑧......
等等各种相关运用。
 
首页 系统介绍 技术优势 成功案例 下载 帮助 价格 付款方式 联系我们
 
达网U盾 网站安全 >

USBKey身份认证系统的设计与实现

随着互联网的快速发展, 各种新的网络应用层出不穷, 如电子商务、远程教育、网上购物、信息点播等, 互联网已经由原来简单地提供公共信息服务转向全方位个性化服务. 伴随着这些服务的出现, 一个首先必须解决的问题就是: 如何能够快速、准确、方便、可靠地识别用户的身份, 并且尽可能地降低认证整体的成本. 这是目前信息技术领域研究的一个热门课题.
目前在实际应用中, 有3 种常见的认证用户身份方法: 用户账号+ 口令密码; 银行卡或智能卡( IC 卡) ; 虹膜或指纹. 虽然这些方法都可以提供认证服务, 但每种方法都有自己的局限性. 第1 种方法使用起来简单、方便, 但可靠性最差, 一旦盗用者通过某种方式获得了他人的账号、密码, 则该用户的切身利益将无法得到保障; 后2 种方法可靠性较高, 但需要配备专用设备, 体系结构复杂, 价格过于昂贵, 影响推广使用.针对上述问题, 我们利用计算机的标准接口—USB 接口, 开发设计出了一种基于USBKey用户的身份认证系统(图1) , 它具有简便易用、可靠性高、成本低廉等特点, 易于推广应用.

1  系统结构
USBKey 通过USB 接口与计算机相连, 用户的个人信息存放在存储芯片中, 可由系统进行读写. 当需要对用户进行身份认证时, 系统提请用户插入USBKey 并读取上面记录的信息, 信息经加密处理送往认证服务器, 在服务器端完成解密和认证工作, 结果返回给用户所请求的应用服务.

2  关键技术
为确保身份认证系统可靠运行, 需要重点解决一些关键性的技术问题.
心跳机制: 用于实时监测用户是否在线, 一旦失去心跳连接, 立即中断服务. 它包括两种类型,一是认证服务器与计算机之间的连接, 二是计算机与USBKey 之间的连接. 为保证监测结果的可靠性, 需采用多种心跳监测机制.
惟一性: 每个USBKey 都具有一个惟一的ID 号, 该号码存在于USBKey 芯片中, 不可更改, 以防止不法者假冒.
用户信息: 由用户的个人编码、用户的公钥、用户的私钥以及扰码按照一定的加密方式生成、记录在存储芯片中. 除了用于表明用户的身份, 还可以用于安全通信、数字签名等.
读码: 对USBKey 内用户信息的读取需要获得授权, 无授权者不能读取信息.
写码: 对USBKey 内用户信息的改写需要获得授权, 无授权者不能改写信息.
安全通信: 认证服务器与计算机之间采用安全的通信机制, 防止认证信息被黑客监听.
认证: 用户信息被完整地发送到服务器端, 由服务器端软件负责解密并对用户身份进行认证, 确保认证结果安全、可信.

3  加密方案
即使有了USBKey , 但如果没有对加密方案进行良好的设计, 在解密高手面前它还是不堪一击的. 所以, 设计加密方案的时候, 要充分考虑到可能出现的各种问题. 此外, 加密方案还应当满足灵活的配置要求. USBKey 的基本操作: 所有的软件加密原理都是生成一些信息, 然后设法使这些信息不被别人复制. USBKey 信息包括内部存储器信息及算法信息. 读写这些信息的操作, 可抽象归纳为以下3 个基本操作.
Ⅰ X = QUERY ( Y) , 以Y为因子返回算法计算结果X
Ⅱ X = READ ( Y) , 读存储器Y地址的数值
Ⅲ WRITE (X , Y) , 将X 保存在存储器Y地址
限制软件运行: 限制软件运行的含义是同一时刻只允许一个软件运行. 设计这种加密方案的关键是在软件的全部运行周期不断地要去验证加密硬件的存在, 而不是仅仅在软件启动时才去验证一次.
可以使用QUERY和READ 基本操作来达到这种验证.
黑客常用的解除软件运行限制的手法有两种: 一是修改可执行文件的映象文件, 二是通过软件对硬件进行仿真. 修改可执行文件的映象文件的依据是反汇编文件, 由于访问加密硬件子程序的痕迹是很明显的, 所以能通过逆推法找到软件判断验证的决策点, 通过修改决策点的汇编指令达到解密的目的. 防范这种行为的加密方案要注意: 要设置很多决策点, 不能把决策点放在某个单独的子程序里;
把基本操作和验证编程设计成时间和空间相隔很远的不同事件; 用QUERY或READ 的数据去初始化软件的重要变量.
对硬件进行仿真的依据是对软件和加密硬件数据往来接口的数据流的观察结果. 防范这种行为的加密方案要注意: 选择动态和随机数据作为QUERY因子; 使用大尺寸的加密数据包, 如64 bits 以上; 使用输入输出关系非常不明显的变换算法.
USBKey 运行许可: USBKey 需要经管理部门发放许可之后才能投入使用. 第1 步, 在管理部门, 使用工具软件将模块许可信息用基本操作写到加密硬件里, 与此同时, 该信息被记录到认证服务器的数据库中; 第2 步, 用户运行认证服务程序, 相应模块读出数据, 判断自己是否得到许可.
防止未经授权修改加密锁数据: 假设有人知道基本操作的接口, 就有可能手动修改加密硬件中存储的数据. 所以, 将要保存的数据做一个校验和(CRC) , 再加密后保存. 加密的效果使得原始数据即使改动1 bit , 输出数据也会有很大的变化, 很难看得出规律. 解密后的数据如果检验CRC 不匹配,则认为加密硬件保存的数据经非法改动过, 是无效数据.

4  结 论
身份认证是目前信息技术领域研究的一个热门问题, 这个问题解决的成功与否, 直接关系到各种网上应用服务能否顺利开展, 关系到计算机网络系统能否安全、可靠的运行. 本文在对该问题的现状进行了介绍和分析后, 提出了一种比较理想的解决方法, 并对该方法进行了较为详尽的描述.
 
 
浙ICP备10205343号-6   网站加密狗 加密锁 网页加密狗 OA系统加密 网站安全登陆 验证登陆 加密狗 Sitemap - 达网版权所有