基于区块链的分布式可信网络连接方法与流程

文档序号:18106670发布日期:2019-07-06 11:42阅读:491来源:国知局
基于区块链的分布式可信网络连接方法与流程

本发明属于网络安全技术领域,涉及可信计算领域中的可信网络连接,具体是一种基于区块链的分布式可信网络连接方法。用于分布式网络中终端设备用户和平台的可信安全性连接。



背景技术:

2003年tcg(trustedcomputinggroup)组织以及包括tnc(trustednetworkconnect)规范的一系列技术规范的出现标志着可信计算领域进一步的成熟。在tnc规范的指导下,cisconac使用网络基础设施对试图访问网络计算资源的所有设备执行安全策略检查,从而限制病毒、蠕虫和间谍软件等新兴安全威胁损害网络安全性;microsoftnap利用名为检疫代理的客户端应用程序将系统信息传输到与受信任的第三方合作的网络策略服务器,以确保在访问网络之前可以检查所有终端设备。然而,由于tnc规范并没有提供分布式的网络访问控制框架,所以上述的可信网络连接方法都是基于c/s(client/server)集中式架构进行设计的,它们需要用到可信第三方的集中式服务来检测网络中终端设备的安全状况。因此,cisconac和microsoftnap并没有考虑并提出分布式系统下终端设备的可信网络连接方法,即在网络环境中没有可信第三方时,如何实现终端设备的可信网络连接。

mohsendorodchi等人在其发表的论文“trust-baseddevelopmentframeworkfordistributedsystemsandiot”(computersoftwareandapplicationsconference(compsac),2016ieee40thannual)中提出了一种将信任策略和信任框架相结合从而管理物联网中设备安全的方案。f.bao等人在其发表的论文“trustmanagementfortheinternetofthingsanditsapplicationtoservicecomposition”(worldofwireless,mobileandmultimedianetworks(wowmom),2012ieeeinternationalsymposium)中通过计算分布式系统中设备的加权信用值并判定其可信等级程度,从而确保整个分布式系统中设备的高可信等级程度。然而,上述的分布式设备管理方法是基于可信管理进行研究设计的,考虑了分布式系统中终端设备的信任评级等,但并不涉及可信计算领域,缺少对终端设备平台完整性的安全评估和管理。

2008年,s.nakamoto提出了一种基于区块链的比特币加密货币和全球支付系统,从而使得许多基于区块链的加密货币系统逐渐发展并广泛应用于各个领域。jaeminpark等人在论文“tm-coin:trustworthymanagementoftcbmeasurementsiniot”(pervasivecomputingandcommunicationsworkshops(percomworkshops),2017ieeeinternationalconference)中将区块链与可信计算相结合,提出了一种基于分布式环境下的远程认证方法,从而减少了检测终端设备完整性的次数。然而,该方案的前提假设条件并不合理,即在该方案中,矿工是完全可信并掌管着所有终端设备的私钥信息,因此当矿工遭到恶意入侵后,整个方案系统将面临瘫痪,网络环境中的恶意终端设备将无法识别验证,且该方案没有依据tnc框架设计终端设备的可信连接方法,从而无法保证分布式环境中终端设备的安全可信连接。

现有技术中,网络安全的连接均需要可信第三方进行认证,存在单点故障,网络通信传输时延长,开销成本大等问题,且在没有可信第三方进行管理的情况下,现有方案没有一个能够确保终端设备之间的安全认证的完整方案。



技术实现要素:

本发明的目的在于针对上述已有技术的不足,提出了一种用户平台认证阶段没有可信第三方的点对点的基于区块链的分布式可信网络连接方法。

本发明是一种基于区块链的分布式可信网络连接方法,其特征在于,基于区块链的可信网络连接分为三个阶段进行:第一阶段为初始化阶段,第二阶段为可信网络连接阶段,第三阶段为交易更新阶段,具体包括如下步骤:

初始化阶段:

(1.1)分配公私密钥对并产生相应签名:

可信第三方(tp)为分布式系统中的每一个终端设备分配一副公私密钥对kpri/kpub,并由公私密钥对产生相应的椭圆曲线数字签名ecdsa;

(1.2)产生并注册基本信息:

tda终端设备用自己的私钥kpri_a签名并用可信第三方(tp)的公钥kpub_tp加密以下数据:平台完整性寄存器pcra值,度量值digest_a,用户密码密文的散列值hmac_a,计数器值cta,终端设备识别号ida,椭圆曲线数字签名ecdsa;然后tda向可信第三方发起请求并将以上签名加密数据发送给可信第三方,完成初始交易信息的注册;

