一文读懂数据库水印

佛系随性笔记,记录最好的自己



01



什么是数据库水印?


数据库水印就是通过对数据库中的数据,添加一种特定标识信息(即水印),嵌入到数据库中的技术中,用于标识数据来源、追踪流向、验证完整性和保护版权。这些标记不可见,但可由特定算法检测,帮助确认数据归属权,防止非法复制,并在数据泄露时追溯来源。

举个栗子来说:回想自己的学生时代,还是在村里读幼儿园、小学,初次捧起课本的时候,老师是不是都会让我们写上"姓名",有的同学甚至会给书本包上"书皮"(我没钱,买不起书皮),甚至某一页画上"奥特曼",其实这就是一个简简单单的标记行为,也就是"水印"。



02


数据库水印的功能


数据库水印功能-图1


数据库水印产品,这一块功能相对来说比较单一,大致就四个,其余什么公共模块"系统管理、角色人员设置等",这一块说了也意义不大,大家都知道。

数据库水印的效果现在分为四种(我知道的,大家可以补充):伪行、伪列、无痕、脱敏
包括水印的执行,现在很多厂商都能做到的有:同库到同库,库到文件,文件到库,文件到文件,库到异库(可能看的比较懵,一张图你就懂了,见图7)。

数据库水印效果-图2

伪行水印效果-图3

(一)伪行:

就是伪造一行或多行数据,随机嵌入进去,生成的一行或多行数据与原数据中数据类型、格式保持一致。

伪行水印一般不做查询的对象,对数据做统计时有影响。

伪列水印效果-图4


(二)伪列:
就是伪造一列或多列数据,随机嵌入进去,生成的一列或多列与原数据中数据类型、格式保持一致。
伪列水印做数据统计时无影响,但会影响数据准确性。

无痕水印效果-图5

(三)无痕:

就是对表中,随机在表中插入一些"ASCII-不可见字符",对表结构无影响,比如我们常用的空格、制表符、回车符、换行符,这些肉眼都看不出来,还有一些控制字符等等。

无痕水印列进行精确查询场景有影响,模糊查询无影响。

脱敏水印效果-图6

(四)脱敏:

就是系统会自动识别数据源中有效列的数据类型、格式,随机抽取水印位置,对数据进行脱敏,更改后的数据与原数据类型、格式保持一致。

水印执行-图-7

(五)水印执行:

同库到同库:支持将数据库表的数据,打上水印,Mysql分发给Mysql;

库到文件/文件到库:支持将数据库表的数据,打上水印,ORacle下发变成文件,反之文件,打上水印,也可上传至ORacle库中(这里也有很多限制,很多厂商支持只一两个库或者几个文件类型,坑比较大);

异库到异库:支持将数据库表的数据,打上水印,ORacle分发给Mysql、SQL-Server、MongoDB等等,反之Mysql,打上水印,也可上传至其他库中;(这里很多厂商都支持,但是支持的库的类型、版本各不相同)。





03


数据库水印的工作原理

数据库水印的工作原理-图8

回到上文,想象一下,你的课本,为了防止别人拿混,你会在书里偷偷写上自己的"名字",对吧?数据库水印就类似这样,它是在数据里加个"标记",这个标记可以是看得见的、也可以是看不见的,只有自己知道"标记"在哪,才能找到。

(一)加标记(嵌入水印)的过程:

1、选秘密标记:决定在"课本"要加什么秘密标记,比如你的名字、单位名称、使用用途、数据的出生日期等等,或者一些只有你知道的代码(这一块是很关键的一步,溯源就是用标记来溯源的)。

2、找地方藏标记:看看数据里哪些地方可以藏标记,又不会影响数据的正常使用。比如,"课本"里不太重要的字词间、数字的末尾、文中的插图等等。

3、藏标记:用特殊的方法把秘密标记藏到数据里。这可能包括改一点点数字,或者在数据的某个位置加点小标记。这些修改应该是微小的,不会对"课本"的正常功能和可用性产生影响(你要是乱涂乱画乱改肯定不行啦)。

(二)找标记(提取水印)的过程:

