HOTP一种基于HMAC的一次性口令算法.docHOTP:一种基于HMAC的一次性口令算法摘要本文描述了一种基于HMAC的一次性口令生成算法。对该算法进行了安全性分析,并讨论了该算法安全使用的重要参数。该算法已广泛应用于VPN访问,Wi-Fi登录及面向交易的Web应用等多项网络服务。本文由OATH组织成员合作完成,详细讨论了可在技术界自由传播的算法。作者相信一种通用且共享的算法可以通过商业或开放资源工具实现共享,从而为Interne上采用的二因子认证提供了便利。,因而这种算法也称为基于HMAC的一次性口令算法。将在第4节列出这种算法的要求,在第5节说明HOTP算法,第6、7节主要对这种算法进行安全性分析,第8节对其进行扩充和完善,并在第10节对本文作出结论。在附录A,有兴趣的读者会发现对算法安全性的详细、全面分析:并对该算法的理想化版本进行了评价,之后对HOTP算法的安全性进行了分析。引言今天,双因子认证仍只是在极有限的范围和规模内得到应用。尽管威胁和攻击的水平在不断提高,应用薄弱的认证体系来监视用户访问。硬件和软件技术供应商之间缺少可操作性成为了双因子认证应用的制约因素。特别是由于缺乏统一规范,硬件和软件组件常常通过专有技术紧密的结合,从而导致高成本解决方案,不佳的采用和有限的创新。在过去两年中,±认证主要手段静态口令的不足。同时,目前的方法要求一个终端用户携带一个昂贵的,只能用来进行网络认证的功能单•一的装置。这显然也不是最好的方法。上流传的双因子认证方法则必须在能够跨广泛应用范围的灵活性更高的装置中嵌入它。这种既可以引入基础技术同时•乂保证广泛互操作性的能力要求其在广大硬件和软件开发者技术界中随时可得。只有一种开放系统方法可以保证基本的原始双因子认证方法可用于下一代用户装置,如USB大量存储器、IP电话以及个人数字助理。一次性□令当然是最简单而流行的保护网络访问权的双因子认证方法之一。例如,在大企业中,虚拟专用网络的访问通常都需要使用一次性口令来进行远程用户认证。一次性口令通常更适用于强认证方式如公钥体制(PKI)或生物统计,这是因为空气隔离装置不需要在用户机上安装客户桌面软件,因此可使他们在包括家用电脑、自动售货机、个人数字助理多台机器上漫游。本文提出了一利倘单的一次性□令算法,可以通过任何硬件制造商或软件开发者实现,从而建立了可互操作认证装置和软件代理。算法是基于事件的,因此它可用于大容量装置如Java智能卡、USB安全装置以及GSMSIM卡。所介绍的算法在IETF知识产权[RFC3979]规定的条件下可以在开发界自由使用。本文的作者都是OATH组织成员。该组织成立于2004年,其目的是促进强认证技术提供者之间的合作。术语这篇文章中的关键词“必须”、“必须不”、“要求”、“即将”、“将不”、“应该”、“应该不”、“建议”、“可以”、和“可选”都如[RFC2119]中所定义。算法要求这一节说明了进行算法设计的要求。着重强调了终端用户的可用性和算法由低成本硬件实现的能力,从而使用户界面能力最小化。特别是以算法能插入高容量SIM和Java卡的为前提。要求1算法必须是基于序列号或基于计数器的。这样的目的之一是可以将HOTP算法用于大容量装置如Java智能卡,USB安全装置和GSMSIM卡。要求2算法应该是经济可实现的,硬件上对电池、按键、计算马力、LCD显示器尺寸的需要最小化。要求3算法必须用在不支持任何数值型输入的令牌,但也可以用于更复杂的机器如安全PIN键盘。要求4令牌上显示的HOTP值必须易于用户阅读和输入,这要求HOTP值必须有一个合理的长度。HOTP只必须至少为6位,同时也希望它仅由数字构成,这样用户就很容易在电话这样的有限设备上输入。要求5必须有用户一可利用的友好装置来实现计数器重同步,。要求6算法必须使用强共享的密钥,共享密钥的长度必须至少为128比特。本文建议共享密钥的长度为160比特。HOTP算法在这一节,我们介绍标记并描述HOTP算法的基本模块一计算HMAC-SHA1值的基本函数,以及抽取HOTP值的截短方法。,即。和1的序列。如果s是一个数组,则|s|表示其长度。如果n是一个数,则|n|表示其绝对值。如果s是一个数组,则s[i]表示其第i比特。我们以0为开始对这些比特进行编号。因此s=s[0]s[l]...s[n-l],这里n=|s|是s的长度。StToXum表示二进制出输入转换为十进制数的函数。下面是本文中用到的符号列表08-byte计数器值,此计数器必须与HOTP生成器(客户端)和HOTP认证器(服务器)保持同步。K 客户端和服务器之间的共享密钥;每一个HOTP生成器都有互不相同且唯一的密钥
HOTP一种基于HMAC的一次性口令算法 来自淘豆网m.daumloan.com转载请标明出处.