梁 源
(四平红嘴经济技术开发区管理委员会企业服务局 吉林 四平 136000)
基于区块链技术设计的档案管理系统主要包含区块链数据保护子系统、档案管理子系统和系统监控平台。其中,区块链数据保护子系统是通过区块链技术实现对档案摘要信息的存储,采用星际文件系统(interPlanetary file system,IFPS)的存储方式对档案信息进行验证、保护及恢复。档案管理子系统主要包含档案查阅、档案验证、档案借阅、档案保护、用户管理和系统设置等模块。系统监控平台主要是实现对档案数据和主机的监测和告警功能。
档案管理系统由档案管理子系统、区块链保护子系统和系统监控平台组成,档案管理系统整体架构如图1所示。
图1 档案管理系统整体架构
档案管理子系统采用MVC5框架搭建,内部由MySQL数据库组成,主要涵盖业务操作界面和系统管理界面。其中,业务操作界面包含新增档案与更新功能、档案查询与借阅功能、档案验证与保护功能;系统管理界面包含用户管理功能、权限管理功能和系统设置功能。通过对MySQL数据库的调用完成对本地数据的存取操作,采用RESTful接口调用建立与受区块链数据保护的子系统档案验证和查询与数据同步操作。在RESTful接口调用环节,采用数字签名和非对称加密技术,实现RESTful接口调用的安全使用,提高数据的安全性、保护数据的真实性[1]。
区块链保护子系统主要采用公有区块链和私有区块链技术相结合的方式:通过公有区块链的智能合约对私有链区块摘要信息进行存取,并对私有链区块数据进行验证和保护;采用私有区块链的智能合约对档案摘要信息进行存取,并实现对数据真实性的保护。区块链保护子系统主要包含档案存储、查看、查询、验证、统计及用户设置模块,数据层面由区块链数据、私有IPFS集群和MongoDB数据库构成。数据层面的模块构成可以实现高效验证和查询档案数据,进行档案数据恢复。公有和私有区块链智能合约的实现采用了Web3.js库集合的方式,私有IPFS集群地调用通过React前端框架结合JS+IPFS+API来实现文本数据的流传[2]。
系统监控平台的构建采用Zabbix来实现,Zabbix是基于Web界面来提供网络监视功能和分布式系统监视的系统监控构建方案。Zabbix监控软件可以在保障服务架构安全运营的基础上,对网络参数进行监控,并能够为档案管理系统运维人员提供定位故障告警功能。系统监控平台可以由多种不同的模块组成,其中服务器监控模块对服务器各项功能进行监控,应用程序模块则会针对各项应用以及使用情况进行监控,告警模块目的是提示工作人员平台所出现的问题,便于快速维修。
区块链(Blockchain)是分布式数据存储模式,具有去中心化的特征,是一种具有分布式数据存储、共识机制、点对点传输和加密算法等计算机技术应用模式。区块链最早作为比特币的底层技术,通过密码学的方法构建数据块,单体数据块中包含比特币的网络交易信息,区块链可以实现对信息有效性的验证,并产生另一个区块数据[3]。从广义上来看,区块链技术通过分布式节点共识算法对数据进行生成和更新,采用区块链式的数据结构对数据进行验证和存储,利用密码学的方法确保访问数据和传输数据的安全性,在编程和数据操作方面采用自动化脚本代码组成的智能合约来实现。从狭义上来看,区块链是依托于密码学的数据保护方式,以时间顺序相链接的链式数据结构。区块链是由多个单体区块所组成的,单体区块中记录了区块链中的数据记录,在区块头部分记录上个单体区块的地址,并形成单向链式的结构。单体区块包含区块头、大小、魔法数字、交易和交易数量5个字段,其中,区块头是构建区块链的关键模块,是单体区块中的抽象交易内容;魔法数字是0xD9B4BEF9的固定值;交易区块中涵盖交易列表;交易数量区块中包含交易数量[4]。
单体区块头部字段中的默克尔根字段是构建区块链的关键,默克尔根即文件源所代表的哈希值,哈希值代表了文件组成的数据块,默克尔根数值是默克尔树中所有节点的哈希计算结果,通过对两笔交易用哈希函数计算,得出一个哈希值,将两个哈希值进行继续计算,得出新的哈希值,以此类推进行反复计算,所得出的唯一哈希值就是默克尔根。因此,区块头中必须包含有效的默克尔根[5-6]。
2.1.1 共识机制
共识机制是在分布式因特网中判断区块数据的所有权和正确性,从而实现各节点之间达成共识的一种算法机制。目前用于区块链中的算法机制包括权益证明POS、工作量证明POW以及权威证明POA。权益证明机制指的是根据各个节点所持有数字货币的数量和持有时间,并发放奖励的机制。工作证明机制由节点计算能力决定,节点对不同随机数进行尝试,并找到符合条件的随机数,该随机数需要符合难度值大于区块头部哈希值,并在其他节点验证通过后,生成该节点对该区块的权限以及对该节点的奖励。权威证明机制是由可信节点依次生成的,可信节点地址和区块的产生速度可以在创建区块链时进行配置,普通节点只能对区块数据发起交易或进行读取,不具有创建区块的权限[7]。
2.1.2 IPFS(Inter-Planetary File System)
IPFS是基于内容寻址和点对点的超媒体传输协议,集合了自证明文件系统、P2P网络技术、Git版本控制技术以及BitTorrent传输等技术,是新一代的通信协议[8]。IPFS有公有IPFS集群和私有IPFS集群两种模式,公有IPFS集群指的是任何人都具有读取数据和写入数据的权限,也可以作为节点参与到分布式IPFS网络中;私有IPFS集群指的是仅在组织内部使用的网络,其他节点不具有参与到该网络中的权限,组织内部的节点通过swarm-key建立共享信任机制。
MVC设计模式由Model模型、View视图和Controller控制器组成。控制器主要是对用户的请求和输入进行处理,并对数据进行权限控制和过滤,调用对应的模型对业务流程进行执行和展示。视图模块主要是对应用程序的具体数据进行展示,并实现将用户输入信息传送的功能。模型通过对存储数据流程和业务处理流程进行封装,并向接口提供,为控制器调用数据提供支撑[9]。
RESTful架构是一种跨语言和跨平台轻量级web架构模式。为网络资源建立唯一的标识符号,属于无状态网络操作模式,用户的具体操作对标识符号不存在影响,符合REST原则的架构都称为RESTful架构。
Zabbix网络监控具有代码开源的优势,有活跃的交流社区和详细的开发文档。Zabbix监控方案包括Zabbix Proxy代理服务器、Zabbix Agent监控代理、数据存储、Web平台和Zabbix Server信息收集服务器。通过安装Zabbix Agent,以实现对应用程序和本地设备运行状态的监测[10]。
档案管理子系统的主要功能是对档案数据的输入、修改、验证和借阅等操作。系统管理人员在对档案信息进行输入和修改后,RESTful接口将管理人员所输入的数据储存在区块链上,为档案数据建立保护。另外,档案管理子系统需要具有检索和操作档案的功能需求,主要涵盖区块链数据保护子系统检索和本地数据库检索2个部分,并对档案信息进行展示。另外,档案管理子系统具有权限设置功能,管理人员可根据实际需要对用户进行权限设置。档案管理子系统整体构架如图2所示。
图2 档案管理系统整体架构
RESTful接口参数处理操作设计如下:
档案查询操作程序设计如下:
档案保存操作程序设计如下:
档案验证操作程序设计如下:
通过将档案属性信息和档案附件进行加密处理并存储到IPFS,并在区块链中存储档案摘要信息,实现对档案数据的保护。在验证档案数据的过程中,包含私有区块链验证IPFS存储档案对象、公有区块链对私有区块链的验证,以及档案管理数据库中的档案数据验证。历史追溯主要是对管理人员所进行的档案数据输入和修改日志进行追溯。档案恢复是指在验证数据异常后,对档案数据进行恢复的过程,包括IPFS档案数据恢复、私有区块链数据恢复以及档案管理系统数据恢复。
区块链技术实现对档案管理子系统的保护,需要通过RESTful接口对外提供调用服务,因此需要对通过RESTful接口传输的档案数据进行数字签名和加密处理。采用高安全性的https协议进行传输数据,保障档案数据信息的安全性。
区块链数据保护子系统依托于Express框架和Node.js语言进行设计开发,将档案存储、查询、验证、设计及用户设置等业务操作流程封装,并将用户的请求数据转化为系统调用数据驱动层。区块链数据保护子系统的数据存储模块,主要包含数据库、IPFS和区块链。数据库用于对档案数据的模糊查询,仅存储最新的档案信息;在IPFS中实现对档案属性信息和历史版本附件的保存;在区块链上实现对档案数据历史版本的IPFS地址和数字指纹进行存储。区块链数据保护子系统整体构架如图3所示。
图3 区块链数据保护子系统整体构架
档案更新操作设计如下。
系统监控平台的主要功能是对应用程序、服务器主机、档案管理子系统,以及区块链数据保护子系统进行监测和告警。Zabbix的监控范围主要包含MySQL数据库、档案管理子系统、IIS服务器、RESTful接口服务器等。Zabbix Agent可以实现对应用程序的运行情况和服务器主机性能参数的监测,并将监测数据传送到监控数据收集分析模块,在监测数据上传后,Zabbix Server会将其存储于MySQL数据库之中,并对达到监测阈值的异常数据进行告警。系统监控平台整体构架如图4所示。
图4 系统监控平台整体构架
区块链防护子系统是在IPFS和区块链技术基础上进行搭建的,go-ipfs构建私有IPFS集群环境,Geth构建私有以太坊区块链环境,web3.js调用区块链接口,jsipfs-api调用IPFS集群。档案管理子系统是以微软公司开发的MVC5架构为基础,进行管理系统开发。系统监控平台是以开放源码监测框架Zabbix为基础,实现对服务器主机的监测。
区块链和IPFS技术的应用主要针对系统中档案信息安全的保护。系统存储历史档案,通过发出RESTFul调用请求和档案管理子系统信任权限控制。RESTFul接口的调用可以更新智能合约和区块链内的内容。区块链中存储档案IPFS,IPFS则存储档案完整信息,包含修改档案历史记录。RESTful接口聚焦于数据传输的安全性,使用了https协议和AES加密处理,采用数字签名和随机数的方式解决了数据被篡改的问题。IPFS用于内容储存,以内容的哈希值为地址,在读取内容时会将地址和哈希值进行比对和验证,具有防篡改性。智能合约内储存了档案内容的哈希值和IPFS地址,使用智能合约能够在IPFS验证数据的基础上进行二次验证。本地私有链和以太坊公有链均使用了POW共识机制,私有链区块的产生只能由节点授权,可以通过与公有链哈希值的对比,发现数据是否被篡改。
总的来说,区块链和IPFS技术对档案管理系统形成了链式保护机制,对私有链内数据的保护和验证采用了将私有链区块摘要信息和公有链智能合约存储的方式。系统操作人员在调取档案时,RESTful服务器会对数据进行验证,并查看IPFS和区块链上是否有篡改数据,系统操作人员也可以将档案信息与本地数据库进行比对,实现对档案管理系统的多重保护与验证。
基于区块链技术设计的档案管理系统具有较高的数据安全性和数据真实性,是满足现阶段档案安全管理需求的适用性技术,需要在实践中不断探索区块链技术在档案管理系统中的应用,充分发挥区块链的技术优势,以提高档案管理工作的效率和质量。