首页 > 其他分享 >数据安全之安全存储策略

数据安全之安全存储策略

时间:2022-10-10 10:46:40浏览次数:60  
标签:检索 存储 场景 加密 策略 查询 数据安全 key 加密算法

1.背景

为了保障企业数据安全,信通院最近出台了数据安全管理认证,其中有一个审核条目是安全存储,要求将敏感字段在数据库加密存储,但是加密存储

会引发一个问题:如何查询,如何被第三方使用?

 

2.分析

我们可以一起分析一下具体的场景,我个人总结出如下几个:

1)某些字段,只加密,不做检索。

2)某些字段,加密后需要检索,但是只支持精准检索,不支持模糊检索。

3)某些字段,加密后需要检索,需要支持模糊检索,尽量保证性能。

3.实现策略

基于以上的场景,我从网上整理了以下策略:

1)场景1

如果只是加密,不做检索,这样的场景处理比较简单,如果业务需要明文,那么使用可逆加密算法;如果业务不需要明文,比如密码,那么使用不可逆加密算法即可。

2)场景2

场景2中,可以有两种处理方式,一个放在数据库,在插入的时候将字段加密;查询的时候,在sql对字段解密处理,但是这种方式没法使用索引了

INSERT INTO t_passwd VALUES (AES_ENCRYPT('明文1', 'key'), AES_ENCRYPT('text2', 'key'), AES_ENCRYPT('明文_text3', 'key'));
select * from t_user where AES_DECRYPT(UNHEX(mobile_no),'key') = '13312345678';

另外一种在程序代码中使用,将request的参数进行encrypte,然后去数据库查询

3)场景3

场景3是我们面临最多的,也是最麻烦的,目前网上提供了一个思想:使用OPE加密算法,也就是保序加密算法,可以只是自定义的Base64做一个demo

首先,将加密的字段使用custom-base64加密,比如13312345678,产生一个index=MTMzMTIzNDU2Nzg=

然后,现在使用133作为模糊查询,可以再次使用算法custom-base64加密133,生成MTMz进行模糊匹配查询

对于OPE算法,目前我在网上只是找到实验版,生产的组件还未查询到。

另外一种方式可以采用阿里的分组加密方式,就是把原文进行拆分进行加密,在业务上进行分组进行模糊查询,其实是变种的场景2而已

比如:taobao123
使用4个字符为一组的加密方式。
第一组 taob ,第二组aoba ,第三组obao ,第四组 bao1 … 依次类推
如果需要检索 所有包含 检索条件4个字符的数据 比如:aoba ,加密字符后通过key like “%partial%” 查库。 
因为密文检索开启后 密文长度会膨胀几倍以上,如果没有强需求建议不开启。

 

参考文章:

1.https://open.taobao.com/docV3.htm?docId=106213&docType=1

2.https://www.jiamisoft.com/blog/6542-zifushujumohupipeijiamifangfa.html

3.http://blog.itpub.net/29773961/viewspace-2142305/

4.https://juejin.cn/post/6844903736792317960

5.https://blog.csdn.net/u012516914/article/details/114422156

标签:检索,存储,场景,加密,策略,查询,数据安全,key,加密算法
From: https://www.cnblogs.com/walt/p/16774796.html

相关文章

  • JS基本类型和引用类型的存储方式
    一、基本类型:number,string,boolean,null,undefined,放在栈,栈内存是自动分配内存的。①基本类型比较是值的比较。②基本类型是按值访问,可以直接得到变量值。储存类型:值类......
  • 04@数据库库的相关操作及数据库存储引擎详述
    文章目录​​数据库库的相关操作​​​​一、库的相关操作​​​​1、系统数据库​​​​2、创建数据库​​​​3、数据库相关操作​​​​二、存储引擎​​​​1、存储引......
  • 《Hadoop权威指南.大数据的存储与分析.第4版.修订版&升级版》
    /*免责声明:全部内容都属于是段友分享,我只是属于整理。**//*写在前边,个人觉得****弄一个积分下载,就是在自掘坟墓。表面上看起来是可以为个人赚积分,实际砍掉分享交流的一个途......
  • day09-1存储引擎
    存储引擎1.基本介绍基本介绍MySQL的表类型由存储引擎(StorageEngines)决定,主要包括MyISAM、innoDB、Memory等MySQL数据表主要支持六种类型,分别是:CSV,Memory,ARCHIVE......
  • 等保centos7密码策略
    [root@iZwz9ayhnug196k9jk1iukZyunwei]#cat/etc/pam.d/system-auth#%PAM-1.0#Thisfileisauto-generated.#Userchangeswillbedestroyedthenexttimeaut......
  • Greenplum数据库数据分片策略Hash分布——执行器行为
    Greenplum数据库Hash分布执行器部分主要涉及Motion、Result和SplictUpdate节点。以使用CdbHash*makeCdbHash(intnumsegs,intnatts,Oid*hashfuncs)创建一个CdbHash结......
  • k8s 网络策略
         公司内部搭建calico满足,如果公共的则采用flannel......
  • 分布式主键生成设计策略
    1写作目的这几天被虾皮裁员的消息刷屏了,实话实说互联网的行情确实很差,各处都在裁员。而且最近在忙试用期转正答辩,还不错,光荣的成为了一个大厂的正式员工,很庆幸在这么不稳定......
  • 存储引擎
    存储引擎(了解内容)什么是存储引擎,有什么用存储引擎是MySQL中特有的一个术语实际上存储引擎是一个表存储/组织数据的方式不同的存储引擎,表存储数据的方式不同怎么给表......
  • Ozone-适用于各种工作负载的灵活高效的存储系统
    ApacheOzone是一种分布式、可扩展和高性能的对象存储,可与Cloudera数据平台(CDP)一起使用,可以扩展到数十亿个不同大小的对象。它被设计为原生的对象存储,可提供极高的规模......