tokenpocket下载

发布日期:2025-04-30 12:06    点击次数:190

为了解决传统体系结构存在的安全问题, 可信计算[1, 2]应运而生.可信计算的目标是在计算体系中引入信任根, 进而建立一条信任链[3], 将信任关系从底层硬件扩展到上层应用, 以增强计算系统的安全性.可信计算在保护终端安全方面发挥了重要的作用, 目前已经成为了标准化的技术.

可信计算组织(TCG)于2015年发布了TPM2.0规范[4], 成为ISO/IEC标准[5].另外, 以ARM Trustzone[6, 7]和Intel SGX[8, 9]为代表的可信执行技术(trusted execution environment, 简称TEE)近年来也得到了广泛的关注.可信执行技术的核心思想是:以CPU作为信任根, 建立从信任根直接到应用程序的信任链.TEE目前存在侧信道攻击等安全问题[10], 并未实现预期的强安全性, 但是其思想是可以借鉴和值得研究的.我国可信计算技术走在世界的前列, 已经进入了可信3.0的发展阶段[11], 核心思想是建立一套主动免疫的计算机安全体系.无论是理论还是工程实践方面, 都取得了可喜的成果.对于国家安全战略, 复杂的网络安全环境中的关键信息基础设施必须要实现自主可控.然而自主不等于可控, 自主也不等于安全, 必须加入更多的安全防控手段.可信计算是实现自主可控的关键技术, 尤其是在云计算大数据的背景之下, 可信计算必须重点突破.

面对各种安全威胁和风险, 只有终端计算环境的可信是不够的, 还要把信任关系从终端计算环境传递到网络环境, 可信网络连接技术应运而生[12].以TCG的可信网络连接(TNC)为例[13], 在终端接入网络之前, TNC对终端的身份状态和可信状态进行度量, 只有身份合法, 并处于安全运行状态的终端才可以接入网络环境.TNC本质上是可信计算与网络接入控制机制的结合.研究可信网络连接, 用可信计算的思想解决网络空间安全问题, 本身具有重要的意义.

随着云计算大数据等新型计算模式的兴起[14-16], 网络空间面临着复杂棘手的安全威胁, 最为严重的是基础网络设备和CPU级的安全漏洞, 典型漏洞见表 1.

Table 1 Vulnerability and attack 表 1 漏洞和攻击

无论多么高明的网络安全防护手段, 在部署的时候都要依托实际的软硬件系统, 但是漏洞是客观存在的.尤其基础网络设备、CPU和安全芯片的漏洞, 会对基本的安全假设带来严重的挑战, 使安全协议失效.与其他安全技术相比, 可信计算更加偏向底层部件的安全, 更接近安全的源头, 在保护系统结构安全方面拥有不可替代的优势.周天明等人指出[17]:可信计算是一个保障体系, 其目标是实现网络空间可信.广义上讲是解决如何将最基本的信任关系传递到整个网络空间, 这并不意味着只局限于信任链的技术路线.

TNC和TCA架构[18]都在一定程度上实现了信任向网络扩展, 相关研究者在此基础之上展开了大量的研究工作, 主要集中在远程证明、访问控制、匿名性和可信虚拟化, 但是鲜有可信网络连接基础架构的研究.TNC和TCA架构目前存在以下问题和挑战.

(1) 信任模型存在局限.网络空间安全状态复杂.安全是一个相对性的概念, 单纯用二值化的可信判断标准无法准确刻画实际的安全状态, 信任关系难以传递到网络环境.因此, 以信任链为基础的信任模型存在局限, 需要进一步拓展.

(2) 访问控制单点化.在有中心的网络环境中, 无论是实际的物理网络还是虚拟网络, 最终都是由访问控制部件根据一定的访问控制策略来决定计算节点之间是否可以通信.访问控制部件可以是安全网关、单向隔离设备以及防火墙等.但是基础网络设备存在被攻破的风险, 一旦发生安全问题, 网络就会被操控.

(3) 策略决策中心化.在传统的可信网络架构中, 会维护一个策略决策的服务端用于策略判断和生成访问控制规则.TCA架构依托可信第三方进行策略管理, 比TNC架构具有更强的安全性.但是在部署的时候, 策略管理器作为可信第三方, 实际上就成了整个网络的可信中心.策略管理器的实体必然是一个通用计算环境, 也将面临上述安全威胁.

