外包数据库中的查询结果验证技术 外包数据库这个题目行吗? 文洁 2013年3月29日.

Slides:



Advertisements
Similar presentations
练一练: 在数轴上画出表示下列各数的点, 并指出这些点相互间的关系: -6 , 6 , -3 , 3 , -1.5, 1.5.
Advertisements

LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
小学生游戏.
Oracle数据库 Oracle 子程序.
欢迎欢迎! 热烈欢迎!.
在PHP和MYSQL中实现完美的中文显示
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Hadoop I/O By ShiChaojie.
基于云计算的数据安全 保护策略研究 报告人:王 立 伟.
Chinese Virtual Observatory
强连通分量 无向图 1、任意两顶点连通称该图为连通图 2、否则将其中的极大连通子图称为连通分量 A D C B E 有向图
中国科学技术大学 肖 明 军 《网络信息安全》 中国科学技术大学 肖 明 军
李杰 首都经济贸易大学 安全与环境工程学院 个人主页:
大学计算机基础 典型案例之一 构建FPT服务器.
SQL Injection.
走进编程 程序的顺序结构(二).
辅导课程六.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
Windows网络操作系统管理 ——Windows Server 2008 R2.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
Cyclic Hanoi问题 李凯旭.
以ISI平台为例,为您演示一下如何在Endnote文献中查看该文献的References
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
你知道这些标志吗?. 你知道这些标志吗? 网络——信息安全 小组讨论 你觉得网络信息安全吗? 为什么?
第3章 信息与信息系统 陈恭和.
任务1-3 使用Dreamweaver创建ASP网页
SOA – Experiment 2: Query Classification Web Service
新一代安全网上银行 小组成员:杨志明 王晶 任毅 刘建中 关昊 刘超.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
顺序表的删除.
第四章 团队音乐会序幕: 团队协作平台的快速创建
DQMClientDim.cxx及双光子练习
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
VisComposer 2019/4/17.
WPT MRC. WPT MRC 由题目引出的几个问题 1.做MRC-WPT的多了,与其他文章的区别是什么? 2.Charging Control的手段是什么? 3.Power Reigon是什么东西?
商业分析平台-语义元数据 用友集团技术中心 边传猛 2013年 11月 06日.
VB与Access数据库的连接.
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
实验七 安全FTP服务器实验 2019/4/28.
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
IT 安全 第 11节 加密控制.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
Lightweight Data-flow Analysis for Execution-driven Constraint Solving
Web安全基础教程
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第4章 Excel电子表格制作软件 4.4 函数(一).
Chapter 18 使用GRASP的对象设计示例.
第4课时 绝对值.
Visual Basic程序设计 第13章 访问数据库
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
Touch Github = Touch the World
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
Python 环境搭建 基于Anaconda和VSCode.
_07多连接之select模型 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
基于列存储的RDF数据管理 朱敏
VoIP组工作汇报 黄权 李光华.
Chinese Virtual Observatory
VB与Access数据库的连接.
第四章 UNIX文件系统.
第十七讲 密码执行(1).
第十二讲 密码执行(上).
插入排序的正确性证明 以及各种改进方法.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
《手把手教你学STM32-STemWin》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司
多个Activity的使用 本讲大纲: 1、使用Bundle在Activity之间交换数据 2、调用另一个Activity并返回结果
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

外包数据库中的查询结果验证技术 外包数据库这个题目行吗? 文洁 2013年3月29日

大纲 研究背景 查询验证的基本知识 位置隐私保护的查询验证技术 总结 数字签名链 Merkle 哈希树 Authenticating Location-based Services without Compromising Location Privacy. SIGMOD 2012 总结

