揭露彩虹桥数据加解密功能实现原理
在过去的几年的时间里,不管是对于什么类型的企业而言,数据安全一直是企业绕不开的话题。而数据加密是数据安全领域最核心的模块之一。涉及客户安全数据或者一些商业性敏感数据,如身份证号、手机号、卡号、客户号等个人信息,按照相关部门规定,都需要进行数据加密。这对安全部门以及业务团队都带来了巨大的挑战。 整个过程对上游业务应用完全透明化,主要就是通过彩虹桥的内核模块对SQL进行解析,然后根据加解密规则找出需要加解密的字段和所使用的加解密算法对目标字段进行加解密处理后,再将SQL改成与底层DB交互的SQL。彩虹桥会将用户请求的明文进行加密后存储到底层数据库,并在用户查询时将密文从数据库中取出进行解密后返回给上游。通过屏蔽对数据的加密处理,使用户无需感知解析 加密SQL、数据加密、数据进行的解密的处理过程,就像在使用网络搜索普通数据一样理所应当的使用加密解密的数据。 -- 业务代码中的SQLselect phone from t_user where phone = '10086' -- 经过彩虹桥改写后实际去数据库执行的SQLselect phone_cipher as phone from t_user where phone_cipher = 'xxx' 主要是用于告诉彩虹桥哪个逻辑表里哪个列用于存储密文数据(密文列)、使用什么算法加解密、哪个列用于存储明文数据(明文列)以及用户想使用哪个列进行 SQL 编写(逻辑列),在结合上面的例子看,规则配置就应该是这样的。 这里的明文列可能比较难理解,这里单独解释一下,明文列主要用于在加密数据迁移过程中仍旧提供服务,在洗数结束后可以删除。因为已上线业务改造前,数据库里面存储的只有明文,在改造过程前几个阶段查询所用列都是明文列。一般来说明文列可以与逻辑列保持一致。但是如果遇到特殊情况,比如数据库的逻辑列和明文列不一致,就需要进行修改。 (编辑:银川站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |