投稿问答最小化  关闭

万维书刊APP下载

时空数据的安全存储与完整性验证

2023/8/11 15:02:32  阅读:80 发布者:

时空数据的安全存储与完整性验证

王小宁

(山东科技大学 测绘与空间信息学院, 山东 青岛 266590)

要:针对时空数据的高效存储和安全管理问题,设计一种基于Hadoop分布式文件系统(Hadoop distributed file system,HDFS)的大数据安全存储架构,选用商用密码系列算法中的SM3密码杂凑算法,保证客户端与服务端信息交互的完整性,并在SM3算法的基础上结合消息鉴别码算法(HMAC),设计并实现一种基于SM3-HMAC的时空数据完整性验证方案。实验结果表明:本文设计的验证方案是行之有效的,在满足效率要求的同时可为时空数据的安全存储和完整性验证提供一种安全有效的解决方案。

0 引言

随着信息时代的快速发展,第五代移动通信、物联网等技术的应用领域越来越广泛,随之产生了海量数据。时空数据是多维数据,整体结构分外复杂,同时拥有空间和时态两种主要特征,并能合理反映事物的时空位置状态和时空变化过程[1]。近年来,随着各种信息技术的持续发展与获取信息方法的不断增加,数字城市、智慧城市、地图导航等地理数据受到了广泛关注,这些实时产生、实时更新的数据使得时空大数据的存储量从兆字节(MByte,MB)、吉字节即千兆字节(Gigabyte,GB)逐步达到了万亿字节即太字节(Terabyte,TB)、拍字节即千万亿字节(Petabyte,PB),甚至泽字节即十万亿亿字节(Zettabyte,ZB)级。无论是个人还是企业都有着日益增长的数据需要进行存储和管理。因此,对于利用大数据技术如何保证高效地对海量地理信息大数据存储、管理已是大数据行业亟须解决的难题。

随着非关系型的数据库(not only Sql,NoSQL)Hadoop技术的蓬勃发展,实现高效存储和管理海量时空数据成为可能,如可采用分布式数据库系统(hadoop base,HBase)存储矢量空间数据[2]解决查询效率低问题;利用分布式存储[3]来提高对特定数据的访问需求;通过构建Hadoop集群[4-5]来提高数据库的可扩展性等。随之而来的是如何保证这些数据在调用过程中的安全性[6]和完整性成为用户关注的又一核心问题。数据完整性验证技术[7]是一个检测云服务器上数据是否损坏的有效方法,如可通过SM3密码杂凑算法(SM3 cryptographic hash algorithm,SM3)计算文件的哈希值[8]可检验文件的完整性;SM3算法与硬件[9]结合可提高检验的效率。

2012年开始,我国密钥管理机构相继出台了国家商用密钥技术规范,已经基本适应了当前经济社会各领域在建立国家数据安全保障体系过程中的密码技术要求。数据完整性验证的常用方法是使用基于“散列函数”的验证算法[10],国产密码SM3杂凑算法[11]可为数据完整性验证提供算法支持。因此本文使用密钥相关的哈希运算消息认证码(HASH-message authentication code,HMAC)算法进行数据完整性验证[12],不仅保证了时空数据的存储问题,同时保证了时空数据的安全性,对于保护国家地理信息安全具有重要的意义。

1 时空数据安全储存和完整性验证方法

1.1 安全存储方法

1.1.1 Hadoop云存储架构

分布式文件系统(hadoop distributed file system,HDFS)HBase都是Hadoop的重要组成部分[13],Hadoop是由Apache软件基金会发展的一个高速可扩充的开放分布式应用开发架构,由多个模块分工协作而成,包含了低层的分布式文件系统HDFS、中间层的分布式计算架构MapReduce以及实时的分布式数据库系统HBase和数据仓库Hive等的使用,相应的Hadoop生态圈[14]及各组件功能的展示,如图1所示。

1 Hadoop生态圈

1.2 完整性验证方法

1.2.1 SM3算法

SM3哈希算法是我国自主设计的密码杂凑算法[15],适用于商用密码应用中的数字签名和验证消息认证码的生成与验证,还有随机数的生成,其输出长度为256 bit,可满足多种密码的安全应用需求。

1.2.2 HMAC

消息认证码算法(message authentication code,MAC)是含有密钥的散列函数算法,因此MAC算法也通常被称为HMAC[16],其中HMAC中的H就是Hash的意思。

2 实例验证与分析

2.1 安全存储

2.1.1 Hadoop搭建

(1)HDFS分布式文件系统

HDFS应用主从结构模型,一个HDFS集群是由一个主节点NameNode(以下简称NN)、一个对主节点的补充节点SecondNameNode(以下简称SNN)和若干个从节点DataNode(以下简称DN)组成的,DN可以同时是SNN。内部机制可以将一个文件分割成一个或多个块Block,这些块被存储在一组DN中。

2展示了本文HDFS的读写流程,其中NN存储了数据块的元数据,DN存储冗余的数据块,客户端进行写操作时会将数据分块上传到DN,上传完成后会向NN发送反馈;进行读操作时先向NN请求元数据,然后从DN中获取数据块,最终得到完整文件。

