CN101977202A - 一种用于b/s网络结构的一次性口令认证系统和认证方法 - Google Patents
一种用于b/s网络结构的一次性口令认证系统和认证方法 Download PDFInfo
- Publication number
- CN101977202A CN101977202A CN 201010539084 CN201010539084A CN101977202A CN 101977202 A CN101977202 A CN 101977202A CN 201010539084 CN201010539084 CN 201010539084 CN 201010539084 A CN201010539084 A CN 201010539084A CN 101977202 A CN101977202 A CN 101977202A
- Authority
- CN
- China
- Prior art keywords
- user
- module
- otp
- authentication
- token
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 117
- 230000008569 process Effects 0.000 claims abstract description 71
- 238000012423 maintenance Methods 0.000 claims abstract description 6
- 238000009739 binding Methods 0.000 claims description 67
- 230000027455 binding Effects 0.000 claims description 67
- 238000004891 communication Methods 0.000 claims description 50
- 238000012545 processing Methods 0.000 claims description 35
- 230000001360 synchronised effect Effects 0.000 claims description 21
- 238000012795 verification Methods 0.000 claims description 15
- 230000008878 coupling Effects 0.000 claims description 14
- 238000010168 coupling process Methods 0.000 claims description 14
- 238000005859 coupling reaction Methods 0.000 claims description 14
- 230000003993 interaction Effects 0.000 claims description 13
- 206010037660 Pyrexia Diseases 0.000 claims description 11
- 238000013461 design Methods 0.000 claims description 8
- 230000008676 import Effects 0.000 claims description 8
- 238000012546 transfer Methods 0.000 claims description 8
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 238000010200 validation analysis Methods 0.000 claims description 6
- 230000002159 abnormal effect Effects 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000012986 modification Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 101100217298 Mus musculus Aspm gene Proteins 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 239000000284 extract Substances 0.000 claims description 3
- 239000004973 liquid crystal related substance Substances 0.000 claims description 2
- 238000012800 visualization Methods 0.000 claims description 2
- 230000008901 benefit Effects 0.000 abstract description 3
- 241001185697 Fenestella Species 0.000 description 16
- 238000010586 diagram Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Landscapes
- Computer And Data Communications (AREA)
- Storage Device Security (AREA)
Abstract
一种用于B/S网络结构的一次性口令认证系统和认证方法,其认证系统包括硬件令牌、初始化工具、客户系统、管理系统和认证服务器。初始化工具对硬件令牌完成初始化流程;硬件令牌为用户提供认证所需的OTP;用户向客户系统输入OTP并由客户系统将该OTP发送至认证服务器;认证服务器完成认证过程并将结果返回至客户系统,最终反馈给用户;管理系统完成系统管理和维护,并按规定向认证服务器和客户端服务器发送管理操作请求;认证服务器和客户端服务器接收请求,完成操作并返回操作结果。其认证方法包括系统初始化,登录认证和系统管理,它有八大步骤。本发明通过浏览器页面方式就能完成用户认证和系统管理,使用方便,便于维护,它具有实用价值和广阔地应用前景。
Description
(一)技术领域
本发明涉及互联网安全身份认证技术,具体涉及一种用于B/S(浏览器/服务器)网络结构的一次性口令认证系统和认证方法。属于计算机和信息安全技术领域。
(二)背景技术
身份认证是网络应用系统中的第一道防线,它可以限制非法用户访问网络资源。但通常使用的静态口令有许多固有的弱点,如易于猜测或窃听,易受重放攻击等攻击手段的影响,从而给系统的安全性埋下隐患。针对静态口令的缺点,OTP(One Time Password-一次性口令)认证技术使得每次认证使用不同口令,即使口令被盗,攻击者也无法重复使用。OTP认证已被越来越广泛的应用于电子商务,网络游戏,网上银行等任何一种需要进行身份认证的网络平台上。
现有的各种OTP认证技术及方案大多基于C/S(客户端/服务器)模式的网络架构,用户使用时需要安装相应插件或客户端软件,这种方式一方面使得用户使用不方便,在没有安装相应软件的终端上则无法使用,另一方面限制了系统的可移植性,也增加了系统部署、管理和维护的复杂程度。其次,现有方案没有考虑管理系统的设计和部署。使用过程中,系统初始化、用户使用问题的解决,用户的添加与删除,令牌重同步操作都需要管理系统的参与和统一管理。同时,现有方案的OTP产生方式多是基于时间的,一方面,对于时钟精度要求很高,同步过程难以把握;另一方面,硬件令牌为了满足每隔一段时间产生一个新的OTP的需求,必须保证实时开机状态,耗电量较大。
本发明考虑到各种应用场景,在保证系统可靠性,灵活性的基础上提供完整的OTP认证系统解决方案,主要特点有:
1.客户认证和管理员操作均面向B/S网络架构,通过浏览器页面即可完成,使用灵活,应用广泛,可移植性强,便于部署和维护。
2.OTP产生方式采用基于事件的方法,也就是每当用户开机触发按键时,硬件令牌才产生新OTP,平时处于关机状态。
3.硬件令牌通过指纹识别技术与用户唯一绑定,防止令牌丢失后被他人冒用。
4.系统结构完整,包含客户认证和系统管理两个方面的配套方案。
5.系统可以部署在多个服务提供商同时使用的场景中,认证服务器可由第三方维护,也可由服务提供商各自维护,使得部署和维护灵活简便。
(三)发明内容:
1、目的:为了弥补现有OTP认证系统的不足,并提供一套更为完整可用的解决方案,本发明提供了一种用于B/S网络结构的一次性口令认证系统和认证方法,它在保证用户身份认证可靠性的同时,具有便于维护及管理,使用方便,可移植,便于部署等优点。
2、技术方案:所述技术方案如下:
(1)本发明一种用于B\S网络结构的一次性口令认证系统,该系统包括硬件令牌、初始化工具、客户系统、管理系统和认证服务器。它们相互之间的关系是:初始化工具对刚出厂的硬件令牌完成初始化流程;硬件令牌为用户提供认证所需的OTP;用户通过客户系统输入OTP并由客户系统将该OTP按照规定数据包格式发送至认证服务器;认证服务器完成认证过程决定是否认证成功并将认证结果返回至客户系统,最终反馈给用户;管理系统在管理员的参与下完成系统管理和维护,按照规定数据包格式向认证服务器和客户端服务器发送管理操作请求,认证服务器和客户端服务器接收请求,完成管理操作,并向管理系统返回操作结果,具体如图1所示。
所述硬件令牌包括:存储模块、OTP生成模块、指纹模块、显示模块和触发模块。各部分实现方式和相互关系是:
该存储模块,用于存储OTP生成要素、触发次数、用户指纹信息。其为硬件设备,具体为微控制器S3F8285的内置flash存储器。
该OTP生成模块,用于通过存储模块中的OTP生成要素和触发次数计算生成OTP。具体的,生成OTP的算法采用HMAC-SHA1算法,由运行在微控制器S3F8285中的软件程序完成。
该指纹模块,用于在用户获得硬件令牌是初始化指纹并将获得的指纹信息存储在存储模块中,以及在硬件令牌开启时获取用户指纹信息,并验证其是否匹配。其是一种硬件设备,具体的,可为任意一种指纹采集设备。
该显示模块,用于向用户显示OTP生成模块计算所得的OTP。其为硬件设备,具体为东莞市嘉田公司设计定制的专用液晶显示屏。
该触发模块,通过此模块触发OTP生成模块生成OTP。其为硬件设备,具体为东莞市嘉田公司开模设计定制的按键。
所述初始化工具包括:初始化软件和令牌烧写器。各部分实现方式和相互关系是:
该初始化软件,用于在令牌初始化时,提供可视化工具。通过此模块,可输入令牌序列号SN及生成因子,并计算OTP生成要素。具体的,软件中通过任意一种杂凑算法计算OTP生成要素,优选的,该杂凑算法为SHA1或MD5算法。
该令牌烧写器,是一套硬件设备,用于将主机与硬件令牌相连接,向硬件令牌烧写程序、将触发次数初始化为0和注入所述初始化软件计算所得的OTP生成要素。具体的,其结构是:与主机端通过USB连线连接,与硬件令牌通过UART串口线连接,核心部分通过CH341芯片完成USB信号与UART信号的互相转换。
所述客户系统包括客户端页面和客户端服务器。其间关系是:客户端页面搭建在客户端服务器之上。
该客户端页面,是认证用户可以通过浏览器访问的WEB登录页面,它包括:输入模块、通信模块和显示模块。各部分实现方式和相互关系是:
该输入模块,用户登录认证时,通过此模块输入用户名及OTP。具体的,其是通过web编程提供的用户输入框。
该通信模块,用于将用户输入的用户名及用户OTP发送至客户端服务器,并接收认证结果及提示信息。具体的,其按照http协议进行数据传输。
该显示模块,用于在登录过程中,向用户显示客户端服务器返回认证结果及其他提示信息。具体的,其是通过web编程提供的文本显示框或弹出式提示对话框。
该客户端服务器包括:通信模块、存储模块、用户有效性验证模块、绑定和添加处理模块。各部分实现方式和相互关系是:
该通信模块,同时用于与客户端页面和与认证服务器的数据交互。一方面用于接收客户端页面发送来的用户名和用户OTP,并向认证服务器发送认证数据包,所述认证数据包就是具有规定格式的包含用户名和用户OTP的数据包。另一方面用于接收并向客户端页面转发认证服务器发来的用户认证结果。具体的,该通信模块的核心功能在于将用户名和OTP按照规定格式封装数据包,优选的,可以为RADIUS数据包格式。
该存储模块,用于存储用户名及其他与实际应用场景紧密相关的用户信息,所述用户名与认证服务器的存储模块中存储的用户名一一对应,且每个用户之间互不相同。具体的,其是通过MySql、SqlSever、Oracle等数据库中的任意一种来实现。
该用户有效性验证模块:用于当用户提交用户名和OTP后,在所述存储模块中查找用户提交的用户名,如未查找到,则向客户端页面返回用户名无效的提示信息。具体的,其在软件中通过数据库查找语句找到对应用户信息,判断其是否有效。
该绑定和添加处理模块,用于处理管理员提出的绑定和添加操作请求。具体的绑定和添加方法通过软件编程实现,其方法在后文“一种用于B\S网络结构的一次性口令认证方法”中述及。
所述管理系统包括管理系统页面和管理系统服务器。其间关系是:管理系统页面搭建在管理系统服务器之上。
该管理系统页面,是管理员可以通过浏览器访问的WEB管理页面,它包括:输入模块、通信模块、添加与绑定模块、信息修改模块、日志模块和重同步模块。各部分实现方式和相互关系是:
该输入模块,用于管理员登录时输入管理员账号和密码,也用于管理员进行管理操作时输入必要信息。具体的,其是通过web编程提供的用户输入框。
该通信模块,用于将管理员输入的管理员账号和密码传送至管理系统服务器,并接收认证结果及其他提示信息。也用于将管理员操作请求和必要数据传送至管理系统服务器。具体的,其按照http协议进行数据传输。
该添加与绑定模块,用于完成新用户的添加和令牌与其所有者用户的绑定操作。具体的,其是通过web编程提供的用户输入框,用于输入必要信息。
该信息修改模块,用于删除一个用户,也用于修改各种用户信息。具体的,其是通过web编程提供的用户输入框,用于输入修改的用户信息;以及通过web编程提供的文本框和表格,用于显示从数据库获取的现有用户信息;同时通过数据库操作完成删除或信息修改。
该日志模块,用于查看管理系统的管理员操作记录。具体的,其是通过web编程提供的文本框和表格,显示管理员操作信息。
该重同步模块,用于当硬件令牌的触发次数与认证服务器的认证成功次数的差值超过规定限度时,由管理员将所述硬件令牌的触发次数与所述认证服务器的认证成功次数重新设置为同步。具体的,通过编程实现,核心部分为重同步算法,具体的重同步算法在后文“一种用于B\S网络结构的一次性口令认证方法”中述及。
该管理系统服务器包括:通信模块、存储模块、操作请求处理模块和管理员登录模块。各部分实现方式和相互关系是:
该通信模块,同时用于与管理系统页面、客户端服务器和认证服务器的数据交互。一方面用于绑定操作时向客户端服务器和认证服务器发送用户信息;另一方面用于向认证服务器发送管理操作请求数据包,并接收操作处理结果。也用于接收管理员登录时管理系统页面发送来的管理员账号和密码,并向管理系统页面发送管理员登录认证结果。具体的,其通过软件编程实现,其核心在于其与管理系统页面的数据交互通过http协议完成,其与向客户端服务器和认证服务器的数据交互通过事先规定的数据包格式完成,优选的,该数据包格式可为RADIUS数据包格式。
该存储模块,用于存储管理员账号、密码、日志信息及与管理员相关联的必要信息。具体的,其是通过MySql、SqlSever、Oracle等数据库中的任意一种来实现。
该操作请求处理模块,用于将通信模块接收到的,来自管理系统页面提出的各种操作请求连同必要信息封装成规定格式的认证数据包,再通过通信模块发送出去。具体的,其通过软件编程实现,其核心在于将操作请求封装成为规定格式数据包,优选的可为RADIUS数据包格式。
该管理员登录模块,用于验证通信模块接收到的管理员账号和密码,如果验证成功,则允许管理员进入管理系统,并向管理系统页面返回登录成功信息;如果认证失败,则拒绝管理员进入管理系统,并向管理系统页面返回登录失败信息。具体的,其通过软件编程实现,利用数据库查询语句获取存储模块中的管理员账户信息,并验证通信模块接收到的管理员账号和密码是否与所获信息匹配。
所述认证服务器包括:通信模块、存储模块、认证处理模块、绑定和添加处理模块和重同步处理模块。各部分实现方式和相互关系是:
该通信模块,用于接收客户端服务器发来的认证数据包并向客户端服务器反馈认证结果,同时用于接收管理系统服务器发送来的管理员操作请求并向管理系统服务器反馈操作结果。具体的,其通过软件编程实现,其核心在于将发送来的RADIUS数据包拆分,获得其中数据,并将结果封装成为RADIUS数据包,进行反馈。
该存储模块,用于存储令牌序列号(SN)以及与其相关联的用户名(UID),令牌使用状态,认证次数(counter)、用户联系方式,OTP生成要素,认证次数。所述用户名要保证每个用户之间互不相同。具体的,其是通过MySql、SqlSever、Oracle等数据库中的任意一种来实现。
该认证处理模块,用于处理用户的登录认证请求。所述认证处理模块从通信模块获得的认证数据包提取用户名、用户OTP,判断所述用户名是否存在,如果不存在,则返回认证用户不存在信息;如果所述用户名存在,则通过用户名在存储模块中查找对应的OTP生成要素和认证次数,计算临时OTP,并将临时OTP与从认证数据包提取的用户OTP进行比较,如果匹配则通过通信模块通知用户认证成功;如果不匹配,则通过通信模块通知客户端用户认证失败。具体的,其通过软件编程实现,一方面获取RADIUS数据包内容,另一方面通过数据库查询语句获取存储模块中的必要信息。
该绑定和添加处理模块,用于处理管理员提出的绑定操作请求。该重同步处理模块:用于硬件令牌的触发次数与认证服务器的认证次数发生失步,用户向管理员提出重同步要求是,处理重同步操作请求。具体的,通过编程实现,核心部分为绑定和添加方法,具体的绑定和添加方法在后文“一种用于B\S网络结构的一次性口令认证方法”中述及。
(2)本发明一种用于B\S网络结构的一次性口令认证方法,其包括系统初始化,登录认证,以及系统管理:
所述系统初始化包括:
1)硬件令牌初始化。
令牌初始化过程由令牌分发部门完成。每个硬件令牌出厂后对应唯一硬件序列号SN,主机运行初始化软件,以“SN+生成因子”为输入,通过杂凑算法计算得到OTP生成要素。然后通过令牌烧写器将主机与硬件令牌相连,将OTP生成要素存储至令牌内。并将认证次数(counter)初始化为0。此处,所述生成因子是指只有系统部署、使用方才能知道的一组保密信息。所述OTP生成要素要在后续步骤中存储在硬件令牌和认证服务器中,是生成OTP的要素之一。
2)用户申请获取令牌。
用户向令牌分发部门填写注册表单,申请获取一个新令牌,然后用户通过令牌上的指纹模块在硬件令牌中注册存储自己的指纹信息。此指纹信息用于确定每个令牌的所有者,用户每次开启令牌都要提供与此令牌对应的指纹信息,否则无法开启令牌,这样,可以防止令牌丢失后被非法用户冒用。
3)添加与绑定。
所述绑定是指,每个硬件令牌只能被唯一用户拥有,用户获得令牌后,认证服务器应当将用户信息与其拥有的令牌进行绑定,这样才能保证在认证过程中认证服务器根据用户名查找到的OTP生成要素与该用户名对应的硬件令牌中存储的OTP生成要素一致。绑定关系依赖于将令牌唯一硬件序列号(SN)和用户唯一用户名(UID)一一对应。由于有管理员参与,绑定的完成只需要管理员正确输入令牌序列号SN以及与其相关联的UID,再通过添加过程添加至认证服务器和客户端服务器即可完成。
所述添加是指,用户首次登录认证之前,应当将其用户信息和令牌初始信息添加至客户端服务器和认证服务器的存储模块中。
添加与绑定由管理员统一完成,以增加集中控制,降低绑定复杂度,减少错误。管理员通过管理系统输入令牌硬件序列号(SN)、用户名(UID),令牌使用状态,认证次数(counter)、联系方式、OTP生成要素,同时发送至“客户端服务器”和“认证服务器”并提出绑定和添加操作请求。
此处,所述OTP生成要素应与前述硬件令牌初始化中所得的OTP生成要素一致。所述用户名(UID)和硬件序列号(SN)用于绑定,必须保证各个用户之间互不相同。所述令牌使用状态,认证次数(counter)、联系方式、OTP生成要素是所应添加的必要信息,实际应用中应与场景需求而定,并不仅仅局限于前述内容。其中,令牌使用状态标表示令牌当前所处使用状态,本发明建议有三种使用状态:1.正常,即令牌处于正常使用状态;2.挂失:令牌丢失后,由用户在管理员处将令牌设置为挂失状态,处于挂失状态的令牌不可使用。3.冻结,为防止攻击者反复猜测登录密码,如果连续认证失败次数达到规定限度,系统自动将令牌设置为冻结状态,处于冻结状态的令牌不可使用。令牌使用状态不限于此三种,可根据具体应用场景设计。一般的,添加新用户时要将认证次数置为0,将令牌使用状态置为正常。
客户端服务器和认证服务器收到绑定和添加操作请求后,各自更新数据库,添加用户信息,并将认证次数置为0,将令牌使用状态置为正常,完成新用户的添加和绑定。
所述登录认证包括:
1)开启硬件令牌。
用户点击硬件令牌上的开机按钮,并通过指纹模块提供指纹信息。如果指纹匹配则成功开启硬件令牌;如果指纹不匹配,则令牌自动关闭。
2)触发硬件令牌产生用户OTP。
用户点击硬件令牌上的动态口令触发按钮,硬件令牌通过存储的OTP生成要素和当前触发次数经过某种密码算法计算得到OTP,然后将触发次数加一。
3)用户输入用户名和用户OTP
用户通过客户登录页面输入用户名及所得动态口令,并传送至客户端服务器。此处,通过点击触发按钮获得OTP的方式即基于事件的方式,只有在用户需要获取OTP的时候才开启硬件令牌,不使用时硬件令牌处于关机状态,进而节省电量,不同于基于时间的方式,后者需要实时开机以便每隔一段时间变化一次OTP,耗电量较大。
4)客户端服务器接收用户名及用户OTP,验证用户名有效性。
客户端服务器按照用户名在存储模块中查找用户相关信息,如果用户输入的用户名不存在,则返回用户名无效信息。
5)客户端服务器生成认证数据包发送至认证服务器。
如果该用户名存在则将用户名、动态口令等必要信息按照约定数据包格式封装成认证数据包,并传送至认证服务器。此处的数据包格式是指在软件设计时,客户端服务器和认证服务器之间为了完成数据交互而规定的数据传送方式。
6)认证服务器进行认证并返回认证结果。
认证服务器处理认证数据包,获取用户名及用户OTP,并在存储模块中查找所述用户及对应的令牌使用状态,如果令牌使用状态为挂失或冻结等非正常状态,则返回令牌状态不正常信息,如果令牌使用状态为正常,则获取用户名对应的OTP生成要素和认证次数(counter),并以此两者为基础,通过HMAC-SHA1算法计算临时OTP,将其与客户端服务器传来的动态口令进行比较,如果匹配,则返回认证成功信息,同时将认证次数自动加一;如果不匹配,则返回认证失败信息。
所述系统管理包括:
1)管理员登录。
管理员要进入管理系统,也要进行登录认证。管理员在管理系统页面输入管理员账号和密码,传送至管理系统服务器。管理系统服务器查找传来的管理员账号,如果不存在则返回管理员帐号无效信息,如果存在则验证传来的密码是否正确,如果正确,则允许管理员进入管理系统,如果不正确,则拒绝进入管理系统。
2)添加与绑定。
新用户获得令牌后要在管理员处进行身份信息与令牌的绑定和添加操作才能正常使用令牌。管理员按照与之前所述“系统初始化”中的“添加与绑定过程”中一致的方法完成用户的添加与绑定操作。
管理员通过管理系统输入令牌硬件序列号(SN),用户提供的用户名(UID),令牌使用状态,认证次数(counter)、联系方式、OTP生成要素,同时发送至客户端服务器和认证服务器并提出绑定和添加操作请求。
客户端服务器和认证服务器收到管理系统发出的绑定和添加操作请求后,各自更新存储模块,添加新的用户数据项,完成新用户的添加和用户名与令牌序列号的绑定。
3)用户信息修改。
当用户更改个人信息时,如联系方式、令牌使用状态等,应当通知管理员。管理员通过管理系统页面向管理系统服务器提交更改后的用户信息,再由管理系统服务器将更改信息封装成约定格式的数据包,发送至客户端服务器和认证服务器,最终完成用户信息的更改。特别的,令牌使用状态的更改关系到认证系统的安全使用,应由管理员严格控制。
4)令牌重同步。
在本发明所述认证系统中,用户认证是否成功,取决于硬件令牌和认证服务器中计算所得的两个OTP是否匹配。硬件令牌和认证服务器中的OTP生成要素是相同的,因此,两者计算所得的OTP是否匹配就决定于硬件令牌中的触发次数和认证服务器中的认证次数是否同步。如果由于某种原因,如用户无意中多次触发硬件令牌而并不进行认证,使得硬件令牌的触发次数超前于认证服务器的认证次数,进而导致以后的认证均无法成功。因此本发明提供小窗口的和大窗口两种重同步方式。
所述小窗口重同步是指硬件令牌触发次数和认证服务器认证次数相差在小窗口范围之内的重同步,无需管理员直接参与。具体地,管理员通过配置文件等方式预先设置小窗口大小R,当进行认证操作时,如果用户OTP(也就是硬件令牌计算得到的OTP)和临时OTP(也就是认证服务器计算得到的OTP)不匹配,那么认证服务器将认证次数加一后重新计算临时OTP,再与用户OTP进行比较,如果匹配,则小窗口重同步成功,同时返回认证成功,如果不匹配则重复上述过程,此过程最多重复R次,如果在R次之内未出现两个临时OTP和用户OTP匹配的情况,那么小窗口重同步失败,需要进行大窗口重同步。如上所述,小窗口重同步对于用户是透明的,用户看来,直观上与做一次普通认证没有区别,管理员对于小窗口大小的设定,要根据实际需要设定。特别的,当小窗口大小为0时,只要硬件令牌和认证服务器发生失步,就直接进入大窗口重同步,此时的认证强度最强。
所述大窗口重同步需要有管理员通过管理系统完成。当小窗口重同步失败后,说明硬件令牌触发次数已超出认证服务器认证次数很多,可能出现了恶意攻击,因此需要客户向管理员申请,在确定身份后由管理员完成大窗口重同步。具体的,管理员通过硬件令牌读取两个连续的客户OTP,按照先后次序输入管理系统,并传送至认证服务器。认证服务器重复计算临时OTP,并将认证次数加一,反复执行此操作,直到有两个连续的临时OTP与管理员传来的两个客户OTP均匹配,则大窗口重同步成功。
综上所述:本发明一种用于B\S网络结构的一次性口令认证方法,该方法具体步骤如下:
步骤一:由令牌分发人员运行初始化软件,以“SN+生成因子”为输入,通过某种杂凑算法计算得到OTP生成要素。然后通过令牌烧写器将主机与硬件令牌相连,将OTP生成要素存储至令牌内。并将认证次数(counter)初始化为0;
步骤二:用户向令牌分发部门填写注册表单,申请获取一个新令牌,然后用户通过令牌上的指纹模块在硬件令牌中注册存储自己的指纹信息;
步骤三:用户获得令牌后,在管理员处正确输入令牌序列号以及令牌所有者对应的用户名,将其用户信息和令牌初始信息添加至客户端服务器和认证服务器的存储模块中,完成绑定和添加过程;
步骤四:用户点击硬件令牌上的开机按钮,并通过指纹模块提供指纹信息。如果指纹匹配则成功开启硬件令牌;如果指纹不匹配,则令牌自动关闭;
步骤五:如果步骤四中成功开启令牌,用户点击硬件令牌上的动态口令触发按钮,硬件令牌通过存储的OTP生成要素和当前触发次数经过HMAC-SHA1算法计算得到OTP。同时,用户通过客户登录页面输入用户名及所得动态口令,并传送至客户端服务器;
步骤六:客户端服务器将用户名、动态口令等必要信息按照约定数据包格式封装成认证数据包,并传送至认证服务器。优选的,所述数据包格式可为RADIUS数据包;
步骤七:认证服务器处理认证数据包,获取用户名及用户OTP,并在存储模块中查找所述用户对应的令牌使用状态,如果令牌使用状态为挂失或冻结等非正常状态,则返回令牌状态不正常信息,如果令牌使用状态为正常,则获取用户名对应的OTP生成要素和认证次数(counter),并以此两者为基础,通过某种密码算法计算临时OTP,并将其与客户端服务器传来的动态口令进行比较,如果匹配,则返回认证成功信息,同时将认证次数自动加一;如果不匹配,则返回认证失败信息;
步骤八:管理员登录管理系统,根据具体需求进行用户添加与绑定,用户信息修改,令牌重同步等管理操作。
所述八个步骤中,步骤一至步骤三概括了系统初始化过程;步骤四至步骤七概括了登录认证过程;步骤八概括了系统管理过程。其中,系统初始化过程是登录认证过程的前提,因此,系统初始化过程必须在登录认证过程之前,即步骤一至步骤七应保证严格的先后顺序。系统管理过程,即步骤八,不需要与其他步骤保证先后顺序,只在用户提出相应需求时,才由管理员执行该步骤的操作,同时,系统管理过程与系统初始化过程相互交叉,即系统管理过程要参与系统初始化过程中的用户添加与绑定操作。
3、优点和功效:
本发明提供的上述技术方案提高系统登录认证的安全性,为用户和管理员提供了通过浏览器页面即可方便使用的一次口令认证系统,用户只要手持硬件令牌,能够上网浏览客户端页面即可进行登录认证,同样,管理员只要能够上网浏览管理系统页面即可进行系统管理,操作方便,使用简单,成本较低。实际应用时可将多个客户系统和管理系统部署在不同的服务提供方,认证服务器可由第三方维护,也可由各服务提供方各自维护,使得部署和维护灵活简便。
(四)附图说明:
附图1是本发明提供的一种可用于B\S网络结构的一次性口令认证系统结构图。
附图2是本发明系统初始化流程图
附图3是本发明登录认证流程图
附图4是本发明系统管理示意图
附图5是本发明认证服务器由第三方维护的系统部署示意图
附图6是本发明认证服务器由服务提供方分别维护的系统部署示意图
图中符号说明如下:
SN:令牌唯一硬件序列号;UID:用户名;OTP:一次性口令;
1硬件令牌;2初始化工具;3客户系统;4管理系统;5认证服务器;
11存储模块;12OTP生成模块;13指纹模块;14显示模块;15触发模块;
21初始化软件;22令牌烧写器;31客户端页面;311输入模块;312通信模块;313显示模块;32客户端服务器;321通信模块;322存储模块;323用户有效性验证模块;324绑定和添加处理模块;41管理系统页面;411输入模块;412通信模块;413添加与绑定模块;414信息修改模块;415日志模块;416重同步模块;42管理系统服务器;421通信模块;422存储模块;423操作请求处理模块;424管理员登陆模块;51通信模块;52存储模块;53认证处理模块;54添加与绑定处理模块;55重同步处理模块。
(五)具体实施方式:
前文已将本发明的系统结构和操作方法进行了完整、详细的介绍,下面,结合各附图,对本发明的技术特点和实施方式作进一步的描述。
本实施实例,提供了完整的用于B/S网络架构的一次性口令认证系统,并围绕系统架构,从系统初始化流程、登录认证流程、系统管理流程等方面介绍了系统工作的具体方式。同时,还提供了两种用于多服务提供者使用场景的系统部署方式。
本发明涉及一整套的软硬件设备,在完善一次性口令认证功能的基础之上,提供了初始化工具、管理系统,使得系统完整、灵活、便于使用。
参见图1,本发明实施例提供了一种用于B/S网络结构的一次性口令认证系统结构图。
如图1所示,该系统分为五个部分:硬件令牌1,初始化工具2,客户系统3,管理系统4,认证服务器5。其中客户系统3又分为客户端页面31和客户端服务器32,管理系统4又分为管理系统页面41和管理系统服务器42,每个部分又包括更具体的功能模块。下面进行详细阐述:
硬件令牌1是提供给用户,为其提供认证时所需一次性口令的硬件设备,尺寸较小,便于用户随身携带,具体包括:
存储模块11,用于存储OTP生成要素、触发次数、用户指纹信息。本实施例中,该模块通过微控制器S3F8285的内置flash存储器来实现对于各信息的存储。
OTP生成模块12,用于提取存储模块中的OTP生成要素和触发次数,并通过这两者计算用户OTP。本实施例中,该模块生成OTP的算法采用HMAC-SHA1算法。
指纹模块13,用于在用户获得硬件令牌是注册指纹信息,以及在硬件令牌开启时获取用户指纹信息,并验证其是否匹配。本实施例中,该模块选用型号为ZAZ-030的挂擦拭指纹识别模块。
显示模块14,用于向用户显示OTP,具体为液晶显示屏。
触发模块15,通过此模块触发硬件令牌生成OTP,具体可为键盘、按键、开关等。本实施例中,该模块选用专用定制按键实现。
初始化工具2是一套为完成系统初始化操作的软硬件设备,具体包括:
初始化软件21,用于在令牌初始化时,提供可视化软件工具。通过此模块,可输入令牌序列号及生成因子,并计算OTP生成要素。具体的,软件中通过任意一种杂凑算法计算OTP生成要素,本实施例中,该杂凑算法为SHA1算法。
令牌烧写器22,用于将硬件令牌与终端机相连的硬件设备,该模块与硬件令牌和终端机的连接方式具体为USB接口、并口、串口等有线接口中的一种或者红外、蓝牙等无线接口的一种。本实施例中,令牌烧写器与主机端通过USB连线连接,与硬件令牌通过UART串口线连接,核心部分通过CH341芯片完成USB信号与UART信号的互相转换。
客户系统3提供用户登录认证等用户操作,包括客户端页面31和客户端服务器32,具体的:
客户端页面31,搭建在客户端服务器32之上,是认证用户可以通过浏览器访问的WEB认证页面,具体包括:
输入模块311,用户登录认证时,通过此模块输入用户名及OTP,本实施例中,该模块是通过web编程提供的用户输入框。
通信模块312,用于将用户输入的用户名及OTP传送至客户端服务器,并接收认证结果及提示信息。本实施例中,该模块按照http协议方式实现,完成数据传输。
显示模块313,用于在登录过程中,向用户显示认证结果及提示信息。本实施例中,该模块是通过web编程提供的文本显示框或弹出式提示对话框。
客户端服务器32,具体包括:
通信模块321,用于与客户端页面和认证服务器的数据交互。具体的,一方面用于接收客户端页面31发送来的用户名及OTP,并将其封装成规定格式的认证数据包;另一方面用于将所述认证数据包发送至认证服务器5,并接收认证服务器5返回的认证结果,同时将认证结果反馈至客户端页面31。本实施例中,该模块的核心功能在于将用户名和OTP按照规定格式封装数据包,具体选择RADIUS数据包格式。
存储模块322,用于存储用户名及其他用户信息。具体的,用户名应与认证服务器存储的用户名一一对应,且每个用户之间互不相同;用户信息包括姓名、联系方式、昵称等,可根据实际应用场景选择。本实施例中,该模块是通过MySql、SqlSever、Oracle等现有大型数据库系统中的任意一种来实现,本实施例中选择MySql数据库,在此基础之上完成对用户名及用户信息的存储。
用户有效性验证模块323,用于当用户提交用户名和OTP后,在所述存储模块322中查找用户提交的用户名,如未查找到,则向客户端页面31返回用户名无效的提示信息,客户端页面31再通过显示模块313将此提示信息显示给用户。本实施例中,该模块通过数据库查找语句找到对应用户信息,判断其是否有效。
绑定和添加处理模块324:用于处理管理员提出的绑定和添加操作请求。具体的绑定和添加方法通过软件编程实现,其方法已在“一种用于B\S网络结构的一次性口令认证方法”中述及。
管理系统4提供管理员管理操作,包括管理系统页面41和管理系统服务器42,具体的:
管理系统页面41,搭建在管理系统服务器42之上,是管理员可以通过浏览器访问的WEB管理页面,具体包括:
输入模块411,用于管理员登录时输入管理员账号和密码,也用于管理员进行管理操作时输入必要信息。本实施例中,该模块是通过web编程提供的用户输入框。
通信模块412,用于将管理员输入的管理员账号传送至管理系统服务器,并接收认证结果及其他提示信息。本实施例中,该模块按照http协议方式实现,完成数据传输。
添加与绑定模块413,用于完成新用户的添加和令牌与其所有者用户的绑定操作。本实施例中其是通过web编程提供的用户输入框,用于输入必要信息。
信息修改模块414,用于删除一个用户,也用于修改用户信息。具体的,用户信息包括令牌使用状态,认证次数(counter)、用户联系方式,OTP生成要素,认证次数等,可根据具体应用场景选择。
日志模块415,用于查看管理系统的管理员操作记录。本实施例中,该模块是通过web编程提供的文本框和表格,显示管理员操作信息。
重同步模块416,用于当硬件令牌的触发次数与认证服务器的认证成功次数的差值超过规定限度时,由管理员将所述硬件令牌的触发次数与所述认证服务器的认证成功次数重新设置为相等。具体的包括本发明技术方案的系统管理过程中的大窗口重同步和小窗口重同步,具体实现方式在技术方案中已经阐述。
管理系统服务器42,具体包括:
通信模块421:用于与管理系统页面和认证服务器进行数据交互。具体的,一方面用于绑定操作时向客户端服务器32和认证服务器5发送用户信息;另一方面用于向认证服务器5发送管理操作请求数据包,并接收操作处理结果。同时,用于接收管理员登录时传来的管理员用户名和密码,并向管理系统页面41发送管理员登录认证结果。本实施例中,该模块核心在于其与管理系统页面的数据交互通过http协议完成,其与客户端服务器和认证服务器的数据交互通过事先规定的数据包格式完成,优选的,该数据包格式为RADIUS数据包格式。
存储模块422:用于存储管理员账号、密码及与管理员相关联的必要信息。该模块是通过MySql、SqlSever、Oracle等现有大型数据库系统中的任意一种来实现,本实施例中,具体选择MySql数据库,在此基础之上完成对管理员账号、密码及管理员相关信息的存储。
操作请求处理模块423:用于将所述管理系统页面提出的各种操作请求连同必要信息封装成规定格式的认证数据包。本实施例中,该模块的核心在于将操作请求封装成为规定格式数据包,优选的,为RADIUS数据包格式。
管理员登录模块424:管理员在进行管理操作之前,必须登录管理系统,管理员通过管理系统页面41输入管理员用户名和管理员密码,发送至管理系统服务器42,然后管理员登录模块424验证管理员登录时输入的账号和密码,如果验证成功,则允许管理员进入管理系统,并向管理系统页面返回登录成功信息;如果认证失败,则拒绝管理员进入管理系统,并向管理系统页面返回登录失败信息。本实施例中,该模块利用数据库查询语句获取存储模块中的管理员账户信息,并验证通信模块接收到的管理员账号和密码是否与所获信息匹配。
认证服务器5是认证系统的核心部分,用户认证请求和管理操作请求都要通过认证服务器的处理才能最终完成。具体包括:
通信模块51:用于接收客户端认证数据包并向客户端反馈认证结果,同时用于接收管理系统的管理员操作请求并向管理系统反馈操作结果。本实施例中,该模块核心在于将发送来的RADIUS数据包拆分,获得其中数据,并将结果封装成为RADIUS数据包,进行反馈。
存储模块52:用于存储令牌序列号以及与其相关联的用户名(UID),令牌使用状态,认证次数(counter)、用户联系方式,OTP生成要素,认证次数等。所述用户名要保证每个用户之间互不相同。该模块是通过MySql、SqlSever、Oracle等现有大型数据库系统中的任意一种来实现,本实施例中,具体选择MySql数据库,在此基础之上完成对令牌序列号及其他相关信息的存储。
认证处理模块53:用于处理用户的登录认证请求。当通信模块51收到客户端服务器32发来的认证数据包后,认证处理模块53从认证数据包提取用户名、用户OTP,判断所述用户名是否存在,如果不存在,则返回认证用户不存在;如果所述用户名存在,则通过用户名在存储模块52中查找对应的OTP生成要素和认证次数,计算临时OTP,并将临时OTP与从认证数据包提取的用户OTP进行比较,如果匹配则通过通信模块51通知客户端服务器32认证成功;如果不匹配,则通过通信模块51通知客户端服务器32用户认证失败,然后再由认证服务器32将认证结果反馈至客户端页面31。本实施例中,该模块一方面获取RADIUS数据包内容,另一方面通过数据库查询语句获取存储模块中的必要信息。
添加与绑定处理模块54:用于处理管理员提出的绑定和添加操作请求。
重同步处理模块55:用于处理重同步操作请求。具体的,分为小窗口重同步和大窗口重同步,小窗口重同步无需管理员直接参与,管理员通过配置文件等方式预先设置小窗口大小R,当进行认证操作时,如果用户OTP(也就是硬件令牌1提供的OTP)和认证服务器5计算得到的临时OTP不匹配,那么认证服务器5将认证次数加一后重新计算OTP,再与用户OTP进行比较,如果匹配,则小窗口重同步成功,同时返回认证成功,如果不匹配则重复上述过程。此过程最多重复R次,如果在R次之内未出现两个OTP匹配的情况,那么小窗口重同步失败,需要进行大窗口重同步。大窗口重同步需要有管理员完成,管理员通过硬件令牌1读取两个连续的OTP,按照先后次序输入管理系统页面41,并发送至管理系统服务器42,进而传送至认证服务器5。认证服务器5重复计算OTP,并将认证次数加一,反复执行此操作,直到有两个连续的OTP与管理员传来的两个OTP均匹配,则大窗口重同步成功。
参见图2、图3、图4,本发明实施例提供了一种用于B/S网络结构的一次性口令认证方法,包括系统初始化、用户登录认证及系统管理。下面一一进行阐述:
参见图2,是系统初始化流程图,具体包括:
步骤201,硬件令牌在出厂后,由厂家为每个硬件令牌分配唯一的硬件序列号(SN),用于标识不同的硬件令牌。
步骤202,由令牌分发人员在终端机上运行初始化软件,输入“SN”和“生成因子”,初始化软件通过此两者计算出OTP生成要素。
其中,令牌分发人员可以是专门的令牌分发机构成员,也可以是认证系统使用方的管理员,根据具体应用场景选择。
步骤203,通过令牌烧写器将硬件令牌和终端机相连,并借助于初始化软件将步骤202中所得的OTP生成要素存储至硬件令牌中,同时将硬件令牌中的触发次数设置为0。
其中,触发次数预先存储在硬件令牌内。
步骤204,用户向令牌分发人员申请获取硬件令牌,得到新的硬件令牌后通过指纹模块将用户指纹信息存储至硬件令牌,将用户与其所有的令牌唯一对应,不能提供正确指纹则不能开启硬件令牌,防止令牌丢失后被他人冒用。
步骤205,管理员通过管理系统输入SN、用户名(UID)、OTP生成要素等必要信息,发送至客户端服务器和认证服务器,并提出绑定和添加操作请求。
其中每个硬件令牌的SN各不相同,每个用户的UID也各不相同,因此SN和UID的一一对应关系将用户名和硬件令牌绑定,同时OTP生成要素通过SN得到,因此保证每个硬件令牌和用户对应的OTP生成要素也各不相同。必要信息是指令牌使用状态及用户联系方式等个人信息,根据实际应用场景选择。
步骤206,客户端服务器和认证服务器收到绑定和添加操作请求后,分别在各自的存储模块中添加新用户信息,按照SN和UID的对应关系完成绑定和添加操作,认证次数置为0,将令牌使用状态置为正常。
其中认证次数是认证服务器端用于计算临时OTP所用的一个数据,每认证成功一次,其值自动加一,具体意义在认证流程中再做详细解释。
至此,初始化工作完成。
参见图3,,是用户登录认证流程图,具体包括:
步骤301,用户点击硬件令牌上的开机按钮,硬件令牌显示屏会提示用户提供指纹信息,然后用户通过指纹模块提供自己的指纹信息,以用硬件令牌验证。
步骤302,硬件令牌验证用户提供的指纹信息与初始化阶段注册的指纹信息是否匹配。
步骤303,如果步骤302中的指纹验证结果为不匹配,则进入步骤303,自动关闭硬件令牌,用户无法继续使用。
步骤304,如果步骤302中的指纹验证结果为匹配,则进入步骤304,令牌成功开启,同时,硬件令牌的显示屏上提示用户触发生成OTP。
步骤305,用户点击硬件令牌上的触发按钮,以便获得登录认证时所用的用户OTP。
步骤306,硬件令牌在存储模块中获得“OTP生成要素”和“当前触发此处”,通过这两者计算用户OTP,并通过显示屏向用户展示本次计算所得的用户OTP。
步骤307,用户读取OTP,并通过客户端页面输入用户名和读取的用户OTP,发送至客户端服务器。
步骤308,客户端服务器接收到用户输入的用户名和用户OTP后,在存储模块中查找接收到的用户名,判断其是否存在。
步骤309,如果步骤308中的判断结果是用户名不存在,则进入步骤309,返回用户名错误信息,本次操作结束。
步骤310,如果步骤308中的判断结果是用户名存在,则进入步骤310,客户端服务器将接收到的用户名和用户OTP按照预先规定的认证数据包格式封装,并传送至认证服务器。
其中,所述预先规定的认证数据包格式是指在系统设计阶段,在客户端服务器和认证服务期间协商的数据传输规则,在这种规则的约束下,数据传输双方才能够从数据包的特定部分获得所需信息。具体可选用RADIUS协议数据包格式等。
步骤311,认证服务器受到认证数据包后,对其进行解析,获得用户名及用户OTP,同时查找用户令牌使用状态,判断此状态是否处于正常。
步骤312,如果步骤311中的判断结果为令牌使用状态是挂失、冻结等非正常状态,则返回令牌使用状态不正常,同时提示用户通过管理员进行必要处理。本次操作结束。
步骤313,如果步骤311中的判断结果为令牌使用状态正常,则认证服务器获取该用户名对应的认证次数和OTP生成要素,计算临时OTP。
其中认证次数,应当与硬件令牌中的触发次数在一定范围内同步,如前所述,用户认证是否通过,决定于硬件令牌计算所得的用户OTP和认证服务器计算所得的临时OTP是否匹配,硬件令牌和认证服务器中的OTP生成要素是相同的,因此,两者计算所得的OTP是否匹配就决定于硬件令牌中的触发次数和认证服务器中的认证次数是否同步,因此,硬件令牌每计算一次客户OTP,其内的触发次数就加一,同样,认证服务器每认证成功一次其内的认证次数就加一。
步骤314,认证服务器判断临时OTP与用户OTP是否匹配。
步骤315,如果步骤314的判断结果为匹配,则返回认证成功。认证操作结束。
步骤316,如果步骤314中的判断结果为不匹配,那么则进行小窗口重同步。
其中小窗口重同步是是指硬件令牌触发次数和认证服务器认证次数相差在小窗口范围之内的重同步。具体地,管理员通过配置文件等方式预先设置小窗口大小R,当进行认证操作时,如果用户OTP(也就是硬件令牌提供的OTP)和临时OTP(也就是认证服务器计算得到的OTP)不匹配,那么认证服务器将认证次数加一后重新计算临时OTP,再与用户OTP进行比较,如果匹配,则小窗口重同步成功,同时返回认证成功,如果不匹配则重复上述过程。此过程最多重复R次,如果在R次之内未出现两个OTP匹配的情况,那么小窗口重同步失败,需要进行大窗口重同步。
步骤317,判断小窗口重同步是否成功。
步骤318,如果步骤316中的判断结果为不成功,则进入步骤317,认证服务器返回认证失败信息,并通知用户到管理员处进行大窗口重同步。认证操作结束。
步骤319,如果步骤316中的判断结果为小窗口重同步成功,则返回认证成功,认证操作结束。
至此,用户登录认证流程结束。
参见图4,是系统管理流程图,系统管理由管理员完成,具体包括:
步骤401,管理员进行管理操作之前,通过管理系统页面输入管理员账号和密码,发送至管理系统服务器。
步骤402,管理系统服务器判断管理员密码是否正确。
步骤403,如果步骤402中的判断结果为管理员密码错误,则提示管理员登录失败。
步骤404,如果步骤402中的判断结果为管理员密码正确,则允许管理员进入管理系统,执行管理操作。
步骤405,管理员按照用户和系统的需求完成各种管理操作,并向客户端服务器和认证服务器发送管理操作请求。
其中,管理操作包括,新用户到来时的添加与绑定操作,用户提出的信息修改操作,令牌丢失时的挂失操作,硬件令牌的触发次数和认证服务器的认证次数失步后的重同步操作等,可根据具体应用场景进行具体设计。
步骤406,客户端服务器和认证服务器收到管理操作请求后,按照具体要求完成步骤405中提到的各种管理操作,并返回操作结果。
至此,系统管理过程结束。
图2,图3,图4展示的三种操作流程并不互相独立存在。图2初始化过程中的添加与绑定操作和图3登录认证过程中的大窗口重同步都需要用户在管理员处通过图4中的步骤405和步骤406来完成。此处将三种操作流程分开陈述,更能反映出系统的总体结构,能够清晰明了的反应系统各部分的具体工作方式,实际应用中应当将这三者结合考虑。
本实施例中,系统初始化过程、登录认证过程和系统管理过程的相互关系及具体使用方式为:
所述系统初始化过程是登录认证过程的前提,因此,系统初始化过程中的各步骤必须在登录认证过程之前完成且保证各步骤执行的先后顺序;系统管理过程不需要与系统初始化过程和登录认证过程保证先后顺序,其是在系统运行过程中,由用户针对使用过程中遇到的各种问题和系统维护要求提出操作需求,并由管理员按照用户需求执行相应操作,同时,系统管理过程与系统初始化过程相互交叉,即系统管理过程要参与系统初始化过程中的用户添加与绑定操作。
参见图5,图6是本发明提供的两种系统部署示意图,均可用于多服务提供方共同使用的场景。
参见图5,是认证服务器由第三方统一维护的部署示意图,在这种部署方式下,认证服务器只有一个,由第三方机构维护,系统初始化过程由第三方机构完成,计算OTP生成要素所需的生成因子由第三方机构统一分配。这种部署方式使得系统维护更为集中,部署更为简便,系统可靠性提高,但降低了各服务提供方的系统独立性。
参见图6,是认证服务器由服务提供方各自维护的部署示意图,在这种部署方式下,认证服务器有多个,每个服务提供方都有自己的认证服务器,系统初始化过程由各服务提供商各自完成。这样的部署方式便于各方独立管理自己的系统,但是要在多处部署认证服务器,增加了系统部署的复杂性,同时不便于认证服务器的统一维护。
Claims (5)
1.一种用于B\S网络结构的一次性口令认证系统,其特征在于:该系统包括硬件令牌、初始化工具、客户系统、管理系统和认证服务器;它们相互之间的关系是:初始化工具对刚出厂的硬件令牌完成初始化流程;硬件令牌为用户提供认证所需的OTP;用户通过客户系统输入OTP并由客户系统将该OTP按照规定数据包格式发送至认证服务器;认证服务器完成认证过程决定是否认证成功并将认证结果返回至客户系统,最终反馈给用户;管理系统在管理员的参与下完成系统管理和维护,按照规定数据包格式向认证服务器和客户端服务器发送管理操作请求,认证服务器和客户端服务器接收请求,完成管理操作,并向管理系统返回操作结果;
所述硬件令牌包括:存储模块、OTP生成模块、指纹模块、显示模块和触发模块,各部分实现方式和相互关系是:该存储模块,用于存储OTP生成要素、触发次数、用户指纹信息;该OTP生成模块,用于通过存储模块中的OTP生成要素和触发次数计算生成OTP,生成OTP的算法采用HMAC-SHA1算法;该指纹模块,用于在用户获得硬件令牌是初始化指纹并将获得的指纹信息存储在存储模块中,以及在硬件令牌开启时获取用户指纹信息,并验证其是否匹配;它选用任意一种指纹采集设备;该显示模块,用于向用户显示OTP生成模块计算所得的OTP;该触发模块,通过此模块触发OTP生成模块生成OTP;
所述初始化工具包括:初始化软件和令牌烧写器;各部分实现方式和相互关系是:该初始化软件,用于在令牌初始化时,提供可视化工具;通过此模块,输入令牌序列号SN及生成因子,并计算OTP生成要素;软件中通过一种杂凑算法计算OTP生成要素,该杂凑算法为SHA1或MD5算法;该令牌烧写器,是一套硬件设备,用于将主机与硬件令牌相连接,向硬件令牌烧写程序、将触发次数初始化为0和注入所述初始化软件计算所得的OTP生成要素;其相互连接关系是:与主机端通过USB连线连接,与硬件令牌通过UART串口线连接,核心部分通过CH341芯片完成USB信号与UART信号的互相转换;
所述客户系统包括客户端页面和客户端服务器,其间关系是:客户端页面搭建在客户端服务器之上;该客户端页面,是认证用户可以通过浏览器访问的WEB登录页面,它包括:输入模块、通信模块和显示模块,各部分实现方式和相互关系是:该输入模块,用户登录认证时,通过此模块输入用户名及OTP,它是通过web编程提供的用户输入框;该通信模块,用于将用户输入的用户名及用户OTP发送至客户端服务器,并接收认证结果及提示信息;它按照http协议进行数据传输;该显示模块,用于在登录过程中,向用户显示客户端服务器返回认证结果及其他提示信息,它是通过web编程提供的文本显示框或弹出式提示对话框;
该客户端服务器包括:通信模块、存储模块、用户有效性验证模块、绑定和添加处理模块;各部分实现方式和相互关系是:该通信模块,同时用于与客户端页面和与认证服务器的数据交互;一方面用于接收客户端页面发送来的用户名和用户OTP,并向认证服务器发送认证数据包,所述认证数据包就是具有规定格式的包含用户名和用户OTP的数据包;另一方面用于接收并向客户端页面转发认证服务器发来的用户认证结果;该通信模块的核心功能在于将用户名和OTP按照规定格式封装数据包,具体可以是RADIUS数据包格式;该存储模块,用于存储用户名及其他与实际应用场景紧密相关的用户信息,所述用户名与认证服务器的存储模块中存储的用户名一一对应,且每个用户之间互不相同;它是通过MySql、SqlSever、Oracle数据库中的一种来实现;该用户有效性验证模块:用于当用户提交用户名和OTP后,在所述存储模块中查找用户提交的用户名,如未查找到,则向客户端页面返回用户名无效的提示信息;它在软件中通过数据库查找语句找到对应用户信息,判断其是否有效;该绑定和添加处理模块,用于处理管理员提出的绑定和添加操作请求;具体的绑定和添加方法通过软件编程实现;
所述管理系统包括管理系统页面和管理系统服务器,其间关系是:管理系统页面搭建在管理系统服务器之上;
该管理系统页面,是管理员可以通过浏览器访问的WEB管理页面,它包括:输入模块、通信模块、添加与绑定模块、信息修改模块、日志模块和重同步模块;各部分实现方式和相互关系是:该输入模块,用于管理员登录时输入管理员账号和密码,也用于管理员进行管理操作时输入必要信息;它是通过web编程提供的用户输入框;该通信模块,用于将管理员输入的管理员账号和密码传送至管理系统服务器,并接收认证结果及其他提示信息;也用于将管理员操作请求和必要数据传送至管理系统服务器,它按照http协议进行数据传输;该添加与绑定模块,用于完成新用户的添加和令牌与其所有者用户的绑定操作,它是通过web编程提供的用户输入框,用于输入必要信息;该信息修改模块,用于删除一个用户,也用于修改各种用户信息;它是通过web编程提供的用户输入框,用于输入修改的用户信息;以及通过web编程提供的文本框和表格,用于显示从数据库获取的现有用户信息;同时通过数据库操作完成删除或信息修改;该日志模块,用于查看管理系统的管理员操作记录,它是通过web编程提供的文本框和表格,显示管理员操作信息;该重同步模块,用于当硬件令牌的触发次数与认证服务器的认证成功次数的差值超过规定限度时,由管理员将所述硬件令牌的触发次数与所述认证服务器的认证成功次数重新设置为同步;它通过编程实现,核心部分为重同步算法;
该管理系统服务器包括:通信模块、存储模块、操作请求处理模块和管理员登录模块,各部分实现方式和相互关系是:该通信模块,同时用于与管理系统页面、客户端服务器和认证服务器的数据交互;一方面用于绑定操作时向客户端服务器和认证服务器发送用户信息;另一方面用于向认证服务器发送管理操作请求数据包,并接收操作处理结果;也用于接收管理员登录时管理系统页面发送来的管理员账号和密码,并向管理系统页面发送管理员登录认证结果;它通过软件编程实现,其核心在于其与管理系统页面的数据交互通过http协议完成,其与向客户端服务器和认证服务器的数据交互通过事先规定的数据包格式完成,该数据包格式为RADIUS数据包格式;该存储模块,用于存储管理员账号、密码、日志信息及与管理员相关联的必要信息,它是通过MySql、SqlSever、Oracle数据库中的一种来实现;该操作请求处理模块,用于将通信模块接收到的,来自管理系统页面提出的各种操作请求连同必要信息封装成规定格式的认证数据包,再通过通信模块发送出去,它通过软件编程实现,其核心在于将操作请求封装成为规定格式数据包,该数据包格式为RADIUS数据包格式;该管理员登录模块,用于验证通信模块接收到的管理员账号和密码,如果验证成功,则允许管理员进入管理系统,并向管理系统页面返回登录成功信息;如果认证失败,则拒绝管理员进入管理系统,并向管理系统页面返回登录失败信息;它通过软件编程实现,利用数据库查询语句获取存储模块中的管理员账户信息,并验证通信模块接收到的管理员账号和密码是否与所获信息匹配;
所述认证服务器包括:通信模块、存储模块、认证处理模块、绑定和添加处理模块和重同步处理模块,各部分实现方式和相互关系是:该通信模块,用于接收客户端服务器发来的认证数据包并向客户端服务器反馈认证结果,同时用于接收管理系统服务器发送来的管理员操作请求并向管理系统服务器反馈操作结果;它通过软件编程实现,其核心在于将发送来的RADIUS数据包拆分,获得其中数据,并将结果封装成为RADIUS数据包,进行反馈;该存储模块,用于存储令牌序列号即SN以及与其相关联的用户名即UID,令牌使用状态,认证次数即counter、用户联系方式,OTP生成要素,认证次数;所述用户名要保证每个用户之间互不相同,它是通过MySql、SqlSever、Oracle数据库中的一种来实现;该认证处理模块,用于处理用户的登录认证请求;所述认证处理模块从通信模块获得的认证数据包提取用户名、用户OTP,判断所述用户名是否存在,如果不存在,则返回认证用户不存在信息;如果所述用户名存在,则通过用户名在存储模块中查找对应的OTP生成要素和认证次数,计算临时OTP,并将临时OTP与从认证数据包提取的用户OTP进行比较,如果匹配则通过通信模块通知用户认证成功;如果不匹配,则通过通信模块通知客户端用户认证失败;它是通过软件编程实现,一方面获取RADIUS数据包内容,另一方面通过数据库查询语句获取存储模块中的必要信息;该绑定和添加处理模块,用于处理管理员提出的绑定操作请求;该重同步处理模块用于硬件令牌的触发次数与认证服务器的认证次数发生失步,用户向管理员提出重同步要求是,处理重同步操作请求;它是通过编程实现,核心部分为绑定和添加方法。
2.一种用于B\S网络结构的一次性口令认证方法,其特征在于:该方法包括了系统初始化过程、登录认证过程和系统管理过程,具体步骤如下:
步骤一:由令牌分发人员运行初始化软件,以“SN+生成因子”为输入,通过某种杂凑算法计算得到OTP生成要素;然后通过令牌烧写器将主机与硬件令牌相连,将OTP生成要素存储至令牌内,并将认证次数即counter初始化为O;
步骤二:用户向令牌分发部门填写注册表单,申请获取一个新令牌,然后用户通过令牌上的指纹模块在硬件令牌中注册存储自己的指纹信息;
步骤三:用户获得令牌后,在管理员处正确输入令牌序列号以及令牌所有者对应的用户名,将其用户信息和令牌初始信息添加至客户端服务器和认证服务器的存储模块中,完成绑定和添加过程;
步骤四:用户点击硬件令牌上的开机按钮,并通过指纹模块提供指纹信息;如果指纹匹配则成功开启硬件令牌;如果指纹不匹配,则令牌自动关闭;
步骤五:如果步骤四中成功开启令牌,用户点击硬件令牌上的动态口令触发按钮,硬件令牌通过存储的OTP生成要素和当前触发次数经过HMAC-SHA1算法计算得到OTP;同时,用户通过客户登录页面输入用户名及所得动态口令,并传送至客户端服务器;
步骤六:客户端服务器将用户名、动态口令信息按照约定数据包格式封装成认证数据包,并传送至认证服务器;该数据包格式为RADIUS数据包;
步骤七:认证服务器处理认证数据包,获取用户名及用户OTP,并在存储模块中查找所述用户对应的令牌使用状态,如果令牌使用状态为挂失或冻结等非正常状态,则返回令牌状态不正常信息,如果令牌使用状态为正常,则获取用户名对应的OTP生成要素和认证次数即counter,并以此两者为基础,通过某种密码算法计算临时OTP,并将其与客户端服务器传来的动态口令进行比较,如果匹配,则返回认证成功信息,同时将认证次数自动加一;如果不匹配,则返回认证失败信息;
步骤八:管理员登录管理系统,根据具体需求进行用户添加与绑定,用户信息修改,令牌重同步的管理操作;
上述八个步骤中,,系统初始化过程是登录认证过程的前提,因此,系统初始化过程必须在登录认证过程之前,即步骤一至步骤七应保证严格的先后顺序;系统管理过程,即步骤八,并不与其他步骤保证先后顺序,只在用户提出相应需求时,才有管理员执行该步骤的操作,同时,系统管理过程与系统初始化过程相互交叉,即系统管理过程要参与系统初始化过程中的用户添加与绑定。
3.根据权利要求1所述的一种用于B\S网络结构的一次性口令认证系统,其特征在于:
所述用于存储OTP生成要素、触发次数、用户指纹信息的该存储模块,为微控制器S3F8285的内置flash存储器。
4.根据权利要求1所述的一种用于B\S网络结构的一次性口令认证系统,其特征在于:
所述用于向用户显示OTP生成模块计算所得的OTP的该显示模块,为东莞市嘉田公司设计定制的专用液晶显示屏。
5.根据权利要求1所述的一种用于B\S网络结构的一次性口令认证系统,其特征在于:
所述通过此模块触发OTP生成模块生成OTP的该触发模块,为东莞市嘉田公司开模设计定制的按键。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010539084A CN101977202B (zh) | 2010-11-11 | 2010-11-11 | 一种用于b/s网络结构的一次性口令认证系统和认证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010539084A CN101977202B (zh) | 2010-11-11 | 2010-11-11 | 一种用于b/s网络结构的一次性口令认证系统和认证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101977202A true CN101977202A (zh) | 2011-02-16 |
CN101977202B CN101977202B (zh) | 2012-08-29 |
Family
ID=43577046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010539084A Expired - Fee Related CN101977202B (zh) | 2010-11-11 | 2010-11-11 | 一种用于b/s网络结构的一次性口令认证系统和认证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101977202B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218865A (zh) * | 2013-04-17 | 2013-07-24 | 孙添平 | 一种动态密码电子锁系统及其认证方法 |
CN103269483A (zh) * | 2013-06-03 | 2013-08-28 | 上海众人网络安全技术有限公司 | 一种ooac手机令牌多模式激活系统及方法 |
WO2013163884A1 (zh) * | 2012-05-03 | 2013-11-07 | 飞天诚信科技股份有限公司 | 一种动态口令的认证方法和装置 |
CN103618604A (zh) * | 2013-11-26 | 2014-03-05 | 中国联合网络通信集团有限公司 | 身份认证方法及系统 |
WO2014076715A2 (en) * | 2012-11-19 | 2014-05-22 | Choudhary Vikas Bhagchand | A system and a method for processing a user request using at least one of a plurality of user instruments to conduct a pecuniary communication |
CN104753755A (zh) * | 2013-12-26 | 2015-07-01 | 广州华多网络科技有限公司 | 系统接入方法、装置、应用客户端和im后台系统 |
CN105786581A (zh) * | 2016-03-28 | 2016-07-20 | 北京三快在线科技有限公司 | 用于进行网络数据操作的多级服务器和方法 |
CN106572102A (zh) * | 2016-10-31 | 2017-04-19 | 深圳市云刷科技有限公司 | 智能终端的激活系统及其方法 |
CN107104792A (zh) * | 2017-04-05 | 2017-08-29 | 中国人民大学 | 一种便携式移动口令管理系统及其管理方法 |
CN107222476A (zh) * | 2017-05-27 | 2017-09-29 | 国网山东省电力公司 | 一种认证服务方法 |
CN107548542A (zh) * | 2016-04-28 | 2018-01-05 | 森斯通株式会社 | 经强化完整性及安全性的用户认证方法 |
CN109274681A (zh) * | 2018-10-25 | 2019-01-25 | 深圳壹账通智能科技有限公司 | 一种信息同步方法、装置、存储介质和服务器 |
CN110189452A (zh) * | 2019-06-06 | 2019-08-30 | 广州小鹏汽车科技有限公司 | 车钥匙的接入处理方法、装置、系统及车辆 |
CN110753036A (zh) * | 2019-09-27 | 2020-02-04 | 苏州浪潮智能科技有限公司 | 一种cs架构下客户端快速认证的方法和系统 |
CN112995157A (zh) * | 2021-02-07 | 2021-06-18 | 中原银行股份有限公司 | 一种分布式缓存平台客户端接入认证体系 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212303A (zh) * | 2007-12-24 | 2008-07-02 | 北京飞天诚信科技有限公司 | 动态口令输出方法、动态口令生成方法及其装置 |
CN101377803A (zh) * | 2008-09-28 | 2009-03-04 | 北京飞天诚信科技有限公司 | 一种实现开机保护的方法和系统 |
-
2010
- 2010-11-11 CN CN201010539084A patent/CN101977202B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212303A (zh) * | 2007-12-24 | 2008-07-02 | 北京飞天诚信科技有限公司 | 动态口令输出方法、动态口令生成方法及其装置 |
CN101377803A (zh) * | 2008-09-28 | 2009-03-04 | 北京飞天诚信科技有限公司 | 一种实现开机保护的方法和系统 |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013163884A1 (zh) * | 2012-05-03 | 2013-11-07 | 飞天诚信科技股份有限公司 | 一种动态口令的认证方法和装置 |
WO2014076715A2 (en) * | 2012-11-19 | 2014-05-22 | Choudhary Vikas Bhagchand | A system and a method for processing a user request using at least one of a plurality of user instruments to conduct a pecuniary communication |
WO2014076715A3 (en) * | 2012-11-19 | 2014-08-21 | Choudhary Vikas Bhagchand | A system and a method for processing a user request using at least one of a plurality of user instruments to conduct a pecuniary communication |
CN103218865B (zh) * | 2013-04-17 | 2016-01-27 | 孙添平 | 一种动态密码电子锁系统及其认证方法 |
CN103218865A (zh) * | 2013-04-17 | 2013-07-24 | 孙添平 | 一种动态密码电子锁系统及其认证方法 |
CN103269483A (zh) * | 2013-06-03 | 2013-08-28 | 上海众人网络安全技术有限公司 | 一种ooac手机令牌多模式激活系统及方法 |
CN103269483B (zh) * | 2013-06-03 | 2015-09-23 | 上海众人网络安全技术有限公司 | 一种ooac手机令牌多模式激活系统及方法 |
CN103618604A (zh) * | 2013-11-26 | 2014-03-05 | 中国联合网络通信集团有限公司 | 身份认证方法及系统 |
CN104753755B (zh) * | 2013-12-26 | 2019-01-11 | 广州华多网络科技有限公司 | 系统接入方法、装置、应用客户端和im后台系统 |
CN104753755A (zh) * | 2013-12-26 | 2015-07-01 | 广州华多网络科技有限公司 | 系统接入方法、装置、应用客户端和im后台系统 |
CN105786581A (zh) * | 2016-03-28 | 2016-07-20 | 北京三快在线科技有限公司 | 用于进行网络数据操作的多级服务器和方法 |
CN107548542A (zh) * | 2016-04-28 | 2018-01-05 | 森斯通株式会社 | 经强化完整性及安全性的用户认证方法 |
CN107548542B (zh) * | 2016-04-28 | 2020-10-27 | 森斯通株式会社 | 经强化完整性及安全性的用户认证方法 |
CN106572102A (zh) * | 2016-10-31 | 2017-04-19 | 深圳市云刷科技有限公司 | 智能终端的激活系统及其方法 |
CN107104792A (zh) * | 2017-04-05 | 2017-08-29 | 中国人民大学 | 一种便携式移动口令管理系统及其管理方法 |
CN107222476A (zh) * | 2017-05-27 | 2017-09-29 | 国网山东省电力公司 | 一种认证服务方法 |
CN107222476B (zh) * | 2017-05-27 | 2018-02-16 | 国网山东省电力公司 | 一种认证服务方法 |
CN109274681A (zh) * | 2018-10-25 | 2019-01-25 | 深圳壹账通智能科技有限公司 | 一种信息同步方法、装置、存储介质和服务器 |
CN109274681B (zh) * | 2018-10-25 | 2021-11-16 | 深圳壹账通智能科技有限公司 | 一种信息同步方法、装置、存储介质和服务器 |
CN110189452A (zh) * | 2019-06-06 | 2019-08-30 | 广州小鹏汽车科技有限公司 | 车钥匙的接入处理方法、装置、系统及车辆 |
CN110753036A (zh) * | 2019-09-27 | 2020-02-04 | 苏州浪潮智能科技有限公司 | 一种cs架构下客户端快速认证的方法和系统 |
CN112995157A (zh) * | 2021-02-07 | 2021-06-18 | 中原银行股份有限公司 | 一种分布式缓存平台客户端接入认证体系 |
CN112995157B (zh) * | 2021-02-07 | 2022-05-13 | 中原银行股份有限公司 | 一种分布式缓存平台客户端接入认证体系 |
Also Published As
Publication number | Publication date |
---|---|
CN101977202B (zh) | 2012-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101977202B (zh) | 一种用于b/s网络结构的一次性口令认证系统和认证方法 | |
CN102148685B (zh) | 一种由用户自定义多密码种子动态密码认证系统 | |
CN101414909B (zh) | 网络应用用户身份验证系统、方法和移动通信终端 | |
CN101809582B (zh) | 智能身份系统 | |
US20070022301A1 (en) | System and method for highly reliable multi-factor authentication | |
CN101252435B (zh) | 智能卡上实现动态密码生成和判断的方法 | |
CN103023638A (zh) | 一种基于移动终端的身份验证方法及装置 | |
CN101997824A (zh) | 基于移动终端的身份认证方法及其装置和系统 | |
CN101216915B (zh) | 安全移动支付方法 | |
CN105893829A (zh) | 基于图像的密钥交换 | |
CN102281138B (zh) | 一种提高验证码安全性的方法和系统 | |
US20150235226A1 (en) | Method of Witnessed Fingerprint Payment | |
TW201816648A (zh) | 業務實現方法和裝置 | |
JP7080435B2 (ja) | 識別コードのプル方法、コンピュータプログラム、端末機器、及びサーバ | |
CN105550928A (zh) | 一种商业银行网络远程开户的系统及其方法 | |
EP3399489A1 (en) | Settlement system, user terminal and method executed therein, settlement device and method executed therein, and program | |
CN110175448A (zh) | 一种可信设备登录认证方法及具有认证功能的应用系统 | |
KR20170095029A (ko) | 모바일 단말기를 통한 간편 인증 방법, 이를 위한 인증 어플리케이션, 컴퓨터 프로그램 및 인증 서비스 장치 | |
KR101202245B1 (ko) | 이체정보로 생성되는 otp를 활용한 계좌이체시스템 및 방법 | |
KR20120046515A (ko) | 일회용 비밀번호 인증 방법 및 이에 적합한 인증 장치 | |
CN108400989A (zh) | 一种共享资源身份认证的安全认证设备、方法及系统 | |
CN109194654B (zh) | 基于证件链技术的电子公章管控系统及方法 | |
CN103544598A (zh) | 一种金融交易安全认证系统 | |
JP2012027530A (ja) | ワンタイムパスワード生成装置、サーバー装置、認証システム、方法、プログラム、記録媒体 | |
WO2016086708A1 (zh) | 支付验证方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120829 |