针对上述问题, 本文结合目前网络环境的实际需求, 提出了基于区块链的分布式可信网络连接架构.首先, 本文对网络安全世界的信任问题进行深入的阐述, 指出目前的信任模型存在的问题; 然后提出可信网络总体架构, 对信任关系、基础框架、区块链结构进行详细描述, 并给出基本的安全假设; 接着对可信网络的运行流程进行介绍, 并对核心问题展开描述, 提出了一种基于委托股权证明(deligated proof of stake, 简称DPoS)[19]的远程证明方法; 最后, 从正确性、安全性和效率等3个方面对架构进行分析.本文的主要贡献在于:

(1) 分析了网络安全世界的信任问题, 在总结现有可信网络链接缺陷的基础上, 提出了“网络环境依托信任契约, 终端环境依赖可信计算”的信任扩展方法;

(2) 提出了基于区块链技术的可信网络链接架构, 充分发挥区块链技术在分布式网络中构建可信契约的优势, 解决了传统可信网络连接面临的访问控制单点化和策略决策中心化的问题;

(3) 提出了一种基于DPoS共识的远程证明协议, 在充分保护隐私的情况下, 实现了平台身份证明和完整性证明, 将远程证明的决策从依托中心化的可信第三方变为依托信任契约.

本文第1节对相关问题和技术进行介绍.第2节介绍B-TNC总体架构和建立模型.第3节介绍B-TNC运行流程, 并且提出关键问题的解决思路.第4节从正确性、安全性和效率这3个方面对架构进行分析.第5节总结全文并展望下一步工作.

1 相关问题

为了对基于区块链的分布式可信网络链接进行详细的阐述, 首先对可信网络连接和区块链的基本原理进行描述, 在此基础上, 对安全世界的信任问题进行探讨, 指出用区块链技术构建可信任网络的必要性和优势.

1.1 可信网络连接

可信网络连接是以TNC和TCA技术路线为代表.狭义上讲, 可信网络连接是一种基于对平台身份和平台完整性状态的证明, 从而决定终端是否可以接入网络环境的技术.但是随着云计算的发展, 网络环境不再是单纯的终端连接的网络, 有了更加丰富的组织形式.广义上讲, 可信网络连接是将可信计算的信任关系传递到网络环境的过程.可信计算在云环境下的应用同样属于这一范畴, 其核心技术是信任根的虚拟化问题.

传统的可信网络架构TNC和TCA的技术具有相似性, 但是TCA架构克服了TNC的不足, 是中国对可信计算的重要创新.以TCA架构为例, 可信网络连接旨在构建一个三元对等的安全架构, 引入一个可信第三方对参与网络连接的实体进行身份认证和平台运行状态的认证.TCA对实体鉴别、访问控制以及各个部分之间的通信都制定了相应的标准, 只有具备合法信任根的终端才能够参与到网络交互中, 这就实现了信任关系传递到网络环境.

可信计算目前已经成为系统安全的重要技术, 尤其是在自主可控领域, 发挥了无法替代的作用.原因在于:可信计算能够接管CPU对计算环境安全的控制权, 进而将安全掌握在自己手中.如何实现信任根TPM或TCM的虚拟化, 将信任链从计算终端传递到虚拟网络环境, 是可信云计算的关键问题[20-22].我们曾面向高安全的虚拟计算环境, 提出一种基于SR-IOV技术构建硬件虚拟化TCM的方法[23], 为每个虚拟节点提供硬件级的虚拟化TCM, 实现了虚拟机获取基于硬件的密钥保护和密码计算资源.但是这种信任扩展方式和云环境下动态灵活的网络特性互相矛盾, 并不能展开大规模的部署和应用.信任关系如何向云环境传递, 仍需展开更加深入的研究.

1.2 区块链基础

区块链[24, 25]本质上是一个状态机副本协议, 旨在建立一个去中心或弱中心化的数据库系统, 实现分布式环境下安全高效的共识机制.除了在电子货币中取得的成果外, 基于区块链可实现更广泛意义上的安全多方计算, 因此, 区块链技术可应用领域相对电子货币更加广泛.在区块链提出之前, 类似的功能通常基于安全多方协同计算实现, 例如通过著名的拜占庭协议[26]也可以实现多方参与者的共识.区块链技术的独特之处在于如下几方面.

(1) 区块链共识机制无需可信第三方参与.