2 HDFS架构图

(2)HBase数据库搭建

HBase是一种高度可靠、高性能、面向列和可扩展的分布式存储系统,其数据文件全部存储于Hadoop HDFS文件系统中,可以在服务器端采用HBase技术构建大规模结构化存储集群。本文搭建的HBase体系结构如图3所示。

3 HBase结构图

分布式协调服务Zookeeper的作用是用来协调各个服务器Sever,并使服务器之间进行通信。当一个客户端Client进入集群进行访问时,首先遇到的是Zookeeper,通过Zookeeper的告知,Cient才能访问到指定的区域服务器(RegionServer)。每个RegionServer负责管理多个区域(Region),每个Region仅存储1个列族中的信息,每个Region可存储的能力有限,当越过上限阈值时,Region便会开始进行分裂,数据也会分裂到多个Region,至此,就可以将数据分配到不同的Region上。当数据写入集群时,首先RegionServer处理收到写的请求时,就会将数据存储到内存MemStore,MemStore存储的容量达到阈值时就会被刷新到Hfile中。

2.1.2 时空数据存储安全

为了保证时空数据的存储安全,集成HDFSHBase和关系型数据库(MySQL),建立时空大数据安全云存储的机制,将瓦片数据采用SM4分组密码算法(SM4 block cipher algorthm,SM4)加密成密文,并上传密文到HDFSHBase数据库。将数据密钥(一级密钥)进行二次加密生成密钥密文,并采用完整性验证算法生成数据密钥的哈希值,密钥密文与哈希值存放到MySQL数据库中。密钥的密钥(二级密钥)与一级密钥的哈希值存放到另一个MySQL数据库中。为了降低密钥破解的可能性,可以定期对瓦片数据的二级密钥进行更新,以此来加强瓦片数据的安全性。

2.2 完整性验证

2.2.1 SM3完整性验证

SM3算法是一种哈希算法,该算法在信息安全领域中用于计算消息的报文摘要,校验消息的完整性。SM3算法完整性验证流程包括填充、分块、迭代压缩3个步骤。

步骤一:消息填充,即对输入的消息内容进行比特“1”填充,使其长度成为512×K+448(K为任意正整数),再加上64位的文件长度信息构成512×(K+1)的长度。

步骤二:分块,即对填充后的信息进行分组,将其分为K+1个组。任意长度的消息,经过填充后分组(每组512 bit)

步骤三:迭代压缩,每组分别参与迭代运算,经过压缩函数多轮迭代,直至最后一轮输出最终的256 bit哈希值。

本文完整性验证具体过程如下:客户端的用户先对数据进行加密处理,将密文数据读取成byte流数据,并使用国密SM3算法生成校验码,之后用户保存一个本地的校验码副本对数据进行验证,校验码与密文一起发送到服务器中进行保存,这时服务器端需要将计算得到的校验码和收到的校验码对比,若对比一致则密文数据和校验码上传服务器成功,若对比不一致,则服务器端向客户端反映错误信息。当用户需要下载服务端数据时,服务器端先对存储数据文件采用SM3计算校验码,与该文件保存时记录的校验码进行比较,若校验一致则说明服务端数据完整,可进行下载操作;若校验不一致则说明服务端数据已被修改或破坏。客户端下载数据后通过解密工具可以对采用SM3计算解密后数据文件哈希值,与密文中记录的哈希值进行比较验证加密文件解密是否正确,见图4SM3完整性验证效率如表1所示。

4 SM3完整性验证

1 SM3完整性验证效率

本文中客户端与服务端数据信息交互中所应用到完整性验证有以下3个过程:

(1)客户端提交数据到服务器

客户端提交信息到服务器时,首先在客户端处应用国密SM3对提交信息数据进行计算得到一个检验码,将得到的检验码加到需要验证的数据后面,并将校验码和数据打包发送给服务端,服务端接收到数据后,用国密SM3算法计算得到一个校验码,得到的校验码与客户端传过来的校验码对比是否一致,用于验证客户端提交数据的完整性。

(2)服务端传递数据到客户端

服务端传递信息到客户端时,首先在服务端处应用国密SM3对传递的信息数据进行计算得到一个检验码,将得到的检验码加到需要验证的数据后面,并将校验码和数据打包发送给客户端,客户端接收到数据后,用国密SM3算法计算得到一个校验码,得到的校验码与服务端传过来的校验码对比是否一致,用于验证服务端传递的数据完整性。客户端提交信息到服务器与服务端传递信息到客户端为信息交互过程。

(3)客户端请求下载数据

在服务端对于传输数据应用国密SM3计算得到一个检验码,将得到的检验码加到需要验证的数据后面,将校验码和数据打包发送给客户端,客户端接收到数据后,用国密SM3算法计算得到一个校验码,得到的校验码与服务端传过来的校验码对比是否一致,用于验证下载到客户端的数据完整性。

2.2.2 SM3-HMAC完整性验证

由于SM3完整性验证没有考虑到验证过程中密钥的安全性,所以采用HMAC对商用密码SM3进行优化,保证在客户端与服务端交互过程中,密钥不会被窃取、篡改。

