问个前端公钥加密防止中间人攻击的问题

2020-11-10 11:01:32 +08:00
 FreeWong

Baidu 的登录页在用户登录前使用了公钥对用户的密钥进行了加密 然后再到服务端进行密码正确的判断 其中登录页本身使用了 https 我的问题是,这样的做法可以在即便中间人攻击的情况下也无法得到明文的密码 但是,如果中间人截获了这个公钥加密后的文本,中间人即使不能看到明文密码,但是中间人一样可以把这个截获的文本向 Baidu 的服务器提交,中间人一样可以正常登录

所以从这个角度来看 似乎不是特别有意义啊 我的理解对吗,多谢多谢

2726 次点击
所在节点    问与答
28 条回复
jim9606
2020-11-10 16:25:22 +08:00
@FreeWong
没看漏,HTTPS 和 HMAC 要同时使用。
因为在浏览器跑的 JS 代码也是从服务器下载的,如果不用 HTTPS 保护的话就存在 JS 代码被篡改的问题,那浏览器那边会发生什么都不奇怪了。
用 HMAC 的目的是避免 PIN 被还原出来,对于被动 MITM,这个方法可以避免重放攻击,也不用担心 PIN 泄漏。大厂喜欢用 RSA 估计还是为了获得 PIN,我严重怀疑它们是在数据库直接存 PIN 的,这个方式用来防被动 MITM 是足够的。
firefox12
2020-11-10 17:48:47 +08:00
有 https 再加这个,估计是怕 浏览器其实是被控制的,js 再加一层,那么就又麻烦很多。
webshe11
2020-11-10 17:52:05 +08:00
有一种刚学完现代密码学胡搞毛搞的感觉
jadec0der
2020-11-11 00:00:11 +08:00
@lovecy 我不知道百度工程师的想法,但是我猜就是想在 HTTPS 上加一层防护。用户安装奇怪的证书是很常见的,至少在公司的电脑上很普遍。
lovecy
2020-11-11 11:05:19 +08:00
@jadec0der 既然用户都安装了奇怪的证书,那估计也会安装奇怪的插件,直接改你的加密秘钥。
我觉得主要还是#14#15 这类似的原因
FreeWong
2020-11-11 11:56:58 +08:00
@all 这里的中间人攻击行为我们假设为 颁发假证书 在这个前提下讨论就不会有理解上的差异了
感谢大家回复,帮我解除心中的困惑
YouLMAO
2020-12-26 19:51:21 +08:00
@jim9606 不应该用 hmac,就是应该对称加密,hmac 你需要跟进用户名问后端拿盐呢,对称加密后端自己解密即可,再加盐
FreeWong
2020-12-26 19:55:31 +08:00
@YouLMAO 感谢回复,晚点时间再继续 这个话题。。。

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

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

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

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

© 2021 V2EX