twitter 到底干了嘛?怎么会出现用户明文密码 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iConnect
V2EX    Twitter

twitter 到底干了嘛?怎么会出现用户明文密码

  •  
  •   iConnect 2018-05-06 08:44:00 +08:00 11817 次点击
    这是一个创建于 2719 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用户密码不是应该只保存 hash 过的吗?

    twitter

    30 条回复    2018-05-07 03:01:43 +08:00
    AlphaTr
        1
    AlphaTr  
       2018-05-06 08:46:29 +08:00
    哈希之前的日志记录了密码,没脱敏
    opengps
        2
    opengps  
       2018-05-06 08:53:28 +08:00
    估计某个程序员测试时候记录了明文日志,然后忘了去掉日志就提交生产环境了
    LazyZhu
        3
    LazyZhu  
       2018-05-06 09:30:17 +08:00   9
    Github 也出了这个问题, 内部调试日志出现了明文密码.
    不过得给 Github/Twitter 这种高度的用户透明度点个赞, 国内哪家大厂商有这个觉悟?
    wvc
        4
    wvc  
       2018-05-06 09:49:01 +08:00
    @LazyZhu 国内啥都是毒瘤啊
    julyclyde
        5
    julyclyde  
       2018-05-06 10:21:05 +08:00   2
    @wvc 国内啊,携程把信用卡卡号和 CVV2 写到日志里去了
    xmdhs
        6
    xmdhs  
       2018-05-06 11:16:02 +08:00 via iPad
    国内的估计没几个 hash 过

    所以国内的网站 万一裤子被脱了就。。。
    iX
        7
    iX  
       2018-05-06 11:8:25 +08:00 via iPhone
    @julyclyde 不是记录到数据库里了么?
    lany
        8
    lany  
       2018-05-06 11:23:11 +08:00 via Android
    调试代码忘记注释了
    0915240
        9
    0915240  
       2018-05-06 11:46:59 +08:00 via iPhone
    日志记录了密码



    emmmmm
    Va1n3R
        10
    Va1n3R  
       2018-05-06 11:52:37 +08:00
    貌似这个日志也是用户接触不到的。。。只有工作人员可以看到,其实也就是日志把明文密码在 hash 前先记录下来了。
    Raymon111111
        11
    Raymon111111  
       2018-05-06 12:04:26 +08:00
    是生产环境打了 log, 推特官方表示没有任何迹象表明这个有泄露, 但是改密码还是更保险一点.

    HN 上这个讨论还挺热烈的, 都在说能用手段避免这种情况发生.
    swulling
        12
    swulling  
       2018-05-06 12:06:23 +08:00 via iPhone
    客户端预 hash 可以解决,两次 hash

    客户端一次,服务端一次。
    PressOne
        13
    PressOne  
       2018-05-06 12:15:14 +08:00
    @Raymon111111 黑客没那么傻,以往公开的库都是几年前拖的,利用的没有价值了再公布的
    cairnechen
        14
    cairnechen  
       2018-05-06 12:51:37 +08:00
    @xmdhs 国内没几个 hash 过???你可能有啥误解吧,以为国内人人都是 CSDN 呢
    geeklian
        15
    geeklian  
       2018-05-06 14:16:26 +08:00 via Android
    其实银行的取款密码都没有 hash。

    不过 6 位纯数字,hash 不 hash 没区别。
    rogwan
        16
    rogwan  
       2018-05-06 14:20:40 +08:00 via Android
    @geeklian 银行是卡、密分离,这个还是有区别的。知道密码,没有实物卡偷不了钱。互联网账号则另说
    skyyp
        17
    skyyp  
       2018-05-06 14:23:24 +08:00
    想起了几年前的 CSDN 脱裤子事件
    xy90321
        18
    xy90321  
       2018-05-06 14:29:42 +08:00 via iPhone   1
    @swulling
    不防本质
    为了调试新加的本地 hash 代码所以又把明文密码打在了本地的 log 上 → 比打在服务器上性质还要恶劣 → 卒
    treo
        19
    treo  
       2018-05-06 14:47:00 +08:00
    @swulling https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2011/august/Javascript-cryptography-considered-harmful/
    olaloong
        20
    olaloong  
       2018-05-06 15:27:27 +08:00
    twitter 发的邮件里面有解释

    关于此问题

    我们通过所谓的哈希转换流程,使用一个名为 bcrypt 的函数对密码进行掩码处理,即用随机的一系列数字和字母替代实际密码,存储在 Twitter 系统内。 这让我们的系统可以在不显示你的密码的前提下核实帐号身份。 这是行业标准做法。

    有一个问题导致密码在完成哈希转换前被写入一个内部日志。 我们自己发现了这个错误,移除了密码信息,并且正在部署计划以防这个问题再度发生。
    xiaolanglang
        21
    xiaolanglang  
       2018-05-06 15:57:24 +08:00   3
    @swulling 二次 hash 会降低值域,安全性会下降
    xiaolanglang
        22
    xiaolanglang  
       2018-05-06 15:58:50 +08:00
    Bcrypt 是目前非常适合用来 hash 密码的算法……还是建议用这个……而不是自己造轮子…………
    swulling
        23
    swulling  
       2018-05-06 16:23:29 +08:00 via iPad
    @gy911201 Twitter 就是用的 bcrypt,但是和这次是两回事。另外值域缩小对密码来说不是什么问题。


    @treo 所以两次啊,javascipt 一次,服务端一次。
    swulling
        24
    swulling  
       2018-05-06 16:24:41 +08:00 via iPad
    @xy90321 你还真别说,打到 console log 里没啥风险。。
    julyclyde
        25
    julyclyde  
       2018-05-06 17:01:58 +08:00
    @swulling 多次 hash 会缩小定义域,降低安全性
    Telegram
        26
    Telegram  
       2018-05-06 17:08:34 +08:00 via iPhone
    前面几位感觉有点跪舔了,密码明文就是明文,一视同仁的喷就对了,别说什么比国内透明。
    就算是日志里出明文,也不能让我理解。
    为啥不能前端先 hash 一次,然后提交到服务器,后端你再要怎么加密都没问题。
    20015jjw
        27
    20015jjw  
       2018-05-06 18:53:58 +08:00
    @Telegram 国内这方面几乎为 0 的透明度还是得喷啊
    agagega
        28
    agagega  
       2018-05-06 18:59:11 +08:00 via iPhone
    还是 Dropbox 的会玩。第一步 SHA 把长度统一,第二步 Bcrypt,第三步用一个全局密钥 AES 加密以防泄漏。
    param
        29
    param  
       2018-05-07 02:59:18 +08:00 via Android
    所以前端在提交之前先哈希一遍
    param
        30
    param  
       2018-05-07 03:01:43 +08:00 via Android
    @geeklian 即使是 6 位字,也可以加解
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5842 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 06:25 PVG 14:25 LAX 23:25 JFK 02:25
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86