数据库加密
CryptDB:Processing Queries on an Encrypted Database
在一个加密的数据库上处理查询
问题
数据库中的机密数据泄露
在一个保护壳里的CryptDB
目标:保护数据的机密性
SQL查询在加密的数据上进行
使用细粒度的密钥;将这些密钥连接到基于访问控制的用户密码
威胁:DB server端的被动攻击
代理:存储主密钥,不存储数据,不执行查询。
将从应用传来的明文查询进行加密,传送给DB server;
将从DB server 收到的密文结果解密,返回给应用。
DB server 是 Encrypted DB
两种技术
-可以识别SQL的加密方案
-根据查询调整数据库的加密
加密方案以及适合的运算
-RND:none
-HOM:+
-SEARCH:word search
-DET:equality
-JOIN:join
-OPF:order
JOIN
KeyGen(sec.param):SK 在代理上。master key//主密钥
Encrypt(SK,m,COL i):cmi。col i key ; col j - col j key//每列单独加密,产生的结果看起来没什么关系,所以不能直接发现连接关系
Token(SK,COL i , COL j):(ti,tj)。 join key//令牌,用于调整要进行连接的两列中的一列,使之与另一列可以正确连接
Adjust(ti,cmi):cm 。 adjust key //进行调整,调整之后,可以进行两列之间的正确连接
只需调整i列,便可产生正确的连接关系。
注意:
这个只是我的大概的理解,细节并不是很清楚。不过,原理可能不会差太多。
需要通过调整产生正确的连接关系。调整
安全性:没有令牌就无法获取正确的连接关系