人人范文网 范文大全

SKEY认证方案的分析与改进

发布时间:2020-03-03 05:21:24 来源:范文大全 收藏本文 下载本文 手机版

S/KEY认证方案的分析与改进

殷松瑜, 徐炜民

(上海大学 计算机工程学院,上海 200072 )

摘 要:本文提出的改进S/KEY身份认证协议,使用随机数与机密信息进行异或运算,屏蔽重要信息防止机密泄露,实现了用户和服务器间的相互认证,认证服务器的计算负载并没有增加。本方案克服了传统S/KEY一次性口令认证方案不能抵抗重放攻击,小数攻击,冒充攻击,中间人攻击安全漏洞,有效地防止了连接劫持、协议破坏攻击等攻击手段,显著地增强了应用系统的安全性。 关键词:S/KEY身份认证; 一次性口令; 异或; 散列函数 中图法分类号: TP393108

文献标识码: A

Analysis and Improvement of S/KEY Authentication Scheme

YIN Song-yu,XV Wei-min

(School of Engineering and Computer Science Shanghai University , Shanghai 200072)

Abstract:This paper proposes a new improved S/KEY protocol.As is described in my authentication scheme that the random number XORed by the confidential information prevents confidential information from disclosure, and a mutual authentication between the user and the server is effectively carried out , but which do not increase the overhead of authentication server .The new S/KEY solution can not only overcome the vulnerabilities of security that the traditional S/KEY one-time paword protocol will not help the server to resist the replay attacks, small integer attacks, personate attacks and man-in–middle attacks, but also effectively prevent the server from connection hijacking, protocal–broken and other attacks, so the improved S/KEY protocol significantly enhances the security level of application system .Key words: S/KEY Authentication; One-Time Paword; XOR ; Hash fuction

是验证通信双方是否符合其所声称的身份, 防止非法用户窃取合法用户的身份,以得到不应有的授权进入系统获得不正当利益或恶意破坏系统。

传统的认证技术是输入用户名/口令的基本认证方式,这种认证最大的问题是用户名和口令都以明文的方式在不安全的网络中传输,很容易受到恶意的窃听、篡改、重放或在线猜测和离线字典攻击。安全的基于证书的数字签名技术必须以完整的CA (Certification Authority,证书授权中心)体系为基础,但目前在国内还没有法律上所公认的可信的第0 引言

计算机通信技术和网络的发展使得网络成为信息交换的主要手段,越来越多的企业将电子商务作为重要的运营模式。当企业用户在其业务活动中把自己完全展示给外部的用户和商业合作者或当通过网络获取客户的敏感数据时, 网络的安全访问控制就成了保护企业信息安全, 防止黑客恶意攻击破坏的重要手段。身份认证是确保网络系统中信息安全的门户,网络应用系统的第一道防线。身份认证的目的就三方证书授权中心。对于在不安全的网络环境中的企业来说,采用实现不太复杂,又无需第三方认证的一次性口令(One Time Paword,OTP)认证技术是一种很有吸引力的的解决方案,从理论上讲,只使用一次的密码(A Single Use Paword)是永远不会被破解,是最安全的密码。

本文在分析研究S/KEY一次性口令认证技术的基础上,针对S/KEY系统的缺陷[1][2][3]提出了一种新的改进方案。已有的一些改进方案[4][5][6][7]使用离散对数公钥加密技术,另外一些方案 [8]使用对称加密方法,虽然改进方案宣称无需第三方公证,但是如何管理分配加密密钥,是否最后还是依靠公钥基础设施PKI,这些都是很难解决的问题。使用加密方法增加了系统开销和实现的复杂度,这也就失去了口令认证的优点:实现方案简单,运行成本低等。而方案

[9][10][11]

