最近做到一个项目需要对数据进行加敏脱敏,说实话没怎么接触过,数据内容比较重要。
以前做过的一般都是按照不同 role 展示不同行的数据,对指定列在前台做字符串替换的方式来隐藏重要信息,这种估计不行,因为后台开发还是能很轻松看到原始数据,求助有没有方法可以做合适的加敏脱敏的啊。
1
gz911122 2019-03-19 09:44:06 +08:00
线上数据库只给开发看 view 视图,不直接给看表
但是没意义,因为 dba 还是能轻松的看到原始数据 |
2
daveze 2019-03-19 09:52:36 +08:00
符合国家安全规范的应该是数据库信息都加密存储
|
3
JesseHeisenberg 2019-03-19 09:55:53 +08:00
我们公司有产品哦,欢迎合作。
|
4
sarices 2019-03-19 09:57:37 +08:00
开发不是应该只看测试数据库吗?直接操作线上数据库?
|
5
zhangalong69 2019-03-19 09:58:02 +08:00
数据库加密,老数据进行清洗
|
6
sarices 2019-03-19 09:58:41 +08:00 1
还有“对指定列在前台做字符串替换的方式来隐藏重要信息”,这个 100%泄露吧,应该在后台做啊
|
7
miaomiao0323 2019-03-19 10:03:35 +08:00 2
1、开发用测试环境假数据
2、存储:AES、RSA 或者国密 sm,insert 加密,select 解密 3、传输:对参数做加密 4、展示:星号或者乱码 5、整个过程做权限管控和访问日志审计 |
8
mv0x 2019-03-19 10:56:45 +08:00 1
@miaomiao0323 大部分场景都是这样做的,特别是一些支付数据,国家有明确的要求,包括对 log 都要加密
|
9
xomix 2019-03-19 11:55:28 +08:00
#7 都说完了,我还能说啥?
另外说一下高敏数据是客户端密钥解密的,就是你服务端传的是什么你自己都不知道。 |
10
snappyone OP 感谢楼上各位回答
|
11
lidongdong1222 2019-03-19 14:34:03 +08:00
@xomix 全让客户端处理,客户端出现 bug,存入了错数据,尤其是那种小概率出现的 bug,永久都别想调试出来了,赔钱赔到死。
|
12
sharplook 2019-03-19 15:42:43 +08:00
数据库直接存放密文
1.配置需要加密的表字段,和密钥,加密方式(全加密 /半加密(用于 mobile 之类的模糊查询)) 2.代理 datasource,select 解析 sql 进行解密.insert 解析 SQL 进行加密. 3.问题特殊函数无法支持,对性能的影响和旧数据迁移. 日志加密,对日志输出进行模糊匹配.password,pwd 启动加载的配置进行星号处理 pass=****** |
13
mv0x 2019-03-19 15:43:48 +08:00
@xomix 哈哈,这个其实还有很多有意思的事情可以做的,比如密钥的保存就是一个大的问题,有一次去中科院信息安全研究所玩,有很多人就是研究怎么样保存这个密钥的。
|
14
mv0x 2019-03-19 15:52:59 +08:00
key sharding 有很多方法,最简单的是多签,如 5 签 3,5 个人共同持有一个密钥,只要里面有三个人一起就可以还原整个密钥
|
15
xomix 2019-03-19 17:56:25 +08:00
@lidongdong1222 那种高敏数据客户端这边是保障无 bug 的,你服务端数据只要正常传递就行,客户端 bug 别人比你先知道根本不会找你赔,你就是一个 protocol buff 的高级实现。
|