掌桥专利:专业的专利平台
掌桥专利
首页

一种基于区块链技术的QAR数据管理方法

文献发布时间:2023-06-19 10:38:35


一种基于区块链技术的QAR数据管理方法

技术领域

本发明涉及区块链技术和航空信息管理领域,具体是涉及一种基于区块链技术的QAR数据管理方法。

背景技术

现代民航事业的快速发展对航空信息存储的安全性提出更高的要求,航空信息存储技术作为保障空中交通安全的重要手段,长期以来备受重视。此外对基于海量航空信息进行有效数据分析找出影响航空安全的因素,深入挖掘数据背后的价值也备受关注,但这些都建立在航空信息安全可信的基础之上。

传统的航空信息管理方式大多可归类为以下方式,其一为实现数据的安全存储,各航空企业建设专属数据管理系统,所收集的数据存储在本地数据库中,会导致数据孤岛的出现、不同组织间数据难以共享问题;其二为方便数据共享,引入可信的中心化机构,由该中心化机构负责数据的收集和管理,由于中心化机构对数据的提供方不够透明,这种方式会为数据的隐私性带来一定的隐患,也无法有效应对内部人员有意无意的破坏或攻击;此外若将数据存储于云平台这样的第三方信任机构可能会产生资源的浪费和传输延迟,因为即使数据提供组织内部人员访问数据也要访问云端,频繁的远距离数据传输会产生一定发延迟和资源的浪费,导致其数据维护和平台的建设成本较高。

针对现有的中心化航空信息存储方式存在着数据被篡改的隐患,而区块链作为一种新兴的去中心化基础架构和分布式计算范式,本发明提出一种借助超级账本Fabric平台设计构造适应于当前QAR数据管理方法,通过区块链技术,根据不同组织权限的不同设置合理的区块链网络结构,有效解决现有技术所设计的存储及数据隔离机制中可能存在的上述问题。

发明内容

本发明的目的在于解决现有技术下设计的航空信息存储方法普遍采用中心化存储架构带来的数据不可信、单点故障以及不同组织间数据难以共享的问题,提供一种基于区块链技术的QAR数据管理方法。

本发明的管理架构自下向上由资源层、网络层、应用层三部分组成:

所述资源层为提供数据资源的底层网关服务器设备,由具有一定存储及计算能力的物理设备作为网关服务器,对原始QAR数据中不同数据字段进行处理,其通过向网络层特定组织的中间CA申请完成身份认证及与所属组织下区块链网络节点交互,完成数据的进一步向上传输;

所述网络层为借助于超级账本Fabric平台下搭建的多组织间协作与数据共享的区块链网络,作为资源层采集数据上传的存储单元以及分布式网络下数据共享的客户端数据访问的来源层。其中账本结构和部署于不同组织背书节点及记账结点的链码完成数据存储及数据访问的业务逻辑,由不同组织的中间CA完成不同组织节点的权限控制与身份认证,利用消息队列Raft提供排序服务和Gossip协议完成优化区块链网络性能,保证节点间的共识通信和数据分发;

所述应用层为web应用框架搭建的客户端,包括数据处理、业务逻辑和数据接口三层,通过操作Fabric SDK与区块链网络链码的交互完成用户权限范围内数据的查询、设备管理、链码管理、用户权限管理功能。

本发明所述一种基于区块链技术的QAR数据管理方法,包括以下步骤:

步骤1:利用超级账本Fabric在不同组织网络服务器间搭建联盟链及IPFS网络建设;

在步骤1中,所述联盟链及IPFS网络建设包括网络结构设计、链码设计、中间CA开发和账本内容设计;所述网络结构设计为生产环境下多服务器部署,多组织间包含同一个数据共享通道,每个组织下设置相应的背书及确认peer节点,采用Raft排序机制;所述链码设计为组织间敏感数据隔离的重要手段,摒弃传统动态性较差的粗粒度方式的通道数据隔离,而设计一种更加细粒度的敏感设备数据加密授权方案,更改授权方式只需更新链码或密钥即可,降低区块链网络压力;所述中间CA开发为由根CA节点签发认证的各组织CA节点,不同组织用户通过访问该组织中间CA节点实现信息登记与身份注册,获取合法的证书与私钥,并交给MSP组件验证管理,各组织管理员通过中间CA拥有为设备注册登记的权限;所述账本内容设计即为通道中peer节点数据的存储格式,采用键值对格式,其中key为<组织ID,航班ID,数据字段ID>,vlaue为一系列JSON嵌套格式数据存于key下,包括数据日期及IPFS文件地址;所述IPFS网络用于存储经资源层处理和打包的原始QAR数据字段块,进一步降低区块链网络压力。

