一种实现双向认证的动态口令身份认证方案
动态口令(OTP)认证技术概览

动态口令(OTP)认证技术概览动态口令(OTP,One-Time Password)又称一次性密码,是使用密码技术实现的在客户端和服务器之间通过共享秘密的一种认证技术,是一种强认证技术,是增强目前静态口令认证的一种非常方便技术手段,是一种重要的双因素认证技术,动态口令认证技术包括客户端用于生成口令产生器的,动态令牌,是一个硬件设备,和用于管理令牌及口令认证的后台动态口令认证系统组成。
一、OTP历史溯源动态口令(OTP)有一个同名确不同翻译的前辈,一次性密码(OTP,One-Time Pad),也叫密电本,是一种应用于军事领域的谍报技术,即对通信信息使用预先约定的一次性密电本进行加密和解密,使用后的密电本部分丢弃不再使用,能够做到一次一密。
如果看过一些国内的谍战电视剧可能会对在二战时期,日本轰炸重庆中的一个号称“独臂大盗”的日本间谍有印象的话,他同日军通电使用的就是一次性密码技术,使用诺贝尔获奖的小说《The Good Earth》进行谍报编码,最后是被称为美国密码之父的赫伯特·亚德利破获。
而目前在安全强认证领域使用的OTP动态密码技术,源于最早由RSA公司于1986年开发的RSA SecureID产品,动态密码并不是一次性密码技术,而是动态一次性口令技术。
目前,国际上动态口令OTP有2大主流算法,一个是RSA SecurID ,一个是OATH组织的OTP算法。
如果在国内来说的话,另一个是国密的OTP密码算法。
RSA SecurID使用AES对称算法,OATH使用HMAC算法,国密算法使用的国密SM1(对称)和SM3(HASH)算法。
二、OTP认证原理与同步方法动态口令的基本认证原理是在认证双方共享密钥,也称种子密钥,并使用的同一个种子密钥对某一个事件计数、或时间值、或者是异步挑战数进行密码算法计算,使用的算法有对称算法、HASH、HMAC,之后比较计算值是否一致进行认证。
可以做到一次一个动态口令,使用后作废,口令长度通常为6-8个数字,使用方便,与通常的静态口令认证方式类似,使用方便与系统集成好,因此OTP动态口令技术的应用非常普遍,可以应用于多种系统渠道使用,如:Web应用、手机应用、电话应用、ATM自助终端等。
用Java Socket实现高校信息化中用户动态口令身份认证

用Java Socket实现高校信息化中用户动态口令身份认证身份认证作为网络应用系统的第一道防线,是最重要的安全服务。
在高校信息化过程中,如何保障高校信息资源的安全性,已经受到越来越多的关注。
文章基于S/Key一次性口令身份认证系统以及Java套接字,Applet等技术,详细介绍了如何用Java套接字实现高校信息化系统中动态口令身份认证的过程,并相应的给出了一些关键代码。
标签:身份认证,S/Key系统,一次性口令,高校信息化一引言1 应用背景在目前的高校信息化系统中,统一身份认证是很重要的。
而如何解决好身份认证是高校信息化系统中一个关键的问题。
身份认证主要用于阻止非授权用户对系统的入侵或访问,是信息安全系统的基础。
根据所采用手段的不同,可分为基于秘密信息的和基于物理安全性的身份认证两种。
基于秘密信息的身份认证用的是静态口令。
每个合法用户拥有一个用户名,口令对,用户登录系统或使用某项功能时,需输入自己的用户名与口令,系统即可确认是否为合法。
静态口令身份认证方便,简洁,但存在诸多缺点。
动态口令身份认证是现在研究较多并且技术相对比较成熟的认证方式,它克服了静态口令技术所固有的许多缺点,特别是对于分布式身份认证来说具有非常高的安全性。
2 静态口令认证的缺点(1)每次访问系统时都要输入静态口令,易被偷窥泄密。
(2)静态口令只能进行系统对用户的单向认证,攻击者可伪装成系统骗取用户口令。
(3)其安全性基于用户设置的口令,很多用户为了方便,设定的口令中含个人信息,如姓名、生日等,极易破译。
且长期使用同一口令.被破解的可能性极大。
(4)在访问不同安全级别的系统时,都要求用户提供口令。
用户为方便记忆.往往采用相同的口令,而低安全级别的口令很容易被攻击者获得并用来对高安全级别系统进行攻击。
(5)系统中用户的口令以文件形式存储在认证方,攻击者可利用系统存在的漏洞获取口令文件。
一旦该文件被攻击者得到,他们就可使用解密程序来破译,从而获取对系统的访问权。
一种远程动态身份认证方案

