区块链在水利行业政府网站防篡改中的应用研究

2022-01-12 08:56夏绪彬
水利信息化 2021年6期
关键词:哈希网页区块

杨 非 ,曾 铮 ,夏绪彬

(1. 水利部信息中心,北京 100053;2. 北京信息科技大学,北京 100101;3. 易宝电脑系统(北京)有限公司,北京 100028)

0 引言

区块链(Blockchain)是一种分布式账本技术,在具备过程可信和去中心化两大特点的同时,能够以较低的成本构建信任基础,虽然凭借加密货币获得了爆发式的发展,但是区块链技术的应用并不仅仅囿于数字货币,还在医疗、税务、版权等其他行业获得了应用。例如:2017 年,阿里健康与常州市天宁区卫生健康委员会合作“医联体 + 区块链”试点[1];深圳市税务局创新性地将发票业务与区块链结合,实现了发票信息流全流程实时监管与打通[2];美国 MineLabs 公司推出了 Monegraph,通过区块链技术实现了艺术数字资产的权属和认证[3]。

由于区块链采用了去中心化的技术架构,并且通过数据加密、时间戳、分布式共识等手段,系统中节点之间无需相互信任,从而实现了一套去中心化信用的共享总账。在大部分成员节点数据正确的情况下,区块链使用共识算法保证任何对数据篡改和攻击的行为都能被发现并更正,进而确保在这个共享总账中安全存储简单的、线性的数据,并保证其不被篡改或损坏,因此区块链技术天然具有实现防篡改功能的应用潜力。例如 Chen[4]提出了一种使用区块链技术保护医疗信息不受篡改并安全分享的方法。

在水利行业政府网站的日常管理中[5],网站发布信息的准确与完整是政府维护其公信力的重要保障之一。近年来针对国家和政府的网络攻击时有发生[6],并且破坏造成的影响也越来越大[7],水利部门户网站,仅 2020 年就遭受攻击 135 万次[8]。如何保证水利行业政府网站信息的权威性并免受篡改和毁坏是值得关注的重点[9],为此提出一种基于区块链和分布式存储的新型防篡改系统。

1 区块链与星际文件系统

1.1 区块链技术原理和特点

区块链是由比特币演变而来的[10],使用块式-链式存储数据,并应用密码学作为安全保障的一种数据结构。按层次划分,区块链可划分为数据层、网络层、共识层、激励层、合约层、应用层[11]:数据层采用非对称加密和时间戳保证底层的数据安全;网络层包括去中心化的分布组网模式,P2P(对等网络)的数据传输及检验;共识层通过封装不同的共识机制,例如工作量证明 (PoW)、持有量证明(PoS)等,实现去中心化的信任机制;激励层,将经济因素考虑到区块链技术中;合约层通过智能合约实现区块链的可编程特性;应用层包含区块链的各种应用场景。

通过将一个又一个的区块链接起来,区块链所有的区块都相互关联起来,由于每个区块都存在前一个区块的哈希值,若中间有数据被篡改,那么这个链条将会断掉,因此所有节点都能够验证整个区块链数据的真伪。

区块链采用 P2P 构架,与传统的客户端/服务器端(C/S)架构不同, P2P 中每个节点既是服务的提供者又是服务的接受者,节点之间直接交换数据实现信息与资源的共享,因此在 P2P 中,每个节点的地位均是相等的。并且在区块链网络中,由于每个节点都存储有区块链的所有数据,因此区块链能够有效防止单点故障和数据篡改。

1.2 星际文件系统原理与特点

星际文件系统(IPFS)是一个具有分布式存储和共享文件功能的分布式文件系统[12],采用 P2P、分布式哈希表[13]、比特流、版本控制等技术架构。同时 IPFS 是一个通用的架构,当遇到不同大小的文件时,将其切分成不同的小块,用户在需要下载时分块下载即可。类似于比特流,所有的数据在不同的服务器上都有存储,但 1 台服务器不会存储所有的数据,而是在备份自己的数据后,自愿为其他数据提供服务。

与传统的基于位置的查找方式不同,IPFS 使用基于内容的查找方式,即通过文件的哈希值查找文件。当文件的内容发生变化,文件的哈希值也会发生变化,进而地址发生变化,因此 IPFS 只能用来存储不可变的数据,而不可对数据进行修改,由此保证文件的不可被篡改。

