基于改进DNS协议的移动网络支付安全通信协议模型
2021-09-02魏星
魏 星
(天津市第四中心医院 网络信息中心,天津 300140)
随着计算机、无线通信和信息技术的快速发展,手机和平板电脑等智能终端设备快速普及,使电子商务得到了快速发展,为移动支付和网络支付的应用创造了良好的条件。目前,移动支付已经融合到了日常生活中[1]。但此过程中的支付安全问题也日益凸显,各种病毒、恶意攻击、钓鱼链接对移动支付造成了重大隐患[2],限制了电子商务和物联网的进一步发展。移动支付逐渐成为医院交易的主流趋势,为了进一步提高支付安全性,构建一个安全的支付通信模型意义重大。
目前移动网络支付安全通信协议模型主要由支付认证机制、基于身份的第三方认证密钥协商协议的密钥复制攻击、基于组密钥协议的动态口令改进和DNS 协议及中间人攻击4个部分组成[3]。认证机制发展完善,动态口令修改复杂且易被攻击,因此对DNS的改进更有意义[4]。国内外学者对其进行了大量研究,文献[5]提出DBDNS域名系统,采用POA和POW的共识机制,降低了在算力不足时遭受攻击的可能性。文献[6]指出以分布式一致性算法来保证根域名数据的一致性。文献[7]设计了新的3层结构,以解决存储压力问题。对DNS的研究进一步提高了根域名系统的数据安全性和可靠性,但仍存在出块效率低、域名资源浪费的问题。对此,本文提出了基于区块链技术的DNS通信协议模型,保证了DNS资源的有效性和安全性。
1 相关原理
1.1 区块链技术
区块链技术是一种分布式数据库技术,最早由日本学者中本聪提出,并作为比特币的基础架构。其核心技术主要包含两大部分:密码学技术和分布式共识机制[8]。
密码学技术中通过使用哈希函数,在一定时间内将数据消息通过计算转换成固定长度的二进制串:RIPEMD160哈希函数主要用来生成比特币地址;SHA256哈希函数主要用来构造区块链所用的密码。区块链采用基于椭圆曲线的加密算法,其又称为非对称加密算法:每个区块链用户都拥有私钥和公钥,私钥由自己保存;公钥公开,用哈希函数生成数值,Base58Check编码生成标识信息后用于验证自身产生的数据交易。
在分布式共识机制中,共识算法具有重要意义,工作量证明机制(Proof of Work,PoW)是区块链网络中的共识策略,每个节点负责计算一个变化的区块头散列值,并连续计算哈希值,从而达到最后的目标。权益证明机制(Proof of Stake,PoS)是工作量证明机制的一种节能共识替代方案,相比较而言,它更有效并且更加节省资源。实用拜占庭容错机制(Practical Byzantine Fault Tolerance, PBFT)可以保证在系统拜占庭故障节点少于1/3的情况下达成共识。
区块链技术具有去中心化、数据分布可靠存储、开源可移植性等特点,因此在互联网、金融、医疗等领域都有广泛的应用[9]。
1.2 DNS及其原理
域名系统(Domain Name System, DNS)主要工作在应用层,是计算机和网络的命名系统,一般组织成域层次结构,将主机名和域名转换为IP地址进行工作[10]。DNS域名结构是一个倒挂树结构,主要有5个类别:根域、顶级域、二级域、子域和主机名[11]。
DNS服务由客户端到服务器的工作原理如下[12]:
(1)在客户端输入域名,查询本地缓存,若存在这个网址映射关系,则调用这个IP地址映射完成解析,若无则执行下一步;
(2)查询本地DNS服务器内部缓存,若存在该网址映射关系则完成解析;
(3)本地DNS向根域名服务器查询,若存在映射关系,根域服务器返回一级域地址;
(4)本地DNS向根域返回的一级域服务器查询一级域的本地缓存;
(5)查询到终结果,返回给本地DNS服务器;
(6)本地DNS服务器将解析的结果返回客户端;
(7)客户端根据返回结果的IP浏览互联网。
图1 DNS工作原理Figure 1. DNS working principle
2 基于区块链技术的DNS 系统
使用区块链技术实现域名系统的革新,系统仍然采用分层理念,核心思想是利用区块链的去中心化对根服务器和根区数据实现分布式管理[13],它主要由自主根和根联盟两个部分组成[14]。所在网络的顶级域名拥有者都可以参与搭建和管理属于自己的自主根。多个自主根依据互联网协议组建“根联盟”,这样各方都参与了整个域名系统[15],共同决策发布的数据是否有效,组成了一个分布式区块链系统,从而实现共同管理根区的数据,可进一步提高整个DNS系统的安全性和有效性。总体架构如图2所示。
图2 整体架构Figure 2. Overall architecture
联盟内系统采用改进的PBFT算法[16]。PBFT共识算法的共识节点对数据进行发布和存储,利用这些共识节点来保证数据的隐私性、完整性和不可篡改性。PBFT共识算法可以容忍最多1/3的失效节点,需要经过3阶段协议投票达成节点间共识。此外,由于网络抖动、延迟等原因,可能导致部分节点执行速度落后于大多数节点,从而影响了后续的区块链共识流程。采用基于信用机制的改进PBFT共识机制,每次节点对区块链的新高度达成共识后,会对本次共识过程中节点行为进行可信度评估,由每一个阶段对节点行为进行评价,以避免在下一阶段选择可能存在问题的节点为共识节点,从而保证共识过程中的高效性。
在区块链网络运行过程中导致的部分节点执行落后[17-18],这在传统的PBFT共识算法中无法主动恢复。为了完善此问题,需要主动获取节点网络中所有节点的视图以及最新的区块高度等信息,然后再更新节点数据状态,与系统其他正常节点状态保持一致。
恢复流程主要分为两步:第一步,NegotiateView同步当前的视图信息和路由信息;第二步,同步全网最新区块信息。如图3所示,其中Primary1为主节点,Replica2和Replica3为副本节点,Replica4为滞后节点等待恢复同步。
图3 PBFT节点恢复流程图Figure 3. Flow chart of PBFT node recovery
具体操作流程如下:
(1)待恢复节点向全网广播QueryView消息,获取网络中其他正常节点的最新路由和视图信息;
(2)其他正常节点收到QueryView消息后,返回当前节点的最新视图信息View、节点名称ReplicaID以及路由信息N(总节点数);
(3)待恢复节点如果收到Quorum(2f+1)个包含相同N和View的QueryViewResponse消息,则将本节点的视图View同步成网络的View和N;
(4)待恢复节点广播RecoveryToCheckPoint消息到网络所有节点,请求其余节点的CheckPoint信息和Pre-Prepare、Prepare阶段的数据;
(5)其余正常节点接收到RecoveryToCheckPoint和RecoveryToPQC信息后,返回CheckPoint和PQ信息给待恢复节点;
(6)待恢复节点接收到Quorum个RecoveryToCheckPointResponse信息后,将待恢复的稳定CheckPoint点调用StateUpdate更新至CheckPoint点状态。若更新后的CheckPoint仍然滞后,则发送RecoveryToPQ消息,获取PQ消息更新自身Pre-Prepare、Prepare阶段的数据信息集合。
3 分析讨论
基于区块链的DNS体系与传统DNS体系相比,其在被基于DNS的攻击和挑战时,在多种情况下都展示了良好的性能,解决方案简单且可操作性强,有助于提高整个系统的安全性能,具体如表1所示。
表1 DNS的挑战和安全解决方案
除此以外,基于区块链的DNS系统还呈现出以下特点:
(1)域名空间统一和域名唯一性。新系统所有的节点既是参与者也是管理者,遵循IANA作为唯一的名字空间管理者,顶级域的发布要联合判别;
(2)数据安全性。采用改进的PBFT共识算法保证了根区数据在所有根节点的一致,如果某个节点被攻击或者私钥发生泄漏而造成数据被篡改,被攻击或篡改的根将很快发现数据与其他根的不通,这样就能紧急响应,从而确保数据安全;
(3)数据同步性。通过改进的PBFT共识算法可以主动恢复网络运行过程中导致的部分节点执行落后问题,落后节点可自行恢复。
4 结束语
传统DNS通信协议模型在移动网络的应用中,安全和性能的矛盾日益凸显,特别是在人流量大的医院中,安全支付问题受到了很大关注。为了有效改善这一问题,本文将区块链技术引入到DNS体系结构中,通过去中心化的思想使顶级域名联盟,共同参与域名的管理,保障了域名空间的资源和数据安全。通过改进的PBFT共识算法可以主动恢复网络运行过程中导致的部分节点执行落后的问题,从而构建更加安全的移动网络支付通信模型。