V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Hackerchai
V2EX  ›  信息安全

大家都在用什么 OTP(二次验证)方案啊

  •  1
     
  •   Hackerchai · 2020-12-06 17:14:11 +08:00 · 9039 次点击
    这是一个创建于 1440 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 楼主自己在用 Bitwarden_rs 自建,但是本着二次验证不能和密码管理器放在一起的原则(安全性考虑),同时在使用andOTP来存储 TOTP,不支持自动云端备份( GoogleDrive,Dropbox...),但是可以自动本地备份(备份到内置存储的文件夹下)。我的解决方案是定期手动导出加密后的数据到 GoogleDrive,这样即使手机遗失也可以恢复数据

    • 之前使用过Authy,支持云端自动同步(但是不支持同步到各大网盘 /WebDav )但是它本身不开源所以不是很信任。另外它使用手机号作为登录凭证也比较反感

    • 除了 Authy 以外,其他客户端都不支持跨平台同步,无法一有改动立即同步云端备份

    • 以安卓为例,andOTPAegis 此类的开源 OTP 客户端不支持跨平台使用,各家的数据文件不通用

    综上,如果可以造论子的话,大家希望理想的 OTP 客户端是什么样的?我有几个备选想法:

    1. Authy 的开源实现版本,除了客户端以外实现一个后端,用来完成登录和同步。不使用手机号作为二次验证,只使用Master Password来鉴权 (如此的话安全性会打折扣,这里如果各位 V 友有更好地二次验证解决方案可以留言)。实现起来类似 Bitwarden 自建,可以自行搭建,客户端指定后端同步地址

    2. 实现一套加密方案,在各平台客户端的基础上支持对接各大网盘存储 /WebDav 的 API,实现自动更新和跨平台同步

    想了解一下各位大佬的 OTP 客户端,看看有没有更好地解决方案

    43 条回复    2021-02-16 10:06:57 +08:00
    iphoneXr
        1
    iphoneXr  
       2020-12-06 18:21:10 +08:00 via iPhone
    bitwarden 付费 60 元一年,mfa 用起来太方便了。
    注意备份 proxmox 的虚拟机就好了。
    imn1
        2
    imn1  
       2020-12-06 18:30:55 +08:00
    pip install pyotp
    Hackerchai
        3
    Hackerchai  
    OP
       2020-12-06 18:52:44 +08:00 via Android
    @iphoneXr bitwarden_rs 自建不是更香
    Hackerchai
        4
    Hackerchai  
    OP
       2020-12-06 18:53:02 +08:00 via Android
    @imn1 手机上就没法用了呀
    imn1
        5
    imn1  
       2020-12-06 19:37:22 +08:00
    @Hackerchai #4
    我在手机上几乎没有使用的场合

    另外,OTP 算法是固定的,只要时间校正,识别码相同,什么软件没所谓,不需要考虑软件跨平台,自己找个地方保存识别码就行
    wooyuntest
        6
    wooyuntest  
       2020-12-06 20:25:03 +08:00   ❤️ 1
    yubikey fido2
    Windelight
        7
    Windelight  
       2020-12-06 21:09:07 +08:00 via Android
    一个微软验证器解决多数你想要的,只要你信任微软可以保护你的信息😂
    justin2018
        8
    justin2018  
       2020-12-06 21:38:17 +08:00
    微软的那个~~ 同步 iOS 安卓 都有~
    HertzHz
        9
    HertzHz  
       2020-12-06 21:59:01 +08:00
    对于丢失 OTP 可用其他方式恢复的就不用担心了,如果丢了 OTP 就废掉的话,可以把密钥塞 1Password 之类的地方
    nieyujiang
        10
    nieyujiang  
       2020-12-06 22:05:58 +08:00 via iPhone   ❤️ 1
    1password,只记一个主密码就行了
    moooonb
        11
    moooonb  
       2020-12-06 22:28:43 +08:00
    fido
    wb14123
        12
    wb14123  
       2020-12-06 22:29:28 +08:00
    可靠的还是物理密钥如 Yubikey,可以对服务注册多个 Yubikey 来防止丢失。
    CrazyBoyFeng
        13
    CrazyBoyFeng  
       2020-12-06 23:40:57 +08:00
    密码 bitwarden,2fa 用微软身份验证器,带同步。
    baobao1270
        14
    baobao1270  
       2020-12-07 02:06:08 +08:00 via Android   ❤️ 1
    我用 Microsoft Authenticator
    ericgui
        15
    ericgui  
       2020-12-07 06:29:50 +08:00
    你有个后端,就意味着你被黑的风险增加了好几分,毕竟你自己维护一个服务器,你觉得安全性多高?
    Aoang
        16
    Aoang  
       2020-12-07 09:16:54 +08:00 via Android   ❤️ 2
    @ericgui 这个观点不能苟同。

    和公司比,个人的体量更小,除开针对个人的情况下,黑公司的服务器不是比黑个人的服务器可能性更大么?
    这点就不说了,毕竟无论怎么扯都是半斤八两的。

    自建的安全性并不意味着会很低,风险增加…不能很懂为什么会这么想。

    服务器防火墙别乱开端口,服务器登录做好安全措施,都用 bitwarden 了,不至于还是个弱密码吧?
    套一个 nginx,然后再套一层 cf,只允许 cf 回源。

    加一个脚本,定期备份数据文件,上传到各个地方。我是直接用 git 做的。

    服务器随时可换,数据文件丢失也没什么,那是加密的。
    但是,即使是这样,这么一个服务器除非出现 0day 怎么会被黑?
    tsukiikekaoru
        17
    tsukiikekaoru  
       2020-12-07 09:34:02 +08:00 via iPhone   ❤️ 1
    为什么不能和密码放一起呢? otp 的作用是在密码被攻破的情况下加一层防护,而不是服务器被攻破
    lijinma
        18
    lijinma  
       2020-12-07 09:38:17 +08:00
    1password 挺好的。
    Hackerchai
        19
    Hackerchai  
    OP
       2020-12-07 09:44:28 +08:00 via Android
    @wooyuntest 感谢 我去了解一下
    Hackerchai
        20
    Hackerchai  
    OP
       2020-12-07 09:44:39 +08:00 via Android
    @wb14123 感谢
    Hackerchai
        21
    Hackerchai  
    OP
       2020-12-07 09:45:18 +08:00 via Android
    @nieyujiang 那 1pass 的二次验证怎么解决呢
    tsukiikekaoru
        22
    tsukiikekaoru  
       2020-12-07 09:46:13 +08:00 via iPhone
    虽然分开放的确会增加一重安全性,但使用上也会更加不方便。这就是安全性和方便性的选择了,个人观点是没有必要去追求绝对的安全性。即便是传统的单一密码机制绝大多数被攻破也是因为简单密码、多网站同一密码、微博等厂商自己被人攻击盗窃,而这些在使用不同网站不同复杂密码加 OTP 后都已经能够杜绝,也就是说使用密码管理软件后已经解决了上述问题。不要总想着有人来攻击你的服务器并且还真的攻破了,先想想自己服务器和网站有几次被人攻破的记录,没那么容易的。
    tabris17
        23
    tabris17  
       2020-12-07 09:46:13 +08:00
    google authenticator
    Hackerchai
        24
    Hackerchai  
    OP
       2020-12-07 09:46:38 +08:00 via Android
    @tsukiikekaoru 那如果我的 bitwarden 服务器被攻破了,那 otp 和密码放在一起,这时候不就完全崩溃了
    d0m2o08
        25
    d0m2o08  
       2020-12-07 09:57:02 +08:00
    iOS 用 jsbox 自己撸了一个,通过 dropbox 备份
    petercui
        26
    petercui  
       2020-12-07 10:06:44 +08:00
    1password +1
    no1xsyzy
        27
    no1xsyzy  
       2020-12-07 10:10:49 +08:00
    OTP 不得同步、不得备份。
    顺便,这似乎是方便、安全、预算不可能三角。想要又方便又安全就上强密码独立计算随身设备(比如 Yubikey ),在该设备的基础上生成一切。

    另,我有不少 OTP 只是为了骗过平台解除一些限制。不少平台只要不在不信任的设备(比如网吧)上登录、登录时看准域名、密码够强就行,没上 MFA 的必要,有其他更脆弱的验证方式,MFA 上了也不够安全,OTP 就是防呆。
    但这些平台又自作聪明地要求你添加 OTP 才能进行某些操作,那我只好骗过了。
    janxin
        28
    janxin  
       2020-12-07 10:11:57 +08:00
    Microsoft Authenticator
    no1xsyzy
        29
    no1xsyzy  
       2020-12-07 10:13:14 +08:00
    @Hackerchai 你 A 被攻破了,有 C 在没事儿啊,别人拿到手也破译不了就行了(指信息安全 CIA 模型)
    但我不清楚 bitwarden 是否端到端加密
    zzyzxd
        30
    zzyzxd  
       2020-12-07 10:13:50 +08:00
    我发现懂一些技术、或者有一些动手能力的人,总有一种幻觉,就是“我自建服务器比云服务安全”。bitwarden 软件给你了,接下来,你真的有能力、以及这个精力,保证在整个部署和后期维护的过程中永远遵循所有安全规范吗?你家或者你租的云上的 infra,有没有专业机构帮你做 security audit ?

    目前读下来你一直担心自己的服务器被攻陷,那么你可能不适合自己部署密码管理器。

    另外,

    > 本着二次验证不能和密码管理器放在一起的原则(安全性考虑)

    为什么会有这样的原则?两步验证中的第二步存在的意义,是在第一步(密码)被攻陷的情况下给账号提供第二重保护。那么什么时候攻击者能攻陷你的密码呢?
    1. 通过密码管理器之外的任何途径知道了你的密码,包括但不限于:多网站复用密码,social engineering……
    2. 密码管理器被攻陷。

    对于 1,使用密码管理器就能避免。
    对于 2,密码管理器自身应该已经有两步验证,这时候你再把 TOTP 凭证放在另一个地方,相当于你把登陆某网站的流程提高到了三步验证。这样当然更安全,但是也要自己考虑考虑是否需要安全到那种程度。
    vain
        31
    vain  
       2020-12-07 10:15:55 +08:00
    vain
        32
    vain  
       2020-12-07 10:19:39 +08:00
    使用 bitwarden,然后将登陆 bitwarden 账号的信息(含 2ND FACTOR )保存在我上边提到的产品中,安全性和便利性一次满足。
    tsukiikekaoru
        33
    tsukiikekaoru  
       2020-12-07 11:12:00 +08:00 via iPhone
    @no1xsyzy 我也是。2FA 除非特殊情况我一般不会开,Google 开了是为了解除异地登录锁定,馒头是为了魔力值加成,其他还真没几个开的,开了也是增加不便,大多数情况单一复杂密码足够了。
    olaloong
        34
    olaloong  
       2020-12-07 11:17:24 +08:00
    所以,还有哪家 TOTP 支持 Steam 令牌?目前用的 KeePass + KeeTrayTOTP 插件
    tsukiikekaoru
        35
    tsukiikekaoru  
       2020-12-07 11:19:37 +08:00 via iPhone
    @Hackerchai 我之前的最后一段话说了啊,哪有那么容易攻破服务器,做好服务器登录防护,非必要端口不开,ssh 复杂密码或者密钥登录,乱七八糟的服务不乱跑在上面,做好升级,即便公网环境很恶劣也没那么容易攻破一台服务器,大多数时候还是因为简单密码和服务端口漏洞被人黑进去了。再者退一万步真的被人黑了服务器,没有主密码也很难获得其中的内容。或者像其他人说的与其单独保存每个网站的 2FA,不如只开密码管理软件的 2FA 。
    Hackerchai
        36
    Hackerchai  
    OP
       2020-12-07 11:25:36 +08:00 via Android
    @zzyzxd otp 不和密码管理器放在一起的考虑就是自建密码管理器有被入侵的风险
    lovehigh
        37
    lovehigh  
       2020-12-07 11:37:50 +08:00
    用的 keepass+KeeTrayTOTP,steam 也能支持。手机端用 keepass2android,配合坚果云的 webdav 。非常方便。
    johnli
        38
    johnli  
       2020-12-07 15:52:37 +08:00
    @baobao1270 微软这个 OTP 只能单平台同步,iOS 和安卓不能互通,亲测
    CrazyBoyFeng
        39
    CrazyBoyFeng  
       2020-12-11 20:28:11 +08:00
    除了微软验证器,我有个补充方案是浏览器扩展 https://authenticator.cc/
    支持 chrome 、firefox 、edge 三家扩展。
    可以绑定 googledrive 、onedrive 、dropbox 的 api 上传数据进行同步。
    tsukiikekaoru
        40
    tsukiikekaoru  
       2020-12-19 00:48:54 +08:00 via iPhone
    @olaloong bitwarden 就支持 stean totp
    JoJoJoJ
        41
    JoJoJoJ  
       2021-01-12 16:13:00 +08:00
    @vain 比 yubikey 贵 8 倍,买不起系列
    vain
        42
    vain  
       2021-01-12 16:15:31 +08:00
    @JoJoJoJ 你是不是弄错价格了?怎么会贵八倍
    Eyeshr
        43
    Eyeshr  
       2021-02-16 10:06:57 +08:00
    单纯在用 KeePass
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1084 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 19:15 · PVG 03:15 · LAX 11:15 · JFK 14:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.