一种基于S/Key系统的身份认证方法

文档序号:7650863阅读:311来源:国知局
专利名称:一种基于S/Key系统的身份认证方法
技术领域
本发明涉及一种计算机网络安全领域中身份认证的方法,特别是基于S/Key 系统的身份认证方法。
背景技术
身份认证是网络安全系统中的第一道屏障,其他的安全服务都要依赖于它。 一旦身份认证系统被攻破,那么系统的所有安全措施将形同虚设。目前主要的 身份认证方法仍然是基于用户名/密码的静态身份认证。但这种认证存在许多的 缺点,首先用户必须记忆一些复杂的密码,其次静态密码在传输的过程中很容 易被截获。目前较为安全的身份认证方法是采用一次性口令认证方法,或者生 物特征识别的身份认证方法。 一次性口令身份认证的主要思想是在登录过程中 加入不确定因素,使每次登录过程中传送的信息都不同,以提高登录过程中的 安全性。生物特征识别身份认证方法是以人体的生物特征(指纹,掌纹,虹膜 等)代替口令,不需要用户登录时输入密码。
S/Key系统是目前实现一次性口令认证方法较为理想的系统。S/Key系统包 含两部分内容初始化部分和认证部分。
初始化注册
用户随机选择秘密通行口令W ,设置一次性口令序列的最大迭代值N,通 过安全信道将W、 N提交给认证服务器,服务器生成与该用户对应的种子值S, 并且计算口令序列的第一个口令PG=HN(W+S)。服务器保存和注册用户相关联 的信息,用户的注册过程结束。
服务器上用户A的注册数据内容如下
User ID : IDA
Seed : S
Sequence Number : N
OTP : Po
具体身份认证过程
用户进行第i次登录时,先输入用户名IDA向服务器发送认证请求。
服务器将保存的当前序列号N-i,种子值S, 一同发送给客户端。
客户端收到服务器的应答信息后,提示用户输入秘密通行口令w,并通过自
己的一次性口令计算程序,计算当前的认证口令p,
Pi =HN-i(W+S)
然后客户端将计算得到的本次认证口令&发送给服务器。 服务器接收到本次认证口令后,利用单向哈希函数H对其再进行一次运算,
得到P'w,并将结果与上次保留的口令Pw作比较,如果相同,则接受用户的认
证请求。并将Pi保存起来作为下次的口令验证。
S/Key系统可以达到在网络上传送的密码只使用一次的目的,可有效防止攻
击者利用窃听到的旧口令进行重访攻击。但是S /Key系统仍然有严重的缺陷。
首先,S/Key系统不能抵抗小数攻击;其次,如果攻击者通过键盘监听等攻击
手段获得用户的秘密通行口令后,仍可以冒充合法用户成功通过认证。
另外,所有基于生物特征的识别技术是利用提取的生物特征数据作为识别
码,因而在传送中易被非法截获。

