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

国内大公司都是如此没安全意识么?

  •  
  •   octref ·
    octref · 2015-10-20 00:12:17 +08:00 · 8535 次点击
    这是一个创建于 3351 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前段时间的 XCodeGhost 事件,然后这回网易...

    MD5 存密码不是和明文差不多了么。好歹加个 Salt 吧...

    作为一个国外大学读本科的学生,要我来做我都会选 SHA256 + Salt, 网易是真的连这个都不懂的人在写 backend service 么? 没有专门的人负责 security 么? 没有 security audit 么? 一个亿的用户的资料啊...

    虽然这次没有其它公司,但是前段时间 XCodeGhost 的一大列...

    以后有点不想回国了 T T

    65 条回复    2015-11-15 21:50:45 +08:00
    stage37
        1
    stage37  
       2015-10-20 00:15:26 +08:00 via iPhone   ❤️ 4
    不知道国外公司的安全意识怎么样,但是国外知名中小公司代码写得不怎么样的不在少数。

    毕竟大家都是人。
    oott123
        2
    oott123  
       2015-10-20 00:18:14 +08:00 via Android   ❤️ 4
    “历史遗留”
    “政策要求”
    “我国国情”
    dalaomj
        3
    dalaomj  
       2015-10-20 00:19:02 +08:00   ❤️ 4
    时间,时间,时间 维度问题!!谁说数据是刚刚泄漏的?!
    早期的互联网,明文或简单 MD5 就是网站开发标配。
    比如: CSDN 在泄漏之前已经不是明文了,但架不住已经泄漏的老数据在黑产圈传播,然后某一天就抖给公众了。

    简单的 md5 加密? 过去泄漏->现在解密(一般的库,彩虹表暴破,破解率已超过 95%)
    现在很难破解的加密方式?封存数据->未来解密
    安全这事,只能尽力。没有绝对。
    crab
        4
    crab  
       2015-10-20 00:23:05 +08:00
    不知道在过 10 年,两步验证会不会也给破解了。
    MaiCong
        5
    MaiCong  
       2015-10-20 00:40:34 +08:00 via iPad
    真的没有安全意识,我遇到的好几个项目都是一个 md5 加密完事。
    eoo
        6
    eoo  
       2015-10-20 00:44:49 +08:00 via Android
    那你就待在非洲吧 别回来了,中国很危险。
    sogisha
        7
    sogisha  
       2015-10-20 00:55:12 +08:00   ❤️ 4
    不要用 MD5 ,不要用 SHA ,不要用 RIPEMD ,不要用 WHIRLPOOL ,不要用任何散列!

    用 PBKDF2 ,或者 scrypt ,或者 bcrypt !

    你的目的不是混淆密码,而是让人在获得密码存储后无法暴力破解。

    存储密码要的是拖延破解的时间。单一散列不能。
    ryd994
        8
    ryd994  
       2015-10-20 01:14:35 +08:00
    看来你没有认真上课。你算法教授没有提过 Big Omega 有什么意义么?
    SHA256 + Salt 也是药丸的,尽管比 md5 是好多了。它们都是 hash
    hash 太快了,一般来讲快肯定是好,无论是用于 hash 之后 cluster ,还是验证一个签名
    然而对密码来讲, hash 越快,字典出来的就越快。即使加了盐,现在连带盐的字典都有。毕竟我们不需要覆盖所有密码,绝大多数用户用的都是弱智级的弱密码而已。有时候就是暴力硬上。
    PBKDF2 等 Key derivation function 无法做到多快,却可以保证够慢。
    slixurd
        9
    slixurd  
       2015-10-20 01:17:22 +08:00   ❤️ 1
    作为一个国内上大学的我都知道要 PBKDF2+SALT
    楼主还是不要回国了。
    ideacco
        10
    ideacco  
       2015-10-20 01:18:35 +08:00
    妹的,之前 CSDN 被脱换了一批密码,后来 SB 携程的信用卡被破,又换了一批,现在 163 也被脱。还得再换。都要崩溃了。求解决办法啊各位大神。
    FrankFang128
        11
    FrankFang128  
       2015-10-20 01:24:33 +08:00 via Android
    本地加密
    typcn
        12
    typcn  
       2015-10-20 01:34:52 +08:00
    @ryd994 可以在客户端 /浏览器端做一次或几次 PBKDF2 之类的慢算法( 1 秒左右用户无感知,如果要做多次,可以显示个进度条),然后提交到服务器上,服务器上再做一次加盐的 Hash
    octref
        13
    octref  
    OP
       2015-10-20 01:58:21 +08:00
    谢谢各位 告诉 PBKDF2 ,学习了。还没专门去上 security 的课,具体不是那么了解。至少应该用 SHA256 和 Salt 是 Web Programming 的老师教的。我想表达的是『不该用 No Salt 的 MD5 算比较常识的知识了』。

    关于不想回国,不是说看不起国内的意思...只是感觉回来之后一是避不开各大公司的全家桶,二是现在一直用的网易云音乐前段时间是 XCodeGhost 现在又出现个这个事感觉有点...想普普通通用个手机没有烦恼好难。
    lenran
        14
    lenran  
       2015-10-20 02:01:14 +08:00
    你知道的,项目越大,漏洞越多。概莫例外
    ryd994
        15
    ryd994  
       2015-10-20 04:13:16 +08:00   ❤️ 3
    希望大家至少读一读这篇文章,讲了常见的错误实现: https://crackstation.net/hashing-security.htm


    @typcn 11 楼是更加错误的方法,那样的话,密码实质上就是客户端生成的结果。如果被脱库,我只需要以 PBKDF2 所有可能输出当作密码取值域,穷举服务器上的加盐 hash 就行。如果要登录用户的帐号,只需要 curl 发送结果,直接绕过 pbkdf2 部分。不能相信客户端可以操纵的任何数据,而你的做法正是以客户端会乖乖对输入内容做 pbkdf2 为前提的。

    安全的登录页面必须用 TLS
    安全的登录页面必须用 TLS
    安全的登录页面必须用 TLS

    不用 TLS 的所谓 JS 加密传输的库我也写过,无非是不懂的时候闹的大笑话而已。人家直接劫持 JS ,直接 post 一份到它们服务器。而用了 TLS 以后,密码要不要额外加密已经无所谓了。客户机器不安全的话键盘钩子都能偷密码,结果都一样。
    ryd994
        16
    ryd994  
       2015-10-20 04:28:51 +08:00
    @octref 回国是必须跃 墙,会跃 墙的人并不会中 XCodeGhost
    自己要多学,做一点小项目,做的时候认真思考,不要以能用而是以完美为目标,多 Google 。这些项目多半会坑掉,但你会学到很多。

    课堂教的系统全面,但自己学的才是前进的动力。

    CS 只是我副专业而已,然而我能在 CS 课上完爆 CS 专业的学长。无他,唯手熟尔。(国外 CS 课其实很水,不深的,这并不是坏事)单片机汇编 /Python/Linux ,虽然我也只是入门水平,但上课的内容都是玩剩下的,只需要查漏补缺就行。
    如果你有兴趣,这点程度不难的。
    yyfearth
        17
    yyfearth  
       2015-10-20 04:47:00 +08:00
    @ryd994 https 是必须的前提
    但是我还是觉得全部依赖 https 也不保险
    我还是觉得前端做一次 pbkdf2 或者比较长的 hash 比较好
    因为用比较长的 hash (比如 2048bit )作为后端初始密码 穷举的量还是很大的

    至少不会因为 https 的漏洞 导致泄漏用户的原始密码(用来社工)
    虽然前端 hash 不能增加系统的安全性 但是算是保护用户隐私的一个办法
    尤其是对于大部分用户使用统一的简单密码 这样多一层保护 创建字典更加困难
    Cavolo
        18
    Cavolo  
       2015-10-20 05:45:12 +08:00 via iPhone
    @ideacco 1p 这种软件去生成,每个账户密码完全不同,就算一家公司泄露,也不会危及到其他
    sogisha
        19
    sogisha  
       2015-10-20 06:24:37 +08:00
    @yyfearth 在有 https 的前提下几乎就是“你高兴就好”。我看到的问题是,用 js 搞 pbkdf2 是可行的,但 pbkdf2 比的是在相同时间内你能折腾出多少轮,越多越好。除非打算让用户等很久,否则之后就成了用 C 来爆破用 js 算出来的 pbkdf2 。。。
    pxlxh
        20
    pxlxh  
       2015-10-20 08:18:57 +08:00
    楼主这下优越感爆棚了吧
    别回来了
    ps :吐槽这种中英夹杂的半吊子
    ritianhuang
        21
    ritianhuang  
       2015-10-20 08:22:14 +08:00
    完了一群中共国底层码农要高潮了
    loading
        22
    loading  
       2015-10-20 08:26:09 +08:00 via iPhone
    利用明文泄露的库,加上保存的盐,可快速算出一个新的彩虹表,然后再对比即可。

    除非你的密码都是 lastpass 那种,而且位数超长,不然必然有很大几率和其他人相同。
    ty0716
        23
    ty0716  
       2015-10-20 08:35:18 +08:00
    网易邮箱不是今年才开发出来的,发现问题的时候已经没法更改[或者难以更改],除非每个用户登录检测是不是用的 md5(pwd+salt),提示必须修改.否则无法登录。
    Ansen
        24
    Ansen  
       2015-10-20 08:44:25 +08:00
    不是没安全意识~是技术在进步,岁月是把杀猪刀~
    sutking
        25
    sutking  
       2015-10-20 08:58:18 +08:00 via iPhone
    古代时候给皇帝建造陵墓的工匠们都有一个就秘密通道的习惯,为什么?
    moe3000
        26
    moe3000  
       2015-10-20 09:05:19 +08:00   ❤️ 1
    backend service 什么意思啊, security audit 什么意思啊?能不能说中文啊
    yaxin
        27
    yaxin  
       2015-10-20 09:17:07 +08:00
    这 B 装的
    MrEggNoodle
        28
    MrEggNoodle  
       2015-10-20 10:32:23 +08:00
    @sogisha 非常感谢你告知这么多关键词。
    janxin
        29
    janxin  
       2015-10-20 10:34:40 +08:00
    历史遗留问题而已,网易那套 USR 估计几百年没人敢改....
    66beta
        30
    66beta  
       2015-10-20 10:36:44 +08:00
    既然能脱裤,那我用自己的账号做测试, salt 不也分分钟测出来?
    slixurd
        31
    slixurd  
       2015-10-20 10:42:00 +08:00
    @66beta salt 都是明文保存的,如果是密码后面拼接一个固定字符串,那不叫 salt 。
    visonme
        32
    visonme  
       2015-10-20 10:43:40 +08:00
    在国内相对来说,很多小公司产品安全意识是很薄弱的。至于大公司说真的出现这样的问题确实不应该,不过也不排除因为历史原因造成的。

    国外其实也存在这样的问题,只是情况会比国内的情况好点。
    appppppp
        33
    appppppp  
       2015-10-20 10:51:58 +08:00 via iPhone   ❤️ 1
    别的不说,讲中文就好好说中文,英文就好好说英文,别那几个单词拿过来,太装 国外呆那么久,你是见过我们讨论 security 还是 we talk about security 演讲中的中英文混差好好学学吧
    adminsb
        34
    adminsb  
       2015-10-20 11:00:42 +08:00
    网易公司服务协议: 亲爱的用户,我是你爹
    way2exp
        35
    way2exp  
       2015-10-20 11:47:40 +08:00
    一次作为技术工程师和客户沟通,
    客户只想确保自己系统内金融模块的安全;
    客户表示消费者的个人身份信息泄露什么的他们不在意;
    当时心里就觉得万千羊驼奔腾而过~
    dai269619118
        36
    dai269619118  
       2015-10-20 11:52:58 +08:00   ❤️ 2
    优越感爆棚
    说的好像国内有什么大公司要招你了一样
    yoa1q7y
        37
    yoa1q7y  
       2015-10-20 12:00:06 +08:00
    @dai269619118 但是国内公司确实一般,进去了之后才知道, BAT 都很 low ,庸才占大多数
    wuchizhitu1988
        38
    wuchizhitu1988  
       2015-10-20 12:40:38 +08:00
    因为大部分用户自己也不在乎..所以厂家也就更没这个意识了..
    SonicY
        39
    SonicY  
       2015-10-20 12:51:31 +08:00
    apple, ms, lastpass, sony 比你们不知道高到哪里去了, 不照样.
    zhangdawei
        40
    zhangdawei  
       2015-10-20 12:51:55 +08:00
    上来一句就是国内大公司,你是喷了多少公司
    typcn
        41
    typcn  
       2015-10-20 13:33:30 +08:00
    @ryd994 难道用户还会手动修改 JS ,把你的安全加密方式去掉?换成明文?

    当然,我说的一切,前提都是 HTTPS ,只要是 HTTP ,我都不会做密码登录的功能,而是用户填写邮箱,发送动态验证码登录
    c24c4fe8
        42
    c24c4fe8  
       2015-10-20 13:53:37 +08:00
    还记得 CSDN 明文保存密码的事情吗? 什么都不想说了
    m8syYID5eaas8hF7
        43
    m8syYID5eaas8hF7  
       2015-10-20 15:16:50 +08:00
    看云风微博的意思,网易邮箱主要是代码太老,又懒得去改。
    10 年前的网站,估计大家都是 MD5 加密的吧
    codesun
        44
    codesun  
       2015-10-20 15:36:57 +08:00
    要是有本事留在国外,那回来干嘛?要是水平不够,那就不是你想不想留的问题了,是人家要不要你。
    Chrics
        45
    Chrics  
       2015-10-20 15:43:41 +08:00
    只相信二次验证..
    jimrok
        46
    jimrok  
       2015-10-20 15:49:33 +08:00
    从农业国进入工业国没有多长时间,再说科学的素养也没有文化的传承。
    HowardMei
        47
    HowardMei  
       2015-10-20 16:02:40 +08:00
    @sogisha WHIRLPOOL 怎么了?不是说比 NSA 的 AES 要可信些吗?
    menc
        48
    menc  
       2015-10-20 16:04:50 +08:00
    别的不想说,不要站着说话不腰疼

    你试过连官方的 server 下 X code 在国内什么速度你就知道了
    eightqueen
        49
    eightqueen  
       2015-10-20 16:27:41 +08:00
    前些日子苹果不是泄露了很多著名女星的艳照吗?楼主确定留过学?
    lightening
        50
    lightening  
       2015-10-20 16:32:38 +08:00
    网易的这套登录系统建立这么早,那时候 MD5 就是标配吧。
    你今天做了 SHA256 + Salt , 10 年后说不定有人问你,你安全意识怎么这么差啊,至少应该 SHA1024 啊。
    yuanzz
        51
    yuanzz  
       2015-10-20 16:49:27 +08:00
    楼主只是提一下在国外,“ 有点不想回国”,就把一帮屌丝炸毛了,有趣。
    PublicID
        52
    PublicID  
       2015-10-20 18:16:12 +08:00
    去查查 Google 是否被脱过库,你会有惊喜。
    PublicID
        53
    PublicID  
       2015-10-20 18:18:05 +08:00
    当然,如果有点脑子的话,你知道如何去暗网查
    cst4you
        54
    cst4you  
       2015-10-20 18:58:12 +08:00
    不是没有, 是不能有, 你有了, party 怎么干预?
    salmon5
        55
    salmon5  
       2015-10-20 19:13:57 +08:00
    这种还用想的?
    前期风险不大,机会没预见风险,
    后期篓子太大,没人敢捅,领导更是不敢。
    ryd994
        56
    ryd994  
       2015-10-20 19:18:32 +08:00
    @typcn 考虑了 MITM 的可能,比如钓鱼 WiFi ,于是废弃。 不曾想真有 http://www.williamlong.info/archives/3658.html
    typcn
        57
    typcn  
       2015-10-20 19:29:36 +08:00
    @ryd994 HSTS 和 HPKP 全被吃了。。。
    hk24v2
        58
    hk24v2  
       2015-10-21 00:05:02 +08:00
    @ideacco lastpass 每个网站生成不同密码,特别重要的只能记在脑袋里咯
    hk24v2
        59
    hk24v2  
       2015-10-21 00:05:49 +08:00
    @sutking 明明是修完直接杀了陪葬
    Tedko
        60
    Tedko  
       2015-10-21 00:20:26 +08:00
    楼主说话方式很正常。要我我也这么说。吐槽楼主混中英文的基本上交流太少,或者英文不好。
    另外我建议 lz 实习下。我明确告诉你,我在国内实习的时候见过安全做的很努力,但是被社工,也见过美帝把企业账户密码全明文保存到 google doc 的,但是一点事情都木有的。
    两家都是估值 A 轮一下子就上亿的( rmb ,和美元)。而且我知道的时候都只有二十人左右。


    真要看安全和重视去美帝大企业。面试之前先要求一堆 NDA 签好,然后面,入职实习前注意事项。除了 fb 这种超级 flat 的方式之外都是内部也层层分割。做 backend 和 infram 的会有 security audit 和 各种 QA ……

    过了美帝大厂简历关的都不会问这种问题了。

    网易并没有这么大规模和体量。

    至于 xcodeghost,这个就比较搞笑了。


    另外不知道 lz 什么大学的。要知道国外大学多的很。 V2 上我没见过 stanford 的。但是 cmu , ucb , uiuc 的多得很。
    yxzblue
        61
    yxzblue  
       2015-10-21 00:42:20 +08:00
    居然因为这屁点事,说不想回国,只能说你赢了
    Khlieb
        62
    Khlieb  
       2015-10-21 08:44:55 +08:00 via Android
    @ritianhuang 果然有几个☭国狗腿子出没。
    这个不能说国内大公司没安全意识,但是在如何解决问题上面他们实在是太过形式主义了。
    ideacco
        63
    ideacco  
       2015-10-21 19:39:32 +08:00
    @hk24v2 道理也明白,可是现在移动端用的越来越多。各种 APP 的入口也需要密码啊, 1p 就没法解决了。而且一定要用 1P 的浏览器 APP 才能访问网络也是头疼。
    sogisha
        64
    sogisha  
       2015-10-22 01:14:09 +08:00
    @HowardMei AES 是加密算法, Whirlpool 是散列函数,你要怎么比?

    AES 目前看还是是安全的,有足够的审计。如果你的应用因为 AES 不安全而不安全,那也不是你的责任,整个互联网都会被颠覆吧。当然这也不代表 AES 就不会变得不安全,你也可以选择非 NSA 的算法,一大堆呢。

    Whirlpool 和 SHA512 是可以比的。不过同理。
    olboy
        65
    olboy  
       2015-11-15 21:50:45 +08:00
    回国事情跟安全有关系吗?我是从事网络安全行业的,其实一些东西泄露跟用户也有很大关系,比如很多游戏网站,需要邮箱注册,很用用户习惯性用邮箱的密码,游戏网站被脱裤了 ,最后邮箱公司来背。在这声明,我不是网易的,只是告诉大家泄密的另一种渠道,大家也可以自己思考下,自己是否存在安全的意思。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2970 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 13:17 · PVG 21:17 · LAX 05:17 · JFK 08:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.