V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
snappyone
V2EX  ›  程序员

数据加敏脱敏方案求助

  •  
  •   snappyone · 2019-03-19 09:25:25 +08:00 · 4379 次点击
    这是一个创建于 2075 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近做到一个项目需要对数据进行加敏脱敏,说实话没怎么接触过,数据内容比较重要。

    以前做过的一般都是按照不同 role 展示不同行的数据,对指定列在前台做字符串替换的方式来隐藏重要信息,这种估计不行,因为后台开发还是能很轻松看到原始数据,求助有没有方法可以做合适的加敏脱敏的啊。

    16 条回复    2019-03-19 17:57:29 +08:00
    gz911122
        1
    gz911122  
       2019-03-19 09:44:06 +08:00
    线上数据库只给开发看 view 视图,不直接给看表

    但是没意义,因为 dba 还是能轻松的看到原始数据
    daveze
        2
    daveze  
       2019-03-19 09:52:36 +08:00
    符合国家安全规范的应该是数据库信息都加密存储
    JesseHeisenberg
        3
    JesseHeisenberg  
       2019-03-19 09:55:53 +08:00
    我们公司有产品哦,欢迎合作。
    sarices
        4
    sarices  
       2019-03-19 09:57:37 +08:00
    开发不是应该只看测试数据库吗?直接操作线上数据库?
    zhangalong69
        5
    zhangalong69  
       2019-03-19 09:58:02 +08:00
    数据库加密,老数据进行清洗
    sarices
        6
    sarices  
       2019-03-19 09:58:41 +08:00   ❤️ 1
    还有“对指定列在前台做字符串替换的方式来隐藏重要信息”,这个 100%泄露吧,应该在后台做啊
    miaomiao0323
        7
    miaomiao0323  
       2019-03-19 10:03:35 +08:00   ❤️ 2
    1、开发用测试环境假数据
    2、存储:AES、RSA 或者国密 sm,insert 加密,select 解密
    3、传输:对参数做加密
    4、展示:星号或者乱码
    5、整个过程做权限管控和访问日志审计
    mv0x
        8
    mv0x  
       2019-03-19 10:56:45 +08:00   ❤️ 1
    @miaomiao0323 大部分场景都是这样做的,特别是一些支付数据,国家有明确的要求,包括对 log 都要加密
    xomix
        9
    xomix  
       2019-03-19 11:55:28 +08:00
    #7 都说完了,我还能说啥?
    另外说一下高敏数据是客户端密钥解密的,就是你服务端传的是什么你自己都不知道。
    snappyone
        10
    snappyone  
    OP
       2019-03-19 13:48:15 +08:00
    感谢楼上各位回答
    lidongdong1222
        11
    lidongdong1222  
       2019-03-19 14:34:03 +08:00
    @xomix 全让客户端处理,客户端出现 bug,存入了错数据,尤其是那种小概率出现的 bug,永久都别想调试出来了,赔钱赔到死。
    sharplook
        12
    sharplook  
       2019-03-19 15:42:43 +08:00
    数据库直接存放密文
    1.配置需要加密的表字段,和密钥,加密方式(全加密 /半加密(用于 mobile 之类的模糊查询))
    2.代理 datasource,select 解析 sql 进行解密.insert 解析 SQL 进行加密.
    3.问题特殊函数无法支持,对性能的影响和旧数据迁移.

    日志加密,对日志输出进行模糊匹配.password,pwd 启动加载的配置进行星号处理 pass=******
    mv0x
        13
    mv0x  
       2019-03-19 15:43:48 +08:00
    @xomix 哈哈,这个其实还有很多有意思的事情可以做的,比如密钥的保存就是一个大的问题,有一次去中科院信息安全研究所玩,有很多人就是研究怎么样保存这个密钥的。
    mv0x
        14
    mv0x  
       2019-03-19 15:52:59 +08:00
    key sharding 有很多方法,最简单的是多签,如 5 签 3,5 个人共同持有一个密钥,只要里面有三个人一起就可以还原整个密钥
    xomix
        15
    xomix  
       2019-03-19 17:56:25 +08:00
    @lidongdong1222 那种高敏数据客户端这边是保障无 bug 的,你服务端数据只要正常传递就行,客户端 bug 别人比你先知道根本不会找你赔,你就是一个 protocol buff 的高级实现。
    xomix
        16
    xomix  
       2019-03-19 17:57:29 +08:00
    @mv0x 对我也是中科院那边那些人玩的时候跟我说的,我好奇问了几句他们说这个不算机密,加密方式什么的都是基本公开的,他们很多时候都是用封装好的客户端掉你的传输、计算层
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   920 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 21:01 · PVG 05:01 · LAX 13:01 · JFK 16:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.