V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
MFWT
V2EX  ›  程序员

开个脑洞:如何在陌生设备上证明『我是我』

  •  
  •   MFWT · 2 天前 via Android · 4644 次点击

    单纯开个脑洞,不确定 V 站之前是否有人提过类似的问题,如果有的话请原谅

    设想这么一个场景:我孤身一人到外地,某日外出时身上并没有携带手机(或者出于什么事情突然丢失了手机),但却突然碰到了什么事情,需要在一台不是我自己的电脑上(比如网吧)紧急登录我的某些账户并进行一些操作。

    我正在使用密码管理器,且启用了二步验证,却发现此时虽然自己记得主口令,但却因为需要二步验证而被拦在了门外。

    在发生这样的场景之前,可以做一些什么,来避免这种紧急情况下却需要证明『我是我』的操作?

    (目前设想的方案是,在自己的 vps 上,一个只有自己知道的路径里面安放一个用自己记得的长口令加密的压缩文件,里面有访问账户所需的所有信息,比如二步验证码的密钥什么的,或者干脆往钥匙串上挂一个 Yubikey 之类的,不确定有没有用。)

    77 条回复    2025-10-02 18:47:21 +08:00
    R1ta
        1
    R1ta  
       2 天前
    可以实现的话告诉我一下,感觉可以
    iorilu
        2
    iorilu  
       2 天前
    总是得有个第三方来验证阿
    yuanxing008
        3
    yuanxing008  
       2 天前
    你这个已经不是脑洞了 是我碰到的实际问题 之前的手机在高速上被大车碾过去没法用了 换了新手机之后 原来的账号就没法登陆上去了,非得要我原设备上小飞机里发送的验证码才能在新设备登陆我的原账号 给我郁闷了好久
    iziv
        4
    iziv  
       2 天前
    @yuanxing008 请问这个后来怎么解决的啊?我现在也登录不上了,需要从一台已经重装系统的电脑上接收验证码
    helone
        5
    helone  
       2 天前
    我的基本上都存在在 1passwrod 上,在某个二次元网站上注册了个小号,签名就是我的 Secret Key ,曾经用过几次,用过一次后我就会重置一次
    Greenm
        6
    Greenm  
       2 天前
    我的钥匙串有个 yubikey , 同时家里还有个备用的 yubikey 作为备份,可以应付部份场景。

    但是国内的很多场景不太适用,国内很多二次认证还是用的短信作为 MFA , 所以这种场景比较烦,只能通过邮箱重置账号密码,或者干脆等拿到手机了再说。
    newpost
        7
    newpost  
       2 天前
    紧急联系人 可以解决你的问题吗
    bgm004
        8
    bgm004  
       2 天前
    你倒是提醒我了,我的二步验证是加密导出多处备份的,解密的密码在密码管理器上。但是密码管理器也要二步验证。如果我没有手机可能真的没办法。
    thatlazyman
        9
    thatlazyman  
       2 天前
    不少二步验证有一个恢复码,提示你打印下来保存好
    ouou0701
        10
    ouou0701  
       2 天前
    这个问题我也想过,想过要不要搭一个网站专门处理这种问题,不过我部署了 bitwarden,理论上登录上去可以得到密码,但是没有存电话,这个时候一般情况下应该打电话通知家里人,
    aloxaf
        11
    aloxaf  
       2 天前
    我也是 2 个 Yubikey ,随身一个,家里一个。

    不过我觉得最简单的方式是——远程连接家里的电脑……
    smallparking
        12
    smallparking  
       2 天前 via Android
    我是弄了两个手机,避免出现手机损坏导致两部验证问题
    zizon
        13
    zizon  
       2 天前   ❤️ 1
    现在的身份验证策略其实是绑定/认的设备,而不是人的.
    不管是短信,还是 PassKey,本质都是认设备.
    2FA 多数人认知里也是认设备,但实际上是认一个 init code/seed.

    所以要 failover,就得至少有两个基本设备.

    真要回归到人的话,得是生体特征,人脸虹膜活体等交叉验证.
    而且为了确保不会有意外肢体失能等问题,还得多特征.
    S0lution
        14
    S0lution  
       2 天前
    思考了一下,得到的结论好像是:无解

    目前大部分应用服务都依赖 MFA ,单纯密码登陆少之又少,加上如果有使用密码管理器( bitwarden 、1password 等)的习惯设置的一般都是强密码,在异地没有手机甚至连密码管理器都进不去
    op 提到的 vps 上放置强密码加密压缩包确实可行,但是在敏感设备上解压使用密码风险极大,属于是迫不得已情况紧迫可以采取的方案,后果是全部设备应用服务都得重新改密码,但是是一种方案
    yubikey 之类的可行,确保 yubikey 安全的情况下使用 yubikey 作为密码管理器的 MFA 方案可行,代价是可能花钱买 yubikey 几年用不上一次,后果是同上,在易暴露环境上解密了密码库,所有密码最好全部修改

    综合下来没有手机确实在异地登陆比较麻烦,尤其现在服务的风控策略基于 ip 、基于 geo 、基于使用时间、登陆习惯等,个人没有想到什么较好的方案

    欢迎补充
    levelworm
        15
    levelworm  
       2 天前 via iPhone   ❤️ 1
    @thatlazyman #9
    这事情我吃过两次亏,一次也没记住,几个礼拜之后就找不到了,后来把能关掉的二次验证都关掉了,反正资料泄漏的都差不多了。。。
    phithon
        16
    phithon  
       2 天前   ❤️ 1
    recovery code 就是为了解决这个问题的,打印下来放钱包里吧。
    SilentOrFight
        17
    SilentOrFight  
       2 天前   ❤️ 1
    @yuanxing008 #3 tg 很恶心的,只能尽量多设备登录,家里电脑有几台登几台,手机也多登
    wuyadaxian
        18
    wuyadaxian  
       2 天前
    跳板机,我在外面只会连接 vps ,然后使用 vps 来进行登录经常使用的账户,这样对服务器端来说,我就是一个长期的可信任的用户。你可以在 vps 里面放上你的相关各种验证文件。
    你只需要记住你和 vps 之间的连接方式即可。
    langhuishan
        19
    langhuishan  
       2 天前
    设置多层关卡,第一层登录只需要普通密码,但是只能打开第二层验证的程序,其他都无法运行访问。以此类推。类似 sudo 提权
    150530
        20
    150530  
       2 天前
    @iziv 用第三方客户端,有的登录是要手机验证码就行
    sdyung
        21
    sdyung  
       2 天前
    如果只是想要随时查看 2FA 验证码的话,推荐自部署 2FAuth 这个项目,网页登录在线查看已存储的所有 2FA 验证码。项目地址: https://github.com/Bubka/2FAuth
    Kirkcong
        22
    Kirkcong  
       2 天前
    recovery code 就是用来解决这个问题的,设置 MFA 时会提供多组 code ,就是为了应急用的。我的做法是,把这些 code 写入 txt 文件,放入自己的网盘( cloudreve ),需要的时候打开网页登录下载就行,由于是自己建的网盘,没多少人知道,所以不需要二次验证,只需要账号密码即可。
    Librola
        23
    Librola  
       2 天前
    这种情况还是重新补办一张手机卡,花五十块钱买个按键老人机收短信吧
    理论上只要有手机号,我就能登上我的邮箱,有了邮箱我就能登录我自建的 bitwarden ,二次验证什么的就都没问题了。
    Tink
        24
    Tink  
    PRO
       2 天前
    yubikey
    MFWT
        25
    MFWT  
    OP
       2 天前
    @newpost Bitwarden 官方版支持紧急联系人,但我是自己搭建的 Vaultwarden ,也没有配置发信功能,即使支持,怕也没什么人能接收到
    MFWT
        26
    MFWT  
    OP
       2 天前
    @thatlazyman
    @phithon
    @Kirkcong

    恢复码我在常用存储设备上均有备份(五块硬盘,可能还会考虑多加两个 U 盘),但是打印下来做成小卡片确实是个好主意
    VayLiu
        27
    VayLiu  
       2 天前
    这一直是我遇到的实际问题,目前我还没有探索到好的方式来解决 ta
    wangcheng
        28
    wangcheng  
       2 天前 via iPhone   ❤️ 1
    所有方法归根结底就是 something you know 或者 something you have 。其实从一开始你的密码管理器就不应该用 MFA ,只用一个足够复杂的主密码就行;因为你说的这种最后的方法还是 something you know ,本质还是个密码,反而会因为平时不用,真到需要的时候就忘了。
    密码管理器用一个足够复杂的主密码,配合定时修改,定时强制输入防止忘记,是最好的方法。

    另外就是不要把鸡蛋放在同一个篮子里。真的那种出门在外丢了所有随身物品还要求能访问的信息,只能用脑子里的东西(密码)来做。但是这种东西能有多少?剩下信息可以用 MFA ,把备用密钥放在家里,就算在东西丢了,只要能回家就行。或者放在亲戚朋友那,然后记住他们的电话,遇到你说的这种情况就借点钱打个电话让他们帮你恢复。不过这个也需要你这个事前有一定的「演练」。
    Cheons
        29
    Cheons  
       2 天前 via Android
    支付宝 Web 支付,按他那个判定条件就行。
    charles0
        30
    charles0  
       2 天前
    Yubikey 这样的通行密钥(passkey)就支持这个场景
    cwcc
        31
    cwcc  
       2 天前
    我是用了群晖的 Secure Signin 来作为 OTP 管理的,好处就是手机不在身边,可以用别的手机或 pad 下载 app 登录同一个群晖账号(当然账号本身也需要邮箱收验证码,不然就死循环了)来解决。
    OkotoO
        32
    OkotoO  
       2 天前 via Android
    我会带一只手表,在上面看 OTP 其实和大家提的物理 passkey 大差不差吧
    Kirkcong
        33
    Kirkcong  
       2 天前
    @MFWT 有想过这个方案,但实体容易丢失,不易保存,如果这样,不如直接上 yubikey 。不过如果 op 真的采用这个方法,建议打印前把文字转成二维码,用的时候扫描+复制即可
    bobryjosin
        34
    bobryjosin  
       2 天前 via Android
    整个 yubikey 挂钥匙串上,不过这玩意不太喜欢水,泡水 USB 接口会暂时用不了,得晾干才可以,虽然也挺耐造的。
    totoro625
        35
    totoro625  
       2 天前
    yubikey 作为可信设备,知道你的账号的情况下,是可以直接登录你的账户的
    但是在一台不是自己的电脑上登录任何账户是一件非常危险的事情,要做好彻底丢失账号的准备

    倒不如记住向日葵的密码,远程链接到受信设备上
    shenlanAZ
        36
    shenlanAZ  
       2 天前
    用密保问题来去验证/重置,答案在你脑子里,你只要不泄露,你就可以证明“我是我”。
    opengps
        37
    opengps  
       2 天前
    2FA 我是真不喜欢用,我知道我的账号重要,但重要的我已经用了独立密码,不需要为难我自己登录
    bobryjosin
        38
    bobryjosin  
       2 天前 via Android
    @totoro625 yubikey fido2/webauthn 有 pin 保护的,还得在 8 次内把 pin 试出来,用 totp 和 u2f 确实不太安全插入就能读,不需要 pin
    vinciacao
        39
    vinciacao  
       2 天前
    @OkotoO 手表使用 esim 的一号双终端其实是蛮好的一个选择,一般情况下手表不会离身,而一号双终端相当于手机号的异地双活
    在最终的 recovery 手段包含手机号的情况下还是蛮好用的
    whoami9426
        40
    whoami9426  
       2 天前
    webauthn 是最简单便捷的方式
    yb2313
        41
    yb2313  
       2 天前
    我设想过未来的情况,终身深埋一个密钥芯片在体内,手机这类外部终端设备只能通过零知识证明的方式来和这个密钥验证, 然后再告诉外部应用你确实是你。
    edak
        42
    edak  
       2 天前
    Recovery Codes
    unneeded
        43
    unneeded  
       2 天前
    我工位的 Windows 电脑一直开着,我可以远程过去,登录只需要微软账户的用户名密码就行
    Link99
        44
    Link99  
       2 天前
    没遇到过这个事但是会有这种焦虑
    我大多数帐号都是用 google 帐号登录,这些账号都是通过 google 来证明我是我
    但如果有天我把 google 帐号弄丢了(新设备+忘了密码或不能用魔法),就全完了
    runningowl
        45
    runningowl  
       2 天前
    @opengps 同意,很烦,应该提供个选项“我了解不开 2FA 的风险”
    MFWT
        46
    MFWT  
    OP
       2 天前
    @shenlanAZ 我目前也有类似想法,自己设计一个有几个自己记得的密保问题的页面,来获取恢复信息
    MFWT
        47
    MFWT  
    OP
       2 天前
    @totoro625
    @unneeded

    我有几台 VPS ,国内的和国外的都有,在考虑能不能做类似用途,或者紧急情况下又碰巧目标电脑有 v6 ,也可以直接 SSH 回家
    MFWT
        48
    MFWT  
    OP
       2 天前
    @Greenm
    @S0lution
    @Tink
    @charles0
    @Kirkcong
    @bobryjosin

    YubiKey 曾经作为考虑方案,但比对过几个商家,发觉这玩意价格还是比较贵的,目前暂时有一种六位数密码保护三位数存款的感觉,所以不确定有没有什么平替( Canokey ?)或者别的更合适方案
    hcocoa
        49
    hcocoa  
       2 天前
    @MFWT #48 黑五买有优惠。另外:你要保护的东西不值 50 刀?那 MFA 也去掉吧。
    leo72638
        50
    leo72638  
       2 天前
    打电话让家里人用你的电脑操作来通过两步验证
    TimPeake
        51
    TimPeake  
       2 天前
    生物识别不就是解决这个问题的 .....
    xjzshttps
        52
    xjzshttps  
       2 天前
    恢复代码就是用来解决二次验证设备无法使用的问题。


    另外国内主流是人脸识别。
    november
        53
    november  
       2 天前 via iPhone
    @MFWT 虽然但是,Vaultwarden 是有网页版的,直接主密码登录。
    SanjinGG
        54
    SanjinGG  
       2 天前
    类似 ins 吧,有个固定的备份码,密码二级都忘记了就用这个备份码修改,但你也要记住
    MFWT
        55
    MFWT  
    OP
       2 天前
    @november 有是有,但是我 VW 开了二步验证,网页版也需要(当然还有个较为重要的因素是 VW 位于内网)
    THESDZ
        56
    THESDZ  
       1 天前
    1.我(生物特征)->人脸/实名等
    2.我知道->密码
    3.我拥有->手机/邮箱/TOTP
    yanqiyu
        57
    yanqiyu  
       1 天前
    我钥匙串上有个 yubikey ,登录 Google/GitHub 之类的够了

    至于微信之类的,那就算了)
    KaitoHH
        58
    KaitoHH  
       1 天前
    国外的很多网站(比如 google 、apple )在你设置 2FA 的时候都会强制要求你至少配置两个 key ,为的就是防止某个 key 突然丢失的情况。广义上来讲,你的手机也属于 key 的范畴,甚至可以包括 1password 上的 2FA 。
    所以在实践中,不管是以前的 2FA 认证还是现在的 passkey ,除了 1password 之外,我都会至少一个以上的 key ,要么是手机上的 authenticator ,要么一个额外的 yubikey ,当然也没办法排除某些网站只允许你设置一个设备的情况。

    不过回到国内的场景,passkey 和 2FA 的支持就更少了,大部分还是使用短信认证,所以手机如果丢了密码管理器和 yubikey 都救不了你,这个时候唯一的途径只有抓紧补办 sim 卡了。
    gdfsjunjun
        59
    gdfsjunjun  
       1 天前
    想象一下,以后 eSIM 普及后,万一手机突然坏了,情况不就等于没有携带手机吗?如果一时去不了营业厅处理,有备用机也没用,不就等于在新设备上证明自己?而且要是着急接打电话你也没办法。总之太麻烦,要是实体 SIM 卡就简单多了,直接插到新手机搞定。
    jim9606
        60
    jim9606  
       1 天前
    国内这些平台通常会这样补充认证因子:
    1. 要求你通过其他途径联系几个好友,由他们辅助你通过认证。如果你的社交账号连几个找得上的熟人都没有,那这账号通常也没太大找回的价值
    2. 辨认一些私密性略差的账号隐私信息,例如找出好友头像、收货地址、买过的商品
    3. 没有其他高风险因素,例如非常用登录地、极低活跃的账号、过低的客户端版本
    4. 终极手段,带证件线下认证,银行和运营商的最终手段

    如果是微信,微信其实可以设置登录密码的,虽然你可能三年都用不了一次,登录密码可以作为 MFA 认证因素之一,新设备通常短信验证码+登录密码就行。
    实际上哪怕是 Google ,2FA 除了可以用紧急代码/TOTP 验证器之外也没太多好的手段,我不觉得一般大众能正确使用 TOTP (例如这玩意是不应该云同步的,用户生成的认证密钥应该密封在不可导出的容器内的),所以主流做法都是变成手机扫码/点击授权等方法隐藏掉这个底层步骤。

    所以,趁账号正常,重要账户趁早准备:
    1.设置登录密码
    2.淘汰设备留存登录记录,放住所里并维持可用性
    3.设置紧急联系人
    4.账号活动痕迹有点活人的样子
    williamx
        61
    williamx  
       1 天前
    我至今有一个我自己管理的 Google workspace 邮箱登录不上。lol
    在算法面前,有时候什么都证明自己是自己。
    huajingyu
        62
    huajingyu  
       1 天前 via Android
    你可以把帐户信息用较强的密码(防止短时间穷举)加密保存到网络上。(包括密码、2FA 种子。我自己会在创建 2FA 时也把种子备份到安全位置。)
    但前提是你得信任陌生设备。(没有后门、病毒等。最好是你自己的设备或购买的新设备。)
    以及可以考虑数据分级,信任别人或网吧陌生设备的帐户绑定单独的邮箱或存入该加密的文件。以及密码不要共用,不同等级必须用单独密码,而且只能存在脑中。陌生设备避免输入常用密码。
    MFWT
        63
    MFWT  
    OP
       1 天前 via Android
    @KaitoHH TOTP/Passkey (硬件 key 没有用过,不太了解)的话我目前倒是基本上就都是两个甚至多个 key ,就算是网站只允许添加一个,也能做到复制多份,手机一个,bitwarden 一个,浏览器扩展一个,然后把 secret 备份起来,防丢失问题不大
    Eagleyes
        64
    Eagleyes  
       1 天前
    国内的办法就是刷脸。

    比如支付宝,银行 app ,陌生设备必须刷脸,不然知道密码没用。刷脸秒过。

    微信或许可以不刷脸(但不一定能解锁支付功能)登陆的话需要让好友帮忙验证,这就需要你记得朋友电话,打电话告诉他们帮你验证(发 6 为数字给你这个微信)
    MFWT
        65
    MFWT  
    OP
       1 天前 via Android
    @huajingyu 我可能会考虑在 vps 上开一个只有我自己知道的低权限的,用自己知道的密码上锁的账户,当做安全箱来使用
    BloodBlade
        66
    BloodBlade  
       1 天前 via iPhone
    以密码管理器来说,keepass 的第二个验证因素是一个文件,所以只要能记得怎么重新获得一模一样的文件就可以。可以用原本制作该文件的方式重新制作,也可以干脆和其他类似文件混在一起,公开放置(比如自建图床扔了一万张免费素材进去)。
    billgong
        67
    billgong  
       1 天前
    @MFWT #48 可以用 PicoFido https://www.picokeys.com/pico-fido/

    有些自带 USB 公口的板子形态比较适合做这个,比如无名科技的 Pico USB 系列 RP2040-USB/RP2350-USB https://www.nologo.tech/product/raspberrypie/RP2350/rp2350usb/rp2350_usb1.html

    不过最好买 RP2350 的板子,硬件支持安全链和加密主密钥
    bowencool
        68
    bowencool  
       1 天前
    @levelworm 因噎废食了属于是。。。
    bowencool
        69
    bowencool  
       1 天前
    手机、电脑、NAS 任意损坏/丢失都有对应的措施。所有东西都在 NAS 有备份,而 NAS 又有 OSS 做加密备份。
    MFWT
        70
    MFWT  
    OP
       1 天前
    @billgong 2350 方案我也在观察,价格还可以接受,就是不知道咸鱼卖的开发板有没有猫腻之类的
    billgong
        71
    billgong  
       1 天前
    @MFWT #70 哪儿那么多猫腻……都是 SoC+flash+外围,BL 是在片上的 MaskROM 里写死的不存在风险,除非你担心供应链污染。不过即便如此,你可以通过 SWD 彻底重刷二级 BL ,刷完和原版的 Pico 应该就没什么差别了。

    想要 foolproof 还是得买 YubiKey 。Yubikey 没有你想象中的那么贵。不过这玩意儿一般都是买一对。像 Apple 和 Google Accounts 的高级保护模式都是需要一主一备两个设备的。
    jackOff
        72
    jackOff  
       11 小时 26 分钟前
    生物识别,指纹,虹膜或者血液检测的拿来做哈希值校验?人体到底有什么可以作为唯一识别信息同时又能做到防止伪造呢?反正指纹和虹膜可能不大安全了,血液检测应该有用?
    MFWT
        73
    MFWT  
    OP
       11 小时 5 分钟前 via Android
    @jackOff 生物识别方案,包括楼上提到的,虽然技术上可行,但都有一个严重的问题:无法确定在随便一台机器上都有这种识别器(最简单的,指纹,也是如此),所以只能说能用(比如用某台有指纹识别器的 Windows 电脑,据说现在可以用 RDP 透传 Windows Hello ),但应该暂时谈不上好用
    fydss
        74
    fydss  
       10 小时 52 分钟前
    目前用 keepass ,文件和密码验证,这样密码可以设置简单的,反正没人知道你的文件是什么,然后把你的数据文件和密钥文件分开上传到不同的网盘上,这样在哪里登陆都只需要下载数据和密钥文件,再到官网下载一个 keepass 就可以了
    byteroam
        75
    byteroam  
       4 小时 38 分钟前
    现在这些傻逼程序员真的都该千刀万剐,搞那么多验证有屌用,该丢的还是丢,很多时候我只是在外面临时想收个邮件,登个 QQ 微信,密码什么都对就是不让用,
    nuk
        76
    nuk  
       3 小时 11 分钟前
    家里的电脑从来不关机,在外面如果有需要就远程连回来
    snylonue
        77
    snylonue  
       2 小时 12 分钟前
    随身携带 recovery key
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2075 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 232ms · UTC 13:00 · PVG 21:00 · LAX 06:00 · JFK 09:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.