iqoo 最近的时间轴更新
iqoo

iqoo

V2EX 第 555363 号会员,加入于 2021-09-07 11:08:48 +08:00
今日活跃度排名 26781
别再纠结前端要不要提交明文口令,浏览器已经内置非常好的方案
  •  1   
    程序员  •  iqoo  •  19 小时 20 分钟前  •  最后回复来自 mark2025
    93
    一直卡在 “在新 iPhone 上完成” 这一步是怎么回事?
    iPhone  •  iqoo  •  20 天前  •  最后回复来自 kyor0
    2
    使用 Airpods 耳机发送摩尔斯码
  •  2   
    分享创造  •  iqoo  •  32 天前  •  最后回复来自 unii23i
    16
    发一个拼 CPU 性能的红包
    程序员  •  iqoo  •  47 天前  •  最后回复来自 remember5
    169
    网页版时间锁,一定时间后才能解密消息
    分享创造  •  iqoo  •  56 天前  •  最后回复来自 rekulas
    23
    TLS ClientHello 中 Cipher Suites 必须有 5 个吗
    程序员  •  iqoo  •  99 天前  •  最后回复来自 iqoo
    14
    分享一个小程序资源打包压缩工具
    分享创造  •  iqoo  •  118 天前  •  最后回复来自 convolution
    3
    小程序预览模式和真机居然不一样?
    程序员  •  iqoo  •  132 天前  •  最后回复来自 drydiy
    18
    有没有不依赖 OpenSSL 的 HTTPS 请求学习代码
    程序员  •  iqoo  •  137 天前  •  最后回复来自 pheyer
    11
    iqoo 最近回复了
    @Chad0000 这个方案只讨论针对浏览器的场合,本身就是一个低成本方案,也没考虑要升级难度。多加几行代码,多花几百 ms 强化口令,用 dk 代替 password 而已,没有非常大的提升但聊胜于无。
    @Chad0000 这个是可以缓解的,不管用户存不存在,都可以返回一个值。

    实际应用时为了灵活性,返回的并不是难度值,而是算法名和参数,这样适用于任何算法。

    (更进一步,比如针对浏览器的场合,返回的甚至是一个 JS 版本号,前端动态加载这个 JS ,然后通过约定的接口去计算 hash 。顺便还可以在动态模块里做些风控检测)
    @shiny 目前浏览器里只有 sha 相关的 pbkdf ,只能在 salt 上做些变通,比如选取 网站 uuid+用户名,专为这个网站做彩虹表,成本太大划不来。
    @Chad0000 难度值可以不用写死在客户端,可以通过用户名实时查询,是公开的。(这个值也没有太大的隐私性)
    @shiny hash 和 PBKDF 还是有区别的,这个强度的 PBKDF 彩虹表得几十年吧。
    @Chad0000 低端设备确实没办法😂 不过穿戴设备也不方便输入,可以直接在手机或电脑上登录,把登录态同步过来。或者通过扫描等方式把 dk 同步过来。
    @Chad0000 不会有碎片化。保存的只有当前难度值和对应的 hash 。客户端升级的时候需要用户重新输入一次密码。升级难度也不会很频繁,可能几年才一次。
    @Chad0000 难度值本身就有,代码里那个 1000 万。你说要考虑后期升级,才出现这么多操作。最简单就是用固定的值。
    @Chad0000 记录每个用户的难度值就可以了(这个值公开)。登录时输完用户名,前端可以得到当前难度值。然后算这个难度值的 dk 。如果后端还给了新的难度值,顺便再算新的 dk 。
    @Chad0000 其实是重置“强度”,口令本身不用改。后端要求升级时,用户登录时把旧的 KDF 和新的 KDF 都提交上去,旧的用于验证,新的用于更新。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1255 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 23:19 · PVG 07:19 · LAX 16:19 · JFK 19:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.