V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
KirbySD
V2EX  ›  奇思妙想

是不是能在 Web 服务上引入类似 SSH 的公钥认证的身份验证方式

  •  
  •   KirbySD · 2021-07-31 01:23:00 +08:00 via iPhone · 2804 次点击
    这是一个创建于 1214 天前的主题,其中的信息可能已经有所发展或是发生改变。
    当然不是说传统的用户名密码就要淘汰
    在用户能保证自己所使用的私钥安全储存的情况下,以公钥认证来验证身份既能防止暴力破解,也能防止撞库吧
    对于高级用户来说,还能省去手动鉴权的步骤

    至于盗用用户设备,现行基于 cookie 的保持登录状态也不能很好地解决这一问题
    唯一的缺点可能就是一旦私钥泄漏,所有网站立刻完蛋
    20 条回复    2021-08-03 11:31:38 +08:00
    lcdtyph
        1
    lcdtyph  
       2021-07-31 01:24:59 +08:00
    你可能想要的是 https 双向认证?
    Yadomin
        2
    Yadomin  
       2021-07-31 01:30:21 +08:00 via Android
    yubikey
    xiadong1994
        3
    xiadong1994  
       2021-07-31 01:37:07 +08:00
    热知识:HTTPS 支持客户端证书
    also24
        4
    also24  
       2021-07-31 02:09:12 +08:00
    agagega
        5
    agagega  
       2021-07-31 02:14:46 +08:00 via iPhone
    WebAuthn ?
    nvkou
        6
    nvkou  
       2021-07-31 02:57:47 +08:00 via Android
    现代浏览器支持 fido2 的。硬件钥匙
    ihacku
        7
    ihacku  
       2021-07-31 04:11:00 +08:00 via Android
    blackcurrant
        8
    blackcurrant  
       2021-07-31 08:37:26 +08:00 via iPhone
    关键词 web3 , 以太坊.
    目前 dapp 都是直接使用钱包登录。
    dingwen07
        9
    dingwen07  
       2021-07-31 10:35:03 +08:00 via iPhone
    WebAuthn
    Xusually
        10
    Xusually  
       2021-07-31 10:59:21 +08:00 via iPhone
    从 2009 年我们就在用 https client cert verification 了
    KirbySD
        11
    KirbySD  
    OP
       2021-07-31 12:55:55 +08:00
    HTTPS 双向认证感觉和 SSH 很像,但还是要依赖 CA,SSH 只需要一个谁都能生成的公私钥对就行了(大概)
    yubikey 之类的需要购买第三方硬件
    webauthn.io 感觉像是整合?不过才发现 TPM 居然也能拿来认证,但对于多端不太方便

    这些东西最大的问题感觉还是门槛太高不好推开
    dingwen07
        12
    dingwen07  
       2021-07-31 21:37:16 +08:00 via iPhone
    @KirbySD #11 WebAuthn 可以用 Windows Hello 、Face ID 等
    KirbySD
        13
    KirbySD  
    OP
       2021-08-01 00:24:16 +08:00
    @dingwen07 我觉得内置在设备中的可信模块会导致用户更换平台时需要迁移(或者说重新建立关联关系),会提高用户的学习成本
    不过确实很方便,比用户自行生成私钥之类的好很多
    dingwen07
        14
    dingwen07  
       2021-08-01 01:17:23 +08:00 via iPhone
    @KirbySD #13 所以说账号密码不可丢,WebAuthn 只是提高便捷和安全性(比如不可能钓鱼)
    flynaj
        15
    flynaj  
       2021-08-02 10:54:22 +08:00 via Android
    @KirbySD 不用 CA 的话某些环境下还不如密码安全,ssh 也支持 CA.
    v2tudnew
        16
    v2tudnew  
       2021-08-02 12:00:45 +08:00
    @flynaj #15 哪些环境啊?我好避坑。
    flynaj
        17
    flynaj  
       2021-08-02 12:44:00 +08:00 via Android
    @v2tudnew 一般 key 就是一个文件,文件被复制了,但最近没有使用你觉察不到。
    v2tudnew
        18
    v2tudnew  
       2021-08-02 13:07:16 +08:00
    @flynaj #17 那 CA 能判断这个密钥是被复制了?
    sobigfish
        19
    sobigfish  
       2021-08-02 17:55:20 +08:00
    证书登录很早就有啊,银行的 u 盾就是(私钥加密在硬件里)
    ryd994
        20
    ryd994  
       2021-08-03 11:31:38 +08:00 via Android
    @flynaj 这和 CA 没关系。而是要 TPM 。不用 TPM 的话,证书登录也就是一个比较长的密码而已。虽然比短密码安全,但也就那么回事。
    但是如果正确使用 TPM,那安全的同时还更方便。可以用短密码,因为重试次数过多 TPM 可以锁死或自毁

    CA 解决的是两个不认识的人之间的信任问题。这里没有这个问题。这里用户可以把公钥(证书)告诉网站,网站已经靠用户名和密码验证过用户的身份。当然,有 CA 的话更方便,都不用上传证书信息了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3621 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 05:01 · PVG 13:01 · LAX 21:01 · JFK 00:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.