无可信第三方参与意味着任何用户均可自由参与区块链系统, 因此, 区块链称为无许可系统.在传统的安全多方计算环境中, 攻击者可注册足够数量的用户, 则可实施女巫攻击(sybil attacks)[27].Barak等人系统研究了无许可机制系统下的女巫攻击问题, 区块链技术通过工作量证明机制有效抵抗了此类攻击[28].随着区块链技术的演进, 从业务驱动的角度出发, 又出现了有许可的区块链系统, 即私有链或联盟链.节点必须提供可信的身份证据才能够参与到区块链中.

(2) 区块链共识机制运行效率极高.

传统的安全多方计算协议均较为复杂[29], 通信复杂性及计算复杂性限制了其在大规模环境中的使用.区块链技术是第一种可在全球范围分布式部署的共识协议.区块链系统通过简单的无认证广播信道以及区块链长度竞争机制, 实现了高效的共识.

典型的区块链系统由网络层、共识层、数据层、智能合约层和应用层组成[30].其中, 网络层通常是基于P2P协议进行节点之间的通信; 共识层实现共识协议, 协议可以是根据实际场景自由选择, 比如基于工作量证明PoW, 和基于权益证明PoS; 数据层是区块链的数据结构, 其结构设计通常根据实际需要与应用场景紧密耦合, 每一个计算节点负责维护自己的存储系统; 智能合约层能够对于不同的数据输入执行不同的操作, 这个过程依托代码自动执行, 并在全网达成共识; 应用层是区块链系统的各种基本业务, 比如金融服务、数据溯源等.为了便于描述, 本文将区块链系统进行抽象表示, 如图 1所示.

Fig. 1 Abstractdescription of blockchain system 图 1 区块链系统抽象描述 1.3 安全世界的信任问题

安全世界的信任问题源自于人类社会的信任关系, 而人类社会信任关系扩展模型与人类社会的组织关系是相对应的.信任是多元的, 发生在不同主体的交互过程, 是一个网状的拓扑结构.也就是说, 如果没有信任的交互, 即便每个人都相信自己, 也无法形成信任社会.人类社会发展至今, 已经形成了比较完善的社会信任体系, 根据信任体系参与者的数量不同, 可以从两个维度去区分.

(1) 依托信任传递的“小团体”信任模型.

这种信任模式通常发生在较少的个体之间, 最典型的模式为:A信任B, B信任C, 进而A在某种程度上可以信任C, 这个过程是单向的.依托这种信任传递关系, 能够实现两类信任场景:一种是家庭、家族甚至族群之间的互相信任, 信任传递的路径短, 信任在传递过程中的损耗相对比较低, 但是难以扩展到更大的范围; 另一种是对权威的信任, 人们通常愿意相信权威人士或专家, 类似于可信的第三方, 但是这并不能解决普通成员之间的互信, 并且权威并不是完全可信的.在小团体信任中, 个体的信任失效有可能引发整个信任关系的失效.

(2) 基于信任契约的“大团体”信任模型.

随着人类社会的进步与发展, 相互协作的团体规模越来越大, 形成了城邦、国家或者企业集团, 规章制度、法律法规就成了维系其运行的关键因素, 这就是信任契约.信任契约的形成需要参与的实体达成共识, 并且保证大部分的参与者遵守这一契约.在人类社会中, 不可能所有的个体都能够严格遵守规章制度和道德法律, 一定存在不遵守规则的个体, 但是信任契约对此是可以容忍的.

可信计算以信任链技术为基础, 将信任传递与体系结构高度融合, 能够有效实现计算终端环境的可信.但是为了实现方便, 可信计算在实际应用时采用的是二值化的信任判断模型, 对于安全的刻画局限于安全或不安全, 这与复杂的网络计算环境是不符合的.同样的安全状态, 对于不同的业务应用场景是不同的,tpwallet官网下载 这涉及到复杂的等级保护问题, tp官网下载 本文不再展开.

从最基本的原理而言, 网络计算环境和社会环境具有极高的相似性, 都是由多个主体构成, 主体之间存在各种通信交互往来, 存在恶意主体, 都更强调整体性而弱化个体.可信计算在将信任关系传递到网络环境时, 基本思想是:通过保证每一个计算终端的安全, 进而保证网络环境的整体可信.但是基于上述讨论可知, 个体安全并不能保证整体安全, 并且保证所有的个体可信是困难的, 一定存在一定比例的坏节点.本文认为, 信任模型缺陷是限制信任关系向网络环境传递最大的制约因素, 也是制约可信网络连接发展的重要原因.

