文档介绍:一种实现双向认证的动态口令身份认证方案
摘要本文在分析现有动态身份认证系统的基础上,结合使用国际标准加密算法设计了双向通信协议、动态密码生成算法、以及动态重调机制,解决了目前动态身份认证系统只能实现服务器对客户端的单向认证的缺陷,和以牺牲口令随机度来解决“失步”问题的不足。
关键词双向身份认证、动态口令、同步重调,动态身份认证系统
身份认证技术是信息安全理论与技术的一个重要方面,它是网络安全的第一道防线,用于限制非法用户访问受限的网络资源,是一切安全机制的基础。这也就使之成为黑客攻击的主要目标。因此使用一个强健有效的身份认证系统对于网络安全有着非同寻常的意义。
就国内外身份认证技术的发展情况来看,最传统的身份认证方式是帐号——口令方式;新兴的身份认证方式包括:生物特征识别法、动态口令(又称一次性口令)认证法等。本文中主要展开对动态口令认证法的讨论和研究。
1 背景知识介绍
PKI体系
PKI(Public Key Infrastructure 公共密钥基础设施)是一种遵循标准的密钥管理平台,它能够为所有网络应用透明的提供采用加密和数字签名等密码服务所必需的密钥和证书管理。公共密钥基础设施则是希望从技术上解决网上身份认证、信息的保密性、信息的完整性和不可抵赖性等安全问题,为网络应用提供可靠的安全服务。
PKI的基础技术包括加密、数字签名、数据完整性机制、数字信封、双重数字签名等。完整的PKI系统必须具有权威认证机构(CA)、数字证书库、密钥备份及恢复系统、证书作废系统、应用接口(API)等基本构成部分,构建PKI也将围绕着这五大系统来着手构建。
RSA加密算法
RSA加密算法,又称非对称算法,采用公钥——私钥对来对信息进行加、解密。
RSA加密算法的过程如下:
(1)取两个随机大素数p和q(保密)。
(2)计算公开的模数r=pq(公开)。
(3)计算秘密的欧拉函数® =(p-1)(q-1)(保密),丢弃两个素数p和q。
(4)随机选取整数e,满足gcd(e,  ®)=1(公开e,加密密钥)。
(5)计算d,满足de≡1(mod ®)(保密d,解密密钥,陷门信息)
(6)将明文x(其值的范围在0到r-1之间)按模为r自乘e次幂以完成加密操作,从而产生密文y(其值也在0到r-1范围内)
y=xe (mod r)
(7)将密文y按模为r自乘d次幂,完成解密操作
x=yd (mod r)
下面用一个简单的例子来说明RSA公开密钥密码算法的工作原理。
取两个素数p=11,q=13,p和q的乘积为r=p×q=143,算出秘密的欧拉函数®=(p-1)×(q-1)=120,再选取一个与®=120互质的数,例如e=7,作为公开密钥,e的选择不要求是素数,但不同的e的抗攻击性能力不一样,为安全起见要求选择为素数。对于这个e值,可以算出另一个值d=103,d是私有密钥,满足e×d=1 mod ®,其实7×103=721除以120确实余1。欧几里德算法可以迅速地找出给定的两个整数a和b的最大公因数gcd(a,b),并可判断a与b是否互素,因此该算法可用来寻找解密密钥。
动态口令生成原理及技术
动态口令(Dynamic Password),又称一次性口令(OTP-One Time Password),是相对于传统的静态口令而说的。它一般由某种终端设备,根据动态口令生成算法产生的随动态参数变化而变化的口令。
动态口令是变化的密码,其变化来源于产生密码的运算因子是变化的。动态口令的生成算法一般都采用双运算因子,一是用户身份的识别码,是固定不变的,如用户的私有密钥;二是变动因子,如时间、随机数、计数器值等。
根据动态因子的不同,产生了不同的动态口令认证技术。主要分为两种,即同步认证技术和异步认证技术。其中同步认证技术又分为基于时间同步认证技术(Time Synchronous)和基于事件同步认证技术(Event Synchronous);异步认证技术即为挑战/应答认证技术(Challenge/Response)。
一次性口令的概念是在20世纪80年代初由美国科学家Leslie Lamport提出的。之后贝尔通信研究中心于1991年研制出了第一个动态口令认证系统S/KEY。随之美国著名加密算法研究室RAS研制成功了基于时间同步的动态口令认证系统RSA SecureID。自此身份认证步入了动态口令身份认证系统的时代。国内最早的动态口令系统大约出现在十年前,但技术不成熟,市场前景惨淡,至今尚未得到推广。
2 现存动态口令认证系统的不足
和缺陷以及解决方案
存在的