信息系统安全第六讲数据库安全张焕国武汉大学计算机学院目录1、信息系统安全的基本概念2、密码学(1)3、密码学(2)4、操作系统安全(1)5、操作系统安全(2)6、数据库安全(1)7、数据库安全(2)8、可信计算(1)9、可信计算(2)一、数据库安全的概念1、数据库安全的重要性数据库是重要的应用软件。数据库集中存储和管理着大量的重要数据,如军事、政治、金融等数据。数据库成为不法分子攻击的主要目标。数据库要支持查询、插入、删除、更新等操作,而且存储的数据量大、时间长是其重要特点。数据库的安全措施应适应数据库的特点。一、数据库安全的概念2、数据库加密的困难性对数据库加密是确保数据安全的重要措施。数据量大,要求加解密速度快。数据存储时间长,为了安全密钥应经常更换,需要对数据解密再加密很麻烦。如不经常更换密钥,时间一长就可能不安全。数据库要支持查询、插入、删除、更新等操作,最好能在密文状态下进行上述操作,即需要同态加密。二、统计数据库的概念⑴统计数据库的概念统计数据库(Statisticaldatabase)是数据库的一种。统计数据库是一些数据项的集合,其中每个数据项个体都是保密的、不允许访问的,但是访问获得其数据项的统计信息则是允许的。如,公民健康状况数据库:公民个人的健康状况属于个人隐私,应是保密的(特别是一些领袖人物),但是其统计信息又是应当公开的,如某疾病的发病率等。二、统计数据库的概念⑴统计数据库的概念又如,公民存款数据库:公民个人的存款信息属于个人隐私,应是保密的,但是其统计信息又是应当公开的,如公民存款上升率等。近年来数据挖掘的研究涉及个人隐私保护问题,这与统计数据库安全技术相关。二、统计数据库的概念⑵统计数据库的理论模型1、特征刻画模型把数据库看成是许多记录的集合。每个记录是一个实体的描述。每个实体以其具有(或不具有)某些特性而与其他实体相区别。设有k种特征,在记录中用k位二进制位与之相对应。用1表示具备该特征,用0表示不具备该特征。这样,一个k位二进制数便唯一标识一个实体。⑵统计数据库的理论模型1、特征刻画模型模型:数据库是k位二进制数到实数R的部分函数DC:DC:{0,1}k→R称DC为部分函数是因为对于某些特征的集合,数据库中可能不存在对应的记录。如果对于所有2k个特征组合,数据库中都存在对应的记录,则DC就是全函数。二、统计数据库的概念⑵统计数据库的理论模型1、特征刻画模型统计函数为f,如计数、平均值、最大值、最小值等。查询以(1,0,1,*)形式提出,其中1表示具有某特征,0表示不具有某特征,*为通配符。查询提出后,数据库首先查找满足查询特征的所有记录。如果只有一个记录满足要求,为了避免泄露数据个体,系统将拒绝回答。否则,系统对所有满足要求的记录计算统计函数f,并给出统计值。二、统计数据库的概念⑵统计数据库的理论模型2、键刻画模型把数据库看成N个记录的集合。每个记录有一个记录号i,称为键。记录可通过键值来查找。于是可把数据库看成是键值集合{1,2,...,N}到实数R的全函数:DK:{1,2,...,N}→R二、统计数据库的概念⑵统计数据库的理论模型2、键刻画模型允许的查询是{i1,i2,...,ik}k≥2,j≠m时ij≠im。因为若k=1,则查询变为{i},这是对记录i的直接访问,这当然是不允许的。如果i≠j时ij=im,则攻击者可以用查询{i1,i2,...,ik}来迫使数据库泄露记录i。统计函数为f,如计数、平均值、最大值、最小值等。系统对查询的回答是f(DK(i1),DK(i2),...,DK(ik))。二、统计数据库的概念⑵统计数据库的理论模型3、关系模型设有属性A1,A2,…,Ak他们分别在值域D1,D2,…,Dk上取值,则笛卡儿空间D1×D2×…×Dk的任一子集称为一个关系,记作D。关系数据库可看成是D到实数R的部分函数DR:DR:D→R关系数据库中的记录由属性字段A1,A2,…,Ak所确定。对数据库的访问是由属性字段的不同取值及由与、或、非组成的逻辑表达式所决定的。称属性字段的逻辑表达式为特征公式。当满足特征公式的记录只有一个时,系统拒绝回答,否则给出统计值。二、统计数据库的概念三、统计数据库的安全性由于统计数据库允许访问统计信息而不允许访问个体信息这一特性,使得攻击者可能通过精心策划的多次合法访问,推理求出个体数据,从而攻破数据库。称这种攻击为推理攻击(InferenceAttack)。在推理攻击面前,统计数据库显得十分脆弱。三、统计数据库的安全性1、对特征刻画数据库的攻击攻击者在实施攻击前往往已经具有统计数据库一些知识。①记录的取值范围,即使是大致的范围;②某些记录的取值;③某一特征的记录存在,某一特征的记录不存在。攻击者获得这些并不难,如学生分数数据库的取值范围是1-100。三、统计数据库的安全性1、对特征刻画数据库的攻击攻击前提:假设已知某一记录值①设已知特征X及其对应记录的取值DC(X);②任何与X仅有1位不同的记录Y,都可用一个单*求和查询,求出D=DC(X)+DC(Y)。于是可求出DC(Y)。③如果特征Y与X有2位不同,则一定能找到一个Z,使Z与X和Z与Y都只有1位不同。于是通过一个单*查询可求出DC(Z),再用一个单*查询便可求出DC(Y)。类似反复进行,便可求出所有记录值。三、统计数据库的安全性1、对特征刻画数据库的攻击举例:设X=1110,Y=0110,X和Y只有1位不同。查询(*110)可得V=DC(X)+DC(Y)。V-DC(X)=DC(Y)。又设,设X=1110,Y=0010,X和Y有2位不同。但存在Z=1010,使得X和Z及Z和Y都只有1位不同。通过查询(1*10)可求出DC(Z),再通过查询(*010)可求出DC(Y)。可以证明,不管把门限提高到多少,都可功破数据库。还可证明,如果攻击者知道数据库的取值范围,或知道某特征的记录存在或不存在,攻击者都可攻破数据库。三、统计数据库的安全性2、对键刻画数据库的攻击攻击前提:允许查询k(K1)个记录的平均值,即使事先对数据库一无所知。攻击方法1:解方程①设攻击者企图求出键值为i1,i2,i3,i4的记录值,于是他提出如下四个求平均值的查询,并得到相应回答:Q1=(i2,i3,i4)得到P1=1/3(DK(i2)+DK(i3)+DK(i4))Q2=(i1,i3,i4)得到P2=1/3(DK(i1)+DK(i3)+DK(i4))Q3=(i1,i2,i4)得到P3=1/3(DK(i1)+DK(i2)+DK(i4))Q4=(i1,i2,i3)得到P4=1/3(DK(i1)+DK(i2)+DK(i3))三、统计数据库的安全性2、对键刻画数据库的攻击写成方程如下:0111DK(i1)3P11011DK(i1)=3P11101DK(i1)3P31110DK(i1)3P4因为系数矩阵是满秩阵,故解方程可得:DK(i1),DK(i2),DK(i3),DK(i4)的值。三、统计数据库的安全性2、对键刻画数据库的攻击攻击方法2:不用解方程设要求DK(i3)①首先查询Q1=(i1,i2,i3),得到P1;②其次查询Q2=(i1,i2),得到P2;③于是,DK(i3)=3P1-2P2。可以证明,上述方法和结论对一般情况均成立。可以证明:除平均值外,诸如几何平均值、最大值、最小值等,只要攻击者对数据库有少量知识(如前),便可将数据库攻破。三、统计数据库的安全性3、对关系数据库的攻击在关系数据库中用特征公式来选择所需的记录。攻击前提:知道特征公式C能唯一确定记录R,但直接用C访问R是不允许的。①设攻击者能将C分解为两个逻辑表达式D和E的乘积,C=DE,T=DE’,E’为E的非,而且T和D都是可合法访问的特征公式;②攻击者通过D,T,T+DA,三次合法查询可获得;NU(C)=NU(D)-NU(T)NU(CA)=NU(T+DA)-NU(T)NU(C)=NU(D)-SUM(T)其中NU为计数,SUM为求和,A为任一特征公式。三、统计数据库的安全性3、对关系数据库的攻击③因为C=DE=D(E+D’)=D(D(E’))’=DT’,又根据T=DE’,故当T为真时必有D为真。这说明T所匹配的所有记录全属于D所匹配的记录集合,所以有NU(C)=NU(D)-NU(T)SUM(C)=SUM(D)-SUM(T)④因为C=DT’,所以CA=DT’A=(T+DA)T’,所以有NU(CA)=NU(T+DA)-NU(T)⑤由于D包含D(E’+A)=T+DA,而T+DA又包含T,因为D和T都是可合法访问的特征公式,所以T+DA也是合法访问的特征公式。因此上述计算是可以进行的。注意:特征公式T=DE’起了很大作用,称为个体跟踪式。三、统计数据库的安全性4、统计数据库的安全增强以上分析可以看出统计数据库的安全问题是严重的。问题的根源在于,个体的保密性与数据库要提供精确统计值之间的矛盾。一种解决思路是牺牲统计值的精确性,换取其安全性。①采用键模型。②对于平均值的查询(i1,i2,...,is),数据库首先找到键值对应的k个记录,再随机选择V个记录,给出这k+V个记录的平均值。③适当选择V值,对统计值的精确度影响不大,但攻击者再想通过解方程求出个体记录值却遇到困难。谢谢!