面向“公有云”的水情数据安全范围查询方案
2017-07-18朱光军刘树波刘梦君李妍君
朱光军,刘树波,刘梦君,李妍君
(1. 湖北省水利厅信息中心,湖北 武汉 430071;2. 武汉大学计算机学院,湖北 武汉 430072;3. 湖北大学计算机与信息工程学院,湖北 武汉 430062)
• 简讯 •
面向“公有云”的水情数据安全范围查询方案
朱光军1,刘树波2,刘梦君3,李妍君1
(1. 湖北省水利厅信息中心,湖北 武汉 430071;2. 武汉大学计算机学院,湖北 武汉 430072;3. 湖北大学计算机与信息工程学院,湖北 武汉 430062)
随着云技术的发展,水利信息系统建设“云”化已是必然趋势,公有云平台在给水利信息化系统建设带来降低成本和提升服务能力的同时,也带来敏感水利数据完整性被破坏的安全风险。提出一种在利用公有云环境下,水情数据安全查询方案。方案的特点是使用数据链确保查询结果的正确性,使用 Merkle 树确保查询结果的真实性,确保数据得到完整性保护。
水情数据;公有云;完整性保护
0 引言
随着我国水利信息化的深入推进,水利信息管理系统获取的大量数据与现有各水利信息管理部门有限的运维水平之间产生了越来越难以协调的冲突[1]。通常讲,水利信息管理系统包含了防汛抗旱、水资源、水生态水环境、水土保持、水利工程、农村水利、行政审批、执法监督、应急管理、电子政务等内容。如此众多的业务系统的良好运维,需要有一套高性能的机器设备、无尘机房和 7× 24 h 的运维团队。然而,多数水利部门尤其是一些基层水利部门,因为经费和编制等问题,并不具备如上条件,这就给水利信息化在水利部门的进一步推进带来了技术和运维难题。
云计算技术的出现,为计算和存储能力、设备资源及信息系统管理水平不足的水利部门合理有效开展水利信息化业务提供了可能,并已经得到了初步发展应用[2-6]。云计算以虚拟化技术将大量计算和存储资源构建成服务产品——“云计算平台”,这就使得以往不具备信息化建设条件的水利部门可以根据自身需求,灵活地获取相应的服务[7-10],而不需要自己去从零开始建设运行环境和组建专业的运维团队。在甩开 IT 平台建设和管理这一包袱之后,水利部门可以通过将数据存储在云平台上,快速地在云平台上建设数据中心,并在其基础上应用运维和管理业务软件。目前,湖北省将云计算技术在水利信息化当中的应用设为建设重点,并为此提出了如何充分利用“楚天云”平台加快水利信息化建设的方案。通过近半年时间的努力,水利厅 90% 的应用系统和数据库成功迁移到“楚天云”平台,运行正常。
然而,云平台在给水利信息化带来管理和服务能力提升的同时,也带来了敏感水利数据安全问题,其中,水文数据被篡改便是其中一个重大安全问题[11-12]。目前,湖北省水利厅在“楚天云”平台上开展信息化建设,因此所有的信息资源都在该云平台及网络环境下使用和保存。在这种条件下,原本敏感的水利数据实际已经脱离了水利部门的绝对管控,不法分子通过各种手段进入第三方云平台,恶意篡改和删减已采集收取的数据,蓄意干扰乃至破坏水利信息化平台正常业务功能的正常运行。这种情况一旦发生,轻则导致业务功能无法使用,重则制造社会恐慌,危害社会稳定、国家安全。因此,必须加以技术手段消除水利数据存储在第三方云平台上的运维风险[13]。
遗憾的是,在消除水利数据被篡改风险的同时,保证水利信息化业务功能的正常运行有着较大的技术挑战。消除存储在第三方云端的水利数据被篡改的风险需要在将数据外包存储到第三方云平台之前,对数据进行完整性保护处理,但对数据进行完整性保护又会干扰正常信息化功能的开展。原因在于,不同于其它常规云端应用的数据特点,水利数据多是与环境参数相关的结构化小数据,常规云端应用对每项文件进行完整性保护的技术,如SHA-1 哈希后再签名的方式,直接应用到水利数据上会产生极其巨大的运行开销,严重影响业务应用性能。随着水利信息化近年来向移动化的方向发展,这种业务性能上的负面影响会进一步加剧。另外,有别于常规文件存储面临的完整性破坏问题,结构化的水利小数据还面临着数据的非法添加和删除问题。这些都使得设计一套更高效的水利数据在第三方云平台上的安全存储方案迫在眉睫。
为此尝试以尽可能小的运维代价,消除水利数据存储在第三方云平台上完整性被破坏的风险。在接下来的章节中,通过一个基于数据链和 Merkle 哈希树的完整性保护方案,解决上述所提问题,理论分析和仿真实验也验证了方案的安全性和正确性。
1 系统模型与问题定义
1.1 系统模型
在模型中有 3 个实体参与方:水利部门服务器、第三方云平台及用户。水利部门自有服务器进行数据的备份、基本存储和安全性处理,不提供在线查询服务;第三方云平台存储水利部门的数据并为水利部门代理在线查询服务;用户向第三方云平台发起水利信息查询请求,并获取相应查询结果。具体系统模型如图1 所示。
图1 水利信息云外包系统模型示意
水利数据具有以站点为单位集中分布的特点,因此在进行数据处理时即以站点为单位分开处理。通常一个站点包含多种水情数据,如水位、流速、流量、雨量、闸门开度等。为简洁起见,以水位数据处理为例:M 表示站点数量,i 表示站点编号,ni表示站点 i 水位数据数量,Di表示的站点 i 的所有水位数据,Di,j表示站点 i 的第 j 个水位数据,水位数据集
1.2 问题定义
假定用户向第三方云平台发出一个水位值在(λ1,λ2)之间的范围查询请求,q(λ1,λ2),λ1>λ2∈[0,λ]。
第三方云平台不可信,例如不法分子可能侵入数据库中,篡改某一站点水位值,以期造成数据错误。
给定如下题设,设计目标是确保查询用户可以验证查询结果的真实性和正确性。所谓真实性是指查询结果确为原始没有被篡改的水情数据值,所谓正确性是指返回查询结果确为原始查询结果,没有数据被删除或植入伪造数据。
2 基于数值链和 Merkle 树的安全范围查询方案
水文信息的范围查询完整性保护方案分为 3 个阶段,分别是:1)数据预处理;2)查询处理;3)查询验证。其中,数据预处理阶段,水情处预先使用密码学方法为原始水情数据集生成验证信息,随后在查询处理阶段,云平台将查询结果和验证这些查询结果的验证信息一起返还给用户,最后用户从查询结果和验证信息中验证查询结果的完整性。
2.1 数据预处理
考虑水位数据 Dwl为去掉基面高程的绝对水位值,Dwl∈[0,λ]。对于水位值数据,水情处执行如下处理:
首先,对于每一个站点的水位数据 Di,水情处根据水位值大小对水位数据进行从大到小排序,生成一个水位值数据序列 D′i= < D′i,1,D′i,2,…,D′i,ni>。随后它为每个排序好的数据 D′i,j∈D′i生成 1 个索引φi,j= < ι′i,j,H(D′i,j)>,其中,ι′i,j表示数值 D′i,j在排序好的数据集中的序号,H (•) 表示密码学哈希函数,如 SHA-1。
紧接着,水情处使用密码学哈希函数将索引构成索引链{φ}ni 索引链的作用是为了用户可以对查i,jj = 1询结果进行正确性验证。具体地,由于水位值在一个确定区间[0,λ]内分布,令 a 为 1 个 < 0 的数值,a 对系统内所有人公开,水情处按照如下公式计算哈希值,
式中:‖表示串接,站点 i 的数据数量 ni≥ 0,当 ni= 0 时,φi,1= hi,1= H ( a )。
假设对于某个正整数 d,站点的总数 M 满足 M = 2d,水情处构造 1 个深度为 d 的二叉树,在这个二叉树当中,每个叶子节点对应着 1 个站点第 1 个哈希值 hi,1集合,且每 1 个非叶子节点为它的 2 个直接子节点的值串起来后的哈希值。同时用 1 个辅助集合 Ti作为和叶子节点 hi,1一起计算 Merkle 树根的非叶子节点集合。定义 Ti为所有被用来验证叶子节点hi,1的最小中间节点集合。图2 给出了 1 个站点数量M = 6 的简单的例子,如图2 所示,有返回的密文h3,1和辅助集合 T3={h2,1,h0-1,h4-7},而树的根 root可以使用公式(2)计算出来:
图2 Merkle 哈希树的构建过程示意
值得注意的是,如果 n 不是任何 2 的幂数,在构造 Merkle 哈希树的时候,需要添加一些冗余叶子节点,使得叶子节点总数为 2 的幂数。
水情处使用自己的私密密钥对 Merkle 哈希树的根进行签名{H(root)}k-1,其中{•}k-1表示使用下标所述的私钥计算一个签名。
最终,水情处将站点水位值,水位值索引链集合{h}n-1,和签名发给云平台,云平台使用水位值索ii = 0引链{h}n-1计算所有用于构造 Merkle 哈希树的中ii = 0间值。
2.2 范围查询处理
假定用户对于在 λ1,λ2之间的水位值感兴趣,对于每一个站点 i,云平台首先从其排序好的水位数据记录集中找到最后 1 个 > λ的值索引为<1i,γ >,以及最后 1 个 > λ2的水位值< i,η >,令 m为满足查询条件的数值个数。
云平台按照如下条件返回站点 i 的查询结果 Qi:
1)如果站点 i 水位数值数 ni= 0,Qi= < i >;
2)如果站点 i 水位数值数 ni= 1,Qi= < i,φi,1>;
3)如果站点 i 水位数值数 ni= 2,满足条件的水位数值数 mi= 0,Qi= < i,φi,1,hi,2>;
4)如果站点 i 水位数值数 ni= 2,满足条件的水位数值数 ni≥ mi≥1,Qi= < i,φi,1,…,D′i,γ,D′i,γ +1,…,D′i,η,D′i,η +1,φi,η +1,hi,η +2>;
此外,云平台还返回用于在查询结果 Qi之外,辅助恢复 Merkle 哈希树根的哈希值集合 ∪Hi∈QTi,以及对 Merkle 哈希树根 root 的签名信息{H(root)}k-1。
2.3 查询结果验证
一旦收到返回的查询结果,用户使用如下方法验证查询结果的真实性和正确性。
1)对于真实性验证,用户首先根据公式(1)为每个水位数值数不为 0 的站点计算出 hi,1,由于水位数值数为 0 的站点的 hi,1会蕴含在 Merkle 哈希树的中间值 Ti中返回,用户使用所有水位数值数不为 0的站点的 hi,1和中间值 Ti恢复出哈希树的根,并验证签名,如果签名正确,则为真实数据。
2)对于正确性验证,用户首先判断 D′i,γ≥λ1≥D′i,γ +1,D′i,η≥ λ2≥ D′i,η +1,如果成立,则接着使用φi,η +1,hi,η +2用公式(1)计算出 φi,1,并将此值与返回结果中的 φi,1进行比较,如果相等,则结果是正确的。
3 性能评估
3.1 方案分析
本节分别对方案的真实性和正确性进行分析。
3.1.1 真实性分析
由于每个水位数值的哈希值都嵌入在自身索引当中,而相邻的索引都以哈希链的形式进行链接。而任何假的记录或者索引都会使得用户计算出一个不正确的 Merkle 哈希树的叶子节点,这就直接导致算出的和返回的签名值不一致。因此,用户可以检测出任何数值或者索引中不真实的水位值查询结果。
3.1.2 正确性分析
由于返回结果中的记录值{D′i,γ,D′i,γ +1},{D′i,η,D′i,η +1}各自恰好包含查询范围的 2 个区间值 λ1,λ2,返回结果的正确性很快地确认。如果这当中被插入或者删除了记录,则索引的哈希链会被破坏,通过辅助值 φi,η +1,hi,η +2就无法计算出 hi,1,因此返回结果的正确性也可以得到保证。
3.2 实验分析
由于完整性保护方案能否适用的关键在于用户端的查询开销是否合理,为此主要对用户端的开销从计算、通信两方面进行实验分析。哈希函数采用SHA-1,由于签名全局只有 1 次,因此没有测试必要。
实验硬件平台:处理器 Interl(R)Core(TM)i3-4170 CPU @3.70 GHz,内存 16 GB,Win7 操作系统,所用语言为 Java。
数据集采用湖北省洈水灌区的水情数据,默认选取其中 10 个站点,数据采样频率为 30 min 每次,默认处理 10 d 数据,也即 480 条数据,查询区间大小默认为数值空间的 10%。注意到数值会有重复,对于重复的数值,如果数据精度为 0.01,将其采集时间年月日时分秒(如 2017年 5月 14日 12 时 30 分—1705141230)10 位数字字符转换为整形值,如0.001 705 141 230,然后同水位值进行相加,则所有数值具备唯一性。
实验分别对处理的站点个数变化和单一站点数据量的变化对用户查询验证性能进行仿真测试,也即:1)保持单一站点数值数量为 480,变动站点数1~10;2)保持站点数为 10 不变,变动每一站点采样数值数为 48~480 变化。实验结果为同一数据集上重复 50 次后得到的平均值。
3.2.1 站点数量 M 变化的影响
图3 和 4 分别表示在保持单一站点数值数量为480,变动站点数从 1~10 的实验参数情况下,用户从云平台处进行范围查询所耗费的计算和通信开销。可以看出,不论是计算开销还是通信开销,所提方案都随着站点数量变化而线性增长。由于哈希计算开销要远远小于签名计算开销,因此,所提方案能大大减小传统签名方式带来的巨大计算开销。
3.2.2 单一站点数值个数 ni变化的影响
分析可知,本方案的计算量与通信量都较小,同时匹配结果是精确匹配。如图5 和 6 所示,分别表示在保持站点数为 10 不变,变动每一站点采样数值数为 48~480 变化实验参数情况下,用户从云平台处进行范围查询所耗费的计算和通信开销。可以看出,单一站点数值个数与站点数量变化的影响一致,不论是计算还是通信开销,本文所提方案都随着站点数量变化而线性增长。由于哈希计算开销要远远小于签名计算开销,因此,所提方案能大大减小传统签名方式带来的巨大计算开销。
图3 站点数量变化对用户计算开销影响
图4 站点数量变化对用户通信开销影响
4 结语
设计了一个公有云上的水情数据安全范围查询模型,提出了一个基于数值链和 Merkle 树的安全范围查询方案,实现了较高效地验证查询结果的完整性。不足的是对于计算开销,虽然实现了线形增长,但是随着数值记录的增长,这种开销也较为繁重,在后续的工作中,将尝试进一步减小查询验证过程中的计算开销,以期更有力地推动水情数据在公有云平台上的安全高效运行。
图5 单一站点数值个数对用户计算开销影响
图6 单一站点数值个数对用户通信开销影响
[1] 李永峰. 甘肃水利信息化建设与管理技术探讨[J]. 中国水利,2016 (9): 45-48.
[2] 周力峰,刘文,张治中. 云计算在水利科研信息化中的地位与作用[J]. 长江科学院院报,2014,31 (9): 110-114
[3] 周力峰,刘文,柏玉锋. 水利科研云平台建设与总体设计应用的主要技术研究[J]. 长江科学院院报,2015,32 (11): 119-124.
[4] 刘庆涛,崔瑞玲,耿丁蕤. 水利信息云建设初探[J]. 水利信息化,2012 (2): 5-9.
[5] 付静,程益联. 水利信息系统应用支撑平台探讨[J]. 水利信息化,2014 (5): 1-4,11.
[6] 王喜春,孙志禹. 基于大数据的水利水电云 GIS 平台概述[J]. 人民长江,2013 (增刊 1): 182-184.
[7] 樊龙,万定生,顾昕辰. 基于 Hadoop 云平台的水利普查数据挖掘系统的设计和实现[J]. 计算机与数字工程,2014,42 (5): 831-834.
[8] 沈筱飞,孙峰. 基于“云计算”的常州市水利信息资源整合研究[J]. 江苏水利,2015 (8): 35-37.
[9] 刘仲刚,陈辉,黄章羽,等. 云技术在水利地理信息服务平台建设中的应用[J]. 水利信息化,2014 (2): 15-19.
[10] 黄征宇. 珠江上的一朵水利“云”[J]. 中国信息化,2011 (22): 64-65.
[11] 林林,王树伟,缪纶,等. 水利专业软件云服务平台安全风险处置研究[J]. 中国水利水电科学研究院学报,2015,13 (4): 312-316.
[12] 张玉清,王晓菲,刘雪峰,等. 云计算环境安全综述[J软件学报,2016,27 (6): 1328-1348.
[13] 冯朝胜,秦志光,袁丁. 云数据安全存储技术[J].计算机学报, 2015,38 (1): 150-163.
A scheme of hydrological data security query for“public cloud”
ZHU Guangjun1, LIU Shubo2, LIU Mengjun3, LI Yanjun1
(1. Information Center of Hubei Province Department of Water Resources, Wuhan 430071, China; 2. Computer School of Wuhan University, Wuhan 430072, China; 3. Computer Science and Information Engineering School of Hubei University, Wuhan 430062, China)
With the development of cloud technology, using it to build the water conservancy information system is inevitable trend. While the public cloud platform could reduce cost and enhance the service of the water conservancy information construction system, it may also menace the security of sensitive water conservancy data integrity. In this paper, it proposes a scheme of hydrological data security query which uses the public cloud environment. This scheme is characterized by the use of data chains to ensure the correctness of the query results. The Merkle tree is used to ensure the authenticity of the query results and the data integrity protection.
hydrological data; public cloud; integrity protection
TP39;TV697
A
1674-9405(2017)03-0005-05
2017-05-01
朱光军(1968-),男,湖北应城人,硕士,研究方向:应急和安全通信。
10.19364/j.1674-9405.2017.03.002