选择TOTP解决多因素认证应用泛滥问题
你的手机上是否装满了各种MFA应用,让你感觉像穿上了臃肿的冬装无法活动?或者这些应用就像一群英国斗牛犬幼崽,时刻跟着你要关注和安全拥抱?
无论如何,维护这么多应用确实令人头疼。面对众多MFA应用,请考虑以下问题:
- 手机丢失或损坏时你会失去哪些访问权限?
- 所有MFA应用都支持备份/导出吗?
- 已知支持备份的应用,你最近一个月做过备份吗?
- 在新手机上恢复这些MFA应用的流程是怎样的?
- 你是否测试过这个流程以确保没有意外?
TOTP:标准化解决方案
大多数MFA应用都支持一种基于标准的方法:时间型一次性密码(TOTP),也就是常见的30秒有效期的6位数验证码。TOTP的工作流程如下:
- 用户和服务提供商共享密钥
- 用户的TOTP应用计算自Unix纪元以来的时间步数,结合共享密钥通过HMAC-SHA-1生成6位数代码
- 用户在认证时提交该代码,服务商使用其密钥副本进行相同计算
- 代码匹配则认证成功
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