虽然对S/KEY认证技术有所改进,却并没有完全解决S/KEY系统的安全问题。本文所提出的方案使用随机数与机密信息进行异或运算,屏蔽重要信息内容防止机密向外泄露,相比原来S/KEY方案认证服务器增加的运算量很小。改进方案克服了传统S/KEY一次性口令不能抵抗小数攻击,冒充攻击等安全漏洞,实现了用户和服务器间的相互认证,有效地防止了连接劫持、协议破坏攻击等攻击手段,显著地增强了应用系统的安全性。

1 一次性口令认证技术

窃取系统口令文件、通过偷听网络连接来获取和合法用户的口令以及重放是常见的攻击方式。一次性口令系统设计的目的就是为了对付这种类型的攻击, 使用户在每次注册时使用一个以前没有使用过的口令。 1.1 基本原理

OTP的主要思路是:在登录过程中加入不确定因子,使每次登录过程中生成的密码都各不相同,以提高登录过程的安全性。系统接收到登录口令以后, 以同样的算法做一个验算即可验证用户的合法性。目前有许多方法可以实现一次性口令身份认证,常用的有如下3种: (1) Lamport方案[15]。即哈希链(Hash chains)算法。在初始化阶段选取一个口令pw和一个次数n,及一个单向散列函数Hash,通过计算y= Hash n(pw),把y和n的值存到服务器上。用户端计算y\'= Hash n-1(pw)的值,服务器计算 z = Hash (y\')的值同服务器上相应的值y进行比较。如果z=y,则验证成功,然后用y\'的值取代服务器上y的值,n的值减1。通过哈希链算法,用户每次登录到服务器端的口令都不相同。这种方案的优点是易于实现,且无须特殊硬件的支持。而缺点是用户需要进行多次Hash运算,其安全性依赖于单向散列函数Hash,而且每隔一段时间还需要重新初始化系统,服务器的额外开销很大。

(2)时间同步方案(见图1)[15]。每个系统用户都持有相应的

时间同步令牌(token)。令牌内置时钟,种子密钥和加密算法。时间同步令牌根据当前时间和种子密钥可以每分钟动态生成一个一次性口令。动态口令传送到认证服务器。服务器通过其种子密钥副本和当前时间计算出所期望的输出值,对用户进行验证。如果相匹配,则登录通过。虽然该方法可以保证很高的安全性,然而技术上很难保证用户的时间同步令牌在时间上和认证服务器严格同步,因为数据在网络上传输和处理都存在一定的时间延迟,所以该方案实现时是在允许的时间误差范围内(例如多少秒)都可以通过认证,但是当时间误差超过允许值时,对正常用户的登录往往造成身份认证失败,这是时间同步方案很大的缺点,另外该方案要求有时间同步令牌这类特殊硬件的支持。

(3)质询/应答方案(Challenge/Response)(见图2)

[15]

。每

个用户都持有相应的质询/应答令牌。令牌内置种子密钥和加密算法。用户需要访问系统时,服务器随机生成一个质询(Challenge),用户将该质询手工输入到质询/应答令牌中,质询/应答令牌利用内置的种子密钥和加密算法对其计算出相应的应答 (Response)。用户将该应答手工输入到主机再上传给服务器。服务器根据该用户存储的种子密钥和加密算法计算出应答并和用户上传的应答进行比较,该方法可以保证很高的安全性。但该方案也有缺陷:需要特殊硬件(质询/应答令牌)的支持,增加了该方案的实现成本;用户需多次手工输入数据,易造成较多的输入失误,使用起来十分不便;用户的身份标识直接在网络上明文传输,攻击者可很容易地截获它,留下了安全隐患;没有实现用户和服务器间的相互认证,不能抵抗来自服务器端的冒充攻击;质询每次都由服务器随机生成,造成了服务器开销过大。

1.2 S/KEY一次性口令认证协议

目前在实际应用最广泛的一次性口令是S/Key认证协议,它也是质询/应答方式的一种。