注册过 , s 则 在数据库中找出与该用户对应的随机
数 N , 回给用 户 U。 。返
于 口令的认证方式是 目前最流行。传统的静态 口
令认 证采 用 固定 用 户名/ 口令 的机制 , 在着 诸 多 存
③用户 u产生一个新的随机数 N , 并把 以下
收 到本 文 时 间 :0 6年 1 月 2 日 20 1 O 作者简介 : 安兴亚 , , 男 硕士 , 师。研究方 向 : 讲 计算机 网络应用 。童小念 , , 女 副教授 , 研究方 向: 网络与多媒 体应 用 、
计算 机体 系结 构。
为异或运 算 。
() 2 身份 认证 阶段
①用户 u向认证服务器 s 发送身份标识 I , D
提 出认 证请 求 。
④认 证 服务器 s用用 户 u注 册 阶段 提 交 的验 证 因子 V r e 与接 收 到 的前 两项 数 据 分 别作 异 或运 算 , 到 H( N ) H ( lN )再 检验 H( P 得 Pl 。 和 P , I l H( lN ) 与验证 因子 V r 否 相 等 , 果 相 等 , 。) l e是 如 则用
连续进 行 n次 H s 算 , ” ah运 “l 为级 联运 算 。固定 l 口令 P由用户 白行 保管 。
响, 而使特征数据 的提取或进行 匹配时产 生困难。 作为识别码的生物特征数据在传输 中易被非法截
获 , 响 安全 性 。而 且 , 物特 征 识别 技 术 的 成本 影 生
新换 卡 , 这无 疑增加 了用 户 的经 济 负担 。而且 这种 认证 系统 的升级 和 改造 比较 困难 , 费用也 较 高 。基
一种动态口令身份认证协议的设计与研究

2S h o f C mp trS in e & T c n lg , o c o iest S z o Ja g u 21 0 6, hn .c o lo o ue ce c e h oo y S o h w Unv ri y, uh u,in s 5 0 C ia
W ANG o g xa, Ch n - i ZHU n qnDein a d r s a c f d n m i a s r s r a t n iain p oo o. mp  ̄r En i Ya - i. sg n e e r h o y a c p swo d u e uhe tc to r tc 1 Co u g-
q e h rf s d s r ie at c n e l e t — y a t e t a in. h c s i o s l n 2 r t c 1 h s i c n p o e t u e ’ u r t e e u e e vc t k a d r ai wo wa u h n i t a z c o w ih i mp s i e i GS p oo o . u ,t a r t c s r s b T
n e ig a d A piain .0 0 4 ( 8 : 1 7 . e r n p l t s 2 1 。 6 1 )7 — 3 n c o
Ab ta t T e d n mi a s o d u e u h n i ai n me h n s i a mp ra t a p c f t e a te t ai n tc n l g d v lp s r c : h y a c p s w r s r a t e t t c a im s n i o tn s e t o h u h ni t e h o o y e eo — c o c o me t n t e b s f a ay i g t r tc l , AS 2 a d 2 S,h s p p r p o o e r s c r y a c p s wo d u e u h n n . h a i o n l zn wo p oo os S - n G ti a e r p s s a mo e e n e d n mi a s r s r a t e — O s
双因子双向认证方案

1. 引言在当今的数字化时代,网络安全已经成为了企业和个人必须面对的重大挑战。
传统的用户名和密码认证方式已经无法满足对安全性更高的需求。
为了提高身份验证的可靠性和安全性,双因子双向认证逐渐成为企业的首选方案。
本文将介绍双因子双向认证方案的工作原理和实施步骤。
2. 双因子认证双因子认证是指在用户登录时需要同时提供两个因素来验证其身份。
通常情况下,这两个因素可以分为以下几种类别:•知识因素:用户所知道的信息,例如密码、个人识别码等。
•物质因素:用户所拥有的物品,例如手机、USB密钥等。
•生物因素:用户的生物特征,例如指纹、虹膜等。
通过结合使用这两种或更多种类的因素,双因子认证可以大大提高用户身份验证的安全性。
3. 双向认证除了用户进行认证外,服务提供方也可以对用户进行认证。
这被称为双向认证。
在双向认证中,服务提供方要求每个用户在进行身份验证之后,还需要通过验证来确认服务提供方的身份。
这种双向认证可以防止中间人攻击和其他身份欺骗行为。
4. 双因子双向认证方案的工作原理双因子双向认证方案结合了双因子认证和双向认证的特点,以确保身份验证的可靠性和安全性。
其工作原理如下:1.用户发起认证请求并提供用户名和密码。
2.服务提供方验证用户名和密码的正确性。
3.服务提供方生成一个随机数(称为挑战)发送给用户。
4.用户接收到挑战后,使用私钥对挑战进行签名,并将签名发送给服务提供方。
5.服务提供方使用用户事先注册的公钥验证签名的有效性。
6.如果签名有效,则服务提供方确认用户的身份,并返回一个随机数(称为应答)给用户。
7.用户使用私钥对应答进行签名,并将签名发送给服务提供方。
8.服务提供方使用用户事先注册的公钥验证签名的有效性。
9.如果签名有效,则服务提供方确认自己的身份。
10.用户和服务提供方完成双向身份验证,认证成功。
5. 双因子双向认证方案的实施步骤要实施双因子双向认证方案,需要按照以下步骤进行操作:1.部署公钥基础设施(PKI)架构,为用户和服务提供方生成公钥和私钥对。
基于SHA和RSA算法 实用有效的双向身份认证系统

