数据库存储的敏感信息是否需要加密存储?

2021-04-09 15:23:24 +08:00
 FreeEx

我做的一个开源项目其中存储了服务器的 IP 账号密码等信息,有用户反馈说这些信息明文存储在数据库不安全,希望进行加密存储,但是在进行查看等操作的时候还是需要进行解密的,密钥也需要写在配置文件里,加密操作是不是多此一举呢?

3485 次点击
所在节点    程序员
34 条回复
konakona
2021-04-09 16:10:00 +08:00
密码肯定要加密啊

电商强烈建议可逆的序列化存储用户姓名、手机、地址这些敏感数据的密文,就简单的 hash 都好,被脱裤子了人家只会觉得你这家公司业界良心很厚道。
learningman
2021-04-09 16:10:24 +08:00
@3dwelcome #19 可是隔壁 edge 导入的时候没看 chrome 意见啊。。。
FreeEx
2021-04-09 16:11:23 +08:00
@3dwelcome 觉得加密存储了,开源项目用的加密算法就是直接公开的,加密的密钥只能让用户自己设置了
3dwelcome
2021-04-09 16:11:37 +08:00
@FreeEx 随机因子是加盐的意思,不会丢。可防彩虹表爆破。
FreeEx
2021-04-09 16:17:16 +08:00
@3dwelcome 我了解的 AES 加密只有 IV 偏移量,加盐在 MD5 里面用的比较多,请问你说的是哪种加密算法?
jay4497
2021-04-09 16:39:10 +08:00
@FreeEx AES 除了偏移量也有 key 的吧
3dwelcome
2021-04-09 16:43:33 +08:00
@FreeEx AES 也算加盐,因为 IV 设计的目的,就是加入随机数。
看你描述,和 chrome 一样要完全还原明文密码的,那只能用 AES 了。
zpfhbyx
2021-04-09 16:50:27 +08:00
@FreeEx user_id 就是随机因子啊。
timethinker
2021-04-09 17:01:11 +08:00
分两部分看:
密码一般不可逆,我们也没有必要逆向出密码的明文,因此属于哈希类的,只需要通过相同的哈希算法得出一致的结果就行,不关心它的明文到底是什么。

但是手机号等这类信息是需要可逆的,也就是加密之后还得解密,落地存储到数据库的时候到底要不要对此类信息进行加密,我记得三级等保是需要的,但是加密的一个后果就是无法支持区间条件查询,比如一个需求是查询所有以 188 开头手机号的所有记录,加密以后就无法进行范围匹配查询了,当然了,也可以有其他的辅助性的索引支撑,但是复杂性也会随之提高。

我又要唠叨一下了,没有绝对的安全,只能尽量保证在泄露数据之后,使泄露出去的那一部分无法单独得出有意义的结果,比如只是数据库被脱库了,但是没有应用代码的逻辑,即使拿到那一部分数据也是没有意义的。当然了,如果你的应用代码和数据库全被扒了,那么再好的加密措施也会变得没有意义,就看对方是否愿意花时间在这上面研究了。
FreeEx
2021-04-09 17:17:01 +08:00
@zpfhbyx 这样相当于把密钥写进数据库了,因为程序本身是开源的,加密算法也就相当于公开了,因此数据和不加密没有区别。
FreeEx
2021-04-09 17:19:07 +08:00
@qwe520liao 感谢回复,因为程序是开源的,所以加密算法也是公开的,此种情况下只能把密钥写到配置文件里面了,尽量保证数据安全吧。
zpfhbyx
2021-04-09 17:21:38 +08:00
@FreeEx 开源也没事。。随机因子去让用的人去配就好了。。反正也不知道是哪个。
FreeEx
2021-04-09 17:22:50 +08:00
@jay4497 AES 的 key 就是密钥。
@3dwelcome 把 AES 的密钥写到配置文件吧,这样至少还需要一个任意文件读取的漏洞才能解密数据。
magicdawn
2021-04-10 10:50:49 +08:00
之前做过手机号, 姓名之类的需要对称加密
有个包比较实用,https://github.com/magicdawn/node-mysql-aes

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

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

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

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

© 2021 V2EX