IaaS层数据的机密性、完整性和可用性三个方面是用户对于存储数据关注的核心安全问题,也是云存储安全技术的研究重点。比如SalesForce采用SSL 3.0和TLS 1.0保证数据的传输安全,SSL和TLS在传输层对数据进行加密,防止数据被截取和窃听。全同态加密机制可使用户的数据在其整个生命周期都处于加密状态,减少了数据泄露的概率。......
2023-11-18
下面讨论关系型数据加密和存储模型,对每个关系:
R(A 1,A 2,…,An)
可以在服务器上存储加密关系,记作:
RS(etuple,AS1,AS2,…,ASn)
其中:属性etuple用于存储一个与关系R中元组对应的加密串。为每个属性Ai生成对应的索引ASi,并在服务器上实现查询处理。例如,考虑一个关系emp,存储关于雇员的信息,如表13.1所示。
表13.1 使用关系emp存储关于雇员的信息
emp表在服务器上映射成对应的表,如下:
emp S(etuple,eidS,enameS,salary S,addrS,didS)
对应属性的索引会在搜索和连接谓词中使用。不失一般性,可以假设为关系的每个属性创建相应索引。实现时需要以下函数的支持。
分割函数(partition function):为了说明如何为关系R的每个属性存储相应的RSi的属性RSi,先说明有些记法。属性R.Ai的值域D首先映射为分割{p1,p2,…,pk},并让这些分割合起来覆盖整个值域,则函数分割定义为:
partition(R.Ai)={p1,p2,…,pk}
例如,emp关系中的属性eid的值域是[0,1000],假设整个值域分为5个分割:
partition(emp.eid)={[0,200],(200,400],(400,600],(600,800],(800,1000]}
不同的属性可以使用不同的分割函数,或者可把它们放在一起分割成一个多维模型。属性Ai的分割对应将其值域分成一个吊桶集合。分成吊桶可以提高结果查询效率。假设分割是等宽实施的,且让泄密局限到吊桶以内。
标识函数(identification function):标识函数ident R.Ai(pj)将属性Ai的每个分割pj映射成一个唯一的标识。图13.5所示的为emp.eid的分割和标识函数,其中identemp_eid([0,200])=2,and identemp.eid((800,1000])=4。
图13.5 emp.eid的分割和标识函数
映射函数(mapping function):给出上述分割函数和标识函数后,还需要一个映射函数,记作Map R.Ai,将属性Ai域中的一个值v映射成分割标识,即Map R.Ai(v)=ident R.Ai(pj),其中pj是包含v的分割。
存储加密数据(storing encrypted data):对R中的每个元组t=〈a1,a2,…,an〉,在关系RS中存储一个元组:
〈encrypt({a1,a2,…,an}),Map R.A1(a1),Map R.A2(a2),…,Map R.An(an)〉
其中:encrypt是一个用于对关系元组加密的函数。例如,表13.2就是存放在服务器的加密关系emp S。
表13.2 存放服务器的加密关系emp S
第一列etuple是与emp关系对应的加密元组的串。例如,第一个元组加密成“1100110011110…”,等价于encrypt(23,Tom,70000,Maple,40)。第二个加密成“1000000000011101…”等价于encrypt(860,Mary,60000,Main,80)。加密函数作为一个黑盒子,可以使用任意块加密技术,如AES、Blowfish、DES等算法来加密元组。第二列对应于属性雇员标识(即工号)的索引。例如,第一个元组的属性eid是23,对应的分割是[0,200]。因为该分割标识为2,因此存放2作为索引。
解密函数(decryption function):给定的E算符将关系映射成用其加密表示,其逆运算D将加密映射成用对应的解密表示,也就是D(RS)=R。上例中,D(empS)=emp。D算符也可用于查询表达式。
1.映射条件
为了将运算(如选择运算和连接运算)中的指定查询条件翻译成服务器端表示的对应条件,会使用翻译函数,记作Mapcond。这些条件可帮助服务器端实现翻译关系算符和翻译查询树。对每个关系,服务器端存放加密元组和属性索引,客户端存放特定索引的元数据,如属性的分映射函数等信息。客户端利用这些信息翻译给定查询Q成为服务器端的查询QS,在服务器端执行。
2.翻译关系算符
这里讨论选择运算和连接运算。策略是通过分割算符的条件,让其跨客户端和服务器端,使得存在服务器端的属性索引有算符生成答案的扩展集(superset)。这个集合在客户端解密后进行过滤,产生真实的结果。目标是尽量让客户端的工作最小化。(www.chuimin.cn)
下面举一个例子加以说明,令R和T为两个关系。
●选择算符(σ):σC(R)是关系R上的一个选择运算,C是与R上的属性A1,A2,…,An相关的选择条件。这样一个算符的直接实现是把关系RS从服务器端传输到客户端。然后,客户端使用D算符解密结果和实现选择运算。然而,这个策略把整个选择实现工作推给了客户端。此外,整个加密关系需要从服务器端传输到客户端。一种替代机制是使用C中涉及属性的索引将部分选择运算工作放在服务器端进行计算,再把结果推送给客户端。客户端解密传输过来的结果,过滤掉不满足C的元组,即
以σeid<395∧did=140(emp)为例,使用前面所说的映射函数Mapcond(C),这个查询演变成:
其中:服务器端的条件C′是:
C′=Mapcond(C)=[eidS∈[2,7]∧didS=4)
●连接算符(∞):考虑一个连接运算R∞CS,其中C可以是连接条件,可以是等连接,也可以是不等连接。这样一个连接可以实现为:
例如,连接运算:
emp∞emp.did=mgr.did mgr
可以翻译为:
其中:C′是C的映射结果。值得一提的是,连接运算∞也映射成∞S,因为条件变了,所以运算形态也得有所变化,以保证获得正确的结果。
3.查询执行
给定一个查询Q,先把Q分解成两部分,一部分交给服务器端,一部分交给客户端。下面是一个例子(这个例子选自参考文献[2],需要了解细节的读者请阅读参考文献[2])。
SELECT emp.name FROM emp
WHERE emp.sa lar y>(SELECTAVG(sa l ar y)
FROM emp WHERE did=1);
图13.6是原始查询对应的原始查询树。图中的QC表示客户端实施的查询,QS表示服务器端实施的查询,PH指的是隐私同态(privacy homomorphisms)[1]。如果采用第一种策略,则简单地把加密后的emp表传输到客户端,在客户端解密域实施查询,如图13.7所示。另一种策略是分解查询(称为内查询),一部分让服务器端实施,选择出对应Mapcond(did=1)的元组。然后服务器端将emp表的加密版本emp S里满足内查询的元组集(加密形式)传输给客户端。客户端解密收到的结果,选出在部门号1工作的雇员,再把结果返回给用户(见图13.8)。图13.9则是图13.8的一种变形,服务器端和客户端多次交互,如先在服务器端对内查询进行评估,选出did=1的雇员,再把结果发送给客户端,解密后计算平均工资。平均工资加密后再发送给服务器端,计算连接。接着把结果发送给客户端解密。
限于篇幅,这些图的含义及细节这里不再赘述,关于细节和其他运算,请读者参见参考文献[2]。
图13.6 原始查询树
图13.7 替换加密关系
图13.8 在服务器端实施选择操作
图13.9 在客户端-服务器端多次交互
有关分布式数据库技术的文章
IaaS层数据的机密性、完整性和可用性三个方面是用户对于存储数据关注的核心安全问题,也是云存储安全技术的研究重点。比如SalesForce采用SSL 3.0和TLS 1.0保证数据的传输安全,SSL和TLS在传输层对数据进行加密,防止数据被截取和窃听。全同态加密机制可使用户的数据在其整个生命周期都处于加密状态,减少了数据泄露的概率。......
2023-11-18
因为服务供应商并不可信,所以关系以加密形式存储。假设数据在记录级加密,即每个表的每个记录加密成一个数据块。这样,加密关系表示由一个加密记录集合构成。反之,使用DAS的本意是直接在服务器端处理查询,而无需解密数据。在关系型表示的数据进行加密后,要对其实施SQL查询,即开发出一种能在加密数据上支持比较运算和算术运算的机制。......
2023-10-28
如图20.12所示,数据采集器及传感网中的传感器节点,用于采集感知信息。图20.12IOT分布网络节点这里出现了可反应设施的概念。图20.13IOT数据的边缘存储和核心存储物联网的数据可以分为边缘存储和中心存储两个层次存储,即边缘数据库和中心数据库。一般受容量的限制,边缘能存储的数据量有限。图20.14有汇聚层的体系架构需要注意的是,这里讨论的仅是初步的物联网数据库架构。......
2023-10-28
应急大数据种类多,关系复杂。该混合时空数据模型将应急时空大数据抽象为数据集{时间,空间,事件},如图2.10所示。其中时间轴T为UTC时间,空间轴X为与突发事件相关的空间基础数据,存储形式为CGCS2000坐标系下的大地坐标,事件轴E是突发事件的相关数据,主要包括致灾因子、承灾体、孕灾环境、抗灾体等数据。将X及E投影到时间轴,可视为在某一时间节点上的快照片段数据,表达为该时刻发生事件涉及的空间区域以及应急数据。......
2023-06-15
每个数据库管理系统都具备某种形式的数据目录或数据字典。下面以Oracle数据库管理系统为例,说明数据目录是如何设计与实现的。表4.1User_Tables视图中的列显然,User_Tables视图把关系的创建者和存储空间信息记录了下来。简言之,一旦数据库对象创建或修改,系统目录就自动由DBMS修改。......
2023-10-28
加密技术可以分为加密密钥和加密算法两部分。使用对称密钥加密系统时,发送方用密钥对待发送的数据进行加密得到密文,然后把密文传输给接收方,接收方收到发送方传输来的密文后,使用与发送方相同的密钥对此密文进行解密即可得到明文。图4.37对称密钥加密系统的数据传输过程对称密钥加密技术使用单个密钥对数据进行加密或解密,特点是运算速度快,但密钥分发困难。......
2023-10-22
分布式内存对象缓存系统memcached[12]把所有数据都保存在内存中,这样保存和读取的速度非常快,但是当memcached停止运行的时候,数据就不存在了。这里的键值存储不像memcached那样在内存中保存数据,而是把数据保存在硬盘上。与memcached在内存中处理数据相比,由于必然会发生对硬盘的I/O操作,所以性能上还是有差距的。但数据不会丢失是它最大的优势。这种类型的数据库特别适合于处理数组类型的数据。......
2023-10-28
例如,可以按照各种方式将事务进行分类。也可以将事务分为在线处理事务和批处理事务。图8.3各种事务模型 下面看一些事务的例子。按事务结构可分为平面事务和嵌套事务。子事务的提交是父事务提交的条件。......
2023-10-28
相关推荐