动态用户认证论文(共7篇)
动态用户认证论文 篇1
由于无线传感器网络结构的特殊性,它比传统网络面临更多的安全威胁。传感器网络的安全,在文献[1]中被归纳为两方面,外部安全和内部安全。其中外部安全是指WSN与外部用户之间的安全通信,这个外部用户可以是新加入的节点,也可以是订购了WSN服务的合法用户。内部安全指的是在WSN中传感器节点之间的安全通信以及传感器节点与基站之间的安全通信。文中主要关注于无线传感器网络中的外部安全,即用户认证问题。
1 动态用户协议的安全缺陷
虽然Lee-Chun Ko的方案通过对于时延的严格控制和对于认证通过信息的签名方式解决了Wong和Tseng方案中的不足,但是依然有其安全性缺陷。由于这一方案在每一个登录节点上都分配了N这一重要信息,一旦信息泄漏,将导致重大的安全问题。同时由于每一个登录节点都要保存所有用户的N,很有可能导致安全威胁的扩大。针对这一问题给出了一种攻击方式。这一攻击方式默认无线传感器网络中部署的节点都是易于捕获的。由于无线传感器网络节点大量播撒的特性,无线传感器网络的研究者一般都对节点易于捕获的特点达成共识。
由于动态用户认证协议都需要在网关部分完成认证计算,因此在动态用户认证协议中普遍存在着对于网关的拒绝服务攻击的可能。在Lee-Chun Ko的协议中,拒绝登录的消息并没有像登录消息一样给予安全保护。因此基于此,恶意节点可以在无线传感器网络区域内伪装网关向登录节点发送消息Msg(REJ_LOGIN),由于登录节点无法判断此消息是否来自网关,所以会接受这一消息。因此当任何用户试图登录时,登录节点都会根据这一消息拒绝用户登录。
2 改进的动态用户认证协议
鉴于以上提出的动态用户认证协议可能出现的安全问题,针对Lee-Chun Ko提出的改进协议对动态用户认证协议给出了改进方案,在不影响其高效的前提下,提高了对伪装网关重放攻击和针对网关的拒绝服务攻击的安全强度。
改进的动态用户认证方案同样包括以下4个阶段:
(1)注册阶段。
Step1用户拥有UID,选择口令PW。通过安全信道向网关提交以下数据(UID,hash(PW))。
Step2网关在数据库中存储(UID,T,hash(PW),TS),并向各登录节点用安全方式分发其子集(UID,T,TS),其中TS为有效时戳,T为最近一次的登录时间,初始化为用户注册时刻。
Step3网关通知用户注册成功。
(2)登录阶段。
Step1用户计算
A=hash(hash(PW)⊕t1) (1)
之后向登录节点提交登录信息(UID,A,t1),其中t1为当前时刻。
Step2登录节点检查UID是否存在,若不存在则向用户发送UID错误消息Msg(ID_WRONG)。如UID存在,检查是否Δt<t1-T,其中,Δt为最小有效登录间隔,如果登录时间差<Δt,则证明用户登录频繁,将请求弃置,拒绝用户登录;否则判断tc-t1是否超过最大传输时延,tc为当前时刻,检查是否超时。超时则发送超时Msg(OVERTIME)消息,拒绝用户登录。否则进行以下计算
C=hash(A⊕t2) (2)
D=hash(UID⊕S⊕C) (3)
其中,S为登录节点与网关的共享秘密,不同的登录节点各不相同;t2为进行计算时的当前时刻。修改T=t1。之后登录节点向网关提交(UID,C,D,t1,t2)。
(3)认证阶段。
Step1网关检查(UID,t1)是否存在,如(UID,t1)已经存在,则弃置此请求。检查是否Δt<t1<T,并判断tc-t2是否超出最大传输时延,如果登录频繁或者超过时延,则弃置此请求。如不超时,依照式(4)进行计算。
D′=hash(A⊕S⊕C) (4)
并判断D′是否和D相等,如不相等,认为登录节点为伪装或登录节点出错,拒绝登录,不发送任何信息,并在收到此类包达到一定阈值时启动对节点中恶意节点的排除。否则依照式(5)和式(6)继续计算
A′=hash(hash(PW)⊕t1) (5)
C′=hash(A′⊕t2) (6)
判断与C′与C是否相等,如不相等发送拒绝登录消息,否则认为用户认证成功。网关保存T=t1,计算网关对消息的签名
MAsn=hash(A⊕S⊕t4) (7)
MAu=hash(A⊕hash(PW)) (8)
之后网关向登录节点发送接受认证消息
Msg(ACC_LOGIN),MAsn⊕MAu,hash(MAu),tr
Step2登录节点首先检查tc-t4是否超过最大传输时延,t3为当前时刻。如超时,则放弃这。如不超时则依照式(7)计算,之后再按式(9)计算。
MA′u=MAsn⊕MAu⊕MA′sn (9)
并验证是否hash(MAu)=hash(MA′u),验证失败则认为消息为伪造,不做处理。否则向登录用户发送(Msg(ACC_LOGIN),hash(MAu⊕t5),t5);如登录节点收到拒绝登录消息,同样首先计算是否超时,如不超时则计算验证h(MAsn)=h(MA′sn),如正确则发送拒绝登录消息(Msg(REJ_LOGIN),hash(MAu⊕t5),t5)
Step3用户接受来自登录节点的消息登录消息并验证
hash(MAu⊕t5)=hash(hash(A⊕hash(PW))⊕t5) (10)
如验证成功,则接受登录节点的通知。
(4)更新阶段。
Step1用户产生新的口令PW′,并通过当前安全通道向网关提交
(UID,hash(hash(PW′)),hash(hash(PW)),hash(PW)⊕hash(PW′))
Step2网关根据自己储存的用户口令哈希值判断hash(hash(PW))是否正确,之后计算
hash(PW″)=hash(PW)⊕hash(PW′)⊕hash(PW) (11)
如hash(hash(PW″))=hash(hash(PW′)),则认为发送正确,将hash(PW″)作为新的用户口令哈希存储,并按照注册阶段进行操作。
在之前的动态用户认证协议中,并没有对网关发送给登录节点的允许登录消息Msg(ACC_LOGIN)和拒绝登录消息Msg(REJ_LOGIN)的具体格式给出说明。通过对协议的分析可知,用户实际接入无线传感器网络是依靠登录节点。因此网关的登录消息必须保证不能被伪造,否则如果攻击者可以对某一登录节点进行控制,那么可以不通过网关进行认证,使控制的登录节点直接伪造登录消息,让用户通过认证。鉴于以上分析,应当对协议中的网关的登录消息给出一种具体格式。
3 改进型协议在网关系统中的使用
如之前所提到的,动态用户认证协议是一种基于强口令的轻量级无线传感器网络认证协议。这个协议与目前其他无线传感器网络的认证协议相比,有以下特点:(1)除了单向哈希函数和异或运算,并没有使用其他复杂的密码算法。(2)整体认证速度比较快。(3)协议的安全首先需要网关的安全。
如图1所示,用户可以在不同的物理位置通过所在网络接入无线传感器网进行认证。如果用户使用有支持无线传感器网络通信协议的设备,可以通过登录节点使用改进型协议进行登录。如果用户在其他形式的网络内希望通过传感器网络的认证,那么其接入点只要和网关之间拥有一个共享的秘密就可以完成登录节点的工作,协助用户完成认证。由于登录节点所做的工作量很小,可以通过简单的模块实现,因此不必对这些设备进行大的改造,而且由于进行一次认证的速度较快。
4 结束语
提出了一种基于Lee-Chun Ko等人的动态用户认证协议的改进的用户认证协议。动态用户认证协议作为一种轻量级的快速用户认证协议,应用于无线传感器网络中具有认证速度快,计算量小等优势。
摘要:针对用户快速认证问题,对动态用户认证协议作了介绍,并指出了其可能的安全隐患。提出了对动态用户认证协议的改进方案,并对改进协议的性能进行讨论,并论述了该协议在异构环境下无线传感器网络中的应用。
关键词:无线传感器网络,快速认证,动态用户认证
参考文献
[1]周贤伟,施德军,覃伯平.无线传感器网络认证机制的研究[J].计算机应用研究,2006(7):108-111.
[2]WATRO R,KONG D.TinyPK:securing sensor networkswith public key technology[C].Proceedings of the 2ndACM Workshop on Security of Ad hoc and Sensor Networks,ACM Press,2004:59-64.
[3]ZINAIDA B,NILS G,OSSI R.Realizing robust user au-thentication in sensor networks[J].Workshop on Real-World Wireless Sensor Networks(REALWSN),2005,26(9):135-142.
[4]赵玉华,李志刚,李志民.无线传感器网络用户认证技术综述[J].计算机测量与控制,2009,17(12):2348-2351.
[5]WONG K H,ZHENG Y,CAO J M.A Dynamic user au-thentication scheme for wireless sensor networks[C].InProc.of the IEEE International Conference on Sensor Net-works,Ubiquitous,and Trustworthy Computing(SUTC 06),2006:244-251.
[6]LEE C Y,LIN C H,Chang C C.An improved low com-munication cost user authentication[C].Taiwan:Schemefor Mobile Communication,Proceedings of the IEEE 19thInternational Conference on Advanced Information Networ-king and Applications(AINA2005),2005:249-252.
[7]TSENG HR,JAN R H,YANG W.An improved dynamicuser authentication scheme for wireless sensor networks[C].In Proc.of the IEEE Global Communications Confer-ence(GLOBECOM 07),2007:986-990.
[8]BINOD V,JORGE S S,JOEL J P,et al.Robust dynamicuser authentication scheme for wireless sensor networks[C].ACM Q2SWinet 09,2009:28-29.
[9]LEE C K.A novel dynamic user authentication scheme forwireless sensor networks[C].Wireless Communication Sys-tems,ISWCS 08,2008:608-612.
[10]CAO Zhen,ZHOUXia,XUMaoxing.Enhancing base sta-tion security against dos attacks in wireless sensor networks[C].Wireless Communications,Networking and MobileComputing 2006 International Conference,2006:1-4.
动态用户认证论文 篇2
复杂网络环境下, 远程服务器与用户之间的身份认证以及安全信道的构建具有重要意义[1,2]。远程用户身份认证是在非信任公共网络中确认远程个体身份的一种有效方法, 已成为保障网络通信安全的重要技术之一[3,4]。1981年, Lamport[5]首次提出基于单向哈希函数的口令认证方案。在Lamport的方案中, 为了验证用户登录请求的有效性, 远程服务器需要存储口令表。此外, Lamport的方案还存在许多安全缺陷, 比如口令表维护带来的高系统开销以及针对口令表的离线字典攻击等[6]。因此, 针对这些设计缺陷并进一步提高系统安全性, 大量学者对远程用户身份认证方案进行了相关研究。
Das等[7]于2004年提出一种基于动态身份远程用户认证方案, 远程服务器无需维护口令表, 并支持用户自由选择和修改口令;在安全性方面, Das等的方案声称可抵御身份盗窃攻击、伪造攻击、内部人攻击以及重放攻击。但在同年, Awasthi[8]指出Das等的方案存在重大安全隐患, 攻击者可以在没有正确口令的情况下成功登录系统, 使用Das等的认证方案相当于访问公开服务器。Ku和Chang[9]也于2005年对Das等的方案分析后指出, 由于用户的登录身份可动态生成且只使用一次, 此方案确实可抵御身份盗窃攻击。但同时Ku等证实Das等的方案无法抵御身份冒充攻击, 攻击者可在任意时间冒充任意授权用户登录远程服务器。Liao[10]等也于2006年指出Das等的方案易受离线口令猜测攻击, 并提出一种支持密钥协商机制和相互认证的增强方案。但在2008年, Misbahuddin和Bindu[11]通过安全性分析指出Liao等的方案无法抵御身份冒充攻击和反射攻击, 并且用户可以使用随机口令成功登录远程服务器。2009年, Wang等[12]提出一种更加高效安全的动态身份远程认证方案, 增强了口令的依赖性并支持相互认证。但Khan等[13]于2010年指出在实际应用中, Wang等的方案存在许多设计缺陷, 缺少会话密钥协商机制, 认证过程中不支持用户匿名性且不能抵御内部人攻击和盗窃智能卡攻击。针对上述安全缺陷, Khan等提出一种更加安全高效的改进方案。
2012年, Wen-Li[14]针对Wang等方案中存在的安全缺陷, 提出一种改进的基于动态身份远程用户认证与密钥协商方案, 使用会话密钥保证通信信道安全, 支持相互认证并可抵御身份冒充攻击。本文分析了Wen-Li方案中存在的安全缺陷, 并在保留原始方案优点基础上提出一种改进的基于动态身份远程用户认证方案, 有效抵御中间人攻击以及盗窃智能卡攻击, 同时保证前向安全性。
1 构建Wen-Li方案
1.1 Wen-Li方案回顾
Wen-Li的远程用户认证与密钥协商方案由四个基本阶段组成:注册阶段、登录阶段、认证和密钥交换阶段以及相互认证和密钥确认阶段。表一所示为方案中使用的符号及其含义。
1.1.1 注册阶段
新用户Ui向服务器S提交IDi和pwi请求注册, S收到注册请求后执行以下操作:
(1) 计算ni=h (IDi|pwi) , ni具有唯一性并由S保存, S通过验证ni确认智能卡的有效性。
(2) S计算
(3) S将参数h (·) 、Ni以及ni存储到Ui的智能卡中。
(4) S向Ui签发智能卡。
1.1.2 登录阶段
当Ui登录S时, 需要插入智能卡并输入IDi和pwi, 此时执行以下操作:
(1) 智能卡计算登录请求消息所需参数:
, T为当前时间戳。
(2) Ui向S发送登录请求消息:M1={CIDi, ni, Ni, T}。
1.1.3 认证和密钥交换阶段
S接收到Ui的登录请求消息M1后将会执行以下操作:
(1) S根据当前时间戳T'检查时间戳T的有效性, 若T'-T≤△T (△T为有效时间间隔) 且ni属于已注册列表, 则S继续以下操作, 否则拒绝登录请求。
(2) S计算
(3) S验证下面等式是否成立
(4) 如果上述等式成立, S计算:, 并生成
(5) S向Ui发送应答消息
1.1.4 相互认证和密钥确认阶段
Ui在T'接收到来自S的应答消息M后, 执行以下操作:
(1) 检查时间戳T'的有效性。
(2) 若时间间隔有效, Ui计算, 并验证是否与Ci相等。
(3) Ui计算, 并验证KC'是否正确。
(4) 若KC'正确, Ui计算
(5) Ui向S发送密钥确认消息:M3={KC, T'}。
(6) S验证M3, 若等式成立, 则认证方案结束。
Wen-Li方案中还包括三个功能性阶段:智能卡废除阶段、用户离线口令更换阶段以及服务器在线安全私钥更新阶段。这三个阶段因与本文讨论无关, 本节将不再详述, 可参见文献[14]。
1.2 基于Wen-Li方案的安全性分析
1.2.1 离线口令猜测攻击
Wen-Li方案中, 当Ui通过公共网络向S发送登录请求消息M1时, M1中存储在Ui智能卡中的用户关键信息可能会泄露 (Ni, ni) , 攻击者可以利用这些信息实施离线口令猜测攻击获取正确的口令。
1.2.2 中间人攻击
由于Wen-Li方案中的登录请求、认证和密钥交换消息均通过公共网络发送, 包括非法用户在内的所有用户均可以截获这些消息。因此, 可以假设攻击者A对Ui和S之间的通信信道实施了监控并截获了登录请求消息M1以及认证和密钥交换消息M2, 并实施图一所示中间人攻击, 图中虚线表示相应的消息在发送到目的地之前已经被攻击者A截获。详细的攻击方案如图一所示。
(1) 攻击者A从截获的消息M1和M2中破解出h (ni) 、T'和Ci, 并计算得到Ai。
(2) 攻击者A计算出Ui和S之间的会话密钥
(3) 因此, 攻击者A可以在不具备IDi和pwi情况下冒充服务器S。
(4) 另一方面, 根据接收到的M1, S计算得到M2并发送给Ui。
(5) 攻击者A截获M2后将其发送给Ui, Ui计算得到M3={KC, T'}并发送给S。
6) 攻击者A截获M3后生成当前时间戳TA, 计算得到KCA=h (Ai‖SK‖TA) , 同时伪造消息M3*={KCA, TA}并发送给S。
(7) S接收到M3*后将验证此密钥确认消息, 由于KC=h (Ai‖SK‖TA) =KCA, 因此M3*是有效的, Ui通过认证。
从以上攻击过程可以发现, 攻击者A可以在S和Ui毫无察觉的情况下与其共享会话密钥SK, 进而在认证过程中对S冒充Ui并同时对Ui冒充S。这种中间人攻击在金融、军事等领域应用中将会造成严重后果。
2 改进方案
2.1 改进方案介绍
本文在保留Wen-Li方案优点基础上, 针对原方案安全缺陷提出一种改进的远程用户认证方案。改进方案包括四个基本阶段:注册阶段、登录阶段、认证和密钥交换阶段以及相互认证和密钥确认阶段, 如图二所示。
2.1.1 注册阶段
要想获取服务, 新用户Ui必须经过如下注册过程:
(1) Ui选择注册所需的IDi和pwi并通过安全信道提交给S。安全信道可以保证未经加密的IDi和pwi在传输过程中免受网络攻击。
(2) S接收到IDi和pwi后, 为每一个Ui分别计算:, S将保存ni用以检查智能卡的有效性。S向Ui的智能卡中存储 (h (·) , Ni, ni) , 并以安全方式向Ui签发智能卡。
2.1.2 登录阶段
当Ui登录服务器S时, 首先在读卡器中插入智能卡, 然后输入注册时选定的IDi和pwi。
(1) 智能卡计算:
(2) Ui通过公共网络向S发送登录请求消息:M1={CIDi, ni, Ni, T}。
2.1.3 认证和密钥交换阶段
(1) S在时间T'接收到Ui的登录请求消息M1后, 首先检查时间戳的有效性, 若T'-T≤△T (△T为有效时间间隔) 且ni属于已注册列表, 则S继续以下操作。
(2) S计算:
, 并验证下面等式是否成立。
(3) 如果上述等式成立, S计算会话密钥:SK=h (Ai‖T||Bi‖T') , 并生成KC'=h (Bi‖SK‖T') 。
(4) S向Ui发送应答消息:M2={KC', T'}。
2.1.4 相互认证和密钥确认阶段
(1) Ui在时间T''接收到来自S的应答消息M2后, 检查时间戳T'的有效性, 若T″-T'≤△T, 则Ui计算:SK=h (Ai‖T‖Bi‖T') , 并生成KC=h (Ai‖SK‖T') 。
(2) 其次Ui验证KC, 若KC=KC', 则Ui生成:
KC''=h (Ai‖SK‖T') , 并向S发送密钥确认消息:
(3) S接收到M3后首先检查时间戳T''的有效性, 若T'有效则S计算:KC'''=h (Ai‖SK‖T') 。
(4) S验证KC''', 若KC'''=KC'', 则M3有效, 认证方案结束。
在改进方案中还保留了Wen-Li方案中的三个功能性阶段:智能卡废除阶段、用户离线口令更换阶段以及服务器在线安全私钥更新阶段, 可参见文献[14]。
2.2 改进方案的安全性分析
本文提出的改进方案和Wen-Li方案的比较结果如表二所示, 其中O表示可以抵御, X表示不可抵御。
2.2.1 身份冒充攻击
在改进方案中, 攻击者A在登录阶段无法伪造认证消息, ni和Ni在哈希函数h (·) 作用下是分别变化的, 改变后的ni无法通过服务器S的验证, 而且若ni发生变化, Ai也将随之变化, 这一等式将无法成立, 因此攻击者无法成功实施身份冒充攻击。
2.2.2 中间人攻击
由于改进方案中的登录请求、认证和密钥交换消息也是通过公共网络发送, 包括非法用户在内的所有用户仍然可以截获这些消息。因此, 假设攻击者A对Ui和S之间的通信信道实施了监控并截获了登录请求消息M1={CIDi, Ni, ni, T}以及认证和密钥交换消息M2={KC', T'}。但是在改进方案中, 即使M1和M2泄露, 攻击者A也无法导出Ai或Bi, 这样Ui和S之间的会话密钥SK=h (Ai‖T‖‖Bi‖T') 不会泄露, 因此攻击者A无法对Ui冒充S。
另一方面, 根据接收到的M1, S计算得到M2并发送给Ui。攻击者A截获M2后将其发送给Ui, Ui计算得到M3={KC'', T''}并发送给S。假设攻击者A截获M3后生成当前时间戳TA, 但其却无法计算得到SK、KCA, 进而无法伪造消息M3*={KCA, TA}对S冒充Ui。因此, 在改进方案中, 即使攻击者或恶意用户截获登录请求消息M1以及认证和密钥交换消息M2, 也无法成功实施中间人攻击。
2.2.3 盗窃智能卡攻击
假设攻击者A盗窃了Ui的智能卡, 智能卡中包含{h (·) , Ni, ni}并记录着Ui和S之间传递的消息{M1, M2, M3}。在改进方案中, 即使从盗窃的智能卡和截获的消息中泄露{hh (·) , Ni, ni, M1, M2, M3}, 攻击者A也无法导出Ai或Bi, 同样无法得到Ui和S之间的会话密钥SK。因此, 攻击者A无法试图通过盗窃智能卡达到冒充S的目的, 改进方案可抵御盗窃智能卡攻击。
2.2.4 前向安全性
前向安全性是指服务器安全私钥x的泄漏不会影响通信双方会话密钥SK的安全性[15]。在改进方案中, 假设攻击者获得了服务器安全密钥x, 也无法计算得到会话密钥SK。这是因为会话密钥SK=h (Ai‖T‖Bi‖T') , 该表达式由单向哈希函数保护, 攻击者A无法估算, 而且时间戳T和T'也会随着会话时期的不同而改变。因此, 即使攻击者A获得服务器安全私钥x, 也无法推算出准确的会话密钥SK, 改进方案可以保证前向安全性。
3 结束语
基于口令的安全用户认证模型 篇3
随着网络在人们生活中的不断深入, 网络安全越来越受到人们的关注。身份认证是网络安全中最令人关心的热点问题之一。通常, 用户在使用网络服务前必须向认证服务器提供一个对应的身份标识以及相应的秘密信息用于身份认证, 网络服务提供商根据认证结果决定是否提供所需的网络服务及用户权限。目前网络应用大致利用以下三种类型的秘密信息实现身份认证机制:用户拥有的, 比如利用智能IC卡存放一个足够大的秘密随机数 (128/256 b) 进行身份认证;用户知道的, 比如用户利用自选的口令进行身份认证;用户的特征, 比如用户用自身的生物特征, 例如指纹、声纹、视网膜、脸型等进行身份认证。在这三类机制中, 由于成本最低、实施方便使得基于口令的认证方式应用最为广泛。
1 相关工作
目前主要应用两种口令管理方式来增强口令的安全性:一种是一次口令 (OneTime Password, OTP) 的方式[1,2];另外一种是基于Hash函数的口令管理方式。对于一次口令的方式中用户在每次认证的时候, 所提交的认证信息都是不同的, 使整个认证过程更加安全, 从而能够较好地应用在Internet环境下。但这样的OTP认证系统每隔一段时间需要用户重新初始化系统, 这使得服务器的额外开销比较大;另外, 用户在认证时需要进行多次Hash运算, 在应用上也不够方便。
目前的研究热点主要集中在基于Hash函数的口令管理方式上, 此方式的特点是真正的口令是由Hash函数计算产生, 如Gabber等提出的LPWA[3], Ross等提出的PwdHash[4], Halderman等提出的Password Multiplier[5]和Yee等提出的Passpet[6]方案。LPWA和PwdHash方案都是将用户主口令和站点域名的Hash值作为真正的账号口令。这两个方案解决了多个口令的维护问题, 但由于Hash函数的运算速度很快, 它们容易遭到暴力破解。Password Multiplier和Passpet方案首先用主口令和用户信息经过多次执行Hash运算得到中间变量v, 并保存在本地主机上, 然后使用主口令、v和Web站点域名多次执行Hash运算得到账号对应的口令, 两次计算中都执行迭代Hash运算, 增加了计算的时间复杂度, 提高了暴力破解的难度。以上基于Hash函数的方案存在明显的安全漏洞, 只要攻击者攻破主口令, 就可以计算出用户的所有账号口令, 并且用户不能修改单个账号的口令。
Gajek等[7]提出应用每个用户使用高熵的口令并且不同的帐号使用不同的口令的方法来增强口令的强度, 但没有解决用户需要记忆多个口令的问题, 并且实现方法复杂。Bruce Schneier提出的Password Safe方案[8], 将用户所有的帐号和对应的口令存储在经Twofish加密算法加密的口令库中, 用户只需要记忆访问口令库对应的主口令就能管理所有的口令, 但将口令文件存储在本地磁盘上, 非常容易被窃取和破坏, 因此不但没有增强口令的强度和安全性, 反而增加了口令的不安全因素。
本文在挑战/响应的基础上, 结合Hash函数的口令管理技术和隧道技术提出了一个基于口令的安全用户认证模型。
2 提出的基于口令的安全用户认证模型
应用Diffe-Hellman密钥交换协议, DES和SHA-512提出了一个基于口令的安全用户认证模型, 如图1所示。此模型既能够抵抗中间人攻击, 重放攻击, 字典攻击和拒绝服务攻击, 同时还能提供完善向前保密。在此模型中客户端连接器和服务器端连接器使用彼此的公钥加密Diffe-Hellman交换参数以抵抗中间人攻击;抵抗重放攻击通过在客户端连接器和服务器端连接器使用挑战/响应方式进行会话密钥建立;引入口令处理器以增加口令的强度, 同时在服务器端引入“挂起”机制以抵抗字典攻击;抵抗拒绝服务攻击通过应用Email Server用于接受服务器发送过了的激活码;为了提供完善向前保密, 客户端连接器和服务器端连接器在创建隧道时随机选择秘密指数, 隧道创建成功后就将秘密指数删除。
提出的模型主要包含:登陆模块, 口令处理器模块, 连接器模块, 数据库模块, Email Server模块。
用户通过登陆模块输入“用户名”和“口令”, 登陆模块将“用户名”和“口令”传给口令处理器模块处理, 连接器模块将“用户名”和处理过的“口令”通过隧道方式传给数据库, 数据库将处理后的结果返回给连接器, 然后通过隧道将结果返回给登陆模块。各模块的功能如下:
登陆模块:与用户实现交互的界面, 向其他模块提出请求, 并显示其他模块的响应。
口令处理器模块:用户注册和修改口令时, 主动检查用户的口令;用户登陆时, 加密用户的口令。
由于一般的用户往往会选择短的、有意义的字母组合或日常生活中常用的号码作为口令以方便记忆, 而这些类型的口令数是有限的, 因此攻击者可以利用电脑将所有可能的口令存放在字典中, 然后快速地遍历字典进行反复猜测与比对, 并在很短的时间内就有可能猜出一个用户的口令。
主动的口令检查在用户注册和试图修改口令的时候就进行。这样就可以有效地消除脆弱的, 易被破解的口令。主动的口令检查对时间和资源也没有太大的消耗, 因为其检查的过程不是一个破解的过程, 而是利用口令本身检查其脆弱性的过程[9]。
登陆时用户的口令被当作DES的密钥用以加密用户名和口令的Hash值, 为了提高安全性这里建议Hash算法使用SHA-512。加密算法被重复25次, 得出结果中包含了11个字符长的字符串和两个字符的“Salt”。在系统校验用户口令时, 系统把经过加密后的口令与Password表中存储的加密字串进行比较, 如果相同则证明用户输入的口令正确。
连接器模块:为模块之间的通信提供加密解密功能。在模块之间建立隧道, 提供相互认证, 分配会话密钥和PFS。g和p是公共的Diffe-Hellman参数, a是A选择的秘密指数, b是B选择的秘密指数。
(1) 连接器A向连接器B发送质询RA;
(2) 连接器B收到质询RA, 计算gbmod p, 并将计算结果和RA一起用A的公钥加密, B再对加密结果{RA, gbmod p}A进行签名操作, 并将运算结果[{RA, gbmod p}A]B和质询RB一起发送给连接器A;
(3) 连接器A将收到结果进行解密, 得到质询RB, 质询RA和gbmod p , A计算gamod p, 并将计算结果和RB一起用B的公钥加密, A再对加密结果{RB, gamod p}B进行签名操作, 并将运算结果[{RA, gbmod p}B]A发送给连接器B;
(4) 连接器B将收到结果进行解密, 得到质询RB和gamod p;
(5) 连接器A和B各自计算gabmod p, 得到共享的会话密钥K, 隧道建立成功。
数据库模块:存储用户的相关信息。
数据库中包含Users, Password和Faillog表。这三个表解决了文献[10]中提到的如何既能防止字典攻击, 又能防止拒绝服务攻击的问题。Users表通过访问Password表获得用户的口令;Password表只能被Users表访问, 提高口令的安全性;Faillog表记录用户登陆失败的情况, 设置一个阈值, 与阈值比较, 超过阈值将该用户挂起不允许该用户再次登陆, 这样可以完全抵制字典攻击;并将一个生成的激活码发送给该用户的Email中, 以便用户再次激活帐号, 这样可以抵制拒绝服务攻击。三个表的关系如图2所示。
下面给出这三个表的具体的结构。
Users表用来记录用户登陆时认证和授权的信息, 其结构如下:
用户名:标识一个惟一用户, 设为主码, 这里用用户的邮箱地址作为用户名。
连接Password:用来连接Password表, 存取用户的口令。
用户标识:标识用户的安全级别。只有当用户的安全级别高于文件的安全级别时才可以对文件有“读”访问权[10]。
组标识:标识用户所属的组。
状态:标识用户帐户的有效性。有两个状态:“有效”和“挂起”。它能完全杜绝字典攻击。
激活码:激活用户帐户, 能防止拒绝服务攻击。
Password表用来记录用户的口令, 只能由Users表来连接调用和读取, 对其他任何操作透明。其结构如下:
用户名:同表1的“用户名”字段。
口令:这里实际存储的是加密后的口令。
Faillog表用来记录用户用户登陆时的一些相关信息, 其结构如下:
用户名:同表1的“用户名”字段。
次数:统计用户登陆失败的次数。
时间:记录最近一次登陆失败时间。
在此安全模型中另外还包括例外处理模块, 各例外处理模块的功能如下:
用户名不存在例外处理模块:向调用模块返回“用户名不存在”, 并进行相应处理。
状态无效例外处理模块:向调用模块返回“状态无效”, 要求用户输入激活码, 并与Users表中该用户的“激活码”字段比较, 相等时激活用户的帐号。
密码不正确例外处理模块:向调用模块返回“密码不正确”, 并进行相应处理。
Email Server:用于接受数据库发送过来的激活码, 可以防止拒绝服务攻击。
3 基于C/S方式的原型实现
本文提出的基于口令的安全用户认证模型的实现可以采用B/S方式, 也可以采用C/S方式。在此给出一个基于C/S结构的原型实现, 如图3所示, 客户端包含登陆模块, 口令处理模块和连接器模块;服务器端包含连接器模块和数据库。
3.1 用户注册
用户输入注册名, 连接器A使用会话密钥K加密用户名并将结果发送给连接器B, B使用会话密钥K解密将结果发送给数据库, 数据库检查用户名是否存在, 并将检查结果返回;用户名通过检测, 用户输入口令;口令处理器主动检查输入口令, 不允许弱口令通过;口令通过检测, 口令处理器对口令加密, 连接器A使用会话密钥K对用户名和加密后的口令进行加密, 并发送到连接器B;连接器B使用会话密钥K解密得到用户名和加密过的口令, 将用户名和加密过的口令发送给数据库, 数据库将用户的相关信息添入表中。
3.2 用户登陆
用户登陆时, 过程如下:
(1) 用户在登陆模块中输入用户名和口令;
(2) 口令处理器加密口令;
(3) 用户名和加密过的口令通过隧道传给数据库;
(4) 数据库验证用户
① 在Users表中查找, 如果用户名存在并且状态为“有效”, 则进入下一步;如果用户名不存在, 转向用户名不存在例外处理模块;如果用户名存在但是状态为“挂起”, 则转向状态无效例外处理模块。
② 通过连接Password字段, 连接Password表。在Password中查找用户名所对应的口令进比较如果相等进入第 (5) 步;否则进入下一步。
③ 在Faillog表查找用户名对应的记录。记录此次登陆失败的时间。将登陆失败次数加1, 比较是否超过最大限制次数。如果超过进入下一步;否则, 转向密码不正确例外处理模块。
④ 将Users表中用户的状态字段改为“挂起”。通过Faillog表中用户最近一次登陆失败时间生成一个激活码 (用于激活用户帐号) , 存储到Users表中用户对应的“激活码”字段并发送到用户的邮箱中, 转向状态无效例外处理模块。
(5) 验证通过, 通过Users表对用户进行初始化。
在客户端使用HOOK (钩子) 技术来加强登陆的安全性。
钩子函数实际上是一个处理消息的程序段, 每当一个应用程序调用函数GetMessage或PeekMessage而恰有一个消息即将被处理时, 系统调用钩子函数。也就是说, 当特定的消息发出, 在没有到达目的窗口前, 钩子函数先捕获消息, 亦即钩子函数先获得控制权。这时钩子函数既可以加工处理该消息, 也可以不作处理而继续传递消息, 还可以强制结束消息传递。系统为每种类型的钩子维护一个钩子链, 最近安装的钩子放在链的开始, 而最先安装的钩子放在最后, 也就是后加入的钩子先获得控制权。
由于最后安装的钩子总是放在最前, 也就是最先获得对消息的控制权。为此可以在客户端每次登陆时, 安装键盘钩子, 钩子截取用户输入的用户名和口令, 发送给口令处理模块和连接器模块, 登陆成功后卸载键盘钩子。由钩子函数来阻断键盘消息在钩子链中的传递, 将消息直接发送给消息接受窗口。本模型创建钩子的核心代码如下:
创建一个键盘线程钩子WHKEYBOARD, 在登陆窗口中SetWindowsHookEx (WHKEYBOARD, (HOOKPROC) KeyboardProc, hInst, GetCurrentThreadId () ) ;
钩子处理函数KeyboardProc如下:
登陆成功后UnhookWindowsHookEx (hook) ;
4 结 语
身份认证是网络安全中热点问题之一, 本文对基于口令的安全用户认证模型进行研究, 应用DES, SHA-512和Diffe-Hellman密钥交换协议提出一个能够有效抵抗中间人攻击, 重放攻击, 字典攻击和拒绝服务攻击, 同时能提供完善向前保密的安全用户认证模型, 并且进行了安全性分析。最后给出了一个基于C/S结构的原型实现。
摘要:对基于口令的访问控制进行研究, 应用DES, SHA-512和Diffe-Hellman密钥交换协议, 提出一个基于口令的安全用户认证模型。此模型可以抵抗中间人攻击、重放攻击、字典攻击和拒绝服务攻击, 同时还能提供完善向前保密。基于提出的安全用户认证模型应用HOOK技术, 给出了一个基于C/S方式的原型实现。
关键词:访问控制,身份认证,弱口令,哈希函数,HOOK,DES,Diffe-Hellman密钥交换协议
参考文献
[1]Lamport L.Password Authentication with Insecure Commu-nication[J].Communications of the ACM, 1981, 24 (11) :770-772.
[2]Haller N.The S/KEY One-Time Password System.RFC1760.1995.
[3]Gabber E, Gibbons P B, Matias Y, Mayer A.How to MakePersonalized Web Browsing Simple, Secure and Anonymous[J].Proceedings of Financial Cryptography′97, Anguilla:Springer-Verlag, 1997:17-31.
[4]Ross B, Jackson C, Miyake N, et al.Stronger Password Au-thentication Using Browser Extensions[A].Proceedings ofthe 14th USENIX Security Symposium[C].2005:17-32.
[5]Halderman J A, Waters B, Fehen E W.A ConvenientMethod for Securely Managing Passwords[A].Proceedingsof the 14th International Conference on World Wide Web[C].Chiba:ACM Press, 2005:471-479.
[6]Yee K P, Sitaker K.Passpet:Convenient Password Manage-ment and Phishing Protection[A].Proceedings of the SecondSymposium on Usable Privacy and Security[C].New York:ACM, 2006:32-43.
[7]Gajek S, Sadeghi A R, Stuble C, et al.Compartmented Secu-rity for Browsers-or How to thwat a phisher with trustedcomputing[A].Proceedings of the 2nd International Confe-rence on Availability, Reliability and Security[C].Washing-ton DC:IEEE Computer Society, 2007:120-127.
[8]Schneier B.Password Safe[EB/OL].http://www.schneier.com/passsafe.html.
[9]董光宇, 高安全等级操作系统及网络服务的标识鉴别机制[D].北京:中科院软件所, 2002.
一种基于单点登录的用户认证方案 篇4
当用户需要通过网络获取资源时, 作为资源载体的网络服务器首先需要判定来访者的身份, 只有合法用户才能访问其请求的资源。所以, 网络服务器保存用户信息是必需的, 而随着网站的发展, 站内资源存储量不断扩大, 为了便于对资源的管理或受到网络服务器容量的限制, 往往将资源存储于不同的网络服务器上 (如图) 。基于这种多服务器模型的站点, 在用户认证方面, 面临三个问题:
1. 如何提高用户认证的效率
传统的认证方法是在每台服务器上各存一套用户信息, 当用户访问某台服务器时, 由该服务器对用户进行认证。这种模型的缺点是各个服务器都必需存有用户信息, 同一个用户的信息可能会被重复地存储在多个服务器上, 用户认证必须在服务器本地进行, 增加了系统开销, 也会增加更新用户信息的成本。
2. 如何使用户方便的访问不同的服务器
假设用户已经录登服务器A, 如果该用户也是服务器B的合法用户, 如果在他访问服务器B时还需要再次输入用户名和密码进行登录, 这样势必造成用户的不便。
3. 如何在确保安全的前提下灵活地加入或牵出服务器
假设站点的用户认证系统是依赖于某一种网络应用技术, 如Java Servlet等, 现要引入一台服务器来运营由PHP技术构建的子网站, 而且该服务器上没有任何Java相关的资源, 如果搭建认证系统安装Java Servlet所需的软件环境, 势必增加系统的负担。
单点登录 (SSO, Single Sign On) 是目前比较流行的企业业务及资源整合方案之一, 可以缓解问题1。SSO的定义是在多个应用系统中, 用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。
目前, 已有商业化、相对成熟的的SSO产品, 如微软的.Net Passport SSO, 目前只提供了实现用户跨多个Web站点之间的单点登录功能, 还不能够直接应用于Web服务, 用户在开发基于.Net Passport的Web服务应用程序时候, 还需要添加处理SOAP消息的接口。这些SSO产品多数是面向Web应用的, 在可移植方面存在问题, 不便于解决问题3, 且体系结构过于庞大, 开放性低, 不能灵活快捷地投入应用。因而, 需要提供一种高效便捷、完善通用的用户认证机制。
为了完善地解上述三个问题, 首先要设计一种可重用的、松耦合的软件体系结构。S0A (Service—Oriented Architecture) 是一种面向服务的体系结构, 它通过连接跨平台的、功能独立的、可重用的服务实体实现跨机构业务集成。它的目标是解决应用集成领域的两个难题:异构与不断变化的数据。借鉴面向服务架构 (SOA, Service Oriented Architecture) 的思想, 将应用程序封装为可重用的服务单元, 其接口采用中立的标准和协义定义, 强调技术无关性, 可以灵活地将各个服务单元联系在一起。能进一步抽象和标准化可复用资源。
下面将从本方案的设计思想、模型结构、工作原理、安全策略及实现方法等几方面进行详细阐述。
(二) 模型基本结构
在笔者实现的多服务器用户认证方案中, 资源主要是文本文件、静态网页、由JSP、PHP等技术实现的动态网页或媒体等二进制数据文件, 涉及到了当今互联网需求的大部分类型。这些资源对于用户访问来说分为两种类型, 普通资源和特殊资源。普通资源是面向所有用户公开的, 如果用户是合法的, 则都可以访问;而特殊资源涉及到隐私、机密等不宜公开的信息 (如只有管理员用户才能访问的管理页面等) 。
由于资源分为两种, 所以模型提供两步认证方法:身份认证和权限认证。身份认证的目的是判断访问者是否为系统的合法用户, 关注于访问者是谁, 对于非系统用户的访问则直接驳回;而权限认证的目的是判断用户是否有权限访问其请求的资源, 如修改或下载等。用户对某一资源的权限往往会随着时间的推移而发生变化, 将身份认证和权限认证分开为两个松散耦合的服务单元, 对于普通资源有助于提高认证效率, 对于特殊资源有利于灵活应对用户权限的变更。
如图所示, 如果用户通过了身份认证, 就可以访问到普通资源。对于特殊资源的访问, 还需要通过权限认证。
1. 用户身份认证
如图所示 (图中序号表明处理的先后次序) , 用户身份认证模型定义了三种实体:用户浏览器、IDP (Identity Provider, 认证提供者) 和SP (Service Provider, 服务提供者) 。SP是一个具体的Web服务, 即是站点中存放资源的多台服务器中的一台, 在SP中不存放任务用户身份信息。用户身份认证统一由IDP处理。
当用户首次以HTTP协议访问SP请求某些资源时, SP发现用户请求中没有表明用户身份的信息 (用户身份凭证保存在Cookie中, 详见下文) , 于是SP将用户请求重定向到IPD中, 用户将得到IDP上的身份认证页面, 用户在该页面上添写登录信息 (如用户名, 密码等) 后返回给IDP, IDP对用户身份作出判断。 (图中第1、2步) 。
如果用户系网站合法用户, IDP将返回给用户浏览器一个可自动提交给SP的表单, 该表单中存有SAML用户身份断言, 从而将用户身份信息传达给SP, 对于为何选择SAML作为通讯数据的格式, 详见后文 (图中第3、4步) 。
SP接到SAML身份断言之后, 返回给用户浏览器一个Cookie, 该Cookie将作为用户身份凭证, 并重定向到用户请求的资源, 于是用户浏览器再次发起对资源的请求, 但这时请求中已经包含用户身份凭证, 现在用户即可得到普通资源, 对于特殊资源, 还需要通过权限认证, 详见后文“用户身份凭证 (图中第5步) 。
由上述步骤可以看到, IDP、SP、用户浏览器之间传递的数据是复杂的, 而IDP、SP、用户浏览器很可能依赖于不同的硬件平台、操作系统等底层技术实现, 为了方便地整合这些网络组件, 必须采用中立的方式定义之间的接口, 它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在这样的系统中的服务可以以一种统一通用的方式进行交互。
所谓中立的接口定义, 就是指接口与其特定的实现无关, 接口之间的通信建立在中立的、统一的规范和协议之上, 这种特征称为服务之间的松耦合。松耦合系统的好处有两点, 一点是它的灵活性, 另一点是, 当组成整个应用程序的每个服务 (如IDP、SP等) 的内部结构和实现发生改变时, 它能够继续存在。
可扩展标记语言 (e Xtensible Markup Language, XML) , 作为数据的载体, 是一种依赖于内容的标记语言, 与技术无关。XML是一种数据存储语言, 使用一系列简单的标记描述数据, 其简单性使任何应用程序都可以方便地中读写XML数据, 所以XML语言成为制定接口通信格式的首选。SAML (安全性断言标记语言, Security Assertion Markup Language) 是OASIS (Organization for the Advancement of Structured Information Standards, 结构化信息标准促进组织) 发布的一个规范, 提供一种对认证、属性、授权等安全信息的封装, 被用来解决SSO和Web服务安全等重要问题。SAML规范基于XML, 拥有标准的Schema, 因此它具有平台无关性和良好的互操作性。SAML为身份管理解决方案中服务器之间的通信协议发挥了重要作用, 但是SAML并不是完整的解决方案。SAML是两台服务器需要共享认证信息时使用的协议规范。SAML规范中没有任何内容提供了实际的认证服务。
目前SAML规范的最新版本是2.0, 它相比1.1版在内容上做了大幅扩充, 但还没有被广泛应用。
下面是一个SAML身份认证断言的例子:
表1身份认证断言
表1中Not Before、Not On Or After项记录了断言有效的时间段, Subject项表明了用户信息。
在笔者实现的多服务器认证方案中, IDP发送给用户浏览器的是一个HTML文件 (图第三步) , 笔者将该断言存放到HTML文件中的表单 (form) 里, 为了不使XML标签与HTML标签相混淆, 笔者对其进行了BASE64编码, SP端得到该表单后对其内容做BASE64解码即可得到该断言。因为该断言涉及到用户信息, 所以应该对其进行加密处理, 请参见4.安全策略一节。
为了能使用户浏览器接收到从IDP发来的身份认证断言后能自动将该断言发送给SP, 笔者在HTML文件中加上了一段Java Script脚本, 该脚本提交存有认证断言的表单, 在DHTML的onload事件中调用这段Java Script脚本, 即可使用户浏览器得到完整的HTML文件后自动将表单里的认证断言发送给SP。
上述身份认证过程的三个优点:
(1) SP利用HTTP重定向使用户身份认证完全由IDP处理, 从而减轻了各个SP的负担, 使SP有更多的空闲时间处理已经通过认证的用户的请求。
(2) 用户浏览器也被利用起来, 在传输用户身份信息时 (图第4步) , 分担了IDP的负担。
(3) 利通用的HTTP协议封装SAML断言, 无需定义新的通讯协议。
综上, 这种设计有利于提高系统的开放性和网络请求处理的并发性。
2. 用户权限认证
当用户通过了身份认证后, 还需要判别其请求的资源种类, 如果是普通资源, 则直接将用户请求重定向到资源, 如果是特殊资源, 还需要进行进一步的权限认证。
如图所示, 需要判断用户权限时, SP与IDP可以直接通信, 对IDP发出权限查询请求, 并接收权限查询应答。IDP实际上分为两个服务分别处理身份认证和权限认证。IDP的权限认证服务单元判定用户是否拥有以某种方式访问某个资源的权限并生成授权断言 (如表所示) 作为应答返回给SP, SP通过该断言来判断用户是否有权对其访问。
http://www.example.com/agree.html
表2权限认证断言
如表所示, 判定结果 (Answer) 分为允许 (Permit) 、拒绝 (Deny) 和中立 (Intermediate) 三种。
3. 用户身份凭证
当用户通过了身份认证之后, SP应返回给用户浏览器一个身份凭证, 以表明用户已经通过了身份认证, 因为HTTP协议是本方案的主体通讯协议, 所以身份凭证应以Cookie的形式存入HTTP协议头中。
表1用户浏览器提交认证断言后的应答
图第4步提交认证表单之后, SP会给用户浏览器一个应答。该应答包括SP根据认证断言生成的代表用户身份凭证的Cookie (表1的Set-Cookie字段) 和资源的地址 (表1的Location字段) , 用户浏览器得到该应答之后再次发起对资源的请求, 这时的用户请求中已经含有代表身份凭证的Cookie, 所以用户可以直接得到普通资源, 通过权限认证后得到特殊资源。这个过程, 就是图中第5步的过程。
用户身份凭证共四项:
User Name:身份认证断言中的Name项。
Not Before:身份认证断言中的Conditions项的Not Before属性, 即断言有效的时间起点。
Not On Or Afte:身份认证断言中Conditions项的Not On Or After属性, 即断言有效的时间终点。
Signature:前三项的数字签名。
4. 安全策略
由于认证服务和资源管理系统逻辑上的分离, 使得本方案主要面临三种安全方面的威胁:1.冒充IDP生成伪造的认证断言;2.伪造身份凭证;3.重播攻击。
可以利用目前已经十分完善的数字签名技术来保证系统的安全, 数字签名 (Digital Signature) 技术是不对称加密算法的典型应用。数据发送方使用自己的私钥对数据进行加密处理, 完成对数据的“签名”, 数据接收方则利用对方的公钥来解读收到的“数字签名”, 并将解读结果用于对数据完整性的检验, 以确认签名的合法性。数字签名技术是在网络系统虚拟环境中确认身份的重要技术, 在法律上受到保护。
SAML协议支持数字签名, 从IDP返回的认证断言中包函了IDP的数字签名, SP可以跟据IDP的公匙还原认证断言的数字签名, 通过比较数字签名可以判定断言是否真的由IDP给出, 从而避免了IDP的可冒充性。
用户身份凭证的第四项Signature是SP对前三项User Name、Not Before和Not On Or Afte的数字签名, SP可由此签名判断该身份凭证是否是由系统内的SP创建的, 这样可以避免别人伪造用户身份凭证 (多个SP可共享一个私匙) 。
重播攻击是这样一类攻击:它可以拦截有效的消息, 然后再将该消息重播回服务。重播攻击可用于造成数据完整性问题以及拒绝服务攻击。
在本系统中, 重播的可能主要发生在两个环节: (1) 身份认证中的第4步; (2) 权限认证过程中SP与IDP的交互。SAML提供了“有效时间”等属性 (如表1、表2中的时间属性) , 用简单的方法降低了重播攻击的风险。SAML协义要求在传输断言和消息时使用SSL加密, 以专门防止断言被拦截。
(三) 模型的实现
本方案是基于HTTP协议的针对B/S结构的用户认证方案, 由撑控的资源往往依赖于不同的web开发技术 (如.net、JSP、PHP等动态网页) , 用户认证服务应该与 (下转第34页) (上接第46页) 资源无关, 处于一种比web开发技术更底层的实现层面上, 所以认证程序应该直接处理用户的HTTP请求。但从头开发一套安全、完善的HTTP服务器软件是困难的, 然而幸运地是, 目前非常流行的Apache HTTP服务器提供了开放性的框架, 可以将认证服务封装成模块 (Apache Module) 添加到Apache HTTP服务器中, 在Apache HTTP服务器启动时动态加载, 使Apache HTTP在处理用户的HTTP请求过程中调用认证模块的功能, 现本文提出的认证方案。
本文在Apache 2.2环境下将SP实现为一个Apache Module, 直接处理用户的HTTP请求, 并在用户权限认证过程中利用open SSL库与IDP进行HTTPS通信。
IDP包括身份证和权限认证两个服务, 故将IDP实现为两个Apache Module, 其中一用于身份认证, 处理标准HTTP请求, 一个处理用户权限认证过程中来自SP的HTTPS请求。这两个模块处理来自不同端口的请求, 互不干扰。
IDP和SP在认证过程中利用open SAML类库处理SAML数据, 利用My SQL5.0存储或查询用户信息。
(四) 结束语
本文针对多服务器构架的网站的需求特点, 基于SSO和SOA软件架构思想, 提出了一种简单可靠且便捷高效的用户认证服务方案。实践证明, 该方案流程清晰, 结构简单, 复用性和扩展性较好, 便于资源的快速整合。
参考文献
[1]钟小全.多系统整合中单点登录的设计与实现[J].计算机与现代化, 2008.
[2]代田田.基于SOA架构的信息集成研究[D].上海:上海交通大学, 2008.
[3]吴晶.面向服务的企业门户架构及其实现的研究[J].计算机应用研究, 2007.
[4]张安勤.面向服务的构件模型研究[J].上海电力学院学报, 2008.
动态用户认证论文 篇5
关键词:检验检疫,统一认证,用户管理
一、引言
随着信息化技术在检验检疫行业中的不断推广应用, 过去, 大多分支局根据自己的业务特点开发了适用于本分支局的信息系统, 久而久之, 造成了检验检疫系统中信息系统小而多、重复开发率高的状况, 在一定程度上造成了资源的严重浪费。同时, 由于信息系统繁多, 每个业务员都需要登录多个系统进行操作, 需要记住各种不同的账号和口令, 且当用户岗位调动时, 管理员需要在不同的信息系统中更改相关的账号信息, 这给操作带来了很大不便, 造成了人力、时间的极大浪费, 因此进行资源整合, 集中管理是未来的一个必然趋势。
另一方面, 将现代化的通信手段应用在检验检疫业务中, 从而突破办公的地域限制, 大大提高检验检疫的工作效率, 缩短通关时间, 将成为未来检验检疫工作的另一个趋势, 然而, 在信息系统整合的过程中, 也必然遇到口令众多, 维护工作繁琐, 口令更新时多次修改、重新绑定和需要同步时间等问题。
因此, 如何整合根据现有的各种信息系统的特点, 开发统一的用户授权, 登录认证系统, 实现单点登录, 即一次登录就可以进入用户授权范围内的系统进行操作, 避免重复登录、重复操作是本文考虑解决的一个问题。
二、现有系统分析
就当前各分支局的已拥有的信息系统来看, 大部分都有针对性强, 功能交叉集中的特点。就江苏省来说, 全省在用的信息系统大概有上百个, 并且这些系统存在功能类似, 重复开发、资源浪费的现象。目前省局也对这种状况高度重视, 并在2012年全省信息化会议上, 提出了统一信息化平台的构想, 其目标也是为了整合现有的信息系统资源, 从顶层设计, 统一规划, 解决重复开发, 无序建设的现状。笔者认为, 其中一个重要的问题就是如何实现用户的统一授权和认证, 实现单点登录问题, 并且, 这个系统必须要具备可扩展性, 为将来系统的扩展奠定基础。
首先, 对目前各分支局已有的系统进行分析可知, 主要存在的信息系统可以分为大致两大类, 一类是行政办公系统, 一类是业务系统。他们的各自的特点如下:
(1) 行政办公系统。用于日常事务的管理, 包括文件处理、信息宣传、人员管理等功能。特点是功能简单, 用户的角色相对较少、分配简单, 用户认证只需要通过用户名和口令认证即可。
(2) 业务系统。用于检验检疫业务的管理, 包括检验检疫业务、电子监管等, 特点是功能复杂, 用户角色相对较多、分配复杂, 用户认证需要数字证书、用户名和口令认证。而对于上述两种系统来说, 不管它们的用途如何, 其用户管理基本功能大同小异, 都有共同的功能:用户个人信息、账号信息的管理、用户权限角色的管理等。
三、统一授权、认证系统构想
根据上述分析, 为了能够实现统一的授权、认证管理, 则需要实现的统一授权、认证系统应具备如下功能:1) 对纳入统一授权、认证系统管理的信息系统的用户账号信息进行管理, 包括用户的个人信息、账号信息、角色管理, 权限文件管理等;2) 系统的授权管理, 对纳入统一授权、认证系统管理的信息系统及其功能模块进行集中管理, 编制授权文件等。3) 系统的认证管理, 通过提供统一的认证接口, 给每一个登录使用信息系统的用户发送该用户的权限文件。
其逻辑功能如图3-1所示:
如上图所示, 通过统一授权系统对使用系统的用户进行账号管理, 角色管理, 赋予权限, 当用户访问信息系统时, 用户通过统一认证接口获取用户自己的权限文件, 然后通过分析权限文件, 判断是否有权限访问信息系统或者是该信息系统的某个功能模块。其中各个功能模块所要实现的功能和实现方法如下:
(1) 资源管理。为实现对纳入管理的所有信息系统的进行统一的授权和认证, 需要建立一张访问控制表, 我们把每个信息系统或是信息系统的功能模块都看作是一种资源 (比如系统资源、功能模块资源等) , 可以根据需要对纳入授权管理的系统进行访问资源的现状分析, 通过分析事先定义资源类别表, 然后所有纳入授权管理的信息系统都遵循资源类别定义的规则, 并对所有的资源类别进行统一的编码, 形成访问控制资源表。
比如可以定义如下资源类别:
信息系统要纳入统一授权管理系统管理, 必须先在资源管理模块中进行注册所要访问控制的所有资源信息。
资源管理系统提供的资源结构可为树型资源, 并且每一层的资源的显示顺序是可以定义的。只有经过注册的资源才能够进行访问控制。
信息系统在资源管理系统模块中注册资源前必须先对所有需要访问控制的资源进行统一的编码。这个编码在所有纳入管理的系统中是唯一的, 在对某个资源进行鉴权时, 通过这个唯一的资源编码来识别。
(2) 用户管理。用户管理的功能主要包括:个人信息管理:管理用户的个人信息, 包括, 所属分支局名称、机构代码、登录名称、口令、真实姓名、联系电话、所属部门、email地址等。权限管理:每个用户对应一个权限数据表, 其中记录了该用户可以访问的信息系统及其功模块, 权限文件可以以不同的文件格式导入导出。
(3) 授权管理。其功能是赋予用户访问某个信息系统或者该系统的相关功能的权限。为了管理方便, 可以根据需要进行角色定义。不同角色包含不同的使用权限。通过给用户分配角色来实现授权管理。
(4) 认证管理。认证管理的功能是提供统一认证接口, 每个纳入管理的信息系统通过链接认证管理系统获取用户的授权文件, 通过分析该文件判断用户是否有访问该系统或其功能模块的权限。其实现流程如下图所示:
如上图所示, 当用户登陆信息系统时, 系统判断用户是否已经登录, 如果已经登录, 则验证会话数据是否有效, 否则重定向到登录系统, 进行登录认证, 通过后验证其用户证书信息和会话信息, 进行验证后进行鉴权操作, 链接认证服务器, 获取用户权限文件, 得到该用户的资源列表, 然后根据比对资源编号判断用户是否有权操作该系统或者该系统所包含的各个功能模块。鉴权操作通过之后, 用户即可进行正常的操作, 在操作过程中可以根据需要将某些重要操作写入审计日志。当用户退出系统进行注销操作时, 系统首先清除会话信息, 然后重定向到登录系统注销该用户。
四、展望
本系统的特点是能够对纳入管理的信息系统的用户进行统一的授权管理者认证管理, 用户不再需要记录不同的用户和口令, 只需要记住一对就可以了, 进行一次登录, 就可以访问不同的信息系统。而对于管理员来说, 所需要维护的就是一个数据库表和一个权限信息表。不再需要到不同的系统中维护多个用户账号信息。当用户岗位变动时, 也不再需要进行多次操作, 只需一次操作就可以完成所有的操作, 大大减少了管理的维护操作, 有效提高工作效率。并且, 系统具有良好的可扩展行, 提供统一认证接口, 对于新开发的系统, 只要在权限管理系统中进行注册, 就可以纳入管理, 使用统一认证接口, 即可完成用户的验证操作, 而不需要开发自己的用户管理系统, 也能够节省开发成本和时间。
对于已经开发完成的信息系统来说, 如要要将该系统纳入统一授权、认证系统进行管理, 则需要修改其用户认证模块, 使用系统提供的统一认证系统进行认证, 相对来说, 需要付出一定的开发代价, 但是对于日后的管理工作来说, 还是值得的。并且, 对于将信息系统移植到移动工具上, 实现移动检验检疫功能也能带来很大便利。
参考文献
[1]许志敏, 薛质.授权认证系统的应用研究[J].中国传媒科技, 2006.
动态用户认证论文 篇6
通过调查研究发现, 如今的用户域安全保护方案逐渐暴露出来了一系列的安全问题, 传统的身份认证方案是基于PIN实现的, 因为只有较短的密钥长度, 将用户的个人信息给包含了过来, 那么就容易遭到攻击。在智能手机或者PDA等移动平台上, 仅仅应用了基于生物特征的身份认证方法, 也容易遭受到攻击。
在2004年10月, TCG在硬件资源紧张和电池容量有限的移动终端引入了可信计算的思想, 并且提出了三个技术标准草案, 涵盖了软件体系、硬件体系以及协议等方面, 可以将端到端的安全移动计算环境给提供出来。在TMP标准中, 已经分开了认证和授权, 并且开始对用户权限进行考虑。本文结合移动终端的特性, 在硬件方面采用了OMAP730, 提出了一种新的移动终端用户认证技术。
2 基于OMAP730的可信移动平台
在某公司, 采用的主流智能手机处理器就是OMAP730, 它对GSM/GPRS数字基带单芯片处理器进行了集成, SRAM、SDRAM以及FLASH都是其携带的。另外, OMAP还对安全ROM以及安全RAM进行了集成, 并且将硬件的安全算法加速器以及随机数产生器给配置了过来。虽然采用单纯的OMAP730无法促使可信计算的要求得到满足, 因此, 但是这些硬件资源可以有效的构建TMP;因此, 为了促使TMP要求饿到满足, 只需要将这些硬件配置于OMAP730之上即可。
(1) TPM的添加, 结合TMP的标准以及TPM的标准, 在构建TPM的时候, 可以选取三种不同的方式。首先是封装整合OMAP730内部已配置的硬件安全算法模块、随机数产生器以及安全RAM等资源, 以便对内置TPM进行构建。对独立的外置TPM芯片进行选择, 在连接OMAP730的时候, 利用的是总线SM Bus。为了促使硬件成本得到节约, 就可以将OMAP730内部ARM9和存储器给应用起来, 通过纯软件的方式, 来促使TPM需要具备的功能得到实现。
(2) 在安全ROM中固化CRTM, 这样配合TPM就可以促使可信启动得到完成。TPM在对ROM中的代码进行读取时, 利用的是DMA的方式。
(3) 对于设备BR的读取, 则是利用高速UART接口外接生物特征来读取的, 在这个部分, 通常将指纹采集仪应用过来, 这可以对单纯口令认证方式的脆弱性进行有效的弥补, 促使TMP安全等级3对认证方式的要求得到满足。
(4) 将可信模式指示器添加于外围, 这样可以对平台当前状态进行指示, 判断是否可信。
3 基于口令、指纹和USIM的用户域认证方案
通过研究发现, 相较于目前单纯口令或者指纹的用户域认证方案, 本方案的总体工作流程具有一些不同的特点:
当需要对移动终端进行使用时, 用户需要首先将USIM卡插入进来, 以便对平台的合法性进行验证, 平台当前状态得到确认之后, 用户通过键盘将口令输入进来, 并且将BR提供自己的指纹给充分利用起来, 以便避免恶意终端窃取到用户的敏感信息。在本方案中, 不是简单的比较口令或指纹与模板, 而是借助于RSA0KEN体制和Hash算法, 来有效融合指纹和口令, 并且计算过程在TMP的可信边界内完成, 促使TMP中安全等级要求得到满足。另外, 用户、ME以及USIM制件的认证也可以分别实现。将用户的临时身份以及与网络的共享密钥给利用起来, 借助于无线网络, USIM可以对TPM证书与签名的合法性进行在线校验, 以便促使不同CA域中TPM和USIM的认证得到实现。
在本方案中, 用户将自己的口令给脊柱, 并且持有USIM卡, 本卡是无线网络运营商所颁发的, 本USIM卡除了可以将基本的密码运算完成之外, 还可以对用户的数字证书以及敏感信息等进行存储, 比如认证参数、指纹模板以及匹配软件等等。其中, 认证参数包括两个方面的内容, 分别是用户接入无线网络时需要的参与以及用户与终端进行认证的参数。
在安全性分析方面, 通过研究发现, 本方案借助于可信移动平台框架, 促使用户、USIM和ME之间的双向认证得到实现, 在认证过程中, 用户口令以及指纹数据的安全性得到了保证, 用户对ME或者USIM中数据的访问控制得到了强化, 并且ME或者USIM丢失后造成的危害也可以得到减少。同时, 将在线认证方式给应用过来, 本方案还可以促使ME和其所有者之间的认证得到实现, 也可以让合法用户将自己的USIM利用起来, 按照规定权限, 来对其他合法移动终端进行使用, 并且不同CA下的用户和ME之间的认证也可以非常便捷的实现。
4 结语
通过上文的叙述分析我们可以得知, 随着时代的进步和发展, 移动终端的安全性受到了越来越多人的重视。传统的移动终端用户认证技术在实践过程中逐渐显露出来了一系列的问题, 那么就可以将可信计算给应用过来, 通过实践研究表明, 基于可信计算的移动终端用户认证技术具有一系列的优点, 需要大力推广和应用。
摘要:随着时代的进步和社会经济的发展, 无线通信技术和计算机技术不断革新, 并且互相融合, 移动终端在人们生活和工作中占据了越来越重要的位置;但是存储资源以及计算资源的丰富, 逐渐出现了诸多的移动操作系统和无线应用, 移动终端的安全威胁也需要引起人们足够的重视。针对这种情况, 本文结合可信计算, 提出了一种移动终端用户认证技术, 希望可以提供一些有价值的参考意见。
关键词:可信计算,移动终端,用户认证
参考文献
[1]郑宇, 何大可.基于可信计算的移动终端用户认证方案[J].计算机学报, 2006, 2 (8) :123-125.
[2]陈书义, 闻友达, 赵宏.基于可信计算的移动平台设计方案[J].东北大学学报, 2008, 2 (8) :55-57.
动态用户认证论文 篇7
关键词:身份认证,技术,网络安全
随着社会各领域信息化需求提高、技术发展, 网络业务系统已经成熟普及。各类业务系统都具备身份认证技术和机制, 以确保计算机信息安全。无论是高校校园网、教育科研网还是政务网、企业网, 信息安全都是是网络建设的重要工作之一。各企事业单位在建设信息系统时, 既要统一标准建设新业务平台, 还需要整合、集成原有业务系统, 打造统一完整、功能齐全、安全的统一用户身份认证系统。
1 网络中存在的安全隐患
1.1 重要的信息和资料被窃取泄露
随着计算机技术的发展, 计算机与服务器中存储了更多重要、敏感的信息和资料, 这些资料放在电脑上并不一定安全, 一些网络黑客利用网络技术不断的攻击用户的电脑系统, 将用户电脑中一些重要的信息和数据盗走, 从而给用户造成巨大的隐患和损失。所以不管是个人还是企事业单位, 在进行信息与数据存储的时候, 必须对服务器中储存的信息和资料采用安全加密的措施, 保障这些信息与数据库的安全[1]。
1.2 身份被伪造
身份被伪造, 资料信息被莫名的窃取, 这种现象在当今网络迅速发展的时代屡见不鲜。在网络技术不断发展的时代, 一些网络黑客可以伪造身份, 从而进入到用户的网络系统中窃取用户重要的信息、数据等资料, 而且通过伪造的身份在网络系统中一般都很难分辨出真伪。
漏洞是指在软硬件、或系统安全策略上存在缺陷, 使攻击者能在未授权的情况下对系统进行访问或破坏, 是入侵者侵入系统和植入恶意代码的入口。在经济快速发展的今天, 一些企事业单位, 甚至有一些政府机构在用户权限分配上存在很大的漏洞, 这些漏洞给了那些黑客高手伪造身份窃取资料提供了便利, 从而给单位和个人带来巨大的威胁。
1.3 重要数据被篡改
在经济快速发展的今天, 市场竞争越来越激烈, 为了在竞争激烈的市场上求得生存, 一些企业利用不法的手段进行非法竞争。有些企业聘请一些网络黑客, 来攻击竞争对手的网络系统, 将竞争对手网络系统中一些重要的数据进行篡改和破坏, 从而造成对方数据失真失效。同样教育网和政务网同样面临重要数据被不法篡改的威胁, 这些威胁不可小视, 尤其是关系国计民生的重要信息数据需要从战略安全角度进行防护。
2 用户身份认证技术在网络安全中的应用
2.1 用户身份认证技术的种类
随着计算机网络技术的发展, 身份认证技术已经从早期的口令技术发展到如今的智能卡、动态口令、生物识别技术和usbkey技术等, 从软件认证到硬件认证, 从单因子认证到双因子认证, 从静态认证到动态认证, 各种技术层出不穷[2]。
2.2 用户身份认证技术的应用
2.2.1 智能卡用户身份认证技术
智能卡身份认证技术是一项功能齐全的技术, 拥有自己的内存、独立的处理器以及智能卡读取器的串行接口。智能卡在卡片中提供了存储身份识别信息的功能, 用户身份信息能够被智能卡读取器所读取。当用户在网络上进行相关动作的时候, 智能读取器就能够链接到系统上去验证。智能卡是一种更为安全的存储信息数据的载体, 即使用户的计算机网络系统被黑客攻破, 智能卡的密钥也能够保持完好不被盗取, 保障在网络上的用户身份认证是可靠的。
2.2.2 生物认证技术
随着科学技术的发展, 在目前比较流行的生物认证技术就是指纹认证, 应用比较多的就是在电子商务系统中, 这种生物认证技术较其他技术来说是最为可靠的身份认证方式, 这种认证技术是使用一个人的物理特征来表示这个人的数字身份, 因为是独有的, 因此是不可能被仿冒的。生物识别技术与电脑技术紧密结合, 不仅满足了现代化企业对数据安全与可靠性的需求, 同时还满足了用户对个人资料的隐秘性保护要求。
2.2.3 动态口令技术
动态口令技术作为最安全的身份认证技术之一, 在我国企业中得到了广泛的使用, 随着互联网的发展, 动态口令技术已经成为身份认证的主流。在金融行业、网络游戏尤其是目前如火如荼的互联网移动商务支付等领域得到了广泛使用。动态口令技术是根据时间序列来产生一组随机的密码, 这种动态密码每隔一分钟就会发生改变即失效, 因此用户在网络中使用的时候可以有效的防止网络钓鱼等威胁, 从而提高用户在网络中活动的安全性[3]。
2.2.4 usbkey技术
Usbkey技术是一种USB接口的智能加密硬件存储设备, 提供数据加解密、数据完整性、数字签名和访问控制等功能, 目前被广泛应用于网上银行、电子支付等领域, 是被公认的较为安全的身份认证技术。在usbkey技术中, 利用了PKI (Public Key Infrastructure, 公钥基础设施) 技术中的数字证书应用, 这种证书认证是用户唯一的使用权限, 通过互联网来验证用户的身份。这种数字认证一般都是由权威机构发行的, 用户在网络中进行活动的时候, 利用数字证书来识别对方的身份, 防止钓鱼攻击, 保障自己的权益不被损害。Usbkey具有安全数据存储空间来存储用户数字证书和私钥, 并内置CPU进行加解密和签名的各种算法, 用户私钥是不可导出的, 从而杜绝了私钥泄露的可能。
3 结语
随着网络技术的发展, 网络已经广泛应用在人们的日常生活中并推动社会各领域的变革, 网络无疑给人们带来了许多便利, 但也存在着很多安全隐患, 因此保障网络安全是现代化网络发展所面临的永恒问题。在经济快速发展的今天, 利用先进的用户身份认证技术, 保障社会各领域行业用户利益不被损害, 保障高校企业等单位重要的数据和信息不被窃取, 保证每个公民在网络上合法权益已经变得越来越重要。
参考文献
[1]王玉贵.一种冲击响应方式UKey身份认证实现方法[J].电脑编程技巧与维护, 2013, 06 (03) :101—102.
[2]李俊林.身份认证技术在网络安全中的应用[J].电脑编程技巧与维护, 2013, 08 (02) :25—26.
【动态用户认证论文】推荐阅读:
用户认证与授权06-16
企业用户认证申请公函10-12
用户移动行为论文06-11
用户个人信息论文06-21
以用户为中心论文07-15
多用户调度算法论文06-07
用户加工程序编制论文09-05
以用户为主导空间设计论文09-27
用户体验监控系统浅介论文06-20
动态宽带论文06-04