回到可信计算发展的出发点, 以人类社会基本的信任关系作为基点去探索安全世界的信任关系, 我们可以得到这样的结论:信任链的信任传递模型能够有效实现终端环境的可信, 但与网络环境不适应, 需要建立信任契约来解决网络环境下的信任传递问题.

区块链可以看作可信的一种形态, 与可信计算技术路线中集中式的信任根不同.区块链凭借巧妙的数据结构和共识机制, 实现了一种分散式的信任根, 以整体协同计算的方式为整个网络环境提供基本的信任支撑.集中式信任根的实现形式为TPM/TCM/CPU, 分散式信任根的实现形式为区块链, 其对比见表 2.

Table 2 Centralized trust root and distributed trust root 表 2 集中式信任根和分散式信任根

综上所述, 以区块链为基础的分散式信任根在信任模型构建、安全假设以及信任传递方面与实际网络环境更加贴合.这能够有效弥补传统可信计算在构建可信网络时存在的不足, 将信任关系有效传递到网络环境中.为了实现这个目标, 本文在对安全世界的信任问题的研究基础之上, 探索如何基于区块链技术构建分散式信任根的方法, 以整体的网络空间作为着眼点, 实现网络空间的可信.

2 B-TNC总体架构与模型构建

基于区块链的分布式可信网络连接架构B-TNC本质上是可信计算技术和区块链的融合.本节首先描述B-TNC中的信任传递关系, 然后给出B-TNC的基础框架和总体架构.接着对其进行抽象化的描述, 提出最基本的理论模型.在此基础之上, 提出B-TNC的区块链结构设计方法, 最后给出安全假设.

2.1 信任关系

根据信任来源不同, B-TNC架构的信任关系从逻辑上可以分为网络可信和终端可信, 如图 2所示.

Fig. 2 Trustrelationship in B-TNC 图 2 B-TNC中的信任关系

(1) 终端可信.终端计算环境的可信由可信计算保障, 采用信任链的信任传递方法.信任根的可信由硬件安全保证.通常认为, 基于硬件的安全防护强度要高于软件.在硬件设计中, 要充分考虑信任根的物理安全, 并且能够有效对抗常见的侧信道攻击, 如能量分析[31].信任链的信任关系由密码安全保证, 而密码体质的安全源自于数学原理.具体来说, 只要密码学体制未被攻破, 就能保证信任传递的真实性.

(2) 网络可信.根据第1.3节对安全世界信任问题的讨论, 本文提出基于区块链实现网络层的可信.以密码安全和共识协议为基本手段, 建立网络环境下的信任契约, 重点对计算节点在网络环境中的连接行为进行管控.基于区块链的网络可信有两层含义:一方面是基于区块链的可信连接, 核心是远程证明、访问控制和日志审计过程; 另一方面是基于区块链构建可信第三方, 提供CA服务, 零知识证明以及可信验证等服务.

终端可信和网络可信并不是完全独立的.终端可信是网络可信的基础, 可信计算一方面能够为安全系统提供最基础的密码支持, 另一方面能够增强终端计算环境的安全性, 这对于区块链系统非常重要.因为区块链系统要满足大多数节点诚实这一基本的假设, 终端可信恰好有助于此.同时, 区块链弥补了可信计算在解决网络可信方面的不足, 能够将信任关系有效地传递到网络环境当中.这样就构建了一种双层的信任关系.在这个基础之上, 可以提出B-TNC的基础框架和总体架构.

2.2 基础框架

基于区块链的分布式可信网络连接架构的基础框架包含3个实际网络运行环境, 分别是可信网络环境、分布式的可信第三方以及外部网络环境, 如图 3所示.

Fig. 3 Basicframe of trusted network 图 3 可信网络基础框架

(1) 可信网络环境.可信网络环境是需要保护的网络环境, 在本文的假设中具有去中心的特点.与信任关系相对应, 每一个被允许加入可信网络环境的终端都必须具备合法的信任根TPM/TCM.信任根一方面可以对计算终端安全提供可信支撑, 另一方面为计算节点提供强身份认证.可信网络环境是一个依托区块链系统组成的逻辑环境, 在网络中维护一个面向可信网络连接的区块链系统, 提供访问控制、日志审计以及远程证明的服务功能.可信网络环境中存在两种节点:可信计算节点(trusted node, 简称TN), 这是实际安全的节点, 具有合法的TPM; 非可信节点(non-trusted node, 简称NTN), 网络中实际可能存在安全隐患的节点, 但并不一定是恶意节点.

