论文部分内容阅读
在开放式的网络环境中,身份认证指的是用户身份的确认技术,它是网络安全的一道重要防线。无疑,口令是最简单也是最常用的一种身份认证方法。但通常使用的静态口令有许多固有的弱点:在分布式网络系统中,如不加密,可以被清晰地看到明文;即使加密,也易受重放攻击、差分密码分析等其他攻击手段的影响,从而给系统的安全性埋下隐患。
20世纪80年代初,针对静态口令认证的缺陷,美国科学家LeslieLamport首次提出了利用散列函数产生一次性口令(One-TimePasswordSystem,简称OTP)的思想。OTP的基本原理是在登陆过程中加入不确定因素,即每次登录过程中计算所得的密码都不相同,系统接收到口令后,以同样的算法作一个验算即可验证用户的身份。OTP是一种摘要认证,它采用单向迭代杂凑函数来计算用户的密码。在基于OTP的身份认证技术中,客户端用户用以产生OTP口令的秘密通行短语不在网络上传输,而在网络上传输的OTP口令是一次一变且绝不重复的,可以防止重放攻击、词典攻击等常用的攻击手段,为对付窃听者以及公开的登陆会话提供了强有力的保护。但是,基于OTP技术的身份认证系统在实际实施和运用中,仍然存在一些潜在的问题。
本文以S/KEY身份认证系统为例,详细讨论了一次性口令身份认证系统的原理和工作机制,分析了这种认证系统的安全性,指出了其中的安全漏洞:(1)S/KEY身份认证系统的协议部分实际是一个单向认证协议,无法防止冒充攻击;
(2)在S/KEY身份认证系统协议执行过程中,服务器端发送的挑战信息及客户端发送的OTP短语均以明文形式在网上传输,这就给黑客攻击创造了条件;(3)S/KEY身份认证系统不具有协商与交换会话密钥的功能。
因此,本文给出了一种增强型OTP身份认证系统——SOTPIA系统的设计方案。该系统将先进的加密技术——IDEA算法、RSA算法及Diffie-Hellman密钥交换协议与原一次性口令身份认证系统——S/KEY身份认证系统相结合,使其可以具有双向身份鉴别、避免明文传输、拥有会话密钥等特点,并有效的克服了小数攻击。本文还给出了利用Java语言平台无关性、支持多线程、位运算能力强的特点实现了SOTPIA系统的具体设计方案及其主要环节的实现方法。在客户端实现了登录功能,在服务器端实现了注册用户、激活用户、接受用户登录等功能。整个系统拥有良好的用户界面,运行测试结果也很正常,能够达到预先设计效果。