(1.3)检测注册信息:

当可信第三方(tp)接收到tda的请求信息时,可信第三方验证tda用户密码密文散列值hmac_a的有效性以及检测tda平台的完整性信息是否符合网络访问策略;

(1.4)发送响应信息:

若tda的注册信息验证成功,则可信第三方在tda的注册数据上用自己的私钥签名并将该数据发送给tda;若tda的注册信息验证失败,则可信第三方终止与tda的连接;

(1.5)初始交易的产生与存储:

tda产生并广播初始交易,矿工根据pow机制验证初始交易的签名信息并将该交易信息存储到区块链上;

可信网络连接阶段

(2.1)终端设备之间通过区块链进行双向用户认证:双方均查找区块链中初始交易信息是否与对方发送给自己数据哈希值的一致来完成双向用户认证;

(2.2)终端设备之间通过区块链进行双向平台认证:双方均通过获取区块链中最近前一个交易中对方平台的完整性信息与对方发送的平台完整性报告中的完整性寄存器值作比较运算,判断对方平台的完整性并完成双向平台认证;

交易更新阶段

(3)产生新的更新交易:

tda终端设备或tdb终端设备产生并广播新的更新交易,矿工根据pow机制对更新交易进行检测,若检测通过,则该更新交易被存储到区块链中,完成交易更新;若检测未通过,则该更新交易无法存储到区块链中,以保证区块链中交易信息的安全可信性。

本发明用区块链存储可信终端设备的完整性信息,为可信网络连接过程中分布式环境下终端设备间进行双向认证提供判定依据,通过对信息数据的比较和分析来识别恶意终端节点并将其隔离,从而保证了分布式网络环境的安全可信性。

本发明与现有技术相比具有如下优点:

第一,本发明将区块链技术与可信网络连接框架进行结合,实现了分布式环境下终端设备的可信网络连接方法。本发明采用区块链系统对每个终端设备的平台度量信息进行存储,大大降低了集中式管理平台信息的风险。分布式系统中的每个终端设备都可以直接与其他终端设备建立连接,相互请求度量彼此的平台度量信息,并在不依赖可信第三方的情况下,通过比较验证区块链上的交易信息来检测彼此平台的完整性情况,从而保证网络中每个终端设备的可验证性并完成了分布式环境下终端设备的可信网络连接。

第二,本发明将diffie-hellman-over-bitcoin协议与可信网络连接(tnc)框架相结合。通过非交互式密钥交换方法产生会话密钥,有效抵御了中间人攻击,保证了终端设备平台认证的可靠性和真实性。

第三,本发明的平台度量报告皆由tpm中的aik私钥和特定交易的私钥进行签名,由于aik私钥和特定交易的私钥无法被恶意节点窃取,所以在交易更新阶段,没有被aik私钥和特定交易的私钥签名封装的更新交易无法被矿工上传存储到区块链上,从而保证了区块链中交易信息的不可伪造性和平台完整性度量值的可信性。

附图说明

图1是本发明流程图;

图2是本发明终端设备初始化阶段时序图;

图3是本发明可信网络连接阶段终端设备间双向用户认证时序图;

图4是本发明可信网络连接阶段终端设备间双向平台认证时序图;

图5是本发明更新交易阶段通信模型图。

具体实施方式

下面结合附图和实施例对本发明作详细的描述。

实施例1

在网络通信中,随着集中式网络结构向分布式网络开发环境的发展以及物联网技术的应用,人们在生活工作中对各种终端设备的应用更加依赖和频繁,但是终端设备在提升人们生活质量和工作效率的同时也存在着一定的安全风险,一旦网络环境中的终端设备遭到恶意攻击,人们的隐私安全和财产安全将遭受巨大的威胁,为了解决这一严峻的挑战,全世界的研究人员和开发人员都在共同努力研究以期望安全可行的方案。

本发明针对这些问题展开创新与研究,提出一种基于区块链的分布式可信网络连接方法。为了保证分布式网络环境中终端设备的安全可信性,需要对终端设备之间进行双向的用户认证和平台认证。其中,用户认证确保终端使用者的授权合法性,平台认证确保终端平台的安全可信性。