2 防篡改系统设计与分析

2.1 传统政府网站防篡改手段

目前政府网站采用的传统防篡改手段是在内网部署防篡改服务器,网站数据皆存放于防篡改服务器中,再由防篡改服务器向网站服务器可靠地分发推送。黑客非法篡改时,监控保护模块会对此操作进行拦截,拒绝此操作;黑客模拟正常请求发生篡改时,事件监听模块会对比此文件在网站服务器上与防篡改服务器上的水印值,如不一致则触发告警,并从防篡改服务器上重新将文件与水印打包发送至网站服务器上,恢复被篡改软件。

传统网页防篡改系统采用多重防护体制,对网页、文件的出口和入口,以及文件的实时状态进行监控。在文件入口采用内核驱动技术,限制用户及进程对被保护目录及文件的写入、修改与删除操作,杜绝非法用户的文件产生。通过系统事件实时监控文件的状态,对发生变化的文件进行验证,一旦文件变化验证失败,即刻恢复。在访问出口采用核心内嵌技术,将篡改检测模块内嵌于网站应用中间件内部,实现对静态网页和脚本在被调用时的实时检测和恢复,杜绝篡改页面被公众浏览的风险。

由于防篡改服务器是防篡改系统的核心,一旦被非法控制则会造成整个系统失效,因此引入区块链技术就是要去中心化,消除单点故障和系统薄弱点。

2.2 新型区块链防篡改系统设计

2.2.1 总体框架设计

结合区块链与 IPFS,提出一套用于政府网站防篡改的应用,其中:区块链通过私有链数据的方式存放于部分内部服务器集群中,在其中存储的是政府网站文件的元数据;IPFS 搭建私有网络存储政府网站的底稿。整个防篡改系统可以分为以下 3 个层次:

1)存储层。存储层使用 IPFS 搭建私有星际文件系统,用于存储底稿数据。同时存储层还搭建一个私有以太坊(ETH)网络,用于存储发布文件的元数据。

2)业务层。业务层包括政府网站文件的发布,对政府网站发布内容的核对及链上信息的查询,当发现遭到篡改后及时根据底稿重新发布文件。

3)显示层。显示层包括防篡改系统业务层面的可视化操作,以及其他系统的运行维护和监控。

2.2.2 业务层设计

根据防篡改应用的设计,业务层主要分为以下 4 个功能模块:

1)政府网站文件的发布与更新模块。提供政府网站文件的发布和上链功能,自动和手动采集政府网站文件信息,主要包括政府网站文件发布的时间、对应于政府网站服务器的访问地址、发布文件存储在 IPFS 的地址等。当政府网站正常更新时,能够识别正常和篡改的更新。

2)政府网站近实时的核对模块。提供无须人工介入的近实时的核对功能。系统每隔一定时间从政府网站上下载文件,计算发布文件的哈希值,与链上信息进行比对,并在必要时与存储在 IPFS 上的文件进行比对。在发现文件不匹配时,通过邮件、短信等方式通知相关责任人。

3)链上信息的查询模块。提供对政府网站已发布文件的查询功能。用户可查询在政府网站上已经发布的政府文件。每个政府网站发布文件记录并保存该文件的相关信息,例如文件的发布日期和地址、上链的状态、交易哈希和区块、当前的检查状态等。用户也可以查询所在区块的高度、哈希及存在的其他发布文件等信息。

4)发现篡改后的重新发布模块。提供对政府网站发布文件的恢复功能,当政府网站发布文件与原始文件不匹配时,系统通过替换政府网站服务器文件实现政府网站文件的恢复。

2.2.3 智能合约设计

2.1 qRT-PCR检测子宫颈癌组织中GRIM-19 mRNA的表达差异 本研究运用qRT-PCR的方法分别检测了肿瘤组与对照组标本组织中GRIM-19 mRNA的表达水平。结果提示,与对照组的组织比较,肿瘤组的组织中GRIM-19 mRNA的表达水平显著增加,组间比较,差异有统计学意义(P<0.05)。见图 1。