1、拿到数据:当你怀疑数据可能被篡改,或者想验证数据的真实性,你就得先拿到这份数据。
2、用特殊方法找标记:用和藏标记时一样的方法,去数据里找那个秘密标记。这就像按图索骥,根据藏标记的规则(记忆)去找。
3、验证标记:找到标记后,看看这个标记是不是你原来藏的那个。如果对得上,说明数据没被动过手脚;如果对不上,可能数据就被改动过。
这样,通过给数据加个看不见的标记,我们就能在不破坏数据正常使用的情况下,保护数据的安全和真实性,就像给课本上,写名字一样,简单又有效。



04


数据库水印的部署模式



数据库水印的部署模式-图9

数据库水印系统一般部署在生产环境和合作伙伴/开发/测试环境中间,保证前后网络可达。生产库中的原始数据,经过数据库水印系统添加水印后,分发给操作人员,整个过程数据保持不落地(也就是,不留在数据库水印系统存储中,一般是内存直接操作了,过段时间就释放了)。


05


数据库水印的应用场景和价值



应用场景:适用于政务、泛企、医疗、金融、涉密机构、能源等行业用于数据的确权,以及数据共享/交换发生泄漏后的溯源追责。

数据库水印的价值-图10

价值:

1、数据确权:通过水印技术,明确数据的所有权,防止数据被非法复制或篡改,保护数据原创性。
2、数据溯源:利用水印技术追踪数据的来源和流转过程,确保数据的真实性和可信度,便于问题追踪和责任追究
3、安全合规:水印技术可帮助满足数据保护法规要求,通过标记敏感数据,确保数据在传输和使用过程中的合规性。



06



数据库水印和数据水印的区别


数据库水印和数据水印的区别-图11


数据库水印是数据水印的其中一个分支,就像数据安全是网络安全的一个分支一样。除数据库水印外,根据嵌入载体不同,数据水印还包括图片水印、视频水印、音频水印、文本水印、屏幕水印、API接口水印、网页水印等。我举个音频栗子。
音频水印:就是添加了微弱的信号或通过调整音频的某些参数(如振幅或相位),不改变音频质量的情况下嵌入水印信息。这些水印信息可以在音频播放时被专用的检测系统提取,以验证音频的合法性或追踪其来源。
举个栗子:比如李袁杰的《离人愁》,融入了周杰伦的《烟花易冷》和《红尘客栈》,许嵩的《清明雨上》,还抄了《山外小楼夜听雨》,简直是音乐裁缝师,东拼西凑完成了一首歌。这种都不用专业仪器,普通人都能听出来,网上还有很多所谓的音乐人都是这种人


07



题外话-怎么挑选数据库水印


1、重点(库、文件的兼容性):
第一先确认现有需要用到的数据库,确认所支持库的版本类型、版本号,这一块很重要,至于后面会详细调研一些库运行模式、字符集、集群节点、是不是加密数据库、是否修改过源码等等(很多厂商做到的支持率都较低,一般都是一个库支持一两个版本,多的也就四五个,然后叫你定开,加钱);
第二确认常用的文件文本类型excel、csv、txt、xls、xlsx、doc、docx、rtf等;
第三包括FTP服务器这类型的信息也需要收集;
2、重点(性能):

对数据库水印进行相应的场景性能测试,看看效果,是否能接受打水印的速率;

3、售后服务:

选择有良好服务和支持的数据库防火墙厂商或供应商,能够及时提供技术支持、更新和升级等服务,保障数据库防火墙的正常运行和安全保护。

4、功能:
不同的数据库水印具有不同的功能和特点,根据自己的需求和安全要求,选择具备所需功能的数据库水印(这一块大多数厂商都能满足,但主要看兼容性和性能,重点不能跑偏)。





深圳        

注释:如有失误,望批评指正!


后面会写下Windows和liunx的应急响应技巧、容器、还有一些网络安全、数据安全。


后台输入“Windows应急响应手册、linux应急响应手册、数据安全政策、数据安全治理、电力、工业、金融、0731”有相关资料可供下载



请使用浏览器的分享功能分享到微信等