本发明是一种基于区块链的分布式可信网络连接方法,其中分布式网络是由分布在不同地点且具有多个终端的节点机互连而成的,网中任一点均至少与两条线路相连,当任意一条线路发生故障时,通信可转经其他链路完成,具有较高的安全可靠性;区块链是一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储,难以篡改的分布式账本技术,该帐本中的数据不需要可信第三方进行维护,而是由分布式网络中的各节点共同参与数据的验证和维护工作;可信网络连接是指在终端连接网络之前通过对终端的用户和平台进行完整性度量,来评估终端对于要访问网络的适用性,以便确保只有合法并且自身安全的终端才能够接入到网络。参见图1,本发明基于区块链的可信网络连接分为三个阶段进行:第一阶段为初始化阶段,第二阶段为可信网络连接阶段,第三阶段为交易更新阶段,具体包括如下步骤:

为了更加方便清楚地表述分布式网络中终端设备的活动流程,用tda终端设备和tdb终端设备指代该分布式网络中的任意两个终端设备。

初始化阶段:

(1.1)为终端设备分配公私密钥对并产生相应签名:

在初始化阶段,参见图2,本发明为了保证分布式网络环境中各终端设备所拥有的公私密钥对的安全可靠性,可信第三方(tp)为分布式系统中的每一个终端设备分配一副公私密钥对kpri/kpub,用以签名加密各终端设备所产生的数据信息,根据该公私密钥对,终端设备可以推导并产生各自相应的椭圆曲线数字签名ecdsa,用以可信网络连接阶段终端设备彼此之间密钥交换的过程。

(1.2)产生并注册终端设备的基本信息:

为了在可信网络连接阶段提供用户认证和平台认证的比较依据,分布式网络中各终端设备需要将自身的初始可信状态存储于区块链中,因此,tda终端设备需要用自身的私钥kpri_a签名并用可信第三方(tp)的公钥kpub_tp加密以下基本信息:平台完整性寄存器pcra值,度量值digest_a,用户密码密文的散列值hmac_a,计数器值cta,终端设备识别号ida,椭圆曲线数字签名ecdsa。然后tda向可信第三方发起请求并将以上签名加密信息发送给可信第三方以完成初始可信状态的注册,具体表述为如下步骤:

(a)tda度量自身产生其基本信息:自身平台完整性寄存器pcra值和度量值digest_a,用户密码密文的散列值hmac_a,计数器值cta,终端设备识别号ida,其中平台完整性寄存器值和度量值用以验证终端平台的状态是否可信,用户密码密文的散列值用以验证用户身份是否合法授权,计数器值用以解决区块链中交易冗余存储的问题。

(b)tda将上述基本信息和相应的ecdsa签名值整合成自身的注册信息并用自己的私钥kpri_a进行签名封装。

(c)tda用可信第三方tp的公钥kpub_tp加密注册信息并发送给可信第三方tp。

(1.3)检测终端设备的注册信息:

当可信第三方(tp)接收到tda终端设备的请求信息后,可信第三方验证tda用户密码密文散列值hmac_a的有效性并检测tda平台的完整性信息是否符合分布式网络访问策略,具体表述为如下步骤:

(a)可信第三方tp用自己的私钥kpri_tp解密tda的注册信息。

(b)可信第三方tp用tda的公钥kpub_a解封验证tda的注册信息。

(c)可信第三方tp验证tda用户密码密文散列值hmac_a的有效性和正确性。

(d)可信第三方tp检测tda平台的完整性信息是否符合分布式网络访问策略,即tda注册信息中的完整性寄存器值和度量值是否满足可信第三方tp的网络接入要求。

(1.4)发送响应信息:

若tda终端设备的注册信息验证成功,则可信第三方用自己的私钥kpri_tp签名tda的注册信息并将该响应信息发送给tda,为tda初始交易的产生做准备。若tda的注册信息验证失败,则可信第三方终止与tda的连接。

(1.5)初始交易的产生与存储:

tda终端设备产生并广播初始交易,矿工根据pow机制验证初始交易的签名信息并将该初始交易信息存储到区块链上,具体表述为如下步骤:

(a)tda根据可信第三方tp发送的响应信息产生相应的初始交易。

(b)tda在分布式网络环境中广播该初始交易。

(c)矿工根据pow机制检测初始交易的签名是否来自可信第三方tp,若是,矿工将该初始交易存储到区块链上;若不是,该初始交易将无法被存储到区块链中。由于可信第三方tp的私钥kpri_tp无法被恶意节点窥探获取,因此恶意节点无法伪造由可信第三方私钥kpri_tp签名的初始交易,伪造的初始交易无法被矿工存储于区块链中,从而保证了区块链中初始交易的不可伪造性和可信性。

可信网络连接阶段

(2.1)终端设备之间通过区块链进行tda和tdb之间的双向用户认证:参见图3,双方均查找区块链中初始交易信息是否与对方发送给自己数据的哈希值一致来完成双向用户认证。

