前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >论如何解决学习通被拖库导致的数据泄漏问题

论如何解决学习通被拖库导致的数据泄漏问题

作者头像
用户5166556
发布2023-03-18 15:12:21
8690
发布2023-03-18 15:12:21
举报

以一个农民工的名义对大家说,软件的健康与否关系着全国人的安危。君不见,几多时,一个软件漏洞便让多数人惊慌。不经意间,我们与软件的关系休戚与共。不幸的是,软件的健康状况不容乐观,瑕疵很多。

之前发生了logback、fastjson等漏洞跟程序员有很大关系,不修复可能面临轻则走人,重则公司倒闭股票下跌,但是今天这个事情,关系到多数人。

简单来说,就是被拖库了,什么意思呢?底裤都脱了,所以什么都可以看到了,如果重要信息已经全部泄漏,修改密码也无济于事。当然如果只是泄漏了一张人员信息表,还是建议尽快修改为更复杂的密码。

如上对于学习通发表的声明,就相当于没有说什么。

  • 首先没有查出被盗的证据,这个要看如何盗取的了,如果数据库所在服务器网络端口对外泄漏了,拿到了数据库的源文件,不把你的服务器数据删除烧高香了。对于重要数据存储的服务器一定要做好网络隔离,并且不断扫描,发现不必要的数据端口暴露,要立马告警。
  • 密码用单向加密存储,就没有见过密码用明文存储的,(除了最大的程序员中文平台 CSDN)说一句,我已经加密了,至于密码太简单,被别人映射出来了,跟我没什么关系,作为一个这么多用户的应用平台,你就没有考虑加个盐吗?
密码加盐方案

当然了你也可以对如上图中的明文密码进行再次加密,盐值可以使用随机生成,至于如何混淆,你可以在代码中自行设计。最后加密出来的 Hash 值就很难在彩虹表中找到了。即使找到,也只是上层拼接盐字符串的内容,用户的原文密码毕竟还有一层加密,而且这个加密逻辑对外是看不到的。这对于经常使用简单密码登录的用户非常有效。

对于用户而言,一些重要的网站帐号、密码尽量还是使用不同的内容,如果记不住的话,可以使用一些带加密能力的记事本软件进行保存,这样会更加安全。

而作为软件的研发人员,要对自己的产品负责,应该始终都将用户的密码及重要信息进行加密处理。这是最基本的职业道德规范。如果都做如上声明,互联网将命不久矣。

说到点子上了,重要信息也要加密处理,人家都已经把库搞到手了,管你用什么密码,反正我已经拿到数据了,这就要求我们对敏感信息进行加密了。

敏感信息加密方案

简单做法可以在数据库实现加密算法函数 decode,在模糊查询的时候使用 decode(key) like '%jiaoyutong%

在数据库中实现与程序一致的加解密算法,修改模糊查询条件,使用数据库加解密函数先解密再模糊查找,这样做的优点是实现成本低,开发使用成本低,只需要将以往的模糊查找稍微修改一下就可以实现,但是缺点也很明显,这样做无法利用数据库的索引来优化查询。而且数据的加密跟业务实现可能不一致。

如果上面满足不了查询要求,那么对密文数据进行分词组合,将分词组合的结果集分别进行加密,然后存储到扩展列,查询时通过key like '%partial%',这是一个比较经济的实现方案,先来说下它的实现思路。

先对字符进行固定长度的分组,将一个字段拆分为多个,举个例子:

jiaoyutong使用4个字符为一组的加密方式,第一组jiao ,第二组iaoy ,第三组aoyu ,第四组oyut … 依次类推。

如果需要检索所有包含检索条件4个字符的数据比如:jiao ,那么就把 jiao 加密字符后通过 key like '%partial%' 查库。

这个方法优点就是实现起来不算复杂,使用起来也较为简单,算是一个折中的做法,因为会有扩展字段存储成本会有升高,但是可利用数据库索引优化查询速度,推荐使用这个方法。常规情况下,敏感信息大多是手机号、身份证号,我们可以使用部分字段加密技术做到,比如可以只保留手机号的后四位明文,前面部分加密,搜索只能根据后四位,所以会更简单。

有兴趣的话可以参考下一些互联网平台上的常见方案:

  • 阿里巴巴文字段检索方案(https://jaq-doc.alibaba.com/docs/doc.htm?treeId=1&articleId=106213&docType=1)
  • 拼多多密文字段检索方案(https://open.pinduoduo.com/application/document/browse?idStr=3407B605226E77F2)
  • 京东密文字段检索方案(https://jos.jd.com/commondoc?listId=345)
数据存储加密高端做法

这里有兴趣的可以参考,

  • 安全的云存储方案:https://www.cnblogs.com/arthurqin/p/6307153.html
  • 支持快速查询的数据库如何加密https://www.jiamisoft.com/blog/5961-kuaisuchaxunshujukujiami.html
  • 一种基于BloomFilter的改进型加密文本模糊搜索机制研究 http://staff.ustc.edu.cn/~zhangwm/Paper/2019_15.pdf

总结

到这里差不多也就啰嗦完了,总的来说,不要说安全复杂了,其实很多加密方案都是几十年前的了,这块知识一直没有怎么变化,但是安全呢?它不仅仅是一门朴素的学问,更是一门权衡的艺术,要从投入、产出比、及综合技术实现考虑,从而经济实惠的保证数据安全。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生技术爱好者社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 密码加盐方案
  • 敏感信息加密方案
  • 数据存储加密高端做法
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档