() 2 将静 态 口令机制和动态 口令机 制相结合 , 动态口令 用
计安24 簟茔O 棚 o 6 6 _ i
维普资讯
弥补静 态 口令易于被截取 /重放攻击 的弱点; 在进行动态 口令 认证的同时 又必 须通过静 态口令 的验证 , 从而解决 了动态口令
重要地位 。 身份认证足信息安全领域的一个重要方面 , 它是根
据用户身 份号UI D、口令、网络地址 及其 他信息对用户所声称 的身份进 行认证 的过程 , 是安全 系统的第一道防线 。因此 ,身
( ) 战 /应答方案 ( hl ne R so s) 3挑 c al g / ep ne e 每个 用户都持 有相应的挑战/应答令牌。 令牌 内置密钥和
目前有 许多方法可 以实现 一次性 口令方案 。 常用的有如下
三 种…:
点是明显的【:1采 用C /S 1() 1 模式 , 易于在网络环境下实现; 2 () 在 客户端 和服务器之间通过密钥 鉴别 , 密钥不用在 网络传送 ; () 3灵活的认证机制 ,可支持 P P, A c P P P, HAP, NI lgn U x o i 等。因而本文的设计 以挑战 /应答 方案为基 础。
份认证方案。
身份认证 系统 的方案设计
虽然 S Ke / y方案易于实现而且无 需特殊的硬件 ,但其安
全性依 赖于单 向函数 , 而且 不宜用在分布式 网络环 境下 。 时钟
一
、
常用的一次性口令身份认证方案分析
同步 方案 对时 钟偏差的解决会引起其他相关的安 全问题。 虽然 挑战 /应 答方案直 接用在网络环境下也存在一些 不足 , 但其优
维普资讯
认证系统
研 究所 陈 航 周剑 岚 冯 珊
电子支付安全中的双因素认证方案研究