SM3-HMAC完整性验证流程为:服务端关联用户名生成SM3-HMAC密钥,客户端用户向服务端请求SM3-HMAC密钥(随机值),并将服务端发送的SM3-HMAC密钥采用状态会话(Cookie)缓存在客户端,作为接下来所有操作消息完整性验证的SM3-HMAC密钥(此期间密钥不变);将请求查询的信息采用服务端发送的SM3-HMAC密钥进行加密,调用SM3-HMAC(data,hmac,mac)函数,其中,data参数为需要验证的信息;hmac参数为生成data消息摘要时的密钥(Cookie保存的密钥);mac参数为data32位校验码(消息摘要);最后将服务器端计算得到的校验码和收客户端计算得到的校验码对比(验证流程同SM3完整性验证),若对比一致则完整性检验通过,若对比不一致,则服务器端向客户端反映错误信息。

SM3-HMAC完整性验证效率如表2所示,相较于国密SM3,SM3-HMAC在客户端与服务端信息交互过程中,由于保证了密钥的安全,其安全性要高于SM3完整性验证,此过程平均效率降低了0.323 9%,相比SM3算法平均效率上降低了0.308 5%,这表明在满足效率的基础上,SM3-HMAC完整性验证的安全性要优于SM3完整性验证。

2 SM3-HMAC完整性验证效率

3 结束语

为保证大数据安全存储,本文集成了HDFSHBaseMySQL数据库,建立时空大数据安全云存储的机制,通过在不同数据库内分别存储数据和密钥,实现数据的高效、安全存储。对于数据完整性验证问题,本文提出了集成商用密码SM3算法和HMAC算法的数据完整性验证方案,来保证客户端与服务端交互信息和数据信息的完整性,因此,数据以密文+校验码的形式在客户端和服务器之间传递,这对于数据在服务端被非法窃取行为具有一定的防范功能,提高了数据的安全性。

参考文献

[1] 王永坤,王海洋,潘平峻,.面向公共安全的时空数据挖掘综述[J].重庆邮电大学学报(自然科学版),2018,30(1):40-52.

[2] 李朝奎,王露瑶,周新邵,.基于HBase的矢量空间数据存储与查询方法及其应用[J].地理科学,2022,42(7):1146-1154.

[3] 杨力,陈建廷,向阳.基于HBase的工业时序大数据分布式存储性能优化策略[J].计算机应用,2023,43(3):759-766.

[4] 胡必波,刘钟凌,刘晓娟,.基于DockerHadoop完全分布式集群快速部署[J].无线互联科技,2022,19(12):141-145.

[5] 朱月琴,谭永杰,张建通,.基于Hadoop的地质大数据融合与挖掘技术框架[J].测绘学报,2015,44(S1):152-159.

[6] 张远云,刘涛,李夷苒,.智慧城市密码应用解决方案[J].信息安全与通信保密,2020(S1):9-16.

[7] 杨中皇,何便便.基于SM3Android文件完整性检测系统[J].西安邮电大学学报,2019,24(6):22-26,34.

[8] 周威,王博,张卫东.SM3算法硬件实现研究与应用[J].电子测量技术,2015,38(12):67-71.

[9] 杨先伟,康红娟.SM3杂凑算法的软件快速实现研究[J].智能系统学报,2015,10(6):954-959.

[10] 蒋宁,林浒,吴文江,.一种基于NTRU的轻量级截断式HMAC数字签名机制[J].小型微型计算机系统,2019,40(7):1573-1578.

[11] 胡乔木,邓昀.基于压缩HMAC算法的传感器网络范围查询方法[J].计算机工程,2021,47(12):200-208.

[12] 于敬民,高媛媛.一种基于单向HASH函数的密钥矩阵加密方法[J].通信技术,2020,53(6):1481-1487.

[13] 王思霖.基于Hadoop的日志数据处理系统[J].信息与电脑(理论版),2022,34(7):26-28.

[14] 潘恒,钱海洋,姚中原,.典型区块链存储与查询技术综述[J].郑州大学学报(理学版),2022,54(6):34-50.

[15] 霍炜.商用密码应用体系建设与创新发展[J].信息安全研究,2020,6(11):958-965.

[16] 李丹枫,王飞,赵国鸿.一种大流量报文HMAC-SM3认证实时加速引擎[J].计算机工程与科学,2021,43(1):82-88.

引文格式: 王小宁,刘新,李强.时空数据的安全存储与完整性验证[J].北京测绘,2023,37(5):625-630.

基金项目:国家发展改革委员会项目(816-517);国家自然科学基金(41774001)

作者简介:王小宁(1998),,山东聊城人,硕士在读,研究方向为时空数据挖掘。

E-mail:wxn13065000848@163.com

通信作者:刘新(1969),E-mail:syan0131@163.com

转自:“测绘学术资讯”微信公众号

如有侵权,请联系本站删除!


本文评论

暂无相应记录!

首页<<1>>尾页共0页共0条记录
  • 万维QQ投稿交流群    招募志愿者

    版权所有 Copyright@2009-2015豫ICP证合字09037080号

     纯自助论文投稿平台    E-mail:eshukan@163.com