(2) 分布式的可信第三方.可信第三方是构建实际密码系统的基础, 但是中心化的信任背书通常意味着更大的攻击威胁.近年来出现了基于区块链技术构建可信第三方的研究, 如Conner等人提出的Certcoin[32, 33]、Chen等人提出的CertChain[34], 都是将区块链技术用于实现一个更加安全高效的公钥基础设施(public key infrastructure, 简称PKI).除PKI外, 可信网络连接架构需要可信验证和零知识证明两种第三方服务, 其中, 可信验证源自于基于属性的远程证明[35], 能够根据完整性证据为通信双方提供可信判断服务; 零知识证明被用于直接匿名证明(direct anonymous attestation, 简称DAA)[36], 用于保护计算平台在参与网络通信过程中的匿名性.受到Certcoin, CertChain启发, 分布式的可信第三方的构建具有可行性, 但实现细节不作为本文的研究重点.

(3) 外部网络环境.外部网络环境从用户角度分为诚实用户和恶意用户, 从终端可信角度分为可信终端、恶意终端和未知终端.未知终端的含义是:不具有恶意终端的恶意行为, 但是可能存在潜在的安全风险.外部网络环境和可信网络环境与可信第三方的关系相同, 都是获取证书服务、可信验证和零知识证明服务.外部网络和可信网络环境之间是远程证明、可信连接和访问控制.外部网络存在恶意节点(malicious node, 简称MN), 是外部网络试图入网的恶意节点.

2.3 总体架构

B-TNC的总体架构如图 4所示, 包括4个实体、3个区块链系统、5个层次和若干接口组件.该架构在传统可信网络连接层次上增加了区块链系统.B-TNC将策略的执行由中心转移到各实体, 将决策由分布式的可信第三方转移到分布式的可信第三方, 实现了一种新型的可信网络连接架构.

Fig. 4 Overall architecture of B-TNC 图 4 B-TNC总体架构

● 实体

4个实体分别是访问请求者(access requestor, 简称ARQ)、访问接收者(access receiver, 简称ARC)、策略决策点(policy decision point, 简称PDP)和策略执行点(policy enforcement point, 简称PEP).其中,

● ARQ位于外部网络, 发出访问请求, 收集平台完整性可信信息, 申请与可信网络环境中的计算节点建立网络连接;

● ARC位于可信网络环境, 是被访问的计算节点, 需要对访问请求进行处理, 将ARQ的平台完整性信息转发到区块链系统进行可信验证;

● PDP在组成结构上与传统可信网络连接不同:B-TNC中, PDP是一个由全网共同组成的逻辑实体, 通过区块链数据库系统和共识协议维系.PDP根据各计算节点的安全策略对ARQ的访问请求进行决策判定, 判断的依据是ARQ的身份和完整性状态信息, 并将判断结果写入的区块链系统;

● PEP部署在ARQ和ARC, 负责执行访问控制策略.

ARQ包括4个组件:网络访问请求者(network access requestor, 简称NARQ)发出访问请求, 申请加入可信网络环境, 建立网络连接.ARQ的B-TNC客户端(B-TNC client, 简称B-TNCC)收集完整性度量模块(integrity measurement module, 简称IMM)的完整性度量信息, 并将完整性度量信息向远端平台报告.完整性度量信息的内容和组成由可信度量的具体模型决定.IMM和TCM协同度量ARQ各个组件的完整性.区块链高速引擎(blockchain high-speed engine, 简称BHSE)是实体与区块链系统之间的接口, 一方面提供区块链读取写入查询等基本功能, 另一方面对区块链数据系统进行实时解析, 在本地维护一个支持高速查询的区块链数据库.但是必须被可信网络接受以后才能够获得区块链上的数据.

ARC包括4个组件:网络访问接收者(network access receiver, 简称NARC)接收外部节点ARQ的入网申请, 发起对ARQ的可信度量.ARC的B-TNC服务端(B-TNC server, 简称B-TNCS)接收ARQ发送的完整性度量报告, 并提交到完整性验证模块(integrity verifier module, 简称IVM)进行验证.IVM发起对ARQ的可信验证, 将可信度量信息广播到可信网络环境的计算节点, 等待验证.区块链高速引擎与ARQ中的作用相同, 不再赘述.

