- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HOTP一种基于HMAC的一次性口令算法(精选)
HOTP:一种基于HMAC的一次性口令算法
摘要
本文描述了一种基于HMAC的一次性口令生成算法。对该算法进行了安全性分析,并讨论了该算法安全使用的重要参数。该算法已广泛应用于VPN访问,Wi-Fi登录及面向交易的Web应用等多项网络服务。
本文由OATH组织成员合作完成,详细讨论了可在技术界自由传播的算法。作者相信一种通用且共享的算法可以通过商业或开放资源工具实现共享,从而为Interne上采用的二因子认证提供了便利。
1.概述
本文首先介绍了可以生成基于HMAC的一次性口令值的算法的背景,因而这种算法也称为基于HMAC的一次性口令算法。将在第4节列出这种算法的要求,在第5节说明HOTP算法,第6、7节主要对这种算法进行安全性分析,第8节对其进行扩充和完善,并在第10节对本文作出结论。在附录A,有兴趣的读者会发现对算法安全性的详细、全面分析:并对该算法的理想化版本进行了评价,之后对HOTP算法的安全性进行了分析。
2.引言
今天,双因子认证仍只是在极有限的范围和规模内得到应用。尽管威胁和攻击的水平在不断提高,大多数Internet应用薄弱的认证体系来监视用户访问。硬件和软件技术供应商之间缺少可操作性成为了双因子认证应用的制约因素。特别是由于缺乏统一规范,硬件和软件组件常常通过专有技术紧密的结合,从而导致高成本解决方案,不佳的采用和有限的创新。
在过去两年中,网络威胁的迅速增长暴露了Internet上认证主要手段静态口令的不足。同时,目前的方法要求一个终端用户携带一个昂贵的,只能用来进行网络认证的功能单一的装置。这显然也不是最好的方法。对于Internet上流传的双因子认证方法则必须在能够跨广泛应用范围的灵活性更高的装置中嵌入它。
这种既可以引入基础技术同时又保证广泛互操作性的能力要求其在广大硬件和软件开发者技术界中随时可得。只有一种开放系统方法可以保证基本的原始双因子认证方法可用于下一代用户装置,如USB大量存储器、IP电话以及个人数字助理。
一次性口令当然是最简单而流行的保护网络访问权的双因子认证方法之一。例如,在大企业中,虚拟专用网络的访问通常都需要使用一次性口令来进行远程用户认证。一次性口令通常更适用于强认证方式如公钥体制(PKI)或生物统计,这是因为空气隔离装置不需要在用户机上安装客户桌面软件,因此可使他们在包括家用电脑、自动售货机、个人数字助理多台机器上漫游。
本文提出了一种简单的一次性口令算法,可以通过任何硬件制造商或软件开发者实现,从而建立了可互操作认证装置和软件代理。算法是基于事件的,因此它可用于大容量装置如Java智能卡、USB 安全装置以及GSM SIM卡。
所介绍的算法在IETF知识产权[RFC3979]规定的条件下可以在开发界自由使用。
本文的作者都是OATH组织成员。该组织成立于2004年,其目的是促进强认证技术提供者之间的合作。
3.术语
这篇文章中的关键词“必须”、“必须不”、“要求”、“即将”、“将不”、“应该”、“应该不”、“建议”、“可以”、和“可选”都如[RFC2119]中所定义。
4.算法要求
这一节说明了进行算法设计的要求。着重强调了终端用户的可用性和算法由低成本硬件实现的能力,从而使用户界面能力最小化。特别是以算法能插入高容量SIM和Java卡的为前提。
要求1算法必须是基于序列号或基于计数器的。这样的目的之一是可以将HOTP算法用于大容量装置如Java智能卡,USB安全装置和GSM SIM卡。
要求2算法应该是经济可实现的,硬件上对电池、按键、计算马力、LCD显示器尺寸的需要最小化。
要求3算法必须用在不支持任何数值型输入的令牌,但也可以用于更复杂的机器如安全PIN键盘。
要求4令牌上显示的HOTP值必须易于用户阅读和输入,这要求HOTP值必须有一个合理的长度。
HOTP只必须至少为6位,同时也希望它仅由数字构成,这样用户就很容易在电话这样的有限设备上输入。
要求5必须有用户——可利用的友好装置来实现计数器重同步,7.4节和附录E.4详细说明了本文提到的重同步装置。
要求6算法必须使用强共享的密钥,共享密钥的长度必须至少为128比特。本文建议共享密钥的长度为160比特。
5.HOTP算法
在这一节,我们介绍标记并描述HOTP算法的基本模块——计算HMAC-SHA1值的基本函数,以及抽取HOTP值的截短方法。
5.1标记和符号
一个数串通常为二进制数串,即0和1的序列。
如果s是一个数组,则|s|表示其长度。
如果n是一个数,则|n|表示其绝对值。
如果s是一个数组,则s[i]表示其第i比特。我们以0为开始对这些比特进行编号。因此s = s[0]s[1]...s[n-1],这里n = |s|是s的长度。
StToNum表示二进制串输入转换为十进制数的函数。
下面是本文中用到的符号列
文档评论(0)