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

关于 GSM 拦截和短信嗅探的问题, 改进密码重置机制的一个想法?

  •  2
     
  •   lchy · 2018-08-07 16:37:54 +08:00 · 3952 次点击
    这是一个创建于 2082 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这几天闹得沸沸扬扬的 GSM 拦截和短信嗅探。 大家晚上都睡不好觉了; 有建议手机换电信 CDMA 得, 有建议晚上关手机或飞行模式得, 有建议运营商早点砍了 2G 网络算了(对于中国移动无解)。

    现在黑产和信息泄露这么厉害,搞不好社工大数据库中早已有你我他的身份信息和手机号码的记录了。 单凭以前那种 身份证+短信验证码下发来唯一确认一个人, 在 2G GSM 被中间人嗅探环境下,基本等于脱了裤子裸泳。

    那么为何不反过来要求这些网站和 APP 修改密码重置的手段呢?

    譬如说,把传统密码重置只是下发一个随机验证码短信(容易在 2G 网络下被嗅探窃听); 改为主要要求用户上行一条短信; 简化流程如下:

    1 ) 用户要求重置密码, 网站或者 APP (服务端)随机生成一串数值,譬如 1234 ;

    2 ) 要求用户主动发送短信包含数值( 1234 ) 给网站或者 APP 的指定端口(这时,用户必然连接的是真基站);

    3 ) 网站 /APP 服务端收到用户的上行短信后, 根据给的 1234 通过算法生成一个唯一对应的验证码 5678,短信发给用户(这里即使被黑客嗅探获取,也无意义);

    4 ) 用户在网站重置界面或者 APP 界面上, 输入收到的验证码 5678 (系统会话记录初始随机值 1234 ),系统将 5678 和 1234 进行对应认证,通过后允许用户重置密码;

    即使步骤 3,这个 5678 验证码被黑客短信嗅探复制, 但是黑客打开的网站 /APP 的密码重置的会话中并没有唯一对应的 1234 这个信息,换句话, 黑客输入了 5678 在他的网站界面中,密码重置是失效的,因为对不上系统初始给的随机值 1234。

    觉得上述这个密码重置机制实现起来并不复杂, 不需要语音、图像识别这么高大上的机制。只要额外多增加一条用户主动短信上行的步骤。虽然需要用户多花 1 毛钱短信费, 但是对于支付密码重置这种要人命的安全性来说, 我觉得是值得的。

    大家的看法呢?

    18 条回复    2018-08-08 15:10:42 +08:00
    saluton
        1
    saluton  
       2018-08-07 16:40:57 +08:00
    别,最讨厌主动上行那种
    邮件验证不好吗?非要为了实名制用短信
    lchy
        2
    lchy  
    OP
       2018-08-07 16:42:42 +08:00
    @saluton 问题邮件安全性不好啊, 钓鱼邮件、菜鸟喜欢的的各种邮件密码一样(更容易被社工),这些使得基于邮件作为唯一密码重置的手段,并不比手机安全多少呢。
    yksoft1
        3
    yksoft1  
       2018-08-07 16:50:22 +08:00
    腾讯、网易的重置密码早就是主动短信的机制了。
    其实真正好一点的手段是搞真正的本地一次性密码做 2FA,类似 Google 验证器那种,这样不需要用户购买实体密码器,又可以有效防止短信验证码被窃取的问题。
    3a3Mp112
        4
    3a3Mp112  
       2018-08-07 16:52:41 +08:00
    google auth 高瞻远瞩, 不联网,而且 iOS 自带的备份功能,备份不进去。
    yingtl
        5
    yingtl  
       2018-08-07 16:56:57 +08:00
    验证环节加上一个要求用户主动呼入一次也行, 也不用要求对方接听
    kimqcn
        6
    kimqcn  
       2018-08-07 17:13:06 +08:00
    用户主动发送短信....csdn 这么搞过
    StederLee
        7
    StederLee  
       2018-08-07 18:46:53 +08:00 via Android
    上行短信的体验不好,我觉得还是 2FA 好一点
    zhujinliang
        8
    zhujinliang  
       2018-08-07 19:19:00 +08:00 via iPhone
    你是不是百度派来的奸细
    gamexg
        9
    gamexg  
       2018-08-07 20:00:06 +08:00 via Android
    改语音验证码,虽然应该也可破解,但是目前我还没发现公开的。
    leafleave
        10
    leafleave  
       2018-08-07 20:08:50 +08:00 via iPhone
    @yksoft1 要是验证器数据丢失了,怎么重新绑定?
    masir
        11
    masir  
       2018-08-07 20:21:16 +08:00 via Android
    移动号拿来做绑定,然后 SIM 卡飞行模式,手机上用无忧行 APP 收短信和接电话,全部走 IP,总不至于能劫持移动的服务器吧~
    imn1
        12
    imn1  
       2018-08-07 20:35:16 +08:00
    @leafleave #10
    恢复码是最高权限,使用恢复码登入,撤销原来的验证,重新生成新的验证
    所以恢复码要高度保密保存

    最终极当然是本人亲临柜台办理重置
    swulling
        13
    swulling  
       2018-08-07 20:37:28 +08:00 via iPhone   ❤️ 2
    上行 1234 就验证通过不完了,后面的步骤要来干嘛?
    leafleave
        14
    leafleave  
       2018-08-07 21:01:15 +08:00 via iPhone
    @imn1 你这个有点像 steam
    loveour
        15
    loveour  
       2018-08-07 23:11:44 +08:00
    说实话短信验证码安全性现在才暴露才真是有点出乎意料,一下子就防无可防更是出乎意料。希望各路金融机构能加强安全措施吧,不管是二次验证,还是主动发送,还是人脸识别,总之别一个短信验证码就当作验证身份了就行。
    mario85
        16
    mario85  
       2018-08-08 02:05:56 +08:00
    人家都能直接代替你在运营商注网,相当于他的手机用你的手机卡信息把你的手机踢下网,收发短信也是他,接打电话也是他,根本没你啥事
    上行验证估计防不了这一种
    swulling
        17
    swulling  
       2018-08-08 07:58:46 +08:00 via iPhone
    @mario85 GSM 嗅探无法控制上行
    lchy
        18
    lchy  
    OP
       2018-08-08 15:10:42 +08:00
    @swulling 因为上行短信也是可以被黑客嗅探看到明文的, 如果黑客看到你重置密码的短信请求, 然后立刻在网站或者 app 重置密码界面选择重置, 服务器也会跳转到重置密码的后继页面啊。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   940 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:18 · PVG 06:18 · LAX 15:18 · JFK 18:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.