PDP包括两个组件:基于共识协议的网络访问授权者(network access authority based on consensus protocol, 简称CP-NAA)和区块链高速引擎.与TNC架构中的NAA不同, B-TNC的CP-NAA并不是单一的物理实体, 而是由运行在可信网络中的多个计算节点组成的逻辑实体.这些计算节点均产生ARQ是否可以加入可信网络的决策, 并基于共识协议汇总决策, 形成最终的共识.需要说明的是, 共识协议多种多样, 必须根据具体的共识协议设计合理的决策节点数目.在CP-NAA中, 每次共识均选举产生一个记账节点(leader node, 简称LN), 由LN作为区块链中的“矿工”将最终的结果写入区块链系统.本文提出了一种基于DPoS共识的方法, 以验证其可行性, 但并不仅局限于此.

● 区块链系统

3个区块链系统分别是基于区块链的访问控制系统(access control blockchain, 简称AccessChain)、基于区块链的日志审计系统(log audit blockchain, 简称LogChain)和分布式的可信第三方(distributed trusted third party, 简称DTTP).在前期研究中, 我们提出了基于区块链的远程证明模型[37], 给出了访问控制和可信证据追溯的基本方法, 两类功能都在同一个区块链上.但是访问控制和日志审计的数据量并不同, 不能很好地满足实际需求.在此基础之上, 本文提出了用3个区块链系统支撑可信网络连接的方法.AccessChain用于记录访问控制策略, 本质上是一个访问控制的决策账本, 参与到可信网络环境的计算节点以身份密钥(attestation identity key, 简称AIK)作为标识.计算节点的基本信息被写入AccessChain, 并设置加入网络的时间和有效期.AccessChain为PEP提供决策支撑.LogChain记录可信网络运行的日志数据, 为审计和追溯提供证据, 主要是利用了区块链防篡改的特性.DTTP是用区块链技术构建的可信第三方, 提供3种服务:证书服务、完整性验证和零知识证明.CertChain的研究已经证明, 基于区块链构建分布式的可信第三方是可行的、高效的、安全的.如何具体实现不作为本文研究重点.

● 层次

5个层次分别是访问控制层、基础网络层、度量评估层、区块链引擎和验证审计层:访问控制层运行AccessChain; 基础网络层支持传统的网络连接通信技术, 如P2P、Gossip协议、VPN等机制; 度量评估层进行平台的度量认证, 形成计算节点是否可以加入可信网络的决策; 区块链引擎和其他部件交互, 提供区块链服务; 验证审计层由LogChain和DTTP组成, 为可信网络提供验证和审计的支撑.

● 接口

B-TNC架构存在多个实体, 与TNC架构相同, 实体之间同样有通信和互操作的需求.但是由于引入了区块链系统, 导致架构中存在虚拟的逻辑实体, 并且接口更加复杂.对其中比较重要的接口进行定义, 从底层到上层包括IF-AR, IF-CS, IF-PEP, IF-BHSE和IF-BPEP.其中, IF-AR是ARQ和ARC之间的接口, 实现双方的信息传输; IF-CS维护B-TNCC和B-TNCS之间的通信, 主要支持可信网络节点加入时的网络数据传输; IF-PEP是PEP之间的根据访问控制策略形成的稳定的安全信道; IF-BHSE是各个实体调用区块链系统的接口; IF-BPEP是PEP获取区块链中存储的策略的接口.但是具体协议实现不作为本文研究重点.

2.4 抽象描述

给出B-TNC中各部件的定义, 未定义的部分沿用第2.3节的描述.

定义1. Pi={Pi-AIK, Pi-Nonce, Pi-Others}, 参与节点i的身份证据集合, 其核心是Pi-AIK, 是用户的身份密钥, 在可信系统中用于标识用户的身份; Pi-Nonce是随机数, 用于对抗重放攻击.对身份合法性的可信验证就是对Pi的验证.

定义2. Si={Si_1, Si_2, Si_3, …, Si-n}, 参与节点i的完整性证据集合, 其中, n为计算平台组件的数目.计算平台的组件主要包括信任根、BIOS、内核、操作系统和应用程序.

定义3. T={T1, T2, T3, …, Tn}, 可信网络中计算节点的集合, n为可信网络中计算节点的数目.外部节点集合定义为C={C1, C2, C3, …, Cn}.定义计算节点的决策集合Dm={D1_m, D2_m, D3_m, …, Dn-m}, 表示T中各节点对节点Cm的证明结果, 1代表可信, 0代表不可信.

定义4. AccessChain:(AC1→AC2→…→ACn→…).