业务层功能的实现依赖于智能合约的设计和实现,因此可使用高级编程语言 Solidity 编写智能合约的相关内容。在智能合约中实现政府网站内容的发布、核对和重发布功能,同时智能合约实现相关的内容。

使用结构体(Struct)承载每个文件的元信息,Struct 中包括文件存入链上的时间、上传的时间、在政府网站的发布地址、在 IPFS 上的地址,发现文件篡改时的通知方式和人员,文件的类别。业务层功能的具体实现如下:

1)政府网站文件发布的具体实现流程。在调用智能合约中的文件发布函数后,需要判断文件是否已经发布,如果已经发布,则需要拒绝并且给出错误提示,以防止对文件的重复提交。判断完成后,还需要对提交用户的身份进行鉴别,只有具备权限的用户才可以向链上发布信息。同时在文件发布后还需要将发布的底稿文件存入到 IPFS 中。具体流程如图1 所示。

图1 政府网站文件发布的流程图

2)政府网站文件更新的具体实现流程。与发布文件的流程相似,更新文件在调用智能合约中的文件更新函数后,需要判断文件是否存在。如果文件存在,则进行身份验证。验证通过后执行交易;当身份校验失败或者文件不存在,则停止相关的操作,并给出错误提示。

3)查询政府网站发布文件的实现流程。当需要查询政府网站发布的文件时,首先从页面中获取查询文件的交易哈希,然后通过交易哈希从区块链上的交易信息中获取发布文件和区块的具体信息,查询结束后就完成 1 次交易。具体流程如图2 所示。

图2 政府网站文件查询的流程

2.2.4 其他功能设计

业务层功能除智能合约的相关内容外,还需要其他用于检测和恢复政府网站内容篡改的功能,这部分功能需要从链上获取文件的元信息及存储在IPFS 上的底稿文件。具体分析如下:

1)政府网站近实时的核对功能。为实现近实时的政府网站内容的核查流程,需要定时从链上遍历所有文件信息,遍历每个文件和所在区块的具体信息。计算区块中文件的哈希值,再对比从政府网站上下载的文件的哈希值,用于判定政府网站上发布的文件是否与底稿一致。具体流程如图3 所示。

图3 政府网站近实时的核对功能流程图

2)发现错误时的重发布功能。当发现政府网站的内容遭到篡改时,系统从链上数据中获取报警的相关信息,向报警接受人发送报警邮件,随后尝试从 IPFS 中取出原稿,然后将文件覆盖到政府网站服务器上。若原稿为政府网站发布文章,则防篡改应用会从 IPFS 中获取文章内容,再通过政府网站程序接口重新发布文章。具体流程如图4 所示。

图4 防篡改应用的重发布功能流程

3 新型区块链防篡改系统测试

1)给定 1 个测试政府网站,发布 1 篇文章,查看文件链上信息能否查询到,IPFS 中能否查询到对应的文件。

2)给定 1 个测试政府网站,更新 1 篇文章,在管理平台中检测能否看到审批操作信息,在点击“批准”后,查看更新的信息能否在链上查询到。

3)在管理系统中,检测能否查询到链上文件信息。

4)模拟政府网站没有被篡改的情况,当文件内容正确时,查看文件状态是否异常。

5)模拟政府网站遭到篡改的情况,查看告警人能否收到告警信息,文件能否及时恢复。

新型防篡改系统的核对和恢复功能测试用例如表1 和 2 所示。

表1 文件核对功能的测试用例

4 2 种防篡改系统对比分析

相较于传统防篡改系统,新型区块链防篡改系统的主要优点如下:

1)无需对任意节点信任。传统防篡改系统通过对服务器采取文件驱动或者嵌入网页服务器的方式防止篡改,并且相信防篡改系统的服务器端是安全可靠的。但由于政府部门的内网也存在被入侵的风险,或者篡改者可能会获得服务器的控制权,导致在部分场景下防篡改失效;而新型区块链防篡改系统采用去中心化的共识机制,可以有效降低在对应场景下的侵入风险。

表2 篡改恢复的测试用例

2)无需对存储节点信任。传统防篡改系统将原稿存储在默认信任的中心系统中,但存储节点存在单点故障风险,且在存储节点内容方面仍然存在被篡改的风险;采用 IPFS 不仅可以降低单点故障风险,且由于采用基于内容的查找方式,能够有效杜绝原稿被篡改的风险。