电子支付安全中的双因素认证方案研究随着现代科技的飞速发展和互联网的普及,电子支付作为一种便捷快速的支付方式,正被越来越广泛地应用于日常生活中。
然而,随之而来的支付安全问题亦不可忽视。
为了保障用户的资金安全,各大电子支付平台纷纷引入双因素认证方案。
本文将探讨电子支付安全中的双因素认证方案的研究。
一、双因素认证的定义和原理双因素认证,简称2FA(Two-Factor Authentication),顾名思义即用户在进行身份认证时需要提供两个独立的要素,通常是“知道的”和“拥有的”。
“知道的”是指用户所知道的信息,比如密码、个人信息等。
而“拥有的”是指用户所拥有的物品,例如手机、钥匙等。
通过结合两个独立要素,双因素认证提高了登录的安全级别,减少了被黑客攻击的风险。
二、已有的双因素认证方案目前,双因素认证方案主要包括以下几种形式:1. 动态口令动态口令是一种基于时间的密码生成技术。
用户在登录时需要输入除了账号和密码之外的一次性密码,这个密码在登录之后就会自动失效。
常见的动态口令生成方式包括短信验证码、手机令牌、软件令牌等。
2. 生物特征识别生物特征识别是通过扫描用户的生物特征来进行身份认证的技术,常见的生物特征识别包括指纹识别、虹膜识别和面部识别等。
这种技术借助于现代手机或电脑上的传感器和摄像头进行身份认证,用户只需用指纹或者眼睛接触感应器,系统就能判断身份的真实性。
3. 第三方身份认证第三方身份认证是一种通过与用户信任的第三方机构进行联动来验证身份的方法。
用户在注册或登录时,通过提供第三方认证机构可信的身份信息,例如银行卡信息或社交媒体账号,来增加身份验证的可靠性和安全性。
三、双因素认证方案的优势和挑战双因素认证方案具有以下几个优势:1. 提高安全性:双因素认证有效地提高了身份认证的安全性,突破了传统的单一密码登录模式,防止黑客通过猜测或破解密码进行非法访问。
2. 用户友好:相较于传统的密码登录方式,双因素认证方案更加便捷和用户友好。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种实现双向认证的动态口令身份认证方案 来源:网店装修 http://www.7wangdian.com
摘 要 本文在分析现有动态身份认证系统的基础上,结合使用国际标准加密算法设计了双向通信协议、动态密码生成算法、以及动态重调机制,解决了目前动态身份认证系统只能实现服务器对客户端的单向认证的缺陷,和以牺牲口令随机度来解决“失步”问题的不足。
关键词 双向身份认证、动态口令、同步重调,动态身份认证系统
身份认证技术是信息安全理论与技术的一个重要方面,它是网络安全的第一道防线,用于限制非法用户访问受限的网络资源,是一切安全机制的基础。这也就使之成为黑客攻击的主要目标。因此使用一个强健有效的身份认证系统对于网络安全有着非同寻常的意义。
就国内外身份认证技术的发展情况来看,最传统的身份认证方式是帐号——口令方式;新兴的身份认证方式包括:生物特征识别法、动态口令(又称一次性口令)认证法等。本文中主要展开对动态口令认证法的讨论和研究。 1 背景知识介绍 1.1 PKI体系
PKI(Public Key Infrastructure 公共密钥基础设施)是一种遵循标准的密钥管理平台,它能够为所有网络应用透明的提供采用加密和数字签名等密码服务所必需的密钥和证书管理。公共密钥基础设施则是希望从技术上解决网上身份认证、信息的保密性、信息的完整性和不可抵赖性等安全问题,为网络应用提供可靠的安全服务。
PKI的基础技术包括加密、数字签名、数据完整性机制、数字信封、双重数字签名等。完整的PKI系统必须具有权威认证机构(CA)、数字证书库、密钥备份及恢复系统、证书作废系统、应用接口(API)等基本构成部分,构建PKI也将围绕着这五大系统来着手构建。 1.2 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是否互素,因此该算法可用来寻找解密密钥。 1.3 动态口令生成原理及技术
动态口令(Dynamic Password),又称一次性口令(OTP-One Time Password),是相对于传统的静态口令而说的。它一般由某种终端设备,根据动态口令生成算法产生的随动态参数变化而变化的口令。
动态口令是变化的密码,其变化来源于产生密码的运算因子是变化的。动态口令的生成算法一般都采用双运算因子,一是用户身份的识别码,是固定不变的,如用户的私有密钥;二是变动因子,如时间、随机数、计数器值等。
根据动态因子的不同,产生了不同的动态口令认证技术。主要分为两种,即同步认证技术和异步认证技术。其中同步认证技术又分为基于时间同步认证技术(Time Synchronous)和基于事件同步认证技术(Event Synchronous);异步认证技术即为挑战/应答认证技术(Challenge/Response)。
一次性口令的概念是在20世纪80年代初由美国科学家Leslie Lamport提出的。之后贝尔通信研究中心于1991年研制出了第一个动态口令认证系统S/KEY。随之美国著名加密算法研究室RAS研制成功了基于时间同步的动态口令认证系统RSA SecureID。自此身份认证步入了动态口令身份认证系统的时代。国内最早的动态口令系统大约出现在十年前,但技术不成熟,市场前景惨淡,至今尚未得到推广。 2 现存动态口令认证系统的不足 和缺陷以及解决方案 2.1 存在的不足和缺陷
不可否认基于动态口令的身份认证系统给网络安全带来了福音。它的优点,如动态性、一次性、随机性、多重安全性等,从根本上有效修补了传统身份认证系统存在的一些安全隐患。比如,可以有效防止重放攻击、窃听、猜测攻击等。但就目前的研究成果、使用情况来看,它同样也存在这不足,以及技术上的难关。
现有的基于动态口令的身份认证系统都只能实现单向认证,即服务器对客户端的认证,这样就不能避免来自服务器端的攻击。随着网络应用的多样性发展,越来越多的网络应用要求能够实现双向认证以确保双发的利益,如电子商务、金融业务等,因此实现双向认证就成为了身份认证的一个必然趋势。 对于同步认证技术来说,保证服务器端和客户端的高度同步是必需的。此时如何保持服务器和众多客户端同步就成了一个技术难关。基于同步认证技术的动态身份认证系统都存在“漂移”问题,也即“失步”。目前的解决办法往往是以牺牲口令的随机度来弥补这个缺陷。这无疑给系统带来了很大的安全隐患。
当然异步认证技术不存在“漂移”问题,但是它进行认证的过程比较繁琐,占用通讯时间太长,效率比较低。
本文针对上面提到的动态口令认证系统的不足和缺陷设计了一个新方案。该方案采用双向认证通信协议实现了双向认证,并设计了一种失步重调机制。 2.2 改进方案 2.2.1 双向认证通信协议
在这个协议中使用了直接信任模型,即客户端和服务器端通过注册阶段而建立直接信任关系。(直接信任是最简单的信任形式。两个实体之间无须第三方介绍而直接建立起来的信任关系称为直接信任。)
协议中包括两个阶段:注册阶段、登陆阶段。 1) 注册阶段 注册阶段是为了让Client和Server建立初始信任关系。整个注册过程通过安全信道进行。
注册阶段中Client和Server交换各自的id和公钥。服务器端将 加密后存储。客户端将 加密后存储在令牌中。 图1 client通过安全信道在服务器进行注册 2)登陆阶段 符号说明: 表示用密钥加密括号内信息。 表示用密钥解密括号内信息。 表示客户端公钥。 表示客户端私钥。
表示服务器端公钥。 表示服务器端私钥。 表示客户端id。 表示服务器端id。 表示客户端某一次的动态密码。
R表示客户端生成的一次性随机数。 图2 登陆阶段的通信过程
在登陆阶段,主要有七个步骤。
Client将 和本次的动态密码 用自己的私钥加密,再和 ,此次产生的随机数R一并用Server的公钥加密后发送给Server。发送完毕后,客户端会将R备份,并启动计时器,若超过一定时间T后仍无收到Server的应答数据包则丢弃该随机数R;或在T范围之内收到Server应答数据包进行验证后丢弃该随机数R。
Server先用自己的私钥对收到的消息C1进行解密,得到用用户私钥加密的数据包,记为M2,以及 和R。Server根据得到的 ,在数据库中查找对应用户的公钥 。
用 解密M2,得到 和本次动态密码 。 (4) 验证动态密码 的正确性。 根据和Client端一样的动态密码生成算法,生成动态密码 。比较 和Client端发送过来的 。若不同,拒绝Client的登陆请求,向Client发送拒绝登陆数据包;若相同,接受Client登陆请求,进入第⑤步。
Server向Client发送数据包C2,即将 和Client发送过来的R用Server的私钥 加密,再和 一块打包用Client的公钥 加密。
Client收到Server发送的反馈消息后,先用自己的私钥 解密得到用 加密的加密数据包,记为M4,以及 。
根据第⑥步中得到的 ,取出对应的公钥 。用 机密M4,得到 和R。将R和本身暂存的R进行比较。若相同,则验证服务器为合法身份,Client和Server建立正常通信连接;若不同,判定该服务器为非法的,拒绝和该服务器建立通信连接。 2.2.2 动态口令的生成算法
动态密码,纠根揭底就是将动态因子和用户的固有秘密信息融合在一起生成登陆密码。动态因子可以是时间、计数器次数、随机数等。本文中设计使用的动态密码生成算法采用计数器作为动态因子。Client端和Server端各拥有一个计数器,初始值为0。Client和Server每成功地进行一次相互认证计数器值增1,以此来保证双方计数器的同步。
采用单向哈希函数进行加密。HASH(哈希)函数提供了这样一种计算过程:输入一个长度不固定的字符串,返回一串定长度的字符串,又称HASH值。MD5算法是希哈函数的一种,输入为任意长度的报文,以512比特报文分组进行处理,产生一个128比特长度的报文摘要。“单向”也就说明了Hash函数的不可逆性,即知道输出结果不能推出输入。它的不可逆性大大提高了安全性。
本文中使用MD5算法来计算生成动态口令。用户固有秘密信息为:用户自定义的 、用户私钥 ;动态因子为:计数器的计数值,即Client和Server成功通过双向认证的次数。
定义Hash值为h=H(M)。H表示Hash函数;M表示需要加密的信息。 。
h为Hash值,即为本文中设计算法的动态密码 。从本质上来说,动态密码就是使用MD5加密后的密文。
相应的身份认证系统还要配备必需的硬件设施:令牌卡。令牌卡为客户持有,里面芯片集成动态口令生成算法,并有一个计数器。客户每次要登陆的时候,将令牌卡插入读卡器,读取计数器值,生成本次登陆的密码传给客户端登陆程序。客户端登陆程序根据双向认证的通信协议进行打包发送给服务器。服务器端接收到客户发送过来的请求数据包,解密后验证动态密码的合法性。服务器端会根据同步认证算法来验证密码的合