定义5. LogChain:(LC1→LC2→…→LCn→…).

给出B-TNC中各基本操作的定义:

定义6. FMeasure(Cm, Pm, Sm), 完整性度量函数.计算平台Cm对自身的完整性进行度量, 得到身份证据集合Pm和完整性证据集Sm.

定义7. Verify_Identity(Tk, Pm, Id_Result), 身份合法性验证函数.计算节点Tk根据Pm对平台Tm进行身份合法性校验, 得到证明结果Id_Result.

定义8. Verify_Integrity(Tk, Sm, Dk-m), 完整性验证函数.计算节点Tk根据Sm对平台Tm进行完整性校验, 得到证明结果Dk-m.

定义9. Pick(T, LN), 每个阶段记账节点的共识算法, 在集合T中选取领导节点LN.

定义10. Decision(LN, Dm, Access, AC_newBlock), 全网决策函数.领导节点LN根据决策集合Dm产生最终决策Access, 其中, 1代表可以入网, 0代表不可入网.进而根据决策结果生成AccessChain的新区块AC_newBlock.

定义11. Re_Blockchain(LN, Blockchain, T, new_Block), 区块链更新函数.领导节点LN将new_Block广播到可信网络中所有节点T.需要说明的是, 根据实际需要, Blockchain有两种:AccessChain和LogChain.与之对应, new_ Block包括AC_newBlock和LogChain的新区块Log_newBlock.

定义12. Refer_AC(AccessChain, Pi-AIK, AC_Result), 查询拥有身份Pi-AIK的计算节点在AccessChain中是否合法, 并得到查询结果AC_Result.

定义13. Refer_Log(LogChain, Pi-AIK, Log_Result), 查询拥有身份Pi-AIK的计算节点在LogChain中是否有记录, 并得到查询结果Log_Result.

定义14. Refer_DTTP(DTTP, Pi-AIK, DTTP_Result), 查询拥有身份Pi-AIK的计算节点在DTTP中是否有记录, 并得到查询结果DTTP_Result.

定义15.通信功能相关定义如下:

● Send(Message, P, Q), 将内容Message从P节点发送到Q节点;

● Connect(P, Q, time_begin, time_end), P和Q两个节点建立正式通信, 有效期从time_begin到time_end;

● Disconnect(P, Q, time), P和Q从时间time开始断开连接.

2.5 区块链结构

B-TNC中的3个区块链系统代表了区块链技术在信息安全领域的3个重要的应用方向, 即访问控制、数据保护和身份认证[38].本节描述3种区块链系统的基本结构, 对区块链系统的功能进行梳理, 重点是说明可行性.

● AccessChain

访问控制是用户权限管理的重要技术手段, 能够允许合法用户访问资源, 并且拒绝非法用户的越权访问.区块链和访问控制的结合主要采用两种技术路线:基于交易进行策略/权限管理、基于智能合约进行访问控制.在B-TNC的架构下, AccessChain属于前者.基于交易进行策略/权限管理的访问控制系统主要有Damiano机制[39]、Zyskind机制[40]、FairAccess机制[41-43]和Dorri[44, 45].其中, Zyskind, FairAccess和Dorri面向的是移动应用或物联网环境, 和B-TNC的应用场景不符.AccessChain的可行性源自于Damiano系统.Damiano面向泛化的应用场景, 探索了使用区块链创建、管理、执行访问控制策略的可行性, 对基于属性的访问控制模型ABAC进行了扩展. AccessChain的数据结构如图 5所示, 是一个通用的区块链数据结构.每一条记录就是一个节点的访问控制信息, 其中包括节点信息(AIK, IP, MAC等信息)、入网时间、有效期、随机数等.本文在第3节参考Damiano系统的设计方法, 对AccessChain的运行流程进行描述.但是Damiano面向的是公有链, 和B-TNC有一定的不同.

Fig. 5 Data structure of AccessChain 图 5 AccessChain的数据结构

● LogChain

区块链是一种分布式的共享数据总账, 记录在区块链上的数据只可以增加, 不可以篡改.这个特性可以用于实现信息系统全流程的监控, 实现不可篡改的数据记录, 适合于日志审计系统的构建, 从数学原理上保证审计系统的安全性.Cucurull J等人[46]使用区块链来实现不可篡改的安全审计日志, 将区块链防篡改的特性与日志审计系统结合, 实现了可信的日志审计系统, 也为LogChain提供了理论和实践的支撑.在B-TNC架构中, 可信网络中计算节点的日志信息由LogChain记录, 网络运行中的重要行为都会被记录到链上.