S/Key一次性口令的原理是: OTP为每个用户分配一个账号,每个账号配有种子(Seed)、迭代值(Iteration)和秘密通行短语( Secret Pa Phrase,SPP)。在客户端和服务器端各安装一个OTP计算程序,用户通过客户机访问服务器时,首先向服务器传送自己的账号,服务器应答一个由与该账号对应的种子Seed和迭代值Seq组成的质询, 用户在客户端输入只有自己知道的秘密通行密语给予应答,客户机OTP计算程序使用该质询和秘密通行短语产生一个一次性口令,并以该一次性口令登录,作为对质询的应答。服务器端OTP计算程序同时也产生一次性口令,然后与所收到的一次性口令进行对比,从而完成服务器对登录用户的鉴别。每次登录成功后,迭代值递减。

但是当迭代值递减为0或秘密通行短语泄密后,则用户必须重新初始化系统。这也是S/KEY一次性口令最大的不足。 1.3 单向散列函数

S/KEY认证是一种摘要认证, 主要利用了散列函数又称为哈希函数(Hash), 就是把可变输入长度申转换成固定长度输出串散列值的一种函数。S/KEY认证的安全性正是依赖于散列函数的单向、计算不可逆的特性:

(1)给定消息M很容易计算Hash(M),但是根据Hash(M)反向计算M却很难,几乎是不可能。

(2)给定M消息要找到另一消息M’, 并满足Hash(M)= Hash (M’)也是几乎不可能。

目前,著名的散列函数有MD

4、MD5和SHA。SHA(Security Hash Arithmetic)是由美国国家标准和技术(NIST)提出的。SHA-1 算法允许的最大输入报文的长度不超过26

4位,输出160 比特的报文摘要。SHA-1 与MD5相似,都是从MD4 导出的,但它对强行攻击具有更大的强度,且易于实现。

2 传统S/KEY认证系统[1] S/KEY认证系统分注册阶段和认证阶段2个阶段实现。 本文使用的标志如下:U为客户端;S为服务器端;ID为用户身份标志;PW为用户口令;→为信息发送标识;//为级联运算符;⊕为异或运算符;H(x)为安全哈希函数;Hi

(x)为对x进行i次哈希运算;N为口令序列的元素个数;Seq为当前序列数(第i次认证序列数,Seq=N-i)。 2.1注册过程

注册工作由客户端U与服务器端S共同参与完成,协商并保存在认证过程中将要用到的数据,要求注册工作必须在安全环境下进行。

(1)U输入ID和PW,请求注册; (2)S为U选择种子值Seed发送给U;