(2.2)终端设备之间通过区块链进行tda和tdb之间的双向平台认证:参见图4,双方均通过获取区块链中最近前一个交易中对方平台的完整性信息与对方发送的平台完整性报告中的完整性寄存器值作比较运算,判断对方平台的完整性并完成双向平台认证。

本发明将diffie-hellman-over-bitcoin协议与可信网络连接(tnc)框架相结合,在通过获取并比较区块链中交易信息来进行用户身份认证和终端平台认证的同时,还保证了协议通信过程中会话密钥的隐私性,在确保分布式环境下各终端设备用户和平台安全可信性的同时,还有效地抵御了中间人攻击对本发明的安全威胁,从而识别阻止恶意终端节点的入侵并保证了分布式网络环境的安全。

交易更新阶段

(3)产生新的更新交易:

tda终端设备产生并广播新的更新交易,矿工根据pow机制对更新交易进行检测,若检测通过,则该更新交易被存储到区块链中,完成交易更新;若检测未通过,则该更新交易无法存储到区块链中,以保证区块链中交易信息的安全可信性,具体表述为如下步骤:

(3.1)tda根据接收到的签名验证信息产生新的更新交易并在分布式网络中对该更新交易进行广播。

(3.2)矿工根据pow机制对更新交易进行检测,若检测通过,则该更新交易被存储到区块链中,完成分布式环境下终端设备的可信连接;若检测不通过,该更新交易无法存储到区块链中。

本发明将区块链技术与可信网络连接框架进行结合,给出了一个可信网络安全连接的新方案,实现了分布式环境下终端设备的可信网络连接方法。本发明采用区块链对每个终端设备的平台度量信息进行存储,从而大大降低了集中式管理平台信息的风险。分布式系统中的每个终端设备都可以直接与其他终端设备建立连接,请求它们的平台度量信息,并在不依赖可信第三方的情况下,通过查询并获取区块链上的交易信息来检测其平台的完整性情况。

实施例2

基于区块链的分布式可信网络连接方法同实施例1,步骤(2.1)中所述的终端设备之间通过区块链进行双向用户认证,为了更加清楚方便地表述这一过程,本发明用tda终端设备和tdb终端设备代表分布式网络中任意两个正在进行双向用户认证的终端设备,具体包括如下步骤:

(2.11)在分布式环境下,tda终端设备向tdb终端设备发送请求信息,请求信息包括自身的设备识别id号,随机数na,tda所属用户密码的密文值,其中该密文值由tda所属用户使用tda公钥kpub_a加密其密码的明文值得到。

(2.12)当tdb接收到tda的请求信息后,tdb向tda发送响应信息,响应信息包括自身的设备识别id号,随机数nb,tdb所属用户密码的密文值,其中该密文值由tdb所属用户使用tdb公钥kpub_b加密其密码的明文值得到,在双向用户认证的过程中,由于tda和tdb向对方传输的是各自终端所属用户密码的密文值且tda和tdb的私钥无法被恶意节点获取伪造,因此攻击者无法得知tda和tdb所属合法用户密码的明文值,从而保证合法授权用户的密码信息的隐私安全。然后,tdb访问区块链并获取tda的初始交易中的散列值hmac_a信息并验证其散列值和tda所属用户密文哈希值的一致性,若一致,tda被认为是合法授权用户,进行接下来的平台认证;若不一致,tda被认为是恶意节点并终止与其连接。

(2.13)当tda接收到tdb的响应信息后,tda访问区块链并获取tdb初始交易中的散列值hmac_b信息并验证其散列值和tdb所属用户密文哈希值的一致性,若一致,则tdb被认为是合法授权用户,进行接下来的平台认证;若不一致,tdb被认为是恶意节点并终止与其连接,由于tda和tdb的密码是以密文的形式存储于区块链里各自的初始交易中,因此用户的双向认证过程都是在用户密码的密文的基础上进行比较操作的,恶意节点无法获取窥探合法授权用户的密码明文信息,从而确保了分布式网络环境下合法授权用户的隐私安全。

本发明将区块链与密码学rsa公钥加密体系相结合,在没有可信第三方参与的情况下既保证终端设备所属合法授权用户密码隐私性的同时,还有效识别并阻止了非授权用户对可信终端设备的使用,使得非授权用户无法进入可信网络环境,从而保证了分布式环境中终端设备用户认证的可信性和隐私性。

实施例3

基于区块链的分布式可信网络连接方法同实施例1-2,步骤(2.2)中所述的终端设备之间通过区块链进行双向平台认证,为了更加清楚方便地表述这一过程,本发明用tda终端设备和tdb终端设备代表分布式网络中任意两个正在进行双向平台认证的终端设备,具体包括如下步骤:

(2.21)tda终端设备根据自身的ecdsa签名数据计算出特定交易的私钥kpri_tsa;tdb终端设备根据自身的ecdsa签名数据计算出特定交易的私钥kpri_tsb。

(2.22)tda访问区块链并获取tdb初始交易中的ecdsa签名值;tdb访问区块链并获取tda初始交易中的ecdsa签名值。

(2.23)tda根据tdb的ecdsa签名值和双方的随机数值计算会话密钥ssk和unique-value-1值;tdb根据tda的ecdsa签名值和双方的随机数值计算会话密钥ssk和unique-value-1值,由于会话密钥ssk是tda和tdb通过获取对方区块链里初始交易中的ecdsa签名值和自身特定交易的私钥推导计算而得,会话密钥ssk的产生不是由传统的交互式密钥交换协议完成,会话密钥ssk的产生过程具有一定的非交互性,因此恶意终端节点无法窥探并获取该会话密钥ssk,从而有效地抵御了中间人攻击。

(2.24)tda向tdb发起eap-request请求信息,请求获取tdb完整性信息的度量报告。

(2.25)当tdb接收到tda的eap-request请求信息后,tdb向tda发送eap-response响应信息,其中包括tpm_quote_info完整性信息的度量报告,计数器值ctb,设备识别id号,并用自身tpm配备的平台身份证明私钥aik和特定交易的私钥kpri_tsb对该响应信息进行签名封装,由于aik私钥是存储于tpm内部且专门用来封装度量报告信息的密钥,它无法被恶意终端节点伪造,因此由aik私钥签名封装的tpm_quote_info完整性信息的度量报告无法被恶意篡改或伪造,所以tpm_quote_info完整性信息度量报告中终端设备平台的完整性寄存器值无法被篡改或伪造,从而保证了终端平台完整性度量报告的安全可信性。

(2.26)tdb向tda发起eap-request请求信息,请求获取tda完整性信息的度量报告。

(2.27)当tda收到tdb的eap-request请求信息后,tda向tdb发送eap-response响应信息,其中包括tpm_quote_info完整性信息的度量报告,计数器值cta,设备识别id号,并用自身tpm配备的平台身份证明私钥aik和特定交易的私钥kpri_tsa对该响应信息进行签名封装。

(2.28)当tda收到来自tdb的eap-response响应信息后,tda进行以下检测:1)检验签名的正确性;2)检验unique-value-1值的一致性。若以上检测成功,tda访问区块链并获取tdb最近一次的交易信息;若检测失败,tdb被认为是恶意节点并终止与其进行连接;当tdb收到来自tda的eap-response响应信息后,tdb进行以下检测:1)检验签名的正确性;2)检验unique-value-1值的一致性;若以上检测成功,tdb访问区块链并获取tda最近一次的交易信息;若检测失败,tda被认为是恶意节点并终止与其进行连接。检验unique-value-1值的一致性是为了保证tda和tdb双向认证通信过程的安全性,防止恶意终端节点发起中间人攻击。

(2.29)tda通过将区块链中tdb最近一次交易中的平台完整性寄存器pcr值和tdb发送的eap-response信息中的完整性度量报告进行比较来判定tdb的平台是否可信,若比较结果一致,则tdb被认为是可信平台,tda签名该eap-response响应信息;若比较结果不一致,则tdb被认为是恶意节点并终止与其进行连接;tdb通过将区块链中tda最近一次交易中的平台完整性寄存器pcr值和tda发送的eap-response信息中的完整性度量报告进行比较来判定tda的平台是否可信,若比较结果一致,tda被认为是可信平台,tdb签名该eap-response响应信息,进入交易更新阶段;若比较结果不一致,tda被认为是恶意节点并终止与其进行连接。

本发明将diffie-hellman-over-bitcoin协议与可信网络连接(tnc)框架相结合,通过非交互式密钥交换方法产生会话密钥,有效抵御了中间人攻击,从而保证了终端设备平台认证的可靠性和真实性;本发明的平台度量报告皆由tpm中的aik私钥和特定交易的私钥进行签名,由于aik私钥和特定交易的私钥无法被恶意节点窃取,所以在交易更新阶段,没有被aik私钥和特定交易的私钥签名封装的更新交易无法被矿工上传存储到区块链上,从而保证了区块链中交易信息的不可伪造性和平台完整性度量值的可信性。

实施例4

基于区块链的分布式可信网络连接方法同实施例1-3,步骤(3.1)中所述的矿工根据pow机制对更新交易进行检测,具体包括如下步骤:

(3.11)当tdb终端设备的平台认证通过后,tda终端设备用自己的私钥kpri_a签名封装tdb的eap-response响应信息;同样,当tda的平台认证通过后,tdb用自己的私钥kpri_b签名封装tda的eap-response响应信息。

(3.12)tda和tdb将各自的封装信息发送给对方。

(3.13)tda将接收到的封装信息整合成新的更新交易;同样,tdb将接收到的封装信息整合成新的更新交易。

(3.14)tda和tdb将各自的更新交易广播至网络。

(3.15)矿工根据pow机制检测更新交易的信息,即检测广播的更新交易信息是否由其他终端设备进行签名封装,从而防止恶意终端节点擅自广播其不可信平台的完整性度量信息。检测更新交易中的计数器数值是否与已上链交易的计数器数值重复,从而防止冗余交易的上链存储。

(3.16)检测通过的更新交易被矿工上传并存储于区块链之中。

综上所述,本发明在没有可信第三方的情况下,通过区块链和密码学技术实现了分布式网络环境中终端设备之间的双向用户认证和平台认证,有效防范了非授权用户和不可信终端平台接入网络的风险,确保了分布式网络环境的安全可信性。

下面从注册、认证和更新各阶段整体性的给出一个例子,对本发明做进一步说明:

实施例5

基于区块链的分布式可信网络连接方法同实施例1-4,参照图1,对本发明的具体实现步骤作进一步的描述:

步骤1,产生密钥对和ecdsa签名:

初始化阶段,可信第三方tp为分布式系统中的每一个终端设备分配一副公私密钥对kpri/kpub并产生相应的ecdsa签名(r,s);

下面结合附图2终端设备初始化阶段时序图,对步骤2,步骤3,步骤4,步骤5做进一步描述,附图2中有三个实体:tda终端设备,可信第三方tp和区块链。在初始化阶段,本发明用tda代表分布式环境下的任意终端设备;

步骤2,注册tda终端设备基本信息:

(2.1)终端设备tda产生基本信息:

1)通过信任链技术和迭代的计算方法:newpcrj=hash(oldpcrj||digest),可以获得tda初始化阶段的平台寄存器值pcra_0和相应的度量值信息digest;

2)通过识别终端设备tda的设备信息获得其标识号ida;

3)设置计数器cta并将初始值设置为0,这里计数器被用于解决分布式环境下终端设备彼此之间进行双向认证所产生的同步问题,即防止同一终端设备在同一时间内与多个终端设备进行可信网络连接阶段的双向认证,从而避免更新交易的冗余提交,减少相应开销;

4)用自身公钥kpub_a加密用户密码的明文password_a,并用哈希函数产生相应的散列值hmac_a,即:hmac_a=hash(enc(password_a)kpub_a)。

(2.2)终端设备整合上述信息和相应的ecdsa签名并用自身tpm内部的aik私钥进行签名封装以及使用可信第三方的公钥kpub_tp进行数据加密:

enc(sign(pcra_0,ida,hmac_a,cta,digest,ecdsaa)kpri_aika)kpub_tp,然后发送给可信第三方tp。

步骤3,可信第三方tp检测从终端设备tda接收到的数据。

当可信第三方tp获得终端设备tda的注册信息数据后,可信第三方tp用自身私钥kpri_tp解密数据以及用终端设备tda的公钥kpub_a解封数据从而获取其平台寄存器值pcr_a0,随后检测其是否满足网络访问策略,若不满足,则可信第三方tp终止此次连接并隔离终端设备tda;若满足,则可信第三方实施步骤4。

步骤4,可信第三方tp签名数据。

当终端设备tda的平台度量值满足网络访问策略时,可信第三方用自身私钥kpri_tp签名封装终端设备的注册信息数据:

sign(pcra,ida,hmac_a,digest,cta,ecdsaa)kpri_tp,然后响应发送给终端设备tda。

步骤5,产生初始交易并存储于区块链。

当终端设备tda接收到可信第三方tp的响应数据后,将该数据整合成自身的初始交易并广播于网络,矿工根据pow机制检验该初始交易是否由可信第三方tp签名封装,若满足条件,则将该初始交易存储于区块链上。

下面结合附图3可信网络连接阶段终端设备间双向用户认证时序图,对步骤6做进一步描述。附图3中有三个实体:终端设备tda,终端设备tdb和区块链。在可信网络连接阶段,本发明用终端设备tda和终端设备tdb代表分布式环境下的任意两个进行双向用户认证的终端设备。

