Google Authenticator 或 阿里云 MFA

  • Google Authenticator 是一个一次性密码生成器,内置了 OTP(One-time Password) 算法,且和服务器共享了一个相同的密钥。从某个时间点开始计算 30 秒时间间隔的计数,计数从 0 开始,每过 30 秒计数加 1。在每个 30 秒内计数是一样的,把计数和密钥输入到算法中可以得到一个六位的一次性密码,有效期为 30 秒。服务器有密钥,也可以计算从某个时间点到现在的 30秒时间间隔计数,所以可以验证客户端提交的一次下密码是否一致。

OTP/HOTP/TOTP

  • OTP (One-time Password)OTP 是一次性密码,又称动态密码或单次有效密码,是指计算机系统或其他数字设备上只能使用一次的密码,有效期为只有一次登录会话或交易。
  • HOTP (HMAC-based One-time Password)HOTP 是一种基于散列消息验证码(HMAC)的一次性密码算法。
  • TOTP (Time-based One-Time Password)TOTP 是一种根据预共享的密钥与当前时间计算一次性密码的算法。
  • 它已被互联网工程任务组接纳为RFC 6238标准,成为主动开放认证(OATH)的基石,并被用于众多多重要素验证系统当中。
  • TOTP基于HOTP实现,它结合一个私钥与当前时间戳,使用一个密码散列函数来生成一次性密码。
  • 由于网络延迟与时钟不同步可能导致密码接收者不得不尝试多次遇到正确的时间来进行身份验证,时间戳通常以30秒为间隔,从而避免反复尝试。

应用

  • 网站开发时给管理员用户生成一个秘钥,存储在数据库里时可选择对称加密方式防止数据库直接泄漏秘钥,管理员使用客户端工具绑定秘钥后,在登录或者敏感操作时验证动态口令。
  • 在Liunx服务器登录时验证。

php 集成

客户端工具

总结

  • 动态验证码能有效提升网站的安全性,防止因密码泄漏导致的账户安全问题。
  • 在很早以前就因用在游戏领域(密保卡),金融领域(U盾)。
  • 在互联网发达的今天,信息泄漏安全问题频发,数据库信息泄漏,人脸识别信息,指纹信息,贷款信息,摄像头等等,这是非常细思极恐的,我们每一个人在享受网络服务的同时也要时刻注意自己的个人隐私信息。