研究背景 外包数据库模型 1) 篡改数据 2) 篡改查询结果 查询请求 数据和索引 结果 数据拥有者 服务提供商 用户 查询结果验证 包数据库模型主要由三个实体组成:(l)数据所有者,(2)数据库服务提供商,(3)用户。在该模型中,数据所有者将数据及相关索引结构上传到外部数据库服务器,数据库服务器代表数据所有者向用户提供服务。 进行查询结果验证的动机:第三方的数据库服务器有是不可信的,它可能会为了自己的利益 1)篡改数据;2)篡改查询结果。如果缺乏有效的措施,一旦出现这些情况,而用户又无法证明数据的真伪,往往会给用户,甚至数据拥有者造成严重的后果。因此,需要为客户提供一种手段使其能够快速准确地验证查询结果是否真实和完整。 数据拥有者 服务提供商 用户 查询结果验证

查询结果验证目标 返回的查询结果满足查询要求 正确性 数据拥有者的数据没有被篡改 真实性 查询结果全部返回客户端 完整性

查询结果验证技术 基于概率的方法 基于有验证功能的数据结构 监测元组 没有返回满足条件的监测元组,则断定数据库已被攻击 全部返回满足条件的监测元组,则以一定概率断定数据库 完整性没有收到攻击 基于有验证功能的数据结构 返回查询结果和验证对象VO 数字签名链 Merkle 哈希树 基于概率的结果完整性验证方法。数据拥有者在将数据外包给第三方服务提供商时,在数据中混入了一组特别的监测元组。这些混在原始数据中的监测元组就会以一定概率包含在查询结果中,并返回给提交查询的用户。用户可以通过监控这些额外插入的元组来监控外包数据库的完整性。如果一个满足查询条件的监控元组没有被返回,那么用户就可以断言完整性已经被攻击。反之,如果所有满足查询条件的监控元组都完整地返回,则以一定概率断定完整性没有受到攻击。 返回结果和VO,大多数查询验证都是基于这两种方法的。

基本知识 消息摘要 (digest) 非对称加密技术 消息通过单向哈希函数得到的一个固定长度的值 消息的指纹:相同的消息得到相同的摘要,不同的消 息得到不同的摘要 单向性:给定消息摘要不能得到原消息 非对称加密技术 两把钥匙:公钥和私钥,分别加密和解密 RSA 我先来介绍一下关于查询验证的基本知识。 第一个,消息摘要,是经过单向hash函数得到的一个固定长度的值,相同的消息得到相同的摘要,不同的消息得到不同的摘要,哪怕只更改该段落的一个字母,通过哈希算法作用后都将产生不同的值。消息摘要是消息的指纹,确保消息的完整性。 非对称加密技术,加密和解密用的是两把不同的钥匙。或者用公钥加密,用私钥解密;或者用私钥加密,用公钥解密。 假设两个用户要加密交换数据 明文 明文 加密 密文 解密 公钥 私钥 解密 加密 密文 明文 明文

数字签名 数字签名是消息摘要与非对称加密技术的应用 数字签名的功能: 保证信息的完整性 认证消息发送者的身份 比较 消息 单向hash函数 数字签名是消息摘要和非对称加密技术的综合应用。数字签名的功能是保证信息传输的完整性、认证发送者的身份。 数字签名技术是如何使用的。 数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。 消息摘要digest 消息摘要digest 消息摘要digest 私钥 单向hash函数 公钥 消息 + 数字签名 消息 + 数字签名 消息发送者 消息接受者

数字签名 数字签名在外包数据库查询验证中的应用 数据拥有者 外包服务商 数据库和数字签名 查询结果 和数字签名 查询请求 公钥 目前较多的还是基于公钥密码的数字签名。首先,数据拥有者对数据库中每一个属性值都签名,然后将签名和数据库外包到服务器,将公钥发送给用户。用户想服务器发送查询请求,外包服务器返回结果和对应的数字签名。用户用公钥解密签名,就能验证结果的真实性,也就是说可以验证数据没有被篡改。 但是,这种方法只能验证真实性,却无法验证查询结果的完整性。服务器可能偷懒,只返回了正确结果集中的部分结果。 公钥 无法验证结果完整性! 用户

