V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
v2tudnew
V2EX  ›  问与答

关于 TOTP 的一点疑惑

  •  
  •   v2tudnew · 2021-08-04 13:05:34 +08:00 · 1694 次点击
    这是一个创建于 1203 天前的主题,其中的信息可能已经有所发展或是发生改变。

    不考虑中间人攻击 /钓鱼问题。

    各网站通常采取先验证口令,验证成功再弹出 TOTP 验证 6 位数,感觉有点不合理:

    • 如果口令不对就不会要求验证 TOTP,那么爆破不也可以正常进行?(以前有次忘带盛大那个密保令牌,居然被我蒙对了。。
    • 次数过多封 IP,可以通过代理解决。
    • 暂时封禁账户,好了号主都被连累。

    也见过些采取口令和 TOTP 同时要求输入的站点,没有绑定 TOTP 就留空,绑定了就必须口令和 TOTP 同时对,但也会提醒口令不对或者 TOTP 不对。

    我的想法是:

    • 口令和 TOTP 都同时验证,但如果口令或 TOTP 有错误就必须连续三次其一验证成功才提示,并且限制 30 秒同一 IP 验证错误次数,应该能解决爆破问题。
    ysc3839
        1
    ysc3839  
       2021-08-04 13:14:01 +08:00 via Android
    暴力破解的问题在 TOTP 之前就有成熟的解决方案了,比如验证码。
    v2tudnew
        2
    v2tudnew  
    OP
       2021-08-04 13:21:02 +08:00
    @ysc3839 #1 没用啊,我就用过本地识别验证码的软件,太复杂验证码比如橘子 14 点.....不知道开发者还好吗.....😂😂(关键是淘宝几分钟解决)
    soulzz
        3
    soulzz  
       2021-08-04 13:21:07 +08:00
    totp 解决了生成验证码的麻烦
    jim9606
        4
    jim9606  
       2021-08-04 13:21:31 +08:00
    只是一种猜测。

    国外大厂商例如 MS 和 Google 是因为 TOTP 只是其中一种可选的 2FA 手段,其他 2FA 手段有电子邮箱、手机验证码、硬件密钥等。其中电子邮箱、手机验证码会暴露部分隐私信息,所以需要先行验证 PIN 才能暴露这部分信息。

    国内的话也会在输密码之后进行一个黑箱的风控检查,用以决定是否需要进行额外身份验证。另外不知道是不是觉得用户教育不足,对 TOTP 的信任度还不如常用设备验证。
    eason1874
        5
    eason1874  
       2021-08-04 13:28:03 +08:00
    爆破发生在密码泄露之前,而 TOTP 是在密码泄露之后的兜底措施,都不是一回事。

    不管有没有 2FA,不管 2FA 放在第一步还是第二步,防爆破都是必须而且先于 2FA 的。
    v2tudnew
        6
    v2tudnew  
    OP
       2021-08-04 13:33:15 +08:00
    @jim9606 #4 大厂有风控那确实不一样。

    @eason1874 #5 TOTP 兜底没啥用,瞎蒙都蒙对过两次了,第一次就是盛大那破密保。不如作为一种辅助验证口令的手段好用。
    v2tudnew
        7
    v2tudnew  
    OP
       2021-08-04 13:45:47 +08:00
    @eason1874 #5 而且我想了下,这也不冲突不是?只是换了个顺序,它就不能起到原来的作用了?
    Xusually
        8
    Xusually  
       2021-08-04 13:46:42 +08:00
    @v2tudnew TOTP 蒙对了,还两次??这啥概率啊。不了解盛大的密保,不是六位数字或者字母的么?
    v2tudnew
        9
    v2tudnew  
    OP
       2021-08-04 14:04:11 +08:00
    @Xusually #8 当时是数字(类似银行那种硬件。特容易摔坏,跟个玻璃似的),现在不清楚了,当然不是一个产品两次,确实是概率问题。
    eason1874
        10
    eason1874  
       2021-08-04 14:30:13 +08:00
    @v2tudnew 你说 “如果口令不对就不会要求验证 TOTP,那么爆破不也可以正常进行”

    TOTP 本身就不是解决爆破问题的,你用爆破来质疑它,所以我告诉你这是错的。你把它放到登录页面也无助于防爆破,只会影响用户交互。

    你说猜中盛大动态口令两次,他们也是 6 位的,这概率跟中双色球头奖没多大区别了,我更倾向是你记错了或者是盛大的密码产品有问题。
    Xusually
        11
    Xusually  
       2021-08-04 14:34:10 +08:00 via iPhone
    @v2tudnew 如果是以前银行那种密保卡,刮刮卡似的,几行几列一共就几十个选择的还可以理解,六位数字的那种还能猜中我真的服气的~
    maskerTUI
        12
    maskerTUI  
       2021-08-04 14:42:41 +08:00
    你这样搞,业务部门会不会跳起来
    v2tudnew
        13
    v2tudnew  
    OP
       2021-08-04 14:51:30 +08:00
    @eason1874 #10 首先我不是质疑 TOTP 什么(不合理不表示功能有问题),我只是说可以强化安全,如果要质疑的话岂不是要质疑所有 2FA 了。
    其次本身 TOTP 如果不选择记住设备。每次登录都是要验证的,既然都是要验证的何来影响用户体验一说?如果要记住设备也可以在登录框上勾选。我自己就这么搞也没有用户来说啊。
    第三,密保那个你们爱信不信 @Xusually #11

    @maskerTUI #12 能详细说说吗?我自己想法那部分确实可能折腾人,但只把 TOTP 挂登录框没想到有啥坑的地方。
    eason1874
        14
    eason1874  
       2021-08-04 15:50:20 +08:00
    @v2tudnew 所以说你还是没懂,这么说吧。

    同时输入密码和 TOTP 进行同时验证,其一错误会提示的,这是双重密码。
    先验证密码,密码对了才验证 TOTP 的,这是两步验证。

    多数网站的 TOTP 不是密码,是两步验证的第二步的密保工具之一,比密码等级更高。

    先验证密码,才验证密保,这是规范。可以把这两个步骤放在一个表单提交,但后台验证逻辑并不改变什么,还是先密码再密保,因为改了就不是两步验证了。所以说改变的只有用户交互,有些密保工具必须先验证密码才能暴露,比如手机号、邮箱。

    TOTP 不解决爆破问题,行为风控跟密码强度、密保工具是不同的问题。
    dototototo
        15
    dototototo  
       2021-08-04 15:53:01 +08:00 via Android
    我大概懂楼主你想说的了,其实防不防爆破不是关键,你真正想表达的是要同时对用户名,密码和 TOTP 三者进行验证,以增加爆破难度吧?
    crab
        16
    crab  
       2021-08-08 13:41:57 +08:00
    网银有的登陆就是一起判断的,但有的会考虑用户体验告知是密码错还是 TOTP 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5064 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 76ms · UTC 01:12 · PVG 09:12 · LAX 17:12 · JFK 20:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.