时间:2022-11-18 04:30:01 | 来源:信息时代
时间:2022-11-18 04:30:01 来源:信息时代
数据库水印 : 数据库版权保护技术。是用隐秘的手段将有意义的版权说明、用户身份等水印信息嵌入到数据库中,以保证在必要的时候鉴别出非法复制和盗用的数据库,以有效保护数据库版权。
数据库水印主要面向关系数据,即关系数据水印,并非传统数字水印技术在关系数据上的简单应用,而是数字水印技术与关系数据库管理系统的紧密结合,促进了水印关系数据库系统的出现与发展。
数据库水印诞生于21世纪初。在2002年VLDB会议上,IBM Almaden研究中心的Rakech Agrawal和Jerry Kiernan将数字水印技术首次应用于关系数据库,提出了著名的“比特重置算法”(bit-resetting method),在数值型关系数据中嵌入了可以证明版权的水印信息。2003年,Radu Sion等人提出了可以向数值型关系数据中嵌入水印信息的“分布特征算法”(distribution preserving method)。同年,中国工程院李德毅院士提出了利用云模型向关系数据库中嵌入水印信息的方法。George Mason大学的Yingjiu Li等人提出了在关系数据没有主键的情况下,通过构造虚拟主键嵌入水印的方法。随后,国内的清华大学、总参六十一所、武汉大学等都开展了关系数据水印技术的研究。
水印关系数据库技术包括关系数据库水印的嵌入与提取算法、攻击模型、水印算法评价及关系水印技术应用等研究内容。
随着知识经济的发展,关系数据库管理系统中沉淀的大量有价值的关系数据已经成为企业的重要知识财富。数据外包等新型经营模式迫切要求这些数据与他人共享。水印关系数据库技术不仅提供对关系数据库进行有效版权保护的手段,而且在信息安全领域占有越来越重要的作用和地位,业已成为人们关注的焦点。
1. 云水印
以云模型为理论基础,关系数据库云水印(cloud watermark)技术的基本思想是利用云发生器产生云滴(一个数值),并将其嵌入到关系数据库中。它根据关系数据库的某些数值型属性值允许一定误差的特点,给定云发生器的三个参数,使得通过基本云发生器产生一定数量的水印云滴标记落在误差允许的范围内,并将这些云滴嵌入到某些元组的数值型属性值上。云水印方法利用了云滴的不确定性和无序性,一方面保证数值型属性值在其误差范围以内,另一方面也不影响该关系数据库数据的实际使用,具有较好的实验效果。
云水印方法包括以下三个步骤:
(1)云水印的生成:将版权所有者的信息由正向云发生器生成水印云滴,产生的单个水印云滴并没有实际意义,但所有水印云滴的组合就可表征特定的水印信息。可以根据关系数据库元组属性值允许的误差范围,生成满足一定条件的水印云滴。
(2)云水印嵌入:根据用户输入的密钥和元组主键值,决定哪些元组的哪些属性可以嵌入水印云滴,然后做相应的修改。
(3)云水印检测:首先使用相同的密钥选择出应该嵌入水印的元组和属性,然后提取出相应的水印云滴,再根据一维逆向云算法还原这些水印云滴所表征的云的数字特征,并和原始水印生成的云数字特征进行相似性比较,如果达到一定相似度则可确定关系数据库版权归属。
云水印方法在水印检测时需要原始嵌入的水印信息。如果嵌入的是标识数据接收者的水印信息,那么需要逐一检测所有可能的水印信息。
2. 随机水印
数据库随机水印(random watermark)利用密码学中伪随机数发生器G和密钥为关系数据添加水印。对于每个元组,利用元组主键值和密钥的连接作为G的种子,然后再根据用户设定的“密度参数”决定所需标注的元组。对于被标注的元组再一次判定嵌入水印的属性列,并根据应用特性修改该属性值的某个二进制位。与此对应的水印提取算法,通过统计符合嵌入规则元组的百分比来提取关系数据库的水印信息。随机水印具有嵌入速度快、支持动态添加、鲁棒性较强等优点。
3. 统计水印
数据库统计水印(statistic watermark)将关系数据集进行划分,利用子集合数据分布特性向关系数据中嵌入水印信息。
给定待嵌入水印的关系数据集合S,引入一个基于秘密排序键ks的单向Hash函数对标准化后的数据的最高有效位进行秘密排序。根据排序结果将原始数据集划分成若干有序的数据子集。将水印比特依次嵌入每个数据子集的实际分布中。如果每个子集Si中嵌入一个比特位,这样一共可以嵌入|S|/|Si|个水印比特。
检测时,利用相同的参数可以重现秘密排序从而重新形成各个子集Si。从给定的数据中恢复所有水印标记后,在所有恢复的水印比特位上用多数选举方式进行判断,从而确定最可能的原始水印比特位,即水印信息。
4. 攻击模式
常见的数据库水印攻击模式(attack mode)包括子集选取攻击、子集增加攻击、子集删除攻击、子集修改攻击以及子集倒序攻击等。
子集选取攻击指攻击者在不影响使用的前提下仅选取带有水印的数据集中的部分元组构成新的关系数据集,以此方式达到擦除或扰乱水印信息的目的。这种攻击等同于删除部分元组的操作(子集删除攻击)。
子集增加攻击是指攻击者增加一些元组到数据库元组中,从攻击者观点看,增加的元组不会更改原数据库中有价值的属性,从而希望很难检测出水印信息。
子集修改攻击是指攻击者通过随机修改关系数据中某些元组属性值的方法来擦除或干扰嵌入的水印信息。常见的有比特位攻击和凑整攻击。比特位攻击又可分为取反攻击和随机攻击,即将随机选取的某些元组属性值的某些比特位取反(“1”变“0”或“0”变“1”)或随机置成0或1。凑整攻击指去掉数值型属性的最低有效位。
子集倒序攻击指攻击者通过调换部分元组或者是属性列之间的顺序来达到擦除或扰乱水印的目的。这种攻击主要是针对有意义的水印信息,试图通过改变元组顺序来破坏水印信息的内容。
5. 度量指标
数字水印的用途和关系数据的特点对关系数据水印技术提出了如下一些度量指标(evaluation metrics):
(1)隐匿性:水印的嵌入不应给原始数据带来可察觉的变化。关系数据的使用者应该感觉不到水印的存在,即不因嵌入水印而降低关系数据的可用性。对于数值型关系数据,最简单的可用性约束是数值的绝对或相对变化约束和全局变化约束,如最小均方误差约束等。
(2)鲁棒性:水印信息不会因为对关系数据的某种改动而遭到破坏。例如,对关系数据正常的数据更新(选取、插入、删除或者更新元组等)和各种以擦除或扰乱水印为目的的恶意攻击,都不应该导致水印和所嵌入的关系数据的分离。换句话说,当攻击者修改的元组数量足以破坏嵌入水印的时候,关系数据也会因修改太多而失去了本身的使用价值。
(3)盲提取性:水印提取过程中既不需要原始数据,也不需要原始水印信息的参与,这对关系数据的水印技术尤为重要。如果提取过程需要原始数据,保存规模较大的关系数据将造成巨大的开销; 如果需要原始水印,在水印提取出来之前并不知道嵌入的水印具体是哪个,需要逐一验证。
(4)安全性:水印信息应该不会很容易被攻击者发现。学术界已经达成共识——在水印算法公开的情况下,算法本身的安全性依赖于密钥的使用。只有持有密钥的人才能够找到水印信息隐藏的位置。
(5)动态添加特性:关系数据通常面临频繁的数据更新。如果每次插入、删除或更新之后都要将水印嵌入算法重新应用于整个关系数据集才能够保持水印的话,频繁的水印嵌入将成为巨大的开销。因此,要求关系数据水印算法具有动态添加特性,即每次对关系数据的更新操作都不会影响未更新关系数据中的水印信息,只需将水印嵌入算法应用于更新的元组,就可以保持水印信息的一致性。