登录接口明文密码在浏览器端先加盐 SHA512 一次,服务端再用 bcrypt 等慢哈希算法二次加密存储是最佳实践吗?为什么多个大厂都发生过不小心在日志输出用户明文密码的事件,不加密或可逆加密传输用户密码仍是主流
加盐 SHA512 这种方案反而我基本没见过
如果是为了检测是否是泄露的或者是弱密码,那可以把常用密码数据库同样加盐 SHA512 一次再保存(不过这样就要求 SHA512 的盐全部用户相同)或者把 1000 个常见密码发到客户端,在客户端判断
还有一种方案是 Scrypt KDF 以前在 discord 上看到有人讨论过,有实际应用案例吗
互联网企业搞安全成本高收益小,除非监管强制要求,否则能省就省
没法判断密码是否符合复杂度要求吧,大小写特殊符号之类的
因为就算泄露了没人追责,也没有天价罚款,所以无人在乎
你说得对,bcrypt 能解决密码问题,但是你架不住历史包袱久,重构账户相关出事了一锅端
只要不重构禁不住有人打印整个模型,模型有自带解密方法
至于你说的检测规则,都已经加密传输了,直接从前端检测就好了,还检验什么😂前端搞坑多
所以还是后端哈希,片段 HTTPS 就行了,至于密码的事,后端的问题自己解决,工程化的工程化,不然下次没课密码,还有身份证,手机号
我们都是直接对称加密或者非对称加密,到后端再解密
零知识证明不就可以了?😓比如 telegram 用的 srp 协议和更通用的 pake 协议,只要保证客户端没人篡改,就没人可以解密原始密码,服务器也不知道
服务器本来就不应该知道用户的密码是什么。严格来说,就是明文密码不出客户端。只要这个密码离开客户端,就要用摘要算法计算 hash 值代替。
另外,加密传密码是什么鬼?你拿用户的密码想干什么?
只传摘要,那设置密码也穿摘要吗
当然啦,通过别的方式而非密码验证用户身份的合法性,譬如短信验证码。
你是老板还是打工的,加密差不多够用就得了
不是这种方式有什么难度,也不是这样做有什么成本
而是做的某种程度(特别是 toC)有人会要你明文保存,但是没文件没规定
最搞笑的是这个和等保还是冲突的
前端判断强度就完事儿,你硬要用接口突破安全行为,设置弱密码,我这儿也看不到密码原文。
实在要全链路安全,还得设计类似 tls 的公私钥握手过程。
先问是不是,有哪些“多个大厂都发生过不小心在日志输出用户明文密码的事件”?
前端加密本身就是脱裤子放屁的事,都有 https 了前端加密的意义是什么
https 是防传输过程泄密,前端哈希可以防止在传输目的地的服务端泄密,两者并不冲突。
用 opaque
github.com/facebook/opaque-ke
为什么要在前端加盐, 如果会被截取, 人家直接拿加盐后的密码当密码用不就行了吗? 如果不会被截取, 那直接明文传输在后端加盐哈希存储才对吧?
《大厂都发生过不小心在日志输出用户明文密码的事件》
没听说,至少我不会把用户登录信息输出到 log 上,没啥意义也不必要这么做
#7 "加密传密码是什么鬼?你拿用户的密码想干什么?"
1 、客户需求,而且这个客户还不听劝;
2 、有些软件就是需要明文密码,比如 pppoe-server 、svn server 、ftp server ,虽然有些可以结合其他软件使用非明文密码,但简单实现都是基于明文的。
不前端加密 新项目都是直接 https+bcrypt 旧项目懒得管 他们怎么写我用啥 不操心这些
如果还需要加强安全措施不都是二次验证之类的
至于前端加密,B 站那些卖课的就喜欢搞这些
另外如果一个项目日志会泄露这些。。。那估计我想就不单单是密码的问题了
我有个项目就是的在前端加盐 hash 后给后端的,密码强度验证就只在前端,后端只收到 hash 结果。
前端加密也好,hash 也好,作用是什么?完全没看懂。
我只能想到一个作用,就是拿这个特定的用户名和密码组合来做碰撞攻击其他服务/工具。
服务器端有一百种方式泄露用户密码, 例如 nginx 日志, 网关层, 框架日志, 接口请求记录, 中间各层 HTTP 请求,RPC 请求 ... 不管怎么样, 从服务器接收到请求开始,再到用户中心给密码加密之前, 所有中间层能可以明文看到用户密码 .
没明白前端 hash 的意义在哪,对与服务端而言密码不就变成了前端 hash 后的值了吗?非但没有提升安全性,反而增加了碰撞的可能性。
- 谈不上最佳实践,bcrypt 加密没啥争议,java 的主流做法。至于浏览器端加密,满足客户要求就好,最多的场景就是浏览器提交的密码不是明文就行。浏览器端加密本身争议就比较大,没必要非得求个定论。
密码泄漏我有印象的,一个是 csdn 被拖库,因为用明文存储的,另外一个是阿里云的事情,细节不记得了,原因是把 secretkey 写到了代码里,然后传到了 github 上。没听说过日志泄漏的。这种只能说开发也太没有安全意识了,敏感信息不该进日志。
都能进入中间层了,明文密文还有意义吗?反正后端认就能利用。
第一 https 都被挟持了你做再多的加密都没用了
第二密码可以携带多重信息的,比如可以在密码后面加验证码可以让老版本没有验证框的也能登陆其实没意义. 前端明文 + https + bcrypt 即可. 至于 https 被劫持和 后端流程泄漏密码, 这是另外的问题.
我之前看见别人说, 在编译和启动速度上,wsl 上的 linux 都比 Windows 强,我使用同一台机器,使用 maven 编译同一个项目,实际对比了下,时间没啥差距,为什…
电信 VoWifi 逐渐在很多城市铺设,但是只有新发的国行 Android 手机才默认启用了电信的 VoWiFi 支持,旧设备则是被统统抛弃了。 由于深受室内信号差的苦恼,一直…
半个月前突然 QNAP 提示我备份盘出现不可恢复的读写错误,于是花了 4 位数买了 18TB 的新盘(过保了)。 折腾新盘的时候想着顺便提升下性能,所以又插了一个 SSD ,…