在步骤1中,所述利用超级账本Fabric在不同组织网络服务器间搭建联盟链及IPFS网络建设的具体步骤为:

(1)在网络层设计中由不同组织划分不同任务,通过中间CA开发即使某一组织身份认证私钥泄露也只会影响该组织中间CA所签发的证书;

(2)网络中账本设计采用键值对格式,其中key为<组织ID,航班ID,数据字段ID>,vlaue为一系列JSON嵌套格式数据存于key下,包括数据日期及IPFS文件地址。

(3)对于敏感数据字段采用细粒度的数据隔离和授权方式的具体方法为:如图2所示,要求org1将敏感数据字段授权给org2下正式用户查看,同一通道内其他组织用户无法查看;首先,此类数据经过IPFS后将对应的存储hash值上链时会采用org1的对称加密方式生成密文并将该密文1上链;其次,对对称加密密钥使用Org2的公钥做非对称加密方式加密生成密文2并上链,其中非对称加密的公钥从区块链网络状态数据库中获取;最后,当Org2下正式用户查看对应敏感设备字段数据时在经过身份验证后会使用org2的私钥并调用链码解密出对应org1对称密钥,由该对称密钥对密文解密获得存储hash值明文并返回到应用层。

步骤2:数据提供组织通过资源层网关服务器实现与网络层IPFS和区块链网络交互,完成对原始QAR数据的处理与上链;

在步骤2中,所述完成原始QAR数据的处理主要通过网关服务器前后端程序中的身份管理模块利用管理员身份为当前组织下用户完成身份注册并将返回的身份证书存储于本地数据库中;数据提供组织的用户通过网关服务器的前后端程序将原数据库系统的QAR数据文件导入该系统中,数据处理模块对原始数据中存在的一些异常值和缺失值采用均值补差法进行数据修正,并按照航班ID和不同数据字段ID进行划分与格式转换。

所述资源层网关服务器为具有一定计算和存储能力的组织内设备,它不属于区块链网络节点,作为该组织与区块链网络交互的接口,主要用来运行前后端程序完成对原始QAR数据导入与处理,主要包括数据处理模块和身份管理模块;

所述资源层网关服务器通过与网络层IPFS和区块链网络交互完成处理后QAR数据的上链的具体方法为:

(1)当该数据字段条数达到预设值后打包数据块从发送给IPFS网络,返回数据存储hash值,从身份管理模块中获取不同数据字段信息,并判断该数据字段是否为敏感数据,若是,则需进一步从身份管理模块获取对称密钥对存储hash值进行加密。敏感数据字段列表也可通过网关服务器的客户端程序进行更改并存于身份管理模块,同时也会同步于应用层后端数据库中;

(2)当管理员通过网关服务器的客户端程序设置生成的对称密钥发生改变时,数据上链时需要重新从身份管理模块获取org1对称密钥并使用org2的公钥加密后的密文2上链;

(3)数据处理模块按照链码中分支业务逻辑和账本格式要求处理格式化数据,并利用SDK为处理好的上传数据进行封装签名,打包成交易提案发送给通道内的背书节点;

(4)数据处理模块将返回的数据交易hash值通过http请求至应用层服务端存储于Web应用后端数据库中。

步骤3:利用Fabric SDK和Web应用开发框架开发Web应用完成各组织间数据共享及权限控制。

在步骤3中,所述Web应用主要完成用户权限范围内用户管理、数据查询、链码管理等功能;应用可分为三类用户,一类是普通用户,第二类正式用户,第三类是组织管理员,普通用户需要组织管理员为其向该组织中间CA申请身份信息成为正式用户后才有权查看数据,同时会将用于存储CA节点返回信息的身份信息表与用户表关联;获得数据查询权限的正式用户或组织管理员通过客户端根据组织ID,航班ID,数据字段ID发送不同类型请求,并将请求通过Web Server完成识别后,由Web Server从数据库中取得相应交易hash值,并通过Fabric SDK实现与链码的交互从而获得数据存储hash值,最后根据数据存储hash值在IPFS中查询对应的数据返回到客户端。对于识别为敏感数据字段的查询,首先,在获取交易hash后通过与链码交互得到数据提供组织对称密钥对存储hash加密的密文1,Web Server根据用户请求的数据对象再次发起交易提案获取数据提供组织对称密钥对数据查询组织公钥加密的密文2,其次Web Server利用数据查询组织私钥对密文2解密出数据提供组织对称密钥,最后由该对称密钥对密文1解密出存储hash并从IPFS中查询出真实数据块信息并返回。

