美文网首页
使用 TOTP 实现双因子认证

使用 TOTP 实现双因子认证

作者: Yifan15 | 来源:发表于2018-02-22 11:12 被阅读462次
    双因子认证

    TOTP: Time-Based One-Time Password Algorithm(基于时间的一次性密码算法),具体可参考 RFC6238

    使用诸如 TOTP 生成的动态口令可以实现登录时的二因子认证(密码+动态口令) ,关于双因子认证可以参考 这篇文章

    本文简单阐述如何在自己的网站中集成双因子认证,服务端使用 python,客户端使用 Google Authenticator,在各个市场都可下载,无需联网即可使用

    服务端

    • 安装 pyotp, pip install pyotp
    • 为每个用户生成一个 base32 的密钥 base32secret3232,保存在服务器数据库中 , 代码为 pyotp.random_base32()
    • 服务端在匹配时使用 totp = pyotp.TOTP('base32secret3232')
      totp.now() 即可获得当前动态口令

    客户端

    客户端使用 Google Authenticator 扫描二维码即可录入信息,二维码的内容可以在服务器生成 pyotp.totp.TOTP('base32secret3232').provisioning_uri("alice@google.com", issuer_name="Secure App")

    • base32secret3232 为之前生成的 base32 的密钥
    • alice@google.com 为用户的用户名,可以显示在客户端上
    • Secure App 为 APP/网站 的名字

    之后 Google Authenticator 会每隔 30s 就更新一次动态口令,在需要二次认证的时候传入服务器做对比。二维码生成工具有很多,比如 qrious


    参考资料:

    打赏码

    相关文章

      网友评论

          本文标题:使用 TOTP 实现双因子认证

          本文链接:https://www.haomeiwen.com/subject/yvbatftx.html