选择TOTP解决多因素认证应用泛滥问题

本文探讨了如何通过采用基于时间的一次性密码(TOTP)标准来简化多因素认证管理,分析了TOTP的工作原理、实施优势,并提供了选择TOTP应用时的实用建议。

选择TOTP解决多因素认证应用泛滥问题

你的手机上是否装满了各种MFA应用,让你感觉像穿上了臃肿的冬装无法活动?或者这些应用就像一群英国斗牛犬幼崽,时刻跟着你要关注和安全拥抱?

无论如何,维护这么多应用确实令人头疼。面对众多MFA应用,请考虑以下问题:

  • 手机丢失或损坏时你会失去哪些访问权限?
  • 所有MFA应用都支持备份/导出吗?
  • 已知支持备份的应用,你最近一个月做过备份吗?
  • 在新手机上恢复这些MFA应用的流程是怎样的?
  • 你是否测试过这个流程以确保没有意外?

TOTP:标准化解决方案

大多数MFA应用都支持一种基于标准的方法:时间型一次性密码(TOTP),也就是常见的30秒有效期的6位数验证码。TOTP的工作流程如下:

  1. 用户和服务提供商共享密钥
  2. 用户的TOTP应用计算自Unix纪元以来的时间步数,结合共享密钥通过HMAC-SHA-1生成6位数代码
  3. 用户在认证时提交该代码,服务商使用其密钥副本进行相同计算
  4. 代码匹配则认证成功

TOTP如此简单,甚至可以用20行Python代码实现,或者几乎完全用bash脚本实现。

TOTP的优势

采用TOTP标准可以带来更多灵活性:

  • 可选择商业闭源应用或可审计的开源应用
  • 可进行本地离线备份或使用可信的在线备份方案
  • 可找到支持多设备注册的TOTP应用
  • 甚至可以将老式Commodore 64改造成独立TOTP生成器

如何识别服务商是否支持TOTP

服务商通常不会明确声明支持TOTP,但以下迹象可能表明支持:

  • 提示"从你的MFA应用输入代码"
  • 显示"Google Authenticator"选项(实际上指代TOTP标准)
  • 可能需要选择"尝试其他方法"才能找到TOTP选项

选择TOTP应用的注意事项

验证应用是否支持TOTP后,还需考虑:

  • 备份方式:云备份还是本地备份?是否需要端到端加密?
  • 设备注册数量:是否需要多设备支持?
  • 去谷歌化:非谷歌Android设备能否使用?
  • 安全审计:是否有独立安全审计报告?

通过采用TOTP标准,你可以大幅减少需要管理的MFA应用数量,同时保持认证安全性。

[1] TOTP RFC标准:https://datatracker.ietf.org/doc/html/rfc6238 [2] TOTP应用分析论文:https://www.usenix.org/system/files/sec23summer_198-gilsenan-prepub.pdf

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计