发明内容
本发明针对现有的S/Key系统存在小数攻击,键盘监听的漏洞,以及单因 子生物特征识别技术存在泄漏生物特征数据的缺点,提出一种基于S/Key系统 的身份认证方法。
本发明所提出的方法主要包括以下步骤用户在首次注册时由客户端通过 安全信道向认证服务器提交用户名IDA、秘密通行口令,以及设置一次性口令序 列的迭代值N,同时提供注册用户的生物特征值T',服务器生成与该用户对应 的种子值S,并且计算口令序列的第一个口令P^HW(W+S)。用户在身份认证过
程中首先通过客户端浏览器输入用户名IDA,向服务器提交认证请求,服务器收 到认证请求后查询数据库,找出与用户名IDA对应的种子值S和当前迭代值N-i, 以及上次认证时用于解密生物特征值的一次性口令Pi.p并将这些值作为应答信 息发送给客户端浏览器,客户端根据用户输入的秘密通行短语W、服务器发送
过来的当前迭代值N-i和种子值S计算出当前一次性口令Pi=HN'i(W+S),并对当 前口令Pi再进行一次哈希运算得到PV产H( PO,客户端将P,,,与上次认证时用 于解密生物特征值的一次性口令Pi.i比较,如果结果一致,则认为迭代值无误, 客户端通过对服务器的验证。同时客户端采集用户的生物信息,提取特征值T, 客户端用本次认证的一次性口令Pi作为密钥对用户生物特征值T进行加密,发 送加密后的信息给服务器,服务器利用与客户端相同方法计算出本次认证的一 次性口令P'i,用该一次性口令P'i对接收到的加密信息进行解密,解密后的用户 生物特征值T与保存在服务器生物特征库中当前用户的生物特征值T'进行匹 配,匹配成功则服务器通过对客户端的验证,并保存该一次性口令P'i,不匹配 则说明用户非法,拒绝此次登录请求。 本发明的优点.-
1、 本发明的认证方法中,客户端传递给服务器的认证信息不是单一的动态 口令,或用户生物特征信息,而是每次都在变化的加密后的生物特征值。任何 重放或者窃听攻击都是无效的,具有很高的安全性。
2、 本发明的认证方法中,增加了客户端对服务器的身份认证。每次认证过 程中不传递本次登录的一次性口令,因此攻击者不可能得到客户端对服务器进 行认证时的一次性口令,也不能得到当前的迭代值,有效避免了一次性口令身 份认证的小数攻击问题。
3、 本发明的认证方法,将一次性口令与生物特征识别技术进行有效的结合, 解决了 S/Key系统存在键盘监听的漏洞,进一步提高了认证系统的安全性。
4、 采用了客户端与服务器的两次认证,提高了系统的安全性。
5、 本发明的认证方法有广泛的应用前景,可以应用在金融、公安等对自身
业务的安全性有较高要求的行业中。