以下给出本发明的工作原理:

本发明基于超级账本Fabric搭建的区块链网络是根据实际的需要由不同权限的组织协商组成的联盟链,为提高生产环境Fabric CA的扩展性和各组织的安全性,各组织存在隶属于根CA下的中间CA,分别负责orderer排序组织和各peer节点组织的公私钥和证书生成。

在实际业务需求中面对大量网关设备的数据上传和客户端用户的富查询请求,为缓解通道内各背书节点和记账节点的数据同步数据带来的存储压力,用户将向对应组织内的中间CA申请注册成功后获取的身份信息存储在本地网关服务器,由具有一定资源存储和计算力的网关服务器完成身份代理;启用CouchDB状态数据库,在实现链码初始化和升级时自动添加数据库索引,同时在用户通过客户端web应用请求数据查询时采用分页查询缓解通道压力和提高数据查询效率。此外,资源层数据处理模块只有当某数据字段数据量达到一定的预设值后打包上传到IPFS网络存储真实数据,而将返回的存储hash值上传区块链网络进一步减少区块链网络存储压力。

在隐私保护方面,将数据提供方和数据查询方划分为不同组织,如org1和org2,当org1需要将敏感设备数据上链时,采用更加细粒度的数据加密和授权方式,使同一通道内的org2下用户可以查看,而其他组织无法查看。具体方式为org1导入的原始QAR数据的的敏感数据字段达到一定量后经过数据处理模块处理及从IPFS返回存储hash值后,利用org1自身的对称密钥将该hash值上链,并将此对称密钥经过从网络层获取的org2的非对称加密方式的公钥加密后上链。当org2下用户需要查询该敏感数据字段时,链码层面执行逻辑为先判断请求用户是否数据org2组织,若是,则返回对应数据字段的密文1和密文2从而解密出加密数据的org1的对称密钥,最后通过该对称密钥解密出对应存储hash并返回WebServer,通过Web Server在IPFS中获取真实数据并返回客户端完成数据共享。

与现有的技术相比,本发明的有益效果为:

本发明利用区块链数据结构的不可篡改性和区块链网络去中心化机制,实现不同组织间协商构建具有权限控制的企业级联盟链,由不同组织承担不同任务,即使某一组织身份认证私钥泄露也只会影响该组织中间CA所签发的证书,同时采用更加灵活和细粒度的敏感数据隔离机制。最后,通过资源层设备数据打包处理方式、身份证书管理方式及IPFS降低区块链网络压力,有效解决QAR数据管理系统建设过程中面临的数据融通、设备安全、信息保护和多主体协同等问题。

附图说明

图1为本发明实施例的流程示意图;

图2为本发明org1敏感数据字段上传时序图;

图3为本发明客户端org2用户敏感数据字段查询时序图。

具体实施方式

以下实施例将结合附图对本发明作进一步的说明。

根据图1,本发明主要划分应用层、网络层和资源层。在网络层设计中由不同组织承担不同任务,即使某一组织身份认证私钥泄露也只会影响该组织中间CA所签发的证书,同时采用更加灵活和细粒度的敏感数据保护机制,避免通道隔离等粗粒度方式影响网络性能;资源层通过数据处理模块完成对数据的修正划分和打包,身份管理模块主要负责对于组织下用户信息管理和数据密钥管理保证数据的安全性,同时引入IPFS进一步降低区块链网络压力;应用层直接面向各组织下不同权限用户,实现组织间数据共享。

基于区块链技术的QAR数据管理方法,具体包括以下步骤:

