You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于认证器工作原理及网站对其兼容机制的技术问询

关于认证器工作原理及网站对其兼容机制的技术问询

嘿,这个问题问得特别到位!其实你观察到的“随便用哪个认证器APP都能行”的现象,核心原因是公开的行业标准协议在背后支撑,和所谓的“中央认证点”或者“官方白名单”没啥关系~

我来给你拆解清楚:

  • 主流的身份认证器(不管是Google Authenticator、Sophos还是其他小众工具),几乎都实现了**TOTP(基于时间的一次性密码)或者HOTP(基于计数器的一次性密码)**这两个公开标准协议。这俩协议是完全开源、透明的,任何开发者都可以照着标准做自己的认证器APP。
  • 当你在网站上开启双因素认证时,网站会生成一个共享密钥(就是你扫二维码或者手动输入的那串随机字符),这个密钥只有你和网站后台知道。之后每次生成验证码时,你的认证器APP和网站后台会用相同的逻辑计算:
    • TOTP的话,就是用当前时间(按30秒为一个时间窗口)+ 共享密钥,通过SHA-1哈希算法生成6-8位的数字验证码;
    • HOTP则是用一个递增的计数器+共享密钥生成验证码。
  • 网站根本不需要知道你用的是哪个APP——它只需要拿你输入的验证码,和自己用同样密钥、同样时间/计数器计算出来的结果比对,一致就通过验证。所以只要APP严格遵循TOTP/HOTP标准,不管是谁家的,都能正常工作。

补充一句:现在还有些网站支持U2F/WebAuthn这类更安全的硬件密钥认证,但那是另一套标准,和手机上的认证器APP不是一回事,不过核心逻辑还是基于公开协议的互操作性~

备注:内容来源于stack exchange,提问作者Manngo

火山引擎 最新活动