数字签名链 签名和近邻的值有关 第一个值前和最后一个值后添加两个特别对象

数字签名链 服务器返回d2和d3作为结果 验证对象VO: 1) Sig(d2), sig(d3); 2) 边界值d1和d4 验证过程 1保证了结果是完整的;2)保证了结果是正确的

Merkle哈希树 只有根节点签名 签名 d1 d2 d3 d4 这棵树是为四个值d1,d2,d3,d4建立的Merkle哈希树。树的叶子节点是对应值的摘要,由一个单项哈希函数求得。中间节点是所有子节点摘要的串联值。 排好序 串联 d1 d2 d3 d4

Merkle哈希树 服务器返回d2和d3作为结果 验证对象VO: 1) N2的摘要; 2) 根节点N的签名 签名的 d1 d2 d3 d4

Merkle哈希树 客户端验证过程 比较 N = h ( N1 | N2 ) N1 = h ( N11 | N12 ) N11 = h ( d1 ) N12 = h ( d2 ) d1 d2

数字签名链 vs. Merkle哈希树 比较项目 Merkle Hash Tree 数字签名链 数据库创建速度 快 慢 空间占用量 小 大 客户端验证效率 高 低 验证过程 过于依赖根节点签名 与结果签名相关 快速定位被篡改记录 能够 不能 数据更新效率 对这两种方法进行一个小总结 1)数据库创建速度快。中间节点只需要计算其hash值,而且只需要对根节点签名,节省了大量的签名计算,加快了数据库的构建速度。 2)为数据库服务器节省了大量的存储开销。因为保存hash值需要的存储空间远远小于保存数字签名需要的存储空间 3)为了验证查询结果,用户只需要计算部分中间节点的hash值并使用根节点的数字签名验证自己计算出来的根节点的hash值,从而减少的验证数字签名的次数,提高了验证速度 4)安全性较低。MHT树的安全性过于依赖根结点的安全性,容易出现“单点故障’,,一旦根结点的签名被篡改,不管数据库中的记录是否正确,用户都无法验证查询结果的正确性和完整性。 5)不能快速定位被篡改记录的位置。如果返回的查询结果被篡改,用户验证后只知道结果有错误,但不能找到错误一记录的具体位置。因此,一旦数据被篡改,数据所有者必须重传所有记录,同时服务器必须重构整棵树。 6)但是,一旦数据库中有数据需要更新,该类验证技术就需要重新构建MHT树。因此,这类查询验证技术更适合处理静态数据库,例如数据仓库。基于数字签名链的查询验证技术需要对数据库中的所有记录签名,因而数据库创建成本极高。用户只能逐个地验证查询结果,其验证速度比较慢。但是,当有数据需要更新时,该类方法只需要对少数几条数据重新签名,因而更新速度快,适合处理动态数据库。

查询验证中的安全和隐私问题 边界数据 数字签名的安全性 位置数据 目前已有的查询验证技术一般需要将不在用户查询范围内的左右边界一记录的值返回给用户,用户就有机会获取不在其访问权限范围内的数据,从而破坏了访问控制规则,泄露了隐私数据和敏感信息。 已有的查询验证技术一般假设数据库中的数据没有加密,数据都是以明文的形式保存在数据库中。已有的查询验证技术一般使用RSA等普通的公钥签名方案对数据库中的特定数据签名。但是普通签名是自证明和可传递的,任何人只要获取了该签名就可以验证数据的正确性。现有的查询验证技术在查询验证过程中一般直接将数据拥有者的签名发送给用户,泄露了数据拥有者的签名,给数据库查询验证技术带来了许多安全问题。伪装成服务器为他人提供服务。

Haibo Hu, Jianliang Xu, Qian Chen, Ziwei Yang Sigmod 2012 Authenticating Location-based Services without Compromising Location Privacy Haibo Hu, Jianliang Xu, Qian Chen, Ziwei Yang 在LBS中,如何实现结果验证,同时不会泄露用户位置信息