步骤一:利用超级账本Fabric在不同组织网络服务器间搭建联盟链及IPFS网络建设;首先,在网络层设计中由不同组织划分不同任务,通过中间CA开发来保证即使某一组织身份认证私钥泄露也只会影响该组织中间CA所签发的证书;其次,网络中账本设计采用键值对格式,其中key为<组织ID,航班ID,数据字段ID>,vlaue为一系列JSON嵌套格式数据存于key下,包括对应设备字段数据,数据日期及IPFS文件地址即存储hash。所述对于敏感数据字段采用细粒度的数据隔离和授权方式的具体方法为:如图2所示,要求org1将敏感数据字段授权给org2下正式用户查看,同一通道内其他组织用户无法查看;首先,此类数据经过IPFS后将对应的存储hash值上链时会采用org1的对称加密方式生成密文并将该密文1上链;其次,对对称加密密钥使用Org2的公钥做非对称加密方式加密生成密文2并上链,其中非对称加密的公钥从区块链网络状态数据库中获取;最后,当Org2下正式用户查看对应敏感设备字段数据时在经过身份验证后会使用org2的私钥并调用链码解密出对应org1对称密钥,由该对称密钥对密文解密获得存储hash值明文并返回到应用层。

步骤二:数据共享组织通过资源层网关服务器实现与网络层IPFS和区块链网络交互,完成对原始QAR数据的处理与上传;如图2所示,首先,Org1下数据处理模块会对数据字段按照航班ID及数据类型进行划分与修正,并存储于本地数据库中,同时会统计该字段当前数据条数,当达到预定义数据量大小立即打包后存入IPFS;其次,通过从身份管理模块获取该设备身份信息,并将航班ID、存储hash值、数据日期等信息组合成符合网络层账本设计的要求;最后,发送交易提案,将该条数据上链获取交易hash值,并将交易hash值通过http请求存储与Web Server后端数据库中。其中若判断上传设备数据字段为敏感字段则将存储hash采用步骤一中所述方法处理。

步骤三:利用Fabric SDK和Web应用开发框架开发Web应用实现各组织间数据共享及权限控制。普通用户需要组织管理员为其向该组织中间CA申请身份信息成为正式用户后才有权查看数据,同时会将身份信息表与用户表关联;当获取权限的用户查询数据时,根据组织ID,航班ID,数据字段ID及交易hash等信息通过与链码交互判断是否存在该数据字段ID和数据日期的存储hash地址,若存在则继续查询IPFS获取原始数据返回应用层。对于敏感数据字段的查询,如图3所示,首先,在获取交易hash后通过与链码交互得到对应的密文1,Web Server根据用户请求的数据对象再次发起交易提案获取密文2,其次Web Server利用org2私钥对密文2解密出org1对称密钥,最后由该对称密钥对密文1解密出存储hash从IPFS中查询出真实数据块信息并返回。

以下给出具体实施例。

本实施例包括以下步骤:

步骤一:利用超级账本Fabric在不同组织网络服务器间搭建联盟链及IPFS网络建设。

1)按照网络结构设计完成生产环境下多服务器部署搭建Fabric网络。

a)区块链网络包含1个用于共享数据的通道,一组用于排序服务的orderer节点,在域内分属于Org1和Org2组织的4个Peer节点、2个CA节点,Org1的成员提供数据,Org2的成员获取数据。

b)配置各节点运行依赖的docker容器,完成Fabric环境搭建,使用docker-compose来启动对应镜像服务完成部署。

2)利用fabric-ca-server服务开发中间CA并由不同组织用户颁发证书。

a)设计的网络中每个组件和用户生成证书,并将证书存放到节点域名对应的目录下,完成对应yaml文件编写。

b)由根CA为两个组织分别颁发证书完成身份认证。

c)准备各orderer的配置文件如orderer0.yaml,注意在其中设置对应节点的证书路径,各组织peer节点的core.yaml同理。

4)创建configtx.yaml文件,配置联盟中各组织机构的域名及端口服务,设置相应的区块及排序信息,生成创世区块,通道配置区块。

a)将上述各节点生成的对应文件的目录复制到对应节点所在机器中。

b)创建configtx.yaml文件,配置联盟组织节点区块等信息,使用configtxgen生成创世区块文件。

c)使用configtxgen生成channel文件及两个组织的Org1MSPanchors.tx和Org2MSPanchors.tx文件。

5)创建通道并将各组织peer节点加入通道中搭建交互网络。

a)在Admin@org1.exampl.com目录中创建通道配置区块mychannel.block,并将其复制到Admin@org2.exampl.com中。

b)分别在两个组织的Admin用户下将各peer加入通道中并指定各组织的anchorpeer用来于外部通信。

6)设计账本结构,启用couchDB作为状态数据库。

a)账本中世界状态以键值对的形式存储于状态数据库中,其中原始数据经修正划分后将组织ID,航班ID,数据字段ID组成key,value由对应字段数值,时间戳及IPFS文件地址即存储hash的JSON格式的键值对组成。

