基于时间的一次性密码算法

✍ dations ◷ 2025-04-03 17:52:52 #计算机访问控制,密码算法,网际协议

基于时间的一次性密码算法(TOTP)是一种根据预共享的密钥与当前时间计算一次性密码的算法。它已被互联网工程任务组接纳为RFC 6238标准,成为主动开放认证(英语:Initiative For Open Authentication)(OATH)的基石,并被用于众多多重要素验证系统当中。

TOTP是散列消息认证码(HMAC)当中的一个例子。它结合一个私钥与当前时间戳,使用一个密码散列函数来生成一次性密码。由于网络延迟与时钟不同步可能导致密码接收者不得不尝试多次遇到正确的时间来进行身份验证,时间戳通常以30秒为间隔,从而避免反复尝试。

在特定的多重因素验证应用中,用户验证步骤如下:一位用户在网站或其他服务器上输入用户名和密码,使用运行在本地的智能手机或其他设备中的TOTP生成一个一次性密码提交给服务器,并同时向服务器输入该一次性密码。服务器随即运行TOTP并验证输入的一次性密码。为此,用户设备与服务器中的时钟必须大致同步(服务器一般会接受客户端时间-1区间(也就是延迟了30秒)的时间戳生成的一次性密码)。在此之前,服务器与用户的设备必须通过一个安全的信道共享一个密钥,用于此后所有的身份验证会话。如需要执行更多步骤,用户也可以用TOTP验证服务器。

TOTP基于HOTP,附带的时间戳用于替代递增计数器。

通过定义一个纪元(epoch, T0)的起点并以时间步骤(time step, TS)为单位进行计数,当前时间戳被转换成一个整形数值的时间计数器(time-counter, TC)。举一个例子:

根据RFC 6238标准,供参考的实现如下:

尽管RFC 6238标准允许使用不同的参数,Google开发的验证应用不允许不同于默认的T0、TI值、哈希方法和密码长度。RFC 3548也同时鼓励K密钥以base-32编码输入(或以QR码的形式提供)。

一旦参数协商完毕,密码开始按照如下方法生成:

服务器与客户端都会计算密码,但是由服务器来检查客户端提供的密码是否匹配服务器本地生成的密码。考虑到轻微的时钟偏移、网络延迟或用户延误等情况,有些服务器允许接受本应该在早先已生成或稍后才生成的密码。

尽管攻击者需要实时托管凭证,而不能之后收集,但是TOTP代号跟密码一样可能被钓鱼。

不限制登录尝试的TOTP实现容易被暴力破解,因此尝试次数限制必须非常少。

窃取到预共享密钥的攻击者可以随意生成新的非法的TOTP代号。如果攻击者攻破大型的认证数据库,这就会是个问题。

由于TOTP设备可能会发生电力用尽、时钟不同步等情况,用户手机上的软件也可能丢失或失窃,所有现存的实现都可以绕开相应保护(如:打印的代码、电子邮件重置等),这对于大型用户群支持来说是个负担,并给了欺诈用户更多的操作空间。

TOTP代号的有效期会长于屏幕上显示的时间(通常是2倍或更长)。这是对认证双方的时钟可能有较大幅度偏移而作出的让步。

所有基于一次性密码的认证方案(包括TOTP、HOTP和其他方案)都会暴露于会话劫持当中,比如可以在登录后强征用户的会话。

尽管如此,TOTP仍然比单独使用传统静态密码验证的安全性强很多。上述的一些问题也可以通过简单的方法解决(比如为防止暴力破解,可以增加TOTP的位数,或者使用多个TOTP同时验证)。

TOTP草案由数位OATH成员合作开发,目的是创建一个行业通用标准。它完善了基于事件的一次性标准HOTP,并为终端用户组织和企业在选择最适合的应用要求与安全规范技术提供了更多选择。2008年,OATH向IETF提交了一份草案规范。这一版本的草案以之前提交的版本为基础,包含作者从技术社区收到的全部反馈与评论。2011年5月,TOTP正式成为RFC 6238标准的一部分。

相关

  • 黎东方黎东方(1907年-1998年12月30日),原名智廉,法文名Orient Lee,是一个中国历史学者。1907年出生于江苏省扬州府东台县(今盐城市东台市),祖籍河南汝宁府正阳县皮店人。父黎淦,清朝举人,仕于
  • 安东·弗里德里希·比兴安东·弗里德里希·比兴(Anton Friedrich Büsching,1724年--1793年)是一位德国哲学家和地理学家。比兴是第一位将人口密度作为地理要素的学者,还指出过通过河流运输货物能够使
  • 阿尔布雷希特一世 (勃兰登堡)阿尔布雷希特一世(1110年?-1170年11月18日),勃兰登堡第一位藩侯(1157年—1170年在位)及萨克森公爵(1138年—1142年在位),绰号“大熊”。父亲为巴伦施泰特伯爵奥托,母亲为萨克森公爵马格
  • 陈鹤桥陈鹤桥(1914年8月17日-2008年12月21日),是中国人民解放军开国将领,少将军衔。安徽霍邱人。陈鹤桥1931年参加农民暴动,次年加入红军,在鄂豫皖苏区红军各部作战并跟随红二十五军长征
  • 莫顿·艾夫奥·普斯莫顿·艾夫奥·普斯(英语:Morton Everel Post;1840年12月25日-1933年3月19日),是一位美国民主党的政治人物,曾在1881年至1885年担任怀俄明领地众议院议会代表。普斯生于纽约州门罗
  • 尽头的回忆 (电影)《尽头的回忆》(韩语:막다른 골목의 추억,日语:デッドエンドの思い出,英语:Memories of a Dead End )是日本与韩国共同合作的电影。改编自作家吉本芭娜娜2003年出版的同名作品。由
  • 刘储秀刘储秀(1483年-1558年),字士奇,号西陂,陕西西安府咸宁县(今属西安市)人,明朝政治人物。正德九年(1514年)进士。授刑部主事。嘉靖间,历官湖广右布政使,升户部右侍郎。累官至户部尚书。嘉靖
  • 牺牲件牺牲件(sacrificial part)是一种特殊的组件,其设计的目的就是在异常机械应力、异常电压或电流、或是其他异常且危险的条件下,牺牲件会先损坏,以保护系统中其他部分不致于受损。例
  • 马蒙王朝马蒙王朝,是中亚花剌子模地区一个伊朗人小王国,创始人马蒙·本·穆罕默德是萨曼王朝总督。他们的统治是短暂的(995-1017),共二十二年,传四代,后亡于伽色尼王国。
  • 詹姆斯·泰勒詹姆斯·维南·泰勒(James Vernon Taylor,1948年3月12日-),美国音乐人,吉他演奏家。泰勒出生于马萨诸塞州波士顿,在北卡罗莱纳州的卡尔伯罗市(Carrboro)长大。泰勒的事业生涯起于19