为付费用户提供实时的、精准的交通信息;为免费用户提供滞后的、粗糙的信息 背景和动机 告诉我附近拥堵的路段 为付费用户提供实时的、精准的交通信息;为免费用户提供滞后的、粗糙的信息 签到服务,近邻服务 移动客户端 LBS服务请求 在一个公共交通监控服务中, 查询结果 用户位置 位置数据拥有者 第三方服务提供商

背景和动机 找到附近和餐厅和每个餐厅的就餐人数 签到服务,近邻服务 移动客户端 LBS服务请求 在查询结果中添加赞助的餐厅 查询结果 通过提供签到服务,近邻服务,每天可以得到海量的用户位置信息。同时,一些移动运营商也在为用户提供更多的增值服务。 提供一些增值服务,如签到和附近朋友提示等。 为了得到就餐人数,通过在每个餐厅附近执行一次范围查询即可。 为了解决这些信任问题,很必要需要服务提供者在提供服务同时,也提供一套查询结果验证的机制。 以往的技术。。。 在LBS服务中,验证需要返回具体的用户位置信息。比如在这个例子中。 查询结果 用户位置 位置数据拥有者 第三方服务提供商

安全问题和目标 安全问题 目标 客户端可能会通过验证对象包含的的信息推测出用户 的位置信息 服务提供者为了自身利益可能会返回错误的查询结果 在保护位置信息不泄露给客户端的前提下,对查询结 果进行验证 因此在这样一个环境背景下,存在两个安全隐患:1)客户端可能会通过VO的信息推测出用户的位置信息。2)服务提供者为了自身的利益,可能会返回错误的查询结果。 因此这篇文章的主要目的就是:在无条件保护位置信息不被泄露的情况下,对查询结果就行验证。

范围查询的验证 B+树索引位置,叶子节点的值按序排列 基于Merkle Hash Tree的验证技术 验证目标 数据的真实性 数据的正确性 数据的完整性 签名 root digest 为了使得范围查询可验证,这篇文章采用了Merkle 哈希树这种经典做法。 真实性可以保证,MHT可以保证整个数据没有被篡改过。 应为是用B+树索引的,所以要保证数据的正确性和完整性,验证查询结果边界值即可。 digest digest digest digest …… … u1|x1 u2|x2 u3|x3 u4|x4 u8|x8 u9|x9 u10|x10 digest digest digest digest digest digest digest

范围查询的验证 验证查询结果边界值 例子: 验证: 查询:范围在[a, b]之间的用户 结果:(u3, u4, …, u8, u9) u2<a u3>=a u9<=b u10>b 签名 root digest 应为是用B+树索引的,所以要保证数据的正确性和完整性,验证查询结果边界值即可。 在不需泄露位置的情况下完成验证。客户端和服务器联合完成验证过程。 digest digest digest digest …… … u1|x1 u2|x2 u3|x3 u4|x4 u8|x8 u9|x9 u10|x10 digest digest digest digest digest digest digest

联合计算摘要 判断x>=a g(x−L) = g(x−a)⊗g(a−L) 服务器 客户端 g()方法只接受正整数 服务器 客户端 g()方法只接受正整数

查询验证摘要

查询验证过程 步骤一:判断边界值是否正确 步骤二:比较根节点摘要和签名摘要 方法:客户端和服务器联合计算摘要,保护位置隐私 目的: 1)结果正确性; 2)结果完整性 步骤二:比较根节点摘要和签名摘要 方法:自底向上计算节点摘要 结果的真实性

R树索引上的验证 边界验证 B+树:四个值 R树:每个停止分裂的节点 R树上的验证和B+树上的验证差不多,都是需要考虑边界值的验证。 验证每一个停止分裂的节点。 查询处理和VO构造的过程。

谢谢 Q & A