基于动态口令的身份认证技术_第1页
基于动态口令的身份认证技术_第2页
基于动态口令的身份认证技术_第3页
基于动态口令的身份认证技术_第4页
基于动态口令的身份认证技术_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

厦门大学软件学院毕业论文本科毕业论文(科研训练、毕业设计)题 目:基于动态口令的身份认证技术姓 名:学 院:软件学院系:软件工程专 业:软件工程年 级:学 号:指导教师(校内): 职称: 年 月基于动态口令的身份认证技术摘要 计算机系统和计算机网络是一个虚拟的数字世界。在这个数字世界中,一切信息包括用户的身份信息都是用一组特定的数据来表示的,计算机只能识别用户的数字身份,所有对用户的授权也是针对用户数字身份的授权。而我们生活的现实世界是一个真实的物理世界,每个人都拥有独一无二的物理身份。如何保证以数字身份进行操作的操作者就是这个数字身份合法拥有者,也就是说保证操作者的物理身份与数字身份相对应,就成为一个很重要的问题。身份认证技术的诞生就是为了解决这个问题。身份认证技术可以用于解决访问者的物理身份和数字身份的一致性问题,给其他安全技术提供权限管理的依据。所以说,身份认证是整个信息安全体系的基础。本文大致介绍了身份认证技术及其主要实现方式,并通过对传统静态口令认证方式的安全性分析,了解静态口令身份认证的缺陷和目前信息安全的主要攻击手段。针对静态口令认证方式的缺陷,本文进一步提出了动态口令认证方式,详细介绍了动态口令技术的概念,基本原理,特点和实现方式,并对其安全性进行了大致分析。为了使读者更好地理解动态口令技术,本文详细介绍了两种动态口令认证方案:S/KEY口令序列认证方案和SAS-2认证方案,通过对其安全性进行分析并提出改进方案。另外,本文实现了基于MD5算法和Schnorr协议的双因素动态口令认证系统,并对其进行了系统设计。关键词身份认证 动态口令 S/KEY SAS-2 Schnorr协议Authentication Technology Based on Dynamic PasswordAbstract Computer systems and computer networks is a virtual digital world. In the digital world, all information, including the identity of the user information is showed by a particular set of data. Computer can only identify the digital identity of user. The authentication to user is validating the digital identity of user. We live in the real physical world, and everybody has a unique physical identity. How to ensure that the operator who uses the digital identity is the legitimate owners of the digital identify is a very important problem. People solve this problem by using authentication technology.Authentication technology can be used to solve the problem how the identity of visitors meets their digital identity. It provides the other security technology the basis for the privilege of management. Therefore, authentication is the basics of the entire information security system. The paper makes the people understood the major authentication methods by introducing authentication technology. Through analyzing the traditional static-password authentication, we can know the weaknesses of the static-password authentication and the current major means of attack information security. This paper proposes the dynamic-password authentication against static-password authentication flaws. It introduces the concept, the basic principles, the characteristics and the ways of the dynamic-password authentication, and analyzes its security.In order to enable readers to better understand the dynamic-password technology, the paper describes in detail the two dynamic-password authentication schemes: S/KEY scheme and SAS-2 scheme. And this paper makes the improvements through their security analysis. In addition, the paper realizes the two-factor dynamic authentication system based on the MD5 algorithm and Schnorr protocol. Keyword Authentication Dynamic-Password S/KEY SAS-2 Schnorr protocol目录第一章 引言- 8 -1.1 身份认证技术(Authentication)- 8 -1.1.1 身份认证技术的重要性- 8-1.1.2 身份认证技术的目的- 8 -1.1.3 身份认证技术的基本实现方式- 8 -1.2 传统静态口令认证技术的缺陷- 9 -1.3 相关技术说明- 11 -1.3.1 散列函数- 11 -1.3.2 符号说明- 11 -第二章 动态口令身份认证技术- 12 -2.1 动态口令身份认证的概念- 12 -2.2 动态口令身份认证的基本原理- 12 -2.3 动态口令技术的特点- 12 -2.4 动态口令认证的实现方式- 13 -2.4.1 异或运算方式- 13 -2.4.2 Lamport方式- 13 -2.4.3 时间同步方式(Time Synchronization)- 13 -2.4.4 挑战/应答方式(Challenge/Response)- 14 -2.5 动态口令认证技术的安全性分析- 14 -2.6 动态口令技术的缺陷- 15 -第三章 主要的动态口令身份认证方案- 16 -3.1 S/KEY口令序列认证方案- 16 -3.1.1 S/KEY口令序列认证方案描述- 16 -3.1.2 S/KEY口令序列认证方案的实现过程- 16 -3.1.3 S/KEY口令序列认证方案的安全性分析- 20 -3.1.4 S/KEY的改进方案- 20 -3.2 SAS-2认证方案- 21 -3.2.1 SAS-2认证方案的实现过程- 21 -3.2.2 SAS-2认证方案的安全性和效率分析- 23 -3.2.3 SAS-2改进方案- 24 -第四章 系统方案说明及其实现- 25 -4.1 系统方案说明- 25 -4.2 系统设计相关知识- 25 -4.2.1 MD-5算法- 25 -4.2.2 Schnorr协议描述- 25 -4.3系统实现过程- 26 -4.4系统安全性分析- 28 -4.5系统实现效果- 28 -结论-30 -致谢- 31 -参考文献- 32 -ContentsChapter 1 Introduction- 8 -1.1 Authentication- 8 -1.1.1 The Importantance of Authentication- 8 -1.1.2 The Objective of Authentication- 8 -1.1.3 The Realization of Authentication- 8 -1.2 The Weakness of Static-Password- 9 -1.3 The Note of Related Technology- 11 -1.3.1 Hash Function- 11 -1.3.2 The Note of Symbol- 11 -Chapter 2 Dynamic-Password Authentication- 12 -2.1 The Concept of Dynamic-Password Authentication- 12 -2.2 The Basic tenets of Dynamic-Password Authentication- 12 -2.3 The Features of Dynamic-Password Authentication- 12 -2.4 The Realization of Dynamic-Password Authentication- 13 -2.4.1 XOR Way- 13 -2.4.2 Lamport Way- 13 -2.4.3 Time Synchronization Way- 13 -2.4.4 Challenge/Response Way- 14 -2.5 Security Analysis- 14 -2.6 The Weakness of Dynamic-Password Authentication- 15 -Chapter 3 Common Dynamic-Password Authentication Schemes- 16 -3.1 S/KEY Authentication Schemes- 16 -3.1.1 Description of S/KEY Scheme- 16 -3.1.2 Realization Process- 16 -3.1.3 Security Analysis- 20 -3.1.4 The Improvement of Schemes- 20 -3.2 SAS-2 Scheme- 21 -3.2.1 Realization Process- 21 -3.2.2 Security and Efficiency Analysis- 23 -3.2.3 The Improvement of SAS-2- 24 -Chapter 4 Description and Realization of the Program- 25 -4.1 Program Description- 25 -4.2 Related Knowledge- 25 -4.2.1 MD-5 Algorithm- 25 -4.2.2 Schnorr Description- 25 -4.3 Realization Process- 26 -4.4 Security Analysis- 28 -4.5 Achieving results- 28 -Summary- 30 -Acknowledgemen- 31 -References- 32 -第一章 引言随着信息科学与技术的迅速发展,人类生活方式也正在经历着一场深刻的变革,计算机的日益普及,网络的高速发展,一个全球性的信息社会正在形成。信息技术的应用无处不在,然而在信息技术带给人类前所未有的方便与快捷的同时也带来了信息安全方面的威胁,非法入侵计算机系统窃取篡改信息数据,攻击重要部门的服务器,给国家与社会造成了难以估计的损失同时也给信息技术进一步的应用设置了障碍。电子商务和电子政务等领域都对信息系统的安全性提出了较高的要求,因此信息安全在当前显得越来越重要。1.1 身份认证技术(Authentication)1.1.1 身份认证技术的重要性身份认证技术是信息安全理论和技术中非常重要的方面,它是网络应用系统中的第一道防线,是安全的网络系统的门户。现代信息安全服务模型一般包括以下6个方面:身份认证、授权控制、审计确认、数据保密、数据完整和可用性。其中身份认证(Authentication)、授权控制(Authorization)和审计确认(Accounting,或Auditing),一般简称为AAA技术,它们正是现代信息安全系统的3个主要组成部分。同时,身份认证这第一个A又是后2个A的前提。身份认证通过了,才谈得上授权控制和审计确认。因此,我们可以说身份认证是信息安全的基础。1.1.2 身份认证技术的目的身份认证的目的是验证通信双方的真实身份,防止非法用户假冒合法用户访问敏感的信息资源。在安全的网络通信中,涉及的通信各方必须通过某种形式的身份验证机制来证明它们的身份,验证用户的身份与所宣称的是否一致,然后才能实现对于不同用户的访问控制和记录。1.1.3 身份认证技术的基本实现方式一般说来,用户的身份认证可以通过三种基本方式或其组合方式来实现:1所知(Knowledge),即用户所知道的某个秘密信息。例如用户知道自己的用户名和口令。这是传统的、也是目前应用最广泛的身份认证技术。2所有(Possesses),即用户所持有的某个秘密信息(硬件)。例如智能卡。用户必须持有这种合法的物理介质,智能卡中存储了用户的个性化参数,访问系统资源时必须要有智能卡。3个人特征(Characteristics),即用户所具有的某些生物学特征。例如指纹、声音、DNA和视网膜等等。生物特征识别方法是利用用户的生物特征作为在网络上识别身份的要素。采用这种认证方案虽然具有很高的安全性和先进性,但是需要配置相应的生物识别设备,由于生物识别设备的造价很高,而且不方便移动用户使用,所以只适用于保密程度很高的场合。在上述的三种基本身份认证方式中,第一种方式即静态口令认证方式是最基本的,也是应用得最为广泛的。第二、三种认证方式都具有一定的模糊性,一般都与静态口令认证配合使用。1.2 传统静态口令认证技术的缺陷传统的身份认证方式是采用静态口令认证技术:系统为每一个合法用户建立一个用户名/口令对,当用户登录系统时,提示用户输入自己的用户名和口令,系统通过核对用户输入的用户名/口令与系统内已有的合法用户的用户名/口令对是否匹配,来验证用户的身份。因为静态口令技术实现的身份认证方式简单、易用,并且具备一定的安全性,所以得到了广泛的应用。但是,随着网络应用的复杂化、攻击手段的多样化,静态口令技术的安全缺陷也越来越明显,主要表现在以下三个方面:1线路安全线路安全是指口令认证系统所使用的口令在网络上传输过程中产生的安全性问题。由于目前局域网使用最广泛的以太网是基于广播方式的,所以每一个节点发送的信息能够被所有的节点所接收。即便是在广域网上传输数据,如果攻击者掌握了足够的网络设备控制权,也能够窃听到通过被控制设备的所有数据。攻击者实施线路安全攻击的主要形式有:(1) 网络数据流窃听:窃听网络传输的认证数据,因为许多静态口令认证系统的口令在传输过程中都是未经加密的明文形式,攻击者通过窃听网络数据就很容易分辨出某种特定系统的认证数据,并提取出用户名和密码。(2) 认证数据截取/重放(Record/Replay):即使有的系统会将认证数据进行简单的加密后再进行传输,攻击者无法通过第一种方式获得明文形式的密码,但是攻击者可以截取加密后的认证数据,实施重放攻击同样可以通过系统的身份认证。(3) 伪造服务器:攻击者伪造一个认证服务器,放置在用户和真正的认证服务器之间,用户向伪造服务器发送登录信息时,伪造服务器同时将登录信息发送给真正的认证服务器,并将通过认证的用户信息记录下来。2口令安全口令安全是指用户口令本身在使用过程中产生的安全性问题。攻击者实施破坏口令安全的主要手段有:(1) 口令猜测:用户在口令的选择上通常不是很谨慎,用户经常喜欢使用的口令是用户的名字、注册名或注册名反序等;(2) 字典攻击:由于多数用户习惯使用有意义的单词或数字作为口令,某些攻击者就会使用字典中的单词来尝试用户的口令。所以大多数系统都建议用户在口令中加入特殊字符, 以增加口令的强度。(3) 穷举尝试(Brute Force):穷举测试是最全面的字典攻击,它使用口令字符串的全集作为字典。如果用户的口令较短,很容易被穷举出来。因此,许多系统都建议用户使用长口令。(4) 窥探:攻击者利用与被攻击者接近的机会,安装监视器或亲自窥视合法用户输入口令的过程,以得到口令。3策略安全策略安全是指整个系统在安全方面所实施的策略方面的安全问题,如口令管理、口令分发、文件处理等。系统安全遵从“木桶原则”,即系统整体安全性不会大于系统中安全性最薄弱的组成部分,就像木桶的容量取决于最短的桶壁。有很多系统管理员非常重视线路安全和口令安全,但却经常忽视策略安全。由于管理不善的原因,用户口令经常在无意中被泄露出去。攻击者实施策略安全攻击的主要手段有:(1) 口令泄露:掌握口令的人员有意或无意地泄露口令;已离开的人员使用旧口令进入系统;攻击者通过特洛伊木马获取口令。(2) 社交工程:攻击者冒充合法用户发送邮件或打电话给管理员,以骗取用户的口令。(3) 垃圾搜索:攻击者通过搜索被攻击者的废弃物,得到与被攻击系统有关的信息。如果用户将口令写在纸上又随便丢弃,则很容易成为垃圾搜索得攻击对象。1.3 相关技术说明1.3.1 散列函数散列函数又称Hash函数或杂凑函数,是将任意长的信息映射到一个固定长度的信息的函数。该固定长度信息称为该消息的哈希值,一般用于产生消息摘要,密钥加密等。常见的散列函数主要有:MD4,MD5和SHA-1等等。散列函数一般满足以下条件:1散列函数必须对任意长度的明文,产生固定长度的散列函数值。2对任意的明文m,,散列函数值h(m)可通过软件或硬件实现很容易的产生。3对任意的散列函数值x,要找到一个明文m与之对应,即x=h(m),在计算上是不可行的。4对一个明文m1,要找到另一个不同的明文m2,而且具有相同的散列函数值h(m1)=h(m2),在计算上是不可行的。5要找到任意一对不同的明文(m1,m2),而且具有相同的散列值h(m1)=h(m2),计算上是不可行的。条件1和2是所谓的“单向”(One-Way)特性。条件3和4是对使用散列值的数字签名方法所做的安全性保障。否则攻击者(Attacker)可以由已知的明文及相关数字签名来任意伪造对其他明文的数字签名。条件5主要的作用是防止所谓的“生日攻击”法(Birthday Attack)。通常能够满足条件1-4的,我们称之为“弱散列函数”(Weak Hash Function)。若同时能满足条件5的,我们称之为“强散列函数”(Strong Hash Function)。1.3.2 符号说明ID:用户的身份标识PW:用户密码,即用户口令R:用户产生的随机数/:联结运算符:异或运算符H(x):Hash函数,MD4, MD5或SHA-1中任选之一Hi(x):表示对x连续进行i次Hash运算Seed:随机种子第二章 动态口令身份认证技术 针对传统静态口令认证技术的诸多缺陷,安全专家提出了一次性口令认证技术(One-Time Password Authentication OTP),即动态口令认证技术。2.1 动态口令身份认证的概念所谓动态口令身份认证就是指用户登录系统、验证身份过程中,送入系统的验证数据是动态变化的,符合这个特征的身份认证方法称为动态口令身份认证。在登录系统时,用户只需输入自己的标识符和当前的动态口令,系统认证服务器会自动根据用户的标识符计算出该用户的当前口令,与用户输入的口令比较,对用户的身份进行认证。2.2 动态口令身份认证的基本原理动态口令身份认证的基本原理是在登录过程中加入不确定因子,使用户在每次登录过程中提交给认证系统的认证数据都不相同,系统接收到用户的认证数据后,以事先预定的算法去验算认证数据即可验证用户的身份。用户的口令并不直接用于验证用户的身份,用户口令和不确定因子使用某种算法生成的数据才是直接用于用户身份认证的数据。2.3 动态口令技术的特点动态口令技术具有下述特点:1动态性:每隔一段时间就会产生一个新的口令。2随机性:每一组动态口令都是随机、无规律的,无法轻易的被猜测和字典分析。3一次性:动态口令在被用过后便不再使用,否则就会产生系统报警日志,因此不必害怕在输入和传输时泄密。4不可复制性:生成动态口令的算法是一种极难复制的认证信息。5抗穷举性:动态口令不可能在一个很短的周期内穷举完,到下一周期,之前所做的穷举努力将全部作废,又需要重新开始。6方便性:与动态口令技术相关的产品如动态口令卡等,一般都体积小巧,便于随身携带,而产生的动态口令直接显示在液晶屏上,便于直接读取,这样就不需要记忆那些难记的口令,极为方便。2.4 动态口令认证的实现方式目前,动态口令认证技术主要有以下四种方式:2.4.1 异或运算方式异或运算方式将异或运算、加法运算等复杂度低的运算与散列运算相结合,认证双方通过这些运算方式计算双方交换的认证数据进行一次性口令身份认证。这种方式的特点是设计简单、运算量较小,而且实施的成本也较低。2.4.2 Lamport方式Lamport方式也称为哈希链(Hash Chains)方式。在初始化阶段选取一个口令PW和一个迭代值N,及一个单向散列函数H,计算Y=Hn(PW)(Hn()表示进行n次散列运算),并把Y和N的值存到服务器上。客户端计算Y=Hn-1(PW)的值,再提交给服务器。服务器则计算Z=H(Y),最后服务器将Z值同服务器上保存的Y进行比较。如果Z=Y,则验证成功,然后用Y的值取代服务器上Y的值,同时N的值递减1。通过Lamport方式,用户每次登录到服务器端的口令都不相同。这种方案易于实现,且无须特殊硬件的支持。但其安全性依赖于单向散列函数H,不宜在分布式的网络环境下使用。此外,使用Lamport方式进行身份认证用户需要进行多次散列运算,而且每隔一段时间还需要重新初始化系统,服务器的额外开销比较大。S/KEY口令序列认证方案就是一种基于Lamport方式的认证方案。2.4.3 时间同步方式(Time Synchronization)每个用户都持有相应的时间同步令牌(Token)。令牌内置时钟、种子密钥和加密算法。时间同步令牌根据当前时间和种子密钥每分钟动态生成一个一次性口令。用户需要访问系统时,将令牌生成的动态口令传送到认证服务器。服务器通过其种子密钥副本和当前时间计算出所期望的输出值,对用户进行验证。如果相匹配,则登录通过。时间同步方式的关键在于认证服务器和令牌的时钟要保持同步,这样在同一时钟内两者才能计算出相同的动态口令。然而时间同步方式的难点也在时间同步上,从技术上很难保证用户的时间令牌在时间上和认证服务器严格同步,而且数据在网络上传输和处理存在一定的延迟。当时间误差超过允许值时,对正常用户的登录往往造成身份认证失败。另外该方式的实现还需要有时间同步令牌这类特殊硬件的支持。2.4.4 挑战/应答方式(Challenge/Response)每个用户同样需要持有相应的挑战/应答令牌,令牌内置种子密钥和加密算法。用户在访问系统时,服务器随机生成一个挑战(Challenge)数据,并将挑战数据发送给用户,用户将收到的挑战数据手工输入到挑战/应答令牌中,挑战/应答令牌利用内置的种子密钥和加密算法计算出相应的应答(Response)数据。用户再将应答数据上传给服务器。服务器根据该用户存储的种子密钥和加密算法计算出相应的应答数据,再和用户上传的应答数进行比较来实施认证。该方式可以保证很高的安全性,是目前最可靠有效的认证方式。但该方式直接应用在网络环境下还存在一些缺陷:需要特殊硬件(挑战/应答令牌)的支持,增加了该方式的实现成本;用户需多次手工输入数据,易造成较多的输入失误,使用起来不方便;用户的身份ID直接在网络上明文传输,攻击者可很容易地截获它,留下了安全隐患;没有实现用户和服务器间的相互认证,不能抵抗来自服务器端的假冒攻击;挑战数据每次都由服务器随机生成,造成服务器开销过大。2.5 动态口令认证技术的安全性分析动态口令认证技术是针对静态口令认证技术存在的安全缺陷而提出的,为了显示出动态口令的优越性,本文将以静态口令技术的安全性分析为参照,对动态口令技术进行安全性分析。下面的表1是对动态口令认证技术的安全性的定性分析。表1 动态口令的安全性分析表攻击形式安全作用说明网络窃听完全抵御因为在网络中传输的不是用户的口令而是由口令计算得到的认证数据,攻击者无法窃听到用户的口令。由于在计算认证数据中使用了散列算法,攻击者也无法从认证数据得到用户的口令。截取/重放完全抵御因为每次用户提交的认证数据都是不同的,所以能有效地抵御截取/重放攻击。伪造主机一般抵御这取决于不同的一次性口令认证方案,例如S/KEY口令序列认证方案就无法抵御伪造主机攻击。口令猜测一般抵御一次性口令认证中用户的口令的安全性同样非常重要,如果用户口令过于简单,也容易被攻击者猜测到并实施攻击。但对于时间同步认证方式,攻击者即使猜测到用户口令,若没有时间同步令牌也无法实施攻击。字典攻击一般抵御面临的问题与口令猜测相同。穷举尝试一般抵御面临的问题与口令猜测相同。窥探一般抵御面临的问题与口令猜测相同。口令泄露有效抵御在许多一次性口令认证系统中,用户的口令不会保存在认证服务器上,而且也不会在网络中传输。这就大大的减少了口令泄露的可能性。社交工程有效抵御在许多一次性口令认证系统中,用户的口令不会保存在认证服务器上,所以系统管理员也不知道用户的口令,就能有效抵御此类攻击。垃圾回收一般抵御有些一次性认证系统可能会将一系列口令列表提供给用户使用,用户需要妥善管理口令列表才能减少安全威胁。若不妥善管理口令列表,同样会给攻击者留下漏洞。从上表可以看出,动态口令认证技术能有效的抵御大部分针对于静态口令认证的网络攻击,其安全性有了明显的提高,特别是能有效抵抗网络窃听、截取/重放、口令泄露、社交工程等攻击形式。但是,在遭受伪造主机、口令猜测、拒绝服务等攻击时,有许多的动态认证系统还是存在着安全漏洞。这需要在设计动态口令认证方案时,考虑得更加仔细和全面,才能有效地抵抗各种类型的网络攻击。2.6 动态口令技术的缺陷动态口令不是绝对安全的,它既是软件,又是硬件,所以相当于其他软件、硬件有的毛病,它也全都会有。同时,动态口令无法从根本上解决所有的问题。从密码学的理论上来说,一套完整的安全措施应该能够解决三个问题:身份确认、数据完整性、抗抵赖。双向CA证书采用静态口令可以实现上述三项功能,但是双向证书的解码速度较慢,并发性不好。而动态口令只能解决“身份确认”这一个问题,也就是说,它只能确认用户的身份,而无法实现“数据完整性”和“抗抵赖”这两项功能。由此可知,我们只有将动态口令与CA(Certificate Authority)相结合,才能建立一套完整的安全体系。目前,通常采用“单向CA证书+动态口令”,或者再采用128强安全代理等方案来解决这个问题。第三章 主要的动态口令身份认证方案 目前,动态口令认证的方案有很多种。本章将对其中的两种认证方案S/KEY口令序列认证方案和SAS-2认证方案做详细介绍分析。3.1 S/KEY口令序列认证方案3.1.1 S/KEY口令序列认证方案描述S/KEY是基于Lamport方式的动态口令认证方案,通常采用MD4、MD5或SHA-1单向散列算法作为加密算法。S/KEY口令序列认证方案的安全性是基于安全Hash函数,在S/KEY口令序列认证方案中可以选择MD4,MD5或SHA作为安全Hash函数,它们的输出都是128位。在基于S/KEY口令序列认证方案实现的动态口令认证系统中,口令产生程序把种子Seed和用户输入的用户的口令联结起来,再用Hash函数进行多次散列运算,散列次数为挑战数据中给出的迭代次数Seq,运算结果为64位二进制。最后将得到的64位二进制转换为一个由6个英文单词组成的短语,作为用户的一次性口令(即动态口令)。每个用户在服务器系统中有一个认证数据记录,它保存有用户下次成功认证的认证数据或刚初始化的第一个认证数据,这里的认证数据是64位二进制数而不是动态口令。在认证此用户时,服务器将接收到的动态口令解码成64位,然后再用相同的Hash函数散列运算一次,若运算结果与存储的认证数据相同,则认证成功,并用该认证数据替换原来保存的认证数据以供下次认证使用。每次认证成功后,迭代次数Seq减1再保存,以使用户和登录程序同步。3.1.2 S/KEY口令序列认证方案的实现过程S/KEY口令序列认证方案分为两个过程实现:注册过程和认证过程。1注册过程:(1) 新用户选择将在服务器上注册的用户名ID和口令PW,并提交注册请求和用户注册ID给服务器;(2) 服务器在收到注册请求和ID后,先检查该用户ID是否合法,若在认证数据库中已有该ID,则要求用户重新选择ID;(3) 若该ID为合法的ID,服务器为该ID选择随机种子Seed和最大迭代次数Seq,并将Seed和Seq发送给用户;(4) 用户收到Seed和Seq后,使用客户端计算程序计算Hn(Seed/PW)(其中n=Seq),即对Seed/PW进行Seq次Hash运算,并将计算结果Hn(Seed/PW)通过安全的信道发送给认证服务器;(5) 服务器收到Hn(Seed/PW)后,将Hn(Seed/PW)与对应的用户ID保存在认证数据库,同时将最大迭代次数减1后保存,即保存Seq-1。图1 S/KEY方案注册过程流程图2认证过程:(1) 用户向服务器发送登录请求,并将用户ID发送给服务器;(2) 服务器收到登录请求和用户ID后,在认证数据库中查询该ID是否存在。若m为非法ID,则拒绝此次请求;若ID为合法ID,则从数据库中取出相对应的种子Seed和迭代次数(Seq-i),并将这两个数据传送给客户端;(3) 客户端收到种子数Seed和迭代次数(Seq-i)后,利用客户端的计算程序计Hn(Seed/PW),(其中n=Seq-i),并将计算结果作为认证数据发送给服务器;(4) 服务器收到认证数据后,用服务器端的计算程序(与客户端计算程序使用同样的Hash算法)计算H(HSeq-i(Seed/PW),然后将此计算结果与数据库中存储的认证数据HSeq-i+1(Seed/PW)相比较。若两者相同,则认证通过,用户成功登录;否则,认证失败,服务器拒绝用户的登录请求。(5) 若服务器通过了对用户的身份认证,将收到的HSeq-i(Seed/PW)替换数据库中保存的HSeq-i+1(Seed/PW),作为下一次认证使用。图2 S/KEY方案认证过程流程图在S/KEY口令序列认证方案中,迭代次数是随着认证的次数递减的。在迭代次数递减为0之前一定要进行重新初始化的工作。一旦迭代次数减为0后,用户就不能再次登录。在重新初始的过程中,用户的ID不需重新设置,只需重新进行注册过程中的(2)-(4)步的工作。在实际的应用中,一般当迭代次数小于等于5时,服务器会要求用户执行重新初始化工作。3.1.3 S/KEY口令序列认证方案的安全性分析在实现S/KEY口令序列认证方案的认证系统中,用户的口令既不存储在服务器和客户端中,也不在网络上传输,在认证过程中只有一次性口令在网络中传输一次。所以该实现基本能满足抵御被动攻击的目标。但是,S/KEY口令序列认证方案并没有提供对传输数据的加密,因此在S/KEY口令序列认证方案中,种子Seed和迭代值Seq都是以明文形式在网络上传输,同时S/KEY口令序列认证方案也无法防范假冒的服务器欺骗合法用户。由于存在上述的缺陷,S/KEY口令序列认证方案就不能保护认证系统遭受“小数攻击”、“协议破坏攻击”和“内部人员攻击”等形式的网络攻击。此外,用户生成动态口令时要计算HSeq-i(Seed/PW),即要计算(Seq-i)次Hash计算尽管该运算随着i的增大而逐渐减小,但当Seq较大时,用户要得到前面部分口令需要进行的运算量很大,这就加大了系统的计算负担降低了使用效率。3.1.4 S/KEY的改进方案S/KEY口令序列认证方案有两个主要的安全缺陷,这使得S/KEY口令序列认证方案容易遭受“小数攻击”。这两个安全缺陷是:1S /KEY口令序列认证方案只提供单向的认证,即服务器对用户身份的进行认证,却没有提供用户对服务器的认证,这就使得攻击者很容易冒充服务器进行攻击。2用户的种子和迭代值是以明文形式在网络上传输。为了解决这两个问题,我们提出了一种改进方案:将用户的口令用的服务器公共密钥经RSA加密算法加密后保存在用户认证数据库中,而不再保存上一次认证的认证数据。这样客户端和服务器端都可以进行相同的散列运算,同时迭代次数还可以随机选择。这就省去了S/KEY认证系统的重新初始化过程,同时也能抵御攻击者修改迭代数进行小数攻击。在本改进方案中,客户端和服务器分别将用户口令、变化的迭代值和种子进行摘要运算生成一次性口令,再将其作为一次性会话密钥。双方依次独立产生两个一次性会话密钥,并都使用这两个会话密钥加密/解密对方传送过来的认证数据,从而达到相互鉴别的目的。本改进方案的一个关键是,利用了对称密钥加密的方法实现用户和服务器的相互认证。在本方案中加入了随机数和时间戳,这就可避免口令重复和攻击者截取种子进行攻击的可能。3.2 SAS-2认证方案3.2.1 SAS-2认证方案的实现过程SAS-2是针对SAS协议的安全漏洞所提出来的改进协议。它分为注册阶段和认证阶段。1SAS-2注册步骤: (1) 用户输入想要注册得用户ID和用户口令PW,同时生成一个随机数N1,并用随机数和用户输入的数据计算A=H(ID,PWNi),用户需要保存其ID,PW和随机数N1;(2) 用户将计算所得的认证数据A和用户ID通过安全的信道提交给服务器;(3) 服务器将认证数据A和ID相对应保存。图3 SAS-2方案注册流程图2认证步骤:(1) 用户发出登录请求,并输入ID,PW和Ni;(2) 在客户端计算Ci=H(ID,PWNi),同时在客户端生成一个随机数Ni+1并保存Ni+1,客户端再使用Ni+1计算:Ci+1= H(ID,PWNi+1)Di+1= H(ID,Ci+1)其中Ci+1作为下一次认证的认证数据;(3) 用第(2)步计算得到的数据Ci,Ci+1和Di+1,计算:= Ci+1(Di+1+Ci)= Di+1Ci(4) 将客户端计算所得的,和ID通过网络传送给服务器;(5) 服务器收到,和ID后,从认证数据数据库中取得与ID相对应的Ci,然后计算:Ci=Di+1CiCi=Di+1 (1-1)得到Di+1,再用Ci和(1-1)式得到的Di+1计算:(Di+1+Ci)=Ci+1(Di+1+Ci)(Di+1+Ci)=Ci+1 (1-2)得到Ci+1,最后用(1-2)式得到的Ci+1和ID计算Di+1=H(ID,Ci+1);(6) 将Di+1与(1-1)式计算所得的Di+1相比较。若两者相等,则服务器认可了用户的合法身份,反之,服务器则会拒绝用户的登录请求;(7) 一旦服务器认可了用户的合法身份,服务器将用Ci+1,替代原有的Ci,保存到认证数据数据库中,为下次认证使用。同时计算=H(ID,Di+1);(8) 服务器将通过公共网络发送给用户,提供用户对服务器进行认证;(9) 用户收到后,以本地的信息ID和Di+1计算=H(ID,Di+1),并比较和是否一致,若两者相同,表明服务器身份合法,用户登录成功;反之,用户会拒绝本次登录,尝试重新登录。图4 SAS-2方案认证流程图3.2.2 SAS-2认证方案的安全性和效率分析SAS-2认证方案是一种非常有效的一次性口令认证方案,SAS-2认证方案能有效抵御截取/重放攻击、伪造攻击和拒绝服务攻击等。SAS-2认证方案与S/KEY口令序列认证方案相比较,有着根本的不同。在SAS-2认证方案中在网上传输的都是用户的口令和其它计算因子通过异或运算后的认证数据,其保密性较好;用户也不用重新进行初始化工作,更加方便;在生成认证数据时所做Hash运算大大减少了,也就减少了对系统资源的占用,性能更高;而且SAS-2认证方案还提供了用户对服务器的认证。但是,由于SAS-2认证方案需要在客户端保存随机数N,这在方案的应用实现中可能给用户带来不便。若是需要用户记忆每次认证所需的随机数N,则增加了用户的负担,给用户带来了使用上的不便。针对这个问题有一种改进的方案是:在SAS-2认证方案采用挑战/响应方式。这样,用户就不用记忆随机数N,但是,认证双方交换认证数据的次数会增加。3.2.3 SAS-2改进方案改进方案相对于原方案只作了很小的改动,整个过程的步骤几乎是相同的。改动的地方主要是:在注册过程中,原来用户记忆的Ni将随着ID, A通过安全的信道提交给服务器,由服务器端保存ID和对应的A和Ni,而用户只需记忆ID和PW,不用再记忆Ni。认证过程中的不同之处在于,例如当用户ID提出第i次登录请求后,服务器将从数据库中提出与ID相对应的Ci和Ni,并将Ni传送给用户,而用户针对此次认证而选择的随机数Ni+1,将同,一起提交给服务器。在原方案中就没有这些步骤,因为原方案中Ni是由用户保存,而改进方案中的Ni是由服务器保存的,这就是改进方案和原方案的最大不同,其他步骤几乎都是一模一样的。综上所述,SAS-2认证方案相对于前面的几种一次性口令认证方案,在工作性能和安全性上都有明显的提高。由于SAS-2认证方案步骤简单,而且只进行少量的散列运算,对系统资源的消耗很小,其非常适合用于Internet上Web应用系统的身份认证(这样的系统通常会有大量用户同时访问),同时也可用于手机、PDA等设备。而基于Lamport方式的S/KEY口令认证方案由于其迭代次数比较大,需要进行大量的散列运算,所以主要应用在Unix系统中对登录系统的用户进行身份认证。第四章 系统方案说明及其实现4.1 系统方案说明为了提高身份认证系统的可靠性,确保AS的性能,本系统将静态口令机制和动态口令机制结合起来,用动态口令弥补静态口令易于被截取/重放攻击的弱点;同时静态口令又作为动态口令的防护墙,在进行动态口令认证前必须通过静态口令的认证,从而解决了动态口令易于暴露系统资源的问题。静态口令和动态口令互相弥补,相互依赖,使该方案具有较高的安全性。该系统是基于MD5算法和Schnorr协议产生的,通过采用MD5算法对用户口令PW进行单向的不可逆加密,利用Schnorr协议来产生动态口令并进行验证。本文使用Eclipse+MySQL实现了系统。4.2 系统设计相关知识4.2.1 MD-5算法MD5(Message Digest Algorithm-5,信息摘要算法)是一种单向的散列函数,可作用于任意长度的原文m,不管原始数据有多长,其输出结果h=MD5(m)的长度总是固定的,通常为128位。MD5满足如下两个特性:1单向性(不可逆性)。给定消息m,很容易计算h;给定h,要根据MD5(m)=h计算m很难。2抗碰撞性。即给定消息m,要找到另一消息m,使MD5(m)=MD5(m)很难。4.2.2 Schnorr协议描述Schnorr协议由Claus Schnorr提出,是一种挑战/应答方式的身份认证机制,其安全性建立在计算离散对数的难度上。现假设User(U)向Server(S)证明自己的身份,Schnorr协议可描述如下:(1) 产生环境参数。首先选取两个素数p和q,q是p-1的素数因子;然后选择a(a1),且a满足aq 1 mod p。为了产生特定的公钥/私钥对,选择一个小于q的随机数s,此即私有密钥;然后计算v = a-s mod p,此即公共密钥。(2) U选择一个小于q的随机数r,并计算x = ar mod p。 (3)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论