(3)U设置一次性口令序列的最大元素个数N,并计算口令序列的第一个口令HN(PW//Seed)传送给S; (4)S建立记录,存储ID,Seed,N,HN

(PW//Seed)。 2.2认证过程

第i次认证过程如下:

步骤1 U→S:ID,认证请求;

步骤2 S→U:Seq=N-i,Seed;

步骤3 U→S:ID, HN-i(PW//Seed);

步骤4 S用收到的HN-i(PW//Seed)再做一次哈希运算

H(HN-i

(PW//Seed)),与上次认证成功后保留的H

N-(i-1)

(PW//Seed)比较,若相等,S就向U发送登

录成功消息,并保留HN-(i-1)

(PW//Seed)作为下一

次认证的验证值。

2.3 传统S/KEY认证系统的安全缺陷分析

S/KEY系统虽能有效抵御重放攻击,有一定的安全性, 但是系统本身仍有很多缺陷。

S/KEY系统无法抵御冒充攻击,即冒充服务器攻击。传 统S/KEY系统是一种简单的认证协议,认证过程中只对用户 进行认证而不对服务器进行认证,并且S/KEY方案并没有提 供对传输数据的加密,Seed和Seq都是以明文形式在传输信道中传输,因此,攻击者可以欺骗用户去登录攻击者指定的假冒服务器,当用户提交认证请求时,假冒服务器可以发送事先窃听到的Seed,Seq给用户从而欺骗用户得到一次有效的登录口令,再伪装成合法用户登录服务器。

小数攻击是特别针对于口令序列类型的OTP方案的攻 击方式,S/KEY认证系统不能防御此种攻击。攻击者可以得 到系统使用的安全散列函数H(x),通过监听和篡改步骤(2)中的序列数Seq为一个小很多的数值m给用户,这样用户就会计算出Hm

(PW//Seed)给攻击者,攻击者再将Hm

(PW//Seed)哈希Seq-m次, 既H

seq-m

(Hm(PW//Seed))得到Hseq

(PW//Seed)也就

是正确的口令去登录服务器,因为m

(PW//Seed)以后使用,只要服务器在认证时在步骤(2)中发送一个比m大的序列数攻击者就可计算出正确的口令来登录服务器。

S/KEY系统无法抵御协议破坏攻击,如果在合法用户和 服务器进行正常认证过程中攻击者成功地进行了窃听,并在 步骤(3)中,攻击者窃取到了第i次有效的口令HN-i

(PW//Seed)后将认证过程破坏或服务器崩溃,那么在系统重启后会直接恢复到认证破坏前的步骤(3),这时攻击者就可以利用协议被破坏前窃取到的有效口令登录服务器。

中间人攻击是指攻击者通过各种技术手段将自己控制的计算机非法连接到2台正常通信计算机的通信信道之间,直接即时地读取和篡改信道中的信息,而通信两端的计算机却认为彼此还在互相通信,无法察觉信息已经被转发过。这种隐蔽性攻击是对网络安全极具威胁和破坏性的一种攻击方式。S/KEY系统对于中间人攻击更显得无能为力,只要攻击者通过一定的技术手段成功建立好中间人攻击环境,则U与S之间传递的一切信息都会经过攻击者控制的计算机进行转发,攻击者只需在步骤(3)中获得一次性口令后强迫合法用户下线,再直接转发口令给S冒充合法用户登录。

连接劫持攻击最早由Bellovin[3]

提出,这种攻击方法是非法用户绕过身份确认这一关,等到合法用户通过认证成功与服务器建立连接后,设法劫取此连接先行抢入连接冒充合法用户侵入系统。

3 S/KEY认证系统的改进

3.1 改进思路

1)在证明对方身份之前,不给出有关信息的鉴别,不泄露有关信息,2)尽量使用简单而且安全的算法以减少认证服务器的运算量,提高效率,3)尽可能使传送的消息简短,减少相互传递的认证信息的个数,减少网络通信量,4)用户和系统之间进行相互认证,5)提供安全通信防止连接劫持的功能。 3.2注册过程

注册工作与传统S/KEY方案大体相同,由U与S共同参与完成,协商并保存在认证过程中将要用到的数据,由服务器端S建立记录,存储ID,Seed,N,HN(PW//Seed),所不同的是客户端也要记住ID,Seed,并保证ID,Seed作为U和S共享秘密的安全。种子Seed的设置原本是为了客户在不同的服务器上方便使用OTP[1],在不同的服务器使用不同的Seed,这样即使客户使用同一个秘密通行短语SPP在不同的服务器上也能生成不同的OTP。在本方案中客户U记住Seed就能实现与服务器协商会话密钥(一个客户端生成的随机数),并且Seed也不需要每一次认证都传送给客户端,以减少被窃听的可能。

从安全角度考虑客户端可以用USBkey存储机密信息,而服务器端同样要保证存放客户信息的数据库的安全,防止非法窃取机密信息,特别是内部攻击。 3.3认证过程

服务器端保留有一张表,每条记录包含:用户名ID,种子Seed,当前序列号Seq=N-i,上次成功登录密码PN-(i-1)

i-1=H(PW//Seed);

第i次认证过程:

步骤1 U→S:认证请求,H(ID),H(ID//Seed)⊕Ri; 步骤2 S→U:Seq⊕Ri,Pi-1⊕Ri; 步骤3 U→S: Pi⊕Ri;

步骤4 S→U:认证成功消息,保留Pi。

步骤说明:

步骤1:客户端U在每一次认证前都要产生一个随机数Ri 作为下面认证过程的会话密钥,用来屏蔽相关信息以防止泄密。为了保护客户ID,Seed信息,不传送明文,而改为发送他们的哈希函数值。

步骤2 :服务器端S在数据库中查找到ID对应的Seed ,计算H(ID//Seed)⊕Ri⊕H(ID//Seed)= Ri 就可以得到随机数Ri,至此通过ID,Seed作为共享秘密由U和S协商了会话密钥Ri。为了不泄露机密信息,S发送Seq和Pi-1的加密形式,以防止被恶意攻击者窃听。

步骤3:客户端U通过计算Seq⊕Ri⊕Ri=Seq,和Pi-1⊕Ri⊕Ri= Pi-1,得到了当前序列号Seq=N-i和上次成功登录密码

PN-i

i-1以后,再计算第i次登录密码Pi=H(PW//Seed), 比较 H(Pi)和Pi-1,若相等则继续向服务器端发送加密形式的Pi;否则就中断认证过程。

步骤4: 服务器端S接受到客户端发来的登录密码加密的Pi后,计算Pi⊕Ri⊕Ri=Pi得到第i次登录密码Pi,再次计算H(Pi)并把它和自己保存的上次成功登录密码Pi-1进行比较,若相等则S向U发送登录成功消息,并用Pi替换Pi-1作为保留的值用于下一次认证,否则就中断认证过程,拒绝用户登录。 3.3 改进S/KEY方案的安全性讨论

方案注册阶段在安全环境下进行,用户用USBkey 保存机密信息ID,Seed,可有效防止共享秘密信息泄漏,从而保证了会话密钥Ri的绝密性。共享秘密是确保本方案安全的基本条件之一。

在步骤(l)中,发送客户ID,Seed信息的散列值也杜绝了相关秘密的外泄。U和S通过共享秘密ID,Seed相互协商交换随机数Ri作为会话密钥,而下面认证过程的相互传递信息的机密性,都是依靠随机数Ri对传递的消息进行异或运算来防止非法窃听和篡改。

本方案还有一个确保安全性的基本条件,那就是用异或运算加密的安全性, 虽然MD5,SHA函数已被证明是不安全的

[13]

, 而新方案采用异或运算方法对散列值值进行加密,

Hash函数长度(例如MD5为128位, SHA为160位)足以保证攻击者不能通过穷举法破解有关机密信息[14]

。这里建议使用长

度更长更安全的Hash函数如SHA-224, SHA-256, SHA-384 和

SHA-512。

在步骤(2)中,S通过共享秘密解密h(ID//Seed)⊕Ri得到会话密钥Ri,使用Ri异或运算散列值Seq和Pi-1来加密,即使攻击者有进行猜测、穷举等攻击的可能,但是异或运算加密的时间很短,并且每次认证随机数都不同,因此,可以保证此过程中异或运算加密信息的安全性。

由于客户端用户用以产生OTP口令的秘密通行密语也就是真正的用户口令既不在网上传输,也不存储在服务器端及客户端的任何地方,只有使用者本人知道,因此即便在不安全的网络通信信道中秘密通行密语也不会被窃取,字典攻击、口令字猜测等常用的攻击手段对破解真正的用户口令都无能为力。OTP口令只使用一次,即使在网络传输过程中被捕获下一次也被不能被重复使用。这样一来攻击者既不能非法窃取相关客户的机密信息来构造出正确的OTP口令,又不能重放已经截获的信息来通过服务器认证,所以对于客户来说整个认证过程是安全的。

在步骤(3)中实现了客户端对服务器端的认证, 因为只 有服务器端才保存有上次成功登录密码Pi-1。在步骤(4)中实现了服务器端对客户端的认证,只有客户端才能正确生成第i次登录密码PN-i

i=H (PW//Seed),因为只有客户端才知道秘密通行短语PW和种子Seed。本方案实现了客户端和服务器端的双向认证,可以抵抗来自客户端的假冒攻击和来自服务器端的假冒攻击,却不会使合法用户的合理要求得不到满足,也就是说本方案可以防止拒绝访问攻击和中间人攻击。

由于在认证的过程中客户端的机密信息:用户名ID,种子Seed,当前序列号Seq=N-i都被加密,攻击者无法窃听,当然也就不能篡改Seq,冒充服务器向用户发送一个小很多的数值m进行小数攻击。另外攻击者窃取不到第i次有效的口令HN-i(PW//Seed),即使认证过程被破坏或服务器崩溃,系统重启后会直接恢复到认证破坏前的步骤(3),这时攻击者就也不能利用协议被破坏前窃取到的有效口令登录服务器,所以协议破坏攻击对本方案不可行。 步骤(4)结束后服务器端完成了对客户端的身份认证。 但是攻击可能设法劫取此连接以冒充合法用户访问服务器。这样攻击者就成功地冒充用户,达到了欺骗服务器的目的。。所以在本方案中当合法用户登录完成后,服务器端会定期地向客户端发出质询(Challenge),而客户端必须作出相应的应答 (Response)否则就会切断该用户的已有连接。服务端向客户端发送的质询和客户应答需要另外建立一条连接,不影响原连接的客户端与服务器的正常通信,这对用户而言是透明的[10]。

为了避免被动攻击( Paive Attack)[16]

,每个用户登录时,只能建立一条连接,这样就能防止其他用户监听到部分口令后发动多条连接猜测后续的口令。 3.4 改进S/KEY方案的实现问题

在运行效率方面,本方案主要的计算是散列函数和异或运算,而利用公私钥加密算法实现OTP,或者在有限域上用离散对数实现OTP相比,无论是硬件资源需求还是在运算复杂度上都要简单。另外生成随机数Ri的工作移到客户端上执行,和质询/应答方案(Challenge/Response)相比减少了服务器的额外开销。

通过网络安全注册可以实现如下:首先客户下载服务器的公钥用来加密一个对称加密私钥K发送给服务器,由服务器用于加密发往客户端的机密信息如种子Seed等,而客户也可以通过服务器的公钥加密发往服务器的信息,当用户重新初始化系统也可以通过网络安全注册。

S/KEY方案当迭代值递减为0或秘密通行短语泄密后, 用户需要重新初始化系统,这是S/KEY方案最大的缺点,但是从安全维护的角度来说初始化系统,同时也是在检查系统是否发生异常,是否受到攻击,是否有机密信息泄露并做好防范措施,保证系统的安全。

4 结束语

用户身份认证是网络中保证信息安全的重要前提,一次性口令协议是简单认证中一种具有较高安全性的一类协议。本文提出了一种新的S/KEY认证方案,克服了传统的S/KEY认证的安全缺陷,有效地保护了用户身份机密信息,实现了客户端和服务端双向认证。改进协议能够较好地抵御

小数攻击、假冒攻击、协议破坏攻击等恶意破坏,实现了分布式系统的安全认证和持续用户认证,提高了S/KEY系统的安全性,并且没有增加认证服务器的计算负载。

改进S/KEY方案相对于强制认证的PKI等而言,具有实现简单、使用方便的特点,所以在很多场合都有推广意义,例如硬件资源少,运算能力有限的移动设备的远程身份认证。本方案还可以集成到其他安全解决方案中,如智能卡,指纹识别等以提高应用系统的安全防护能力。

参考文献

[1] Haller N.A one-time paword system[S] ,(RFC2289) ,1998

[2] Mudge.Vulnerabilities in the S /KEY one time paword system[EB/OL].

http://www.daodoc.com

ElGamal签名方案的分析与改进

基于USB_Key的PKI身份认证技术的分析与改进

学困生分析与改进措施

学生会问题分析与改进

护理差错缺陷分析与改进

绩效考核现状分析与改进措施

塔式起重机常见故障分析与措施改进

加油站安全管理分析与改进

药剂科全面质量管理与持续改进方案

护理质量管理与持续改进方案

SKEY认证方案的分析与改进
《SKEY认证方案的分析与改进.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档