https 网页数据还需要另外加密吗

2021-05-22 10:26:39 +08:00
 fxrocks

有一些敏感数据(非密码)要客户在网页提交,网站是 https,我知道密码可以公钥加 sha1 再传输,反正私钥在我后端对比就好。 但是非密码敏感数据,后台要能拿到原文的,请问 1 ) https 了,前端还需要对称加密吗? 2 )需要的话,用什么方式来加密?网页源码能看到加密算法吗?

谢谢。

5461 次点击
所在节点    信息安全
30 条回复
Quarter
2021-05-22 10:29:54 +08:00
想要看不到(直接看到)源码,需要对源码进行混淆

想要知道加密是为了防止什么情况发生?
codehz
2021-05-22 10:37:29 +08:00
主要看你的威胁模型
反正只要记住能 mitm 攻击 https 的,肯定可以轻易修改内容,别说偷你加密密钥了,直接把前端加密给扬了,然后它自己偷了再加密然后传递给服务端都可以。。。
fxrocks
2021-05-22 10:38:41 +08:00
@Quarter 防止他人看到明文
noe132
2021-05-22 10:41:48 +08:00
前端加密 = 不相信浏览器
不相信浏览器 = 认为脚本可能会被替换 /篡改
脚本可能会被替换 /篡改 = 加密等于没有加密
yin1999
2021-05-22 10:42:43 +08:00
前端做二次加密感觉意义不是很大,隔壁 GitHub 在 https 登录时都是没做前端二次加密传输密码的
ladypxy
2021-05-22 10:50:16 +08:00
前段加密没有任何实际意义
wanguorui123
2021-05-22 11:00:19 +08:00
简单的 Salt+SHA 不向服务器提交密码还是有必要的。其他没什么实质性的安全提升
580a388da131
2021-05-22 11:11:51 +08:00
不信任客户端环境的话,什么加密都没用。
加密算法的脚本对客户端是透明的,否则就没办法运行了。
真的特别需要的话,应该调用实体 usb key 加密。
fxrocks
2021-05-22 13:07:03 +08:00
感谢大家回复
EminemW
2021-05-22 13:09:44 +08:00
@yin1999 #5 最起码 hash 一下吧。要是日志打印了参数,并且日志文件泄漏了,那不就把用户的密码泄露了吗
yin1999
2021-05-22 13:40:06 +08:00
@EminemW 楼主说的是要拿到原文的(真打印参数也不会打印密文),而且日志打印参数这个和部署前没有没有认真去审查也有关系吧
fano
2021-05-22 13:57:30 +08:00
whatsapp 、telegram 的网页版做了二次加密
liuidetmks
2021-05-22 16:07:38 +08:00
@fano 可能是他们是端到端的加密吧,所以需要网页加密
crab
2021-05-22 16:09:29 +08:00
前端加密网页可以跟出加密算法啊
ch2
2021-05-22 16:22:55 +08:00
前端加密一般是用来反机器人的,你不需要反机器人就不用加密
至于明文能不能看到,加了 https 以后攻击就足够难以实施了,不必过于追求这个
kappa
2021-05-22 16:33:12 +08:00
@liuidetmks Telegram 默认不是 e2e
009694
2021-05-22 16:38:39 +08:00
前端加密其实是有意义的。 也就是不信任后端。。比如把明文密码写在 log 里这种行为
Maskeney
2021-05-22 17:23:38 +08:00
https 是保证通信过程不被第三方窥探,如果你的内容需要对客户端也保密的话,那么需要
brader
2021-05-22 18:16:17 +08:00
https 的话,已经是传输安全了,所以再次加密,解决的不是传输安全问题。
再次加密一些敏感数据,可以增加别人的破解难度,还能使得别人无法随心所欲的使用一些工具直接构造请求,可拦住一些初级攻击人员。

说回正题,公司对这块接口安全级别要求比较高的话,可以选择加密。客户端是能被获知源码来分析加密算法的,所以你采用对称加密,也是有办法解密的,对称加密优点是解密速度快、没有长度限制。如果采用非对称加密,优点是被截获后是无法解密的,缺点是能加密的明文长度有限、解密消耗资源多。
muzuiget
2021-05-22 18:43:56 +08:00
前端加密只是防服务器资源被滥用,至少提高攻击成本,纯粹是放中间人的,HTTPS 就够了。

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

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

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

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

© 2021 V2EX