b)启用CouchDB作为状态数据库,用于存储JSON格式数据及富查询。

7)使用go语言编写用户链码,安装实例化链码。

a)编写识别交易对象,不同组织公钥存储与查询,普通及敏感业务数据上传与查询等分支业务逻辑链码。

b)采用细粒度的数据隔离方案,以org1共享敏感设备数据给org2为例,其中对于敏感数据字段的上传需要辨别用户身份及交易对象,链码逻辑为首先获取事先存储于链上的org2最新公钥及完成对于已被org1对称加密后上传的密文1数据,然后将交易hash及org2组织公钥返回给网关服务器。

c)以org1的Admin身份打包与签署链码,在每个peer中切换安装和实例化链码,将signed-demo-pack.out复制到Admin@org2.exmaple.com中安装一次。

步骤二:数据共享组织通过资源层网关服务器实现与网络层IPFS和区块链网络交互,完成对原始QAR数据的处理与上传。

1)网关服务器后端程序实现对原始数据库系统QAR数据的自动导入与处理。

a)由网关服务器客户端程序中的身份管理模块通过管理员身份向org1的中间CA1发送请求为用户注册身份。

b)中间CA收到请求后进行用户身份验证,通过后为用户生成身份证书并返回给身份管理模块。身份管理模块将返回的身份证书存储于本地数据库中。

c)数据共享组织org1的用户通过网关服务器的客户端程序将原数据库系统的QAR数据文件导入该系统中。

d)网关服务器后端程序的数据处理模块对原始数据中存在的一些异常值和缺失值采用均值补差法进行数据修正,并按照航班ID和不同数据字段ID进行划分与格式转换。

2)网关服务器后端程序通过与IPFS和链码交互实现对处理后数据的存储与上链。

a)如图1所示,当该数据字段条数达到预设值后打包数据块从发送给IPFS网络,返回数据存储hash值,这里以单个航班一次飞行阶段所产生数据条数为预设值。

b)从身份管理模块中获取不同数据字段信息,并判断该数据字段是否为敏感数据,若是,则需进一步从身份管理模块获取对称密钥对存储hash值进行加密。敏感数据字段列表也可通过网关服务器的客户端程序进行更改并存于身份管理模块,同时也会同步于应用层后端数据库中。

c)当管理员通过网关服务器的客户端程序设置的对称密钥发生改变时,数据上链时需要重新从身份管理模块获取org1对称密钥并使用org2的公钥加密后的密文2上链。

d)数据处理模块按照链码中分支业务逻辑和账本格式要求处理格式化数据,并利用SDK为处理好的上传数据进行封装签名,打包成交易提案发送给通道内的背书节点。

e)数据处理模块将返回的数据交易hash值通过http请求至应用层服务端存储于Web应用后端数据库中。

步骤三:利用Fabric SDK和Web应用开发框架开发Web应用完成各组织间数据共享及权限控制。

1)应用层直接面向不同权限用户,分为普通用户、正式用户和组织管理员。

a)org2用户通过Web Client注册个人信息包括用户名、密码和所属组织等基本信息,Web Server完成用户注册并将信息保存到数据库用户表中。

b)在Web Client注册成功的用户为普通用户仅具有查看区块链网络运行状态的基本信息,需要进一步提交申请获取查看设备运行数据的权限。

c)组织管理员可以对该组织下用户进行管理,组织管理员批准新注册的用户成为正式用户时,会同时向CA节点为该用户申请身份信息。CA节点返回的身份证书会存储到身份信息表中并与数据库中用户表进行关联。

2)执行数据查询请求。

a)如图3所示,正式用户或组织管理员通过客户端发送不同类型请求,首先从后端数据库中查询是否为敏感数据的查询,同时Web Server从数据库关联查询出用户身份信息和对应交易hash值。

b)Web Server通过Fabric SDK实现与链码的交互从而获得数据存储hash值,若为普通数据查询则根据数据存储hash值在IPFS中查询对应的数据返回到客户端。

c)若为敏感数据查询需进一步根据用户请求的数据对象,发起交易提案获取密文2,由org私钥解密出org1对称密钥从而解析出真实数据块信息。

本发明利用区块链技术有效解决航空信息管理系统建设过程中面临的数据融通、信息保护和多主体协同等问题。

相关技术
  • 一种基于区块链技术的QAR数据管理方法
  • 一种基于区块链技术的物联网可信数据管理方法
技术分类

06120112620019