在远程证明中, 可信验证通常依托于可信第三方.但是在B-TNC中, LogChain系统能够为可信验证的决策提供可靠的依据, 增强可信系统的安全性.本文仅对LogChain基本功能进行梳理, 不再展开设计工作.需要说明的是, 与AccessChain相比, LogChain对数据吞吐量的要求更高, 记录的数据更多, 但是对于共识时效性要求较低.

● DTTP

身份认证是可信第三方的一个重要功能, 目前, 相关研究者已经展开了基于区块链构建PKI的研究, 为分布式可信第三方DTTP的创建奠定了基础.目前, PKI系统在分布式环境下面临的最大的挑战是证书授权中心(certificate authority, 简称CA)不可信的问题.CA不可信主要包括3种情况:1) CA被黑客攻击, 导致中间人攻击的问题; 2)用户无法验证CA签证的过程, 导致证书不透明的问题; 3)中心化CA故障, 导致所有证书不可用.为了解决上述问题, 相关研究者展开了大量的研究.具有代表性的是麻省理工学者Conner提出的Certcoin系统和武汉大学学者Chen提出了CertChain系统.上述研究一方面证实了基于区块链构建PKI的可行性, 另一方面证明了基于区块链构建PKI在安全方面的优势.

可信网络连接中涉及到3种可信第三方, 除PKI系统外, 还有DAA中零知识证明证据发布者以及基于属性的远程证明中可信验证者.零知识证明证据发布者可以依托PKI系统建立, 在TPM/TCM身份注册或验证时生成证据, 理论上不存在实现难度.但是分布式的可信验证者目前并没有可以参考的系统, 本文提出了一种基于区块链的设计思路, 具体描述见第3.2节.

2.6 安全假设

1.敌手可以窃听、截获和篡改通信消息.

2.底层密码算法是安全的, 随机数和私钥均无法被分析攻破.

3.可信网络在建立之初是可信的.

4.网络中的节点在刚刚加入网络时可信.

5.通信信道安全, 可以通过加密保证.

6.敌手无法控制1/3以上的节点, 这个数字是由共识算法决定的.

3 B-TNC运行流程

本节对B-TNC架构最重要的问题进行描述, 包括B-TNC的基本流程、分布式可信验证者构建的方法和基于DPoS共识的远程证明机制.

3.1 基本流程 3.1.1 系统初始化

B-TNC在运行之前需要进行基本的初始化操作, 主要包括可信网络环境初始化、区块链系统初始化.

(1) T={T1, T2, T3, …, Tn}.初始节点建立可信网络环境.

(2) AccessChain:(AC1→AC2→…).初始化AccessChain, 创建初始节点.

(3) LogChain:(LC1→LC2→…).初始化LogChain, 创建初始节点.

(4) 可信第三方DTTP开始提供可信第三方服务:证书服务、零知识证明和可信验证.

3.1.2 基本运行流程

假设B-TNC处于运行过程中, 此时有外部计算节点Ci发起对可信网络T内部节点Tj网络申请, 该过程的基本运行流程如图 6所示.

Fig. 6 Work process of B-TNC 图 6 B-TNC的工作流程

0a.在进行网络连接和平台完整性验证之前, B-TNCC需要对IMM进行初始化.同理, B-TNCS要对IVM进行初始化.

0b. BHSE对AccessChain和LogChain进行实时解析, 在本地存储区块链数据库, 实现高速查询.

1. Send(Pi-AIK, NARQ, ARC.PEP).

当有连接请求发生时, NARQ向ARC的PEP发送连接请求, 其节点身份用Pi-AIK进行标识.

2. ARC.PEP→Refer_AC(AccessChain, Pi-AIK, AC_Result).

如果验证合法, Connect(ARQ, ARC, time_begin, time_end).

ARC的PEP向AccessChain查询, 判断Pi-AIK是否被认可, 并得到结果AC_Result.若验证合法, 则ARC的PEP根据验证后的策略执行访问控制操作, 建立通信连接; 若验证不合法, 则启动可信网络连接的身份验证和完整性状态验证.

3a. B-TNCC和B-TNCS对平台身份的合法性发起验证.

3b. ARQ.IMM→FMeasure(Ci, Pi, Si) then Send(Pi



Powered by tokenpocket官网下载 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群 © 2013-2024