图1客户端认证的流程图
图2服务器端认证的流程图
图3基于S/Key系统的一次性口令与指纹识别的双向认证的流程图
具体实施例方式
一种基于Siey系统的一次性口令与生物特征识别相结合的双向身份认证 方法包括以下步骤
(1) 客户端用户向服务器发出身份认证请求; 用户身份IDv
(2) 服务器根据客户端发送的用户名向客户端发出应答信息
服务器向客户端发出迭代值N、种子值S和上次认证时用于解密生物特征 值的一次性口令Pi.n
(3) 客户端根据当前迭代值N-i、种子值S、秘密通行短语W计算出当前
一次性口令。计算如下 Pi=HN"(W+S);
(4) 客户端保存当前口令Pi,并对当前口令Pi再进行一次哈希运算,计算
如下
PY产H(Pi);
客户端将P,w与上次认证时用于解密生物特征值的一次性口令Pm比较,如
果结果一致,则认为迭代值无误,客户端通过对服务器的验证。如果结果不同,
则认为迭代值有误,系统提示存在小数攻击。
客户端通过生物特征识别仪提取用户的生物特征值T。用Pi作为加密密钥
对T进行加密,加密如下 Mi-E(T,Pi);
然后将加密密文Mi作为认证口令发送给服务器。(5)服务器根据该用户当前迭代值N-i、种子值S、秘密通行短语W,用与 客户端相同哈希函数计算出动态口令P'i,计算如下 P,i=HN"(W+S);
以一次性口令P'i作为解密密钥对接收到的加密信息Mi进行解密,解密如下
T二D(Mi,P,i);
解密后的生物特征值T与当前用户保存在服务器端的生物特征库中的模板 特征值T'进行匹配,按照一定的阈值决定这两个特征值是否相同,如果匹配成 功则服务器通过对客户端的验证,并保存新口令P'i,用户成功登录。不匹配则 说明用户非法。
每次成功登录后,迭代值递减,当迭代值减为O或秘密通行短语W泄密后, 必须重新初始化迭代值和修改秘密通行短语。
下面以公安人口信息管理系统中本发明的应用为例说明本发明的过程
1)注册过程
用户ChenJiang随机选择秘密通行口令W-anfang ,设置一次性口令序列的 最大迭代值N=500,通过指纹识别仪采集用户ChenJiang右手拇指的指纹特征 值T;,通过安全信道将W、 N、 T,m提交给认证服务器,服务器生成与该用户 对应的种子值S= rh03hu,并且计算口令序列的第一个口令PG=HN(W+S)
2) 身份认证过程
1. 用户通过客户端浏览器输入用户名ChenJiang,向服务器提交认证请求。
2. 服务器查询数据库,找出与用户名ChenJiang对应的种子值S-rh03hu,和 当前迭代值!^-—10,同时找出上次认证时用于解密密钥的一次性口令?1-1,
Pi.产d565086da5a433e98cefe53d9276b742
并将这些值作为应答信息发送给客户端浏览器。如果数据库中没有与该用 户名对应的纪录则拒绝此次登录请求。
3) 客户端收到服务器发送的应答信息后,提示ChenJiang输入秘密通行短 语W^anfang,同时通过指纹采集议采集ChenJiang的右手拇指指纹图像,客户
端调用指纹处理模块对采集的指纹图像提取特征值T ,并调用相应的运算模块
做如下运算
计算本次认证用作加密密钥的一次性口令
Pi=HN-i(W+S)= b5b52c8c柳eca7147f95ea6add7dl2f
计算上次认证用作解密密钥的一次性口令
P,i.产H( Pj )= d565086da5a433e98cefe53d9276b742
比较Pw与P'w的值(如果不相同,则认为存在攻击,提示用户进行相应的 处理)。结果相同,用P,作为秘钥对采集的指纹特征值进行加密 Mi = E( T, Pj)
将加密信息作为认证信息发送给服务器。
4.服务器收到客户端的认证信息后,作如下运算
P,i=HN-i(W+S)=b5b52c8cf69eca7147f95ea6add7dl2f
用P、作为解密秘钥对加密信息进行解密 T = D(Mi,P,i)
将解密后得到的指纹特征值T与服务器指纹库中保存的该用户的指纹特征
值T,m进行匹配,匹配结果一致,通过验证。将数据库中保存的上次成功登录
口令Pw改为Pi 。至此认证过程结束。
需要说明的本发明的实际应用不局限于以上给出的实施例。例如所使用的 生物特征值也可使用掌纹或者虹膜,也可使用其它的生物特征值。
权利要求
1、一种基于S/Key系统认证方法,用户在首次注册时由客户端通过安全信道向认证服务器提交用户名IDA、秘密通行口令,以及设置一次性口令序列的迭代值N,同时提供注册用户的生物特征值T’,服务器生成与该用户对应的种子值S,并且计算口令序列的第一个口令P0=HN(W+S)。用户在身份认证过程中首先通过客户端浏览器输入用户名IDA,向服务器提交认证请求,服务器收到认证请求后查询数据库,找出与用户名IDA对应的种子值S和当前迭代值N-i,以及上次认证时用于解密生物特征值的一次性口令Pi-1,并将这些值作为应答信息发送给客户端浏览器,客户端根据用户输入的秘密通行短语W、服务器发送过来的当前迭代值N-i和种子值S计算出当前一次性口令Pi=HN-i(W+S),并对当前口令Pi再进行一次哈希运算得到P’i-1=H(Pi),客户端将P’i-1与上次认证时用于解密生物特征值的一次性口令Pi-1比较,如果结果一致,则认为迭代值无误,客户端通过对服务器的验证。同时客户端采集用户的生物信息,提取特征值T,客户端用本次认证的一次性口令Pi作为密钥对用户生物特征值T进行加密,发送加密后的信息给服务器,服务器利用与客户端相同方法计算出本次认证的一次性口令P’i,用该一次性口令P’i对接收到的加密信息进行解密,解密后的用户生物特征值T与保存在服务器生物特征库中当前用户的生物特征值T’进行匹配,匹配成功则服务器通过对客户端的验证,并保存该一次性口令P’i,不匹配则拒绝此次登录请求。
全文摘要
本发明涉及一种基于S/Key系统的身份认证方法。本发明在用户首次注册时通过客户端向认证服务器提交包括用户名、密码口令、迭代值及生物特征值的注册数据,由服务器生成与该用户对应的种子值,计算口令序列的第一个一次性口令。在用户身份认证过程中通过客户端和服务器之间的双向认证,而且是对注册用户的一次性口令和生物特征值相结合的双向认证。
文档编号H04L9/32GK101174953SQ200710089999
公开日2008年5月7日 申请日期2007年3月27日 优先权日2007年3月27日
发明者徐华龙, 申永军, 平 陈, 陈文江 申请人:兰州大学;甘肃中汇电子工程有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1