3)对系统侵入性小。相较于需在网页服务器上安装防护软件和内核驱动的传统防篡改系统而言,新型区块链防篡改系统不需要对系统做改动,防篡改系统通过远程登录方式将原稿拷贝到目的服务器上,因此不需要对网页服务器做过多改动。

5 新型防篡改系统应用案例

水利部网站防篡改采用先进的 Web 服务器核心内嵌技术,将篡改检测模块内嵌于 Web 服务器系统内部,并辅助以增强型事件触发检测技术,实现对静态网页和脚本的实时检测和恢复,彻底解决网站防篡改问题。

网页防篡改的篡改检测模块使用密码技术,为网页对象计算出唯一性的数字水印。公众每次访问网页时,都将网页内容与数字水印进行对比,一旦发现网页被非法修改,即自动恢复,保证非法网页内容不被公众浏览。

水利部网站防篡改系统由页面保护、自动发布和监控管理 3 个子系统组成,架构图如图5 所示。

图5 水利部网站防篡改构架图

1)页面保护子系统。页面保护子系统是新型防篡改系统的核心,内嵌在 Web 系统里,包含有篡改检测模块。篡改检测模块对每个发送的网页进行即时的完整性检查:如果网页正常则对外发送;如果被篡改则阻断对外发送,并依照一定策略进行报警和恢复。

2)自动发布子系统。自动发布子系统负责页面的自动发布,由发送端和接收端组成:发送端位于发布服务器上,称之为自动发布程序,当监测到文件变化即计算文件数字水印,并通过 SSL 安全信道发送;接收端位于 Web 服务器上,称之为同步服务器,接收到网页和水印后,将网页存放在文件系统中,将水印存放在安全数据库里。所有合法网页的增加、修改和删除都通过自动发布子系统进行。

3)监控管理子系统。当发现文件遭到恶意篡改后,监控管理子系统负责恶意篡改后的文件恢复,并通过日志记录所有系统、发布、篡改检测和自动恢复等信息。

部署构架方面,水利部网站防篡改系统部署在 Web和发布服务器上:Web 服务器位于 DMZ 中,容易受到篡改攻击,其上运行页面保护子系统和自动发布子系统(接收端);发布服务器位于业务网中,有着较高的安全防护级别,其上运行自动发布子系统(发送端)和监控管理子系统。防篡改部署结构图如图6 所示。

图6 水利部网站防篡改部署结构图

6 结语

结合区块链及分布式文件存储技术,针对水利行业政府网站防篡改的需求,提出一种能够近实时核查到网站上文件被篡改并予以恢复的新型防篡改系统,相较于传统防篡改系统假定管理节点安全可靠,本研究提出的新型区块链防篡改系统不再信任特定节点,而是通过零信任机制使整个系统安全可靠,在少数节点被他人控制的情况下仍能正常工作,降低了水利行业政府网站被篡改的风险,保证了底稿数据安全可靠。

测试结果表明:新型区块链防篡改系统能够近实时地核查水利行业政府网站上的篡改行为,及时报警并予以恢复,并且文件底稿保存在 IPFS 上能够保证底稿不被篡改,确保了水利行业政府网站的安全、有效运作。以文件或文章作为底稿保存能够满足大部分水利行业政府网站的需求。新型区块链防篡改系统能够提供更好的安全性,在水利行业政府网站的防护上具有较大的实用价值,为水利网络安全工作提供了新的视角,为保障水利行业网络的安全及保护公信力提出了一种有效办法。

但新型区块链防篡改系统搭建难度大,成本较高,涉及分布式和区块链,用户运维和学习成本较高。同时新型防篡改系统接入政府网站,具有一定的二次开发成本。如何在保证安全性的同时降低成本可能是未来研究的方向之一。

猜你喜欢
哈希网页区块
基于特征选择的局部敏感哈希位选择算法
哈希值处理 功能全面更易用
基于HTML5与CSS3的网页设计技术研究
区块链:一个改变未来的幽灵
文件哈希值处理一条龙
区块链:主要角色和衍生应用
《红楼梦》的数字化述评——兼及区块链的启示
一场区块链引发的全民狂欢
基于CSS的网页导航栏的设计
基于HTML5静态网页设计