步骤6,终端设备之间的双向用户认证。

(6.1)终端设备tda向终端设备tdb发起请求,请求与对方进行可信网络连接阶段的双向用户认证,并将以下数据进行整合封装发送给终端设备tdb:

(tda,ida,pw_a,tdb,na),其中tda表示请求发起设备的标志,tdb表示请求相应设备的标志,ida表示请求发起设备的标识号,pw_a表示终端设备用户密码的密文以及na表示终端设备tda产生的随机数。

(6.2)当终端设备tdb接收到终端设备tda的请求信息后,将以下数据响应发送给终端设备tda:

(tdb,idb,pw_b,tda,nb),其中tdb表示请求响应设备的标志,tda表示请求发起设备的标志,idb表示请求响应设备的标识号,pw_b表示终端设备用户密码的密文以及nb表示终端设备tdb产生的随机数。

(6.3a)当终端设备tda接收到终端设备tdb的响应信息后,终端设备tda访问区块链并获取终端设备tdb初始交易中的hmac_b值,随后哈希响应信息中的pw_b值并与hmac_b值做比较,即判断hmac_b=hash(pw_b)等式是否成立,若成立,则终端设备tdb被认为是授权用户从而进行步骤7;若不成立,则终端设备tdb被认为是恶意节点,并与其断开连接。

(6.3b)终端设备tdb访问区块链并获取终端设备tda初始交易中的hmac_a值,随后哈希请求信息中的pw_a值并与hmac_a值做比较,即hmac_a=hash(pw_a)等式是否成立,若成立,则终端设备tda被认为是授权用户从而进行步骤7;若不成立,则终端设备tda被认为是恶意节点,并与其断开连接。

下面结合附图4可信网络连接阶段终端设备间双向平台认证时序图,对步骤7做进一步描述。附图4中有三个实体:终端设备tda,终端设备tdb和区块链。在可信网络连接阶段,本发明用终端设备tda和终端设备tdb代表分布式环境下的任意两个进行双向平台认证的终端设备。

步骤7,终端设备之间的双向平台认证。

(7.1a)终端设备tda根据自己的ecdsa签名推导计算出自己的特定交易私钥kpri_tsa,即kpri_tsa=(hash(ta)+kpri_a*ra)sa-1,其中ta表示终端设备tda最近一次的交易数据,(ra,sa)表示终端设备tda的ecdsa签名对。

(7.1b)终端设备tdb同样根据自己的ecdsa签名推导计算出自己的特定交易私钥kpri_tsb。

(7.2a)终端设备tda访问区块链并获取终端设备tdb的初始交易中的ecdsa签名对(rb,sb),然后根据椭圆曲线推导计算出其特定交易的公钥kpub_tsb,即kpub_tsb=(xb,yb),其中(xb,yb)代表椭圆曲线上的一点。

(7.2b)终端设备tdb访问区块链并获取终端设备tda的初始交易中的ecdsa签名对(ra,sa),然后根据椭圆曲线推导计算出其特定交易的公钥kpub_tsa。

(7.3a)终端设备tda根据根据diffie-hellman-over-bitcoin协议通过自己交易特定的私钥kpri_tsa计算出共享秘密(xab,yab),随后根据ellipticcurvediffie-hellman(ecdh)方法推导出会话密钥ssk,即ssk=kdf(xab),其中kdf(.)被定义为一种密钥衍生函数。然后终端设备tda计算unique-value-1值,即unique-value-1=hash(1||rn||ssk),其中rn=na||nb。在平台双向认证阶段,unique-value-1作为会话密钥ssk的副产品被用来抵御中间人攻击。

(7.3b)同样终端设备tdb根据diffie-hellman-over-bitcoin协议通过自己交易特定的私钥kpri_tsb推导计算出会话密钥ssk和unique-value-1值。

(7.4)终端设备tda发起平台认证请求(ida),请求获取终端设备tdb完整性报告中的平台度量信息。

(7.5)当终端设备tdb收到终端设备tda的平台认证请求后,unique-value-1值和所需的寄存器pcr_bi值被传递到tpm的quote操作,从而产生相应的完整性报告tpm_quote_info,使得平台状态和会话状态相绑定,其中,tpm_quote_info=(pcrbi,unique-value-1),然后,终端设备tdb用自己的aik私钥和特定交易的私钥kpri_tsb签名封装数据,即sign(tpm_quote_info,idb,ctb)kpri_tsb,kpri_aikb,然后发送给终端设备tda。在双向平台认证期间,每当终端设备的平台完整性被度量检测一次时,本发明都使其计数器ct值加一,目的是为了防止发生同步冗余问题。

(7.6)终端设备tdb发起平台认证请求(idb),请求获取终端设备tda完整性报告中的平台度量信息。

(7.7)同(7.5)一样,终端设备tda向终端设备tdb响应封装数据sign(tpm_quote_info,ida,cta)kpri_tsa,kpri_aika。

(7.8a)当终端设备tda收到终端设备tdb的响应封装数据后,终端设备tda首先使用终端设备tdb的aik公钥和特定交易的公钥来验证签名的真实性,其次终端设备tda检查unique-value-1值的一致性,即是否与自身所计算的unique-value-1值相等,若以上检测不通过,则终端设备tdb被认为是恶意节点并断开与其连接;若以上检测通过,则终端设备tda访问区块链并获取终端设备tdb最近一次交易信息的寄存器pcrbi-1值和平台度量散列值digest,然后进行比较,即等式

pcrbi=hash(pcrbi-1||digest)是否成立,若等式不成立,则终端设备tdb被认为是恶意节点并断开与其连接;若等式成立,则终端设备tdb被认为是可信平台从而进行步骤8。

(7.8b)当终端设备tdb收到终端设备tda的响应封装数据后,终端设备tdb首先使用终端设备tda的aik公钥和特定交易的公钥来验证其签名的真实性,其次终端设备tdb检查unique-value-1值的一致性,即该值是否与自身所计算的unique-value-1值相等,若以上检测不通过,则终端设备tda被认为是恶意节点并断开与其连接;若以上检测通过,则终端设备tdb访问区块链并获取终端设备tda最近一次交易信息的寄存器pcrai-1值和平台度量散列值digest,然后进行比较,即等式

pcrai=hash(pcrai-1||digest)是否成立,若等式不成立,则终端设备tda被认为是恶意节点并断开与其连接;若等式成立,则终端设备tda被认为是可信平台从而进行步骤8。

下面结合附图5更新交易阶段通信模型图,对步骤8做进一步描述。

步骤8,产生更新交易并存储于区块链。

(8.1a)当终端设备tdb的平台认证通过,终端设备tda用自己的私钥kpri_a签名封装终端设备tdb的响应信息。

(8.1b)当终端设备tda的平台认证通过,终端设备tdb用自己的私钥kpri_b签名封装终端设备tda的响应信息。

(8.2)终端设备tda和终端设备tdb将各自的封装信息发送给对方。

(8.3a)终端设备tda将接收到的封装信息整合成新的更新交易。

(8.3b)终端设备tdb将接收到的封装信息整合成新的更新交易。

(8.4)终端设备tda和终端设备tdb将各自的更新交易广播至网络。

(8.5)矿工根据pow机制检测更新交易的信息,即检测广播的更新交易是否由其他终端设备进行签名封装,从而防止恶意节点独自广播自己的不可信平台度量信息;检测更新交易中的计数器值是否与已上链交易的计数器值相同,防止冗余交易的上链存储。若以上检测通过,则进行(8.6)。

(8.6)检测通过的更新交易被上传并存储于区块链中,完成了基于区块链的分布式安全可信网络连接。

以上描述仅是本发明的一个具体实例,不构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式上和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变在本发明的权利要求保护范围之内。

简而言之,本发明公开的一种基于区块链的分布式可信网络连接方法。主要解决现有可信网络连接(tnc)规范中无法提供分布式网络访问控制框架的安全认证问题,通过结合区块链和tnc形成整体框架,保证在可信网络连接阶段中没有可信第三方参与的情况下,分布式网络中终端设备之间的用户和平台双向安全认证的过程。其实现方案是:1.初始化阶段,分布式环境下的各终端设备度量自身用户平台的基本信息并将该信息发送给可信第三方;2.可信第三方根据网络访问控制策略检验终端设备的平台完整性并将该信息封装重新发送给终端设备;3.终端设备将封装信息整合成初始交易并广播至网络;4.矿工根据pow机制将检验通过的初始交易存储于区块链中;5.可信网络连接阶段,分布式环境下的任意两个终端设备通过区块链进行双向用户认证;6.双向用户认证通过后,这两个终端设备随即通过区块链进行双向平台认证;7.双向平台认证通过后,在更新交易阶段中各终端设备将封装的信息整合成新的更新交易并广播至网络;8.矿工根据pow机制将检测通过的更新交易上传存储于区块链中。本发明能有效抵御多个敌手共谋及中间人对终端设备的攻击,在没有可信第三方管理的情况下,阻止分布式环境下恶意终端节点访问网络,保证了分布式网络的安全可信。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1