github 是如何保存用户名和密码的?

2015-10-30 13:12:32 +08:00
 ryanking8215

github 使用 ror 开发的,那么应该使用的是 ror 的自带的密码管理系统,我不了解 ror ,应该也是 salt+散列方法对密码加密(PBKDF2 或者 bcrypt 或者是自研的)。

但是 github 的 api 又是支持 http basic authentication 的,也就是原始密码有可能会被明文保存,或者对称式加密保存,是这么理解吗?那被拖库不是不安全了?

3043 次点击
所在节点    问与答
7 条回复
cyberdak
2015-10-30 13:16:07 +08:00
http basice auth != 明文
tony1016
2015-10-30 13:17:58 +08:00
既然保存的散列,比较的也是散列,何必要保存明文。至于你说的“有可能”,那“非编制内的员工”,很有可能在日志里或者哪里保存一下。
ryanking8215
2015-10-30 13:25:39 +08:00
@cyberdak
@tony1016
basic authentication, 就是对原始密码进行 base64 编码,如果系统只保存散列密码, basic auth 怎么认证呢?
所以为了支持 basic auth, 它要么保存原始密码,要么对原始密码进行对称式加密保存。
ryanking8215
2015-10-30 13:27:05 +08:00
sorry, 理解错了。 base64 解码后和标准认证是一样的
clino
2015-10-30 13:40:27 +08:00
"又是支持 http basic authentication 的" 和 "也就是原始密码有可能会被明文保存,或者对称式加密保存" 没什么逻辑关系吧?

比如说用保存 hash 值的办法,一样可以支持 http basic authentication 啊,每次把 http basic authentication 传来的用户名密码 hash 计算以后和保存下来的 hash 值比较不就能够鉴别用户了
SoloCompany
2015-10-30 23:23:22 +08:00
「所以为了支持 basic auth, 它要么保存原始密码,要么对原始密码进行对称式加密保存」
这理解能力也是醉了,明明是正好相反
ryanking8215
2015-10-31 09:59:03 +08:00
@SoloCompany 呵呵,之前脑子抽住了,错误地认为 login form 传的是散列后的密码,其实密码散列计算在 server 端做的,那么 basic auth 也是 ok 的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/232251

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX