基于区块链和可信计算平台的大数据采集交易系统的制作方法

文档序号:16856420发布日期:2019-02-12 23:21阅读:813来源:国知局
基于区块链和可信计算平台的大数据采集交易系统的制作方法

本发明涉及云计算安全技术领域,特别涉及一种基于区块链和可信计算平台的大数据采集交易系统。



背景技术:

近年来随着多媒体技术、软件技术和存储技术的快速发展,大数据、机器学习等技术深刻地影响并改变着社会生产生活方式,但可靠的数据源是这些技术实施、操作、发展的前提。物联网设备的普及为大数据来源紧缺问题提供了解决思路,大规模物联网设备可采集个人定位跟踪记录数据、个人健康数据、个人生活习惯及喜好数据等多种具有经济分析价值的数据,但如何保证数据交易的公平可信性和数据提供者的隐私性目前没有成熟的解决方案。



技术实现要素:

本申请是基于发明人对以下问题的认识和发现做出的:

internet网络应用技术快速发展普及,加之web2.0的发展导致网络用户和网络数据量高速增长,用户对数据的存储和处理能力提出了更高的要求,云计算的特点迎合了这些需求。中心化的云计算服务为用户存储提供了极大的方便,用户不必再关心复杂的硬件管理。尽管云计算有这些吸引人的优势,但它也给数据保护带来了新的安全挑战与威胁:首先,由于用户物理上不再拥有他们的数据,传统用于数据保护的加密不能直接被采用。其次,虽然云计算下的设备比个人计算设备更加强大可靠,但它们仍然面临内部和外部的数据完整性威胁,大量觊觎云端数据的黑客们不停的挖掘着服务商web应用上的漏洞,以期望打开缺口,获得有价值的数据。最后,具有数据优先访问权的并不是用户自己,而是云计算服务商。由于利益问题,云服务供应商对用户的数据就可能存在不诚实行为。私有云具有物理可控性、专用性和高安全性,所以采用私有云存储个人隐私数据是当今越来越多人的选择。

本发明实施例所采集的数据要求来自经过认证的硬件物理设备,系统应对物联网传感器设备进行身份认证。传统认证方式通常是基于密码学原理,将密钥存储在非易失性存储器中,通过数字签名、加密等方式实现对物理实体的认证及保护其中的秘密信息,然而这种方式可能会遭受入侵攻击、半入侵攻击、侧信道攻击等物理攻击,还容易受到病毒等软件的攻击;传统的认证方式在资源有限、计算能力差的情况下的应用也会存在许多的问题和障碍。不同于传统认证方式,本发明采用基于物理不可克隆函数的硬件身份认证方案能有效解决上述密钥存储和身份认证的问题。puf(physicalunclonablefunction,物理不可克隆函数)广泛应用于数字电路,通常被广义地分为基于存储的puf和基于延时的puf。其原理是利用一定的规则将物理实体在制造工艺过程中造成的随机性差异和物理不均匀性提取出来,在实体输入一个激励的前提下,输出一个不可预测的响应,以该响应作为该物理硬件实体的唯一标识。数字电路的puf方案中,对应的crps(challengeresponsepairs,激励响应对)可在激励输入后,通过bist(built-inself-test,自测试电路)生成。puf技术以唯一性、不可预测性、不可克隆性和防篡改性质等优良属性可解决身份认证与管理、知识产权保护和密钥生成问题。

传统的防火墙、入侵检测和病毒防御等网络安全防护手段都侧重于保护服务器的信息安全,而相对脆弱的终端就越来越成为信息系统安全的主要薄弱环节。针对这些系统安全需求和各类攻击手段,可信计算从计算机体系结构着手,从硬件安全出发建立一种信任传递体系以保证终端的可信,从源头上解决人与程序、人与机器以及人与人之间的信任问题。产业界普遍认同的“可信”是指以安全芯片为基础建立可信的计算环境,确保系统实体按照预期的行为执行,其中嵌入在硬件平台的安全芯片称为可信平台模块(trustedplatformmodule,tpm),平台整体称为可信计算平台。可信计算组织(tcg)也提出了可信计算平台的相关规范。可信计算平台普遍具有的功能有:建立信任根确定信任锚点,构建可信链使信任层层传递、平台身份证明、平台完整性证明和支持可信网络连接的功能。为防止恶意用户编造大量虚假数据上传交易,本发明采用可信计算技术为数据的采集、存储、处理提供全链路的可信。

2008年,由中本聪(satoshinakamoto)首次提出并规范证明了比特币的概念,区块链(blockchain)技术,作为比特币交易系统中最核心的一种信息技术,因其交易系统的开放性、不依赖任何信任机构的去中心化性、时间戳和数字签名所保证的不可篡改性和合法交易存于区块链的永久性等特点,解决了双重消费问题和拜占庭将军问题,并实现了一种无信任的共识网络系统。随后越来越多的区块链项目应运而生,以太坊(ethereum)便是其中具有代表性的一个,它是图灵完备的信息系统并支持自定义的智能合约,智能合约是区块链上的一段可执行代码,当满足触发条件时,公开透明的智能合约能去中心地自动执行。这使得以太坊被越来越多的开发者所青睐。本发明基于区块链技术完成关键数据的安全、永久存储和数据酬劳的公平、自动支付。

基于上述的应用需求与技术背景,本发明实施例是一种针对大规模个人物联网设备网络的可信大数据采集交易系统。该系统创新性地融合了私有云、puf、可信计算、区块链技术,解决在保证数据真实性和交易公平性的前提下,同时保护数据提供者隐私的问题,对融合数据孤岛、解决数据紧缺问题具有重要意义。

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本发明的目的在于提出一种基于区块链和可信计算平台的大数据采集交易系统,该系统一定程度上调和了个人隐私保护和大数据采集之间的矛盾,并确保了数据源的可信性,并具有实用、简单易实现的优点。

为达到上述目的,本发明实施例提出了一种基于区块链和可信计算平台的大数据采集交易系统,包括:用户链上地址验证模块,用于数据采集公司dcc、可信第三方ttp和用户之间通信交互以完成直接匿名证明(directanonymousattestation,daa)协议,并将与可信私有云平台绑定的区块链上公钥地址加入dcc交易用户白名单;数据采集模块,用于私有云平台进行采集操作的同时执行采集程序代码页的完整性度量(integritymeasurement)以获取第一平台状态,并通过物联网节点获取并上传硬件指纹,并利用所述可信私有云平台的数据解封与封装功能安全地生成数据凭证(datacredential),以得到后续模块验证数据可信性的依据;数据上传模块,用于执行上传程序代码页的完整性度量以获取第二平台状态,并与任一时间段的数据凭证链接打包后生成数据区块凭证(datablockcredential),且通过与所述可信私有云平台绑定的区块链上公钥地址以交易的形式上传至系统联盟链;数据可信性验证模块,用于在所述dcc公布期望购买的数据类型后,接收用户反馈相应的区块号和对应的原始数据集合,并且所述dcc在所述ttp的协助下获得由合法设备在可信状态下所采集数据对应的有效区块号,并计算所述有效区块的数据区块凭证验证值,上传至智能合约入口;数据酬劳支付模块,用于通过所述智能合约自动追溯链上记录的有效区块的数据区块凭证,将其与所述dcc提交的验证值进行比对,以根据比对成功的区块数目公开并自动地向用户支付数据酬劳。

本发明实施例为基于区块链和可信计算平台的大数据采集交易系统,通过对数据采集、存储、打包、上传操作实施全方位的监督和保护,实现了数据的全链路可信,使用直接匿名证明的方法使得dcc在认证用户链上公钥地址的有效性时保护了用户隐私;并且,基于区块链智能合约去中心化和自动化的特点,保证数据酬劳支付的公开透明,从而在一定程度上调和了个人隐私保护和大数据采集之间的矛盾,并确保了数据源的可信性,并具有实用性,简单易实现。

另外,根据本发明上述实施例的基于区块链和可信计算平台的大数据采集交易系统还可以具有以下附加的技术特征:

进一步地,在本发明的一个实施例中,所述用户链上地址验证模块进一步用于:生成匿名凭证颁发者ttp密钥;通过ttp和零知识证明颁发所述匿名凭证给用户端;通过所述用户端计算匿名签名,以实现所述dcc验证用户端匿名签名正确性。

进一步地,在本发明的一个实施例中,所述数据采集模块具体用于:通过内嵌的tpm对所述采集程序代码页进行完整性度量,生成pcr值和度量日志,完整性度量保证数据采集进程运行在可信执行环境(trustedexecutionenvironment,tee)中,pcr值和度量日志可用于后续模块验证采集进程的可信运行;通过物联网设备从注册的挑战集中任意选取一个挑战,并通过执行bist得到响应,挑战-响应对随数据一起上传,以获取所述硬件指纹;通过所述tpm执行数据解封和数据封装,使得数据与可信平台模块相绑定,同时通过pcr绑定于一种平台状态,该技术的应用使篡改、编造私有云平台存储数据的操作将会导致后续数据可信性验证的失败;根据预设数据结构计算每个时段对应的数据凭证,通过输入包含传感器测量数据、时间戳、完整性度量日志、完整性度量值、puf挑战-响应对、前一时间段的数据凭证值,输出为本时段的数据凭证值。

进一步地,在本发明的一个实施例中,所述数据上传模块具体用于:通过所述tpm对上传数据至区块链的私有云脚本程序代码页进行完整性度量,生成对应的度量日志和pcr值;输入任意一时间段的数据凭证、时间戳、对上传程序进行完整性度量生成的度量日志及度量值,并执行链接和杂凑操作后得到的输出值为所述任一时段的数据区块凭证,并在建立起的tee中,上传脚本通过链上公钥地址发送包含数据区块凭证的交易,使得交易打包上链后被永久地记录在本系统的联盟链上。

进一步地,在本发明的一个实施例中,所述数据可信性验证模块具体以用于:通过dcc公布所需物联网设备数据的类型;根据所述dcc公布的数据需求获取原始数据对应的数据区块凭证所在的区块号,并将所述区块号和所述原始数据一同发送至dcc;在所述ttp的协助下得到有效区块的编号并计算有效区块的数据区块凭证验证值,并上传至区块链平台对应接口。

进一步地,在本发明的一个实施例中,所述数据酬劳支付模块进一步用于所述区块链上的智能合约根据所述dcc输入的有效区块的数据区块凭证验证值得到有效区块编号,合约自动追溯链上有效区块的数据区块凭证记录值并和验证值进行比对,并根据验证成功的数据区块凭证个数,所述智能合约不受第三方依赖、自动地向所述用户支付所述数据酬劳。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为根据本发明一个实施例的基于区块链和可信计算平台的大数据采集交易系统的结构示意图;

图2为根据本发明一个具体实施例的基于区块链和可信计算平台的大数据采集交易系统的结构示意图;

图3为根据本发明一个实施例的数据凭证的数据结构示意图;

图4为根据本发明一个实施例的以太坊联盟链交易的数据结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

在介绍基于区块链和可信计算平台的大数据采集交易系统之前,先简单介绍一下本发明实施例的数学基础。

(1)双线性映射设p是一个大素数,是两个p阶的循环群,g是的一个生成元,是一个双线性映射。如果e满足以下属性,我们称是双线性群:

①双线性特性:对于有e(ua,ub)=e(u,v)ab=e(ub,va);

②非退化性:群中至少存在一个元素g,使得计算后的e(g,g)为群的某个生成元,即e(g,g)≠1;

③可计算性:存在有效的算法,使得所有的可以有效计算出e(u,v)的值。

(2)q-sdh假设(q-strongdiffie-hellmanassumption,q-sdh):

是阶为素数p的循环群。q-sdh假设在中成立指的是对所有概率多项式时间算法a,概率:

是可忽略的。其中ψ是从群的同构。ψ(g2)=g1。

(3)知识签名:本发明实施例在构造直接匿名证明方案时用到了知识签名这一工具。它允许一方在不泄露任何有用信息的情况下证明他知道一个秘密值。这种工具本质上是知识的零知识证明或最小泄露证明。例如:

表示“关于整数α,β,δ的零知识证明,并且y=gαhβ成立,同时(u≤α≤v)”,其中的y,g,h,是群和群中的元素。同时,可以利用fiat-shamir启发式将零知识证明转化为对消息m的知识签名,如可记作spk{(α):y=gα}(m)。

(4)抗碰撞杂凑算法:

本发明实施例中使用的抗碰撞杂凑函数具备两个基本特性:单向性和抗碰撞性;单向性是指只能从杂凑函数输入推导出输出,而不能从杂凑函数输出计算出输入;抗碰撞性是指不能同时找到两个不同的输入使其杂凑结果完全相同。本发明中的杂凑算法输入是明文,输出为映射到域中的元素。

下面参照附图描述根据本发明实施例提出的基于区块链和可信计算平台的大数据采集交易系统。

图1是本发明一个实施例的基于区块链和可信计算平台的大数据采集交易系统的结构示意图。

如图1所示,该基于区块链和可信计算平台的大数据采集交易系统10包括:用户链上地址验证模块100、数据采集模块200、数据上传模块300、数据可信性验证模块400和数据酬劳支付模块500。

其中,用户链上地址验证模块100用于数据采集公司dcc、可信第三方ttp和用户之间通信交互以完成直接匿名证明协议,并将与可信私有云平台绑定的区块链上公钥地址加入dcc交易用户白名单。数据采集模块200用于私有云平台进行采集操作的同时执行采集程序代码页的完整性度量以获取第一平台状态,并通过物联网节点获取并上传硬件指纹,并利用所述可信私有云平台的数据解封与封装功能安全地生成数据凭证,以得到后续模块验证数据可信性的依据。数据上传模块300用于执行上传程序代码页的完整性度量以获取第二平台状态,并与任一时间段的数据凭证链接打包后生成数据区块凭证,且通过与可信私有云平台绑定的区块链公钥地址以交易的形式上传至系统联盟链。数据可信性验证模块400用于在dcc公布期望购买的数据类型后,接收用户反馈相应的区块号和对应的原始数据集合,并且dcc在ttp的协助下获得由合法设备在可信状态下所采集数据对应的有效区块号,并计算有效区块号的数据区块凭证验证值,上传至智能合约入口。数据酬劳支付模块500用于通过智能合约自动追溯链上记录的有效区块的数据区块凭证,将其与dcc提交的验证值进行比对,以根据比对成功的区块数目公开并自动地向用户支付数据酬劳。本发明实施例的系统10通过融合大规模个人数据孤岛以解决数据源紧缺的问题,可实现公平透明的数据交易,保证交易数据的可信性的同时也可保护数据提供者的隐私。

可以理解的是,通过本发明实施例的系统10,一方面,数据采集公司可实现对所购数据可靠性、完整性的验证;另一方面,数据提供者在保持匿名性的同时,其应得的数据酬劳会被公开透明地自动化支付。本发明提出的系统包括以下3个网络实体:

(1)数据采集公司(datacollectioncompany,dcc):希望购买个人物联网设备记录数据并提供可信计算平台设备和交易网络平台的企业机构;

(2)用户(user):拥有智能设备和认证可信计算平台并有意愿进行数据交易的个人;

(3)可信第三方(trustedthirdparty,ttp):用户智能设备crps的注册处、daa协议中匿名证书的颁发者(issuer)并可对可信计算平台所提交的运行状态进行评估和安全审计的机构。

具体而言,本发明实施例涉及一种基于puf、可信计算、区块链技术的可信大数据采集交易系统10,包括用户链上地址验证模块100、数据采集模块200、数据上传模块300、数据可信性验证模块400和数据酬劳支付模块500,其系统流程如下:1、用户链上地址验证模块100:dcc、ttp、用户三方通信交互完成直接匿名证明协议,将与可信私有云平台绑定的区块链上公钥地址加入dcc交易用户白名单,同时不泄露任何与用户身份信息;2、数据采集模块200:执行采集程序代码页的完整性度量获取第一平台状态,之后物联网节点获取并上传硬件指纹,以上两者是后续模块验证数据可信性的依据,之后私有云平台利用数据解封与封装功能安全地完成数据凭证的生成;3、数据上传模块300:执行上传程序代码页的完整性度量以获取第二平台状态,与数据凭证等数据链接打包后生成数据区块凭证,通过与合法可信私有云平台绑定的区块链公钥地址以交易的形式上传至系统联盟链,达到永久记录的目的;4、数据可信性验证模块400:dcc公布期望购买的数据类型后,用户反馈相应的区块号和对应的原始数据集合,dcc在ttp的协助下获得由合法设备在可信状态下所采集数据对应的有效区块号,计算有效区块号的数据区块凭证验证值,上传至智能合约入口;5、数据酬劳支付模块500:智能合约自动追溯链上记录的有效区块的数据区块凭证,将其与dcc提交的验证值进行比对,根据比对成功的区块数目公开、自动地向用户支付数据酬劳。

主要思路:在个人物联网设备节点上使用puf技术得到设备硬件指纹作为硬件设备准入认证的“通行证”。嵌入可信平台模块的私有云平台通过采集数据代码页的完整性度量、数据解封装操作保证从已认证物联网节点设备到私有云平台间数据链路的可信性。数据提供者通过直接匿名证明的方式向数据采集公司提供与认证tpm绑定的区块链上公钥地址,同时也可以保持自身的匿名性,达到隐私保护的目的。最后,在可信第三方的支持下,数据采集公司可验证数据提供者所提供数据的可信性,数据酬劳通过区块链上的智能合约得到公平公正的支付。

下面将结合具体实施例对基于区块链和可信计算平台的大数据采集交易系统10进行进一步阐述。

进一步地,在本发明的一个实施例中,用户链上地址验证模块100进一步用于:生成匿名凭证颁发者ttp密钥;通过ttp和零知识证明颁发匿名凭证给用户端;通过用户端计算匿名签名,以实现dcc验证用户端匿名签名正确性。

可以理解的是,用户上传数据区块凭证cre_blocki(i=1,2,...,n)的信道是区块链,通过与用户所持内嵌合法tpm的私有云平台绑定的区块链上公钥地址发起交易、交易被矿工打包上链永久储存的方式完成。加入dcc可交易用户链上地址白名单要依靠用户、dcc和ttp三方通信交互完成daa协议来实现。其中ttp担当颁发者,任务是给内嵌合法tpm的私有云平台颁发匿名凭证;用户端,即可信私有云计算平台端担任证明者,任务是向验证者提供daa签名,被签名消息为用户链上公钥地址;dcc担任验证者,任务是验证证明者所提供的daa签名的正确性从而决定是否将被签名地址加入可交易白名单。

该模块100的实施具体分为4个步骤按顺序执行,依次为:

步骤1:keygen:生成匿名凭证颁发者ttp密钥;

步骤2:daa-join:ttp通过零知识证明颁发匿名凭证给用户端;

步骤3:daa-sign:用户端计算匿名签名;

步骤4:daa-verify:dcc验证用户端匿名签名正确性。

具体而言,步骤1:keygen:ttp选择群的阶数为p,长度为k,且存在双线性映射:ψ(g2)=g1,选择计算ttp的密钥对为:(pk,sk)=((p,g1,g2,g3,y,g,h),r)。

步骤2:daa-join:

(1)私有云内嵌的tpm选择秘密信息随机数签名标识符ssid(solelysignatureidentifier),计算η=h1(ssid),计算pedersen承诺c=gfht,发送给ttp,然后私有云可信平台模块证明拥有秘密知识f,t':随机选择计算发送给ttp;ttp随机选择发送给私有云平台;tpm计算sf=rf+cf,st'=rt'+ct',发送sf和st'给ttp;ttp验证

(2)ttp选择计算a=(g1cht′)1/(y+x),发送a,x和t”给私有云。

(3)私有云主机存储a和x,发送t”给tpm。

(4)tpm计算t=t'+t”,存储f,t,验证如下等式是否成立:

步骤3:daa-sign:

(1)私有云主机随机选取计算t1=(ahw),t2=gwh-x,t1和t2是对a和x的承诺,证明如下两个等式成立:

e(t1,y)/e(g1,g2)=e(h,y)we(h,g2)wx+te(g,g2)f/e(t1,g2)x

t2=gwh-x,t2-xgwxh-xx=1,t3=ηf

(2)证明私有云平台拥有知识f,x,w和t,满足以上等式。计算辅助值δ1=wx,δ2=-xx。tpm随机选取计算发送给私有云主机。

私有云主机选取计算:

私有云主机计算:

ch=h(η||g||h||g1||g2||g3||gt||y||t1||t2||t3||r1||r2||r3||r4);

发送ch给tpm。

tpm选择计算c=h(h(ch||nt)||m),此处被签名的消息m是与合法可信私有云平台绑定的用户区块链上的公钥地址。

私有云主机计算sx=rx+c(-x),sw=rw+cw,tpm计算sf=rf+cf,st=rt+c(-t)。

私有云主机输出签名

步骤4:daa-verify:

(1)给定用户区块链上公钥地址m的签名和公钥(p,g1,g2,gt,y,g,h),dcc计算:

(2)dcc验证下列等式是否成立:

成立则将m加入可交易用户公钥地址白名单。

进一步地,在本发明的一个实施例中,数据采集模块200具体用于:通过内嵌的tpm对采集程序代码页进行完整性度量,生成pcr值和度量日志;通过物联网设备从注册的挑战集中任意选取一个挑战,并通过执行bist得到响应,挑战-响应对随数据一起上传,以获取硬件指纹;通过tpm执行数据解封和数据封装,使得前一时段所存储的数据凭证与可信平台模块相绑定,同时通过pcr值绑定于一种平台状态;根据预设数据结构计算每个时段对应的数据凭证,通过输入包含传感器测量数据、时间戳、完整性度量日志、完整性度量值、puf挑战-响应对、前一时间段的数据凭证值,输出本时段的数据凭证值。

可以理解的是,如图2所示,数据采集模块200分为4个步骤顺序进行,具体内容如下。

步骤1:采集程序代码页完整性度量:私有云平台采集数据时,内嵌的tpm会对采集程序所在代码页进行完整性度量,生成存储于平台配置寄存器(platformconfigurationregister,pcr)内部的pcr值和度量日志。完整性度量保证数据采集进程运行在可信执行环境中,pcr值和度量日志可用于后续模块验证采集进程是否可信运行。

步骤2:物联网设备硬件指纹获取:用户的物联网设备在出厂前便在ttp处注册其crps,每次私有云平台采集物联网设备数据时,物联网设备从注册的挑战集中选取一个挑战,通过执行bist得到响应,挑战-响应对随数据一起上传至私有云,以此表明上传数据的设备是具有相应硬件身份的设备。

步骤3:数据解封与封装:物联网设备数据上传至私有云平台后,tpm执行数据解封和数据封装操作保障数据凭证的安全生成,数据封装将数据不仅与一个可信平台模块相绑定,同时也通过pcr绑定于一种平台状态,保证了系统运行环境和数据的可信。该技术的应用使得篡改、编造私有云平台存储数据的操作导致后续数据可信性验证的失败,从而防止了物联网设备数据的伪造。

步骤4:数据凭证生成:按照附图3的数据结构计算每个时段对应的数据凭证cre_datai(i=1,2,...,n)。输入包含传感器测量数据、时间戳、完整性度量日志、完整性度量值、puf挑战-响应对、前一时间段的数据凭证值,算法为嵌套杂凑的形式,输出为本时段的数据凭证值。

具体而言,步骤1:采集程序代码页完整性度量:本步骤可得到可信私有云平台执行数据采集操作时关键代码运行的安全状态,保证后续通过可信性验证的数据都是在可信执行环境中采集得到的。

完整性度量是tpm的功能之一,实际上是使用密码杂凑算法对被度量对象计算其杂凑值的过程。本发明中杂凑运算的输入是采集数据程序所在的代码页,输出的杂凑值是该代码页的完整性度量值,tpm将度量值记入指定的pcr中,记入的方法是:新pcr值=杂凑密码算法(原pcr值||度量值)。平台执行完整性度量操作时应把度量过程信息记录到平台事件日志中,内容包括:度量者信息、被度量者信息、原pcr值、度量值、新pcr值、完成时间。每次私有云执行数据采集操作前,内嵌的tpm便会执行一次上述操作,生成关键程序代码页的pcr值和度量日志,作为数据打包操作的输入之一。

步骤2:物联网设备硬件指纹获取:本发明采用基于存储的puf(如srampuf)实现物联网设备硬件身份的认证方案。通过利用生产制造过程中的变化差异造成sram内部对称单元参数的不匹配,在上电之后,sram节点的双稳态单元进入一个不稳定状态,并在不稳定状态中不断震荡回到0或者1稳态,得到相应的响应。物联网设备每次向私有云传输数据前,从于ttp处注册的crps中选取一对,向内部自测试电路输入激励c,得到puf的响应r。每一硬件设备都依赖于该设备内嵌的puf生成唯一的身份标识码进行身份认证,身份标识码(puf的挑战-响应对)随数据一起上传至私有云,为后续数据可信性验证准备条件。

步骤3:数据解封与封装:私有云在收到物联网设备发送的身份认证信息和传感器记录数据后,要将其和之前收集的数据进行压缩打包处理。为保证之前生成的数据压缩值的安全性,本发明使用数据封装及解封技术。数据封装及解封操作是将关键数据与特定的平台状态(pcr值)及可信平台模块绑定在一起,使得数据不仅绑定于一个可信平台模块,同时通过pcr绑定于一种平台状态。

例如,在第1个时段内的第i个子时段,生成hi就要先对(i-1)时段生成的hi-1进行解封,解封操作具体的步骤为:

(1)从指定pcr读取第(i-1)个子时段封装生成的hi-1:

hi-1||pcr_valuei-1||tpm_proof=decrypt(key,sealeddatai-1);

(2)tpm比对当时pcr值是否与解密出的pcr_value相同;

(3)tpm比对解密出的tpm_proof是否与内部存储的数值相同;

(4)若比对相同,则输出hi-1。

其中,tpm_proof是tpm唯一性标识。以hi-1和其余相关数据作为输入,执行数据打包操作,生成第i个时段的数据凭证hi,并对hi执行数据封装操作,用以保证i至(i+1)时段内数据凭证的安全存储,即执行如下操作:

sealeddatai=encrypt(key,(hi||pcr_valuei||tpm_proof))。

步骤4:数据凭证生成:按照附图3的数据结构计算每个时段对应的数据凭证cre_datai(i=1,2,...,n)。设定每个时段内有n个子时段。以第1个时段的第i个子时段生成的hi为例:

hi=h(mi||ti||pcr_logi||pcr_valuei||ci||ri||hi-1)(i=1,2,...,n),

即将ti时刻上传至私有云平台的物联网设备数据、实时时间戳、采集程序运行时的完整性度量日志与pcr值、物联网设备puf的输入激励和输出响应和第(i-1)个子时段生成hi-1链接,并进行杂凑运算。hi-1(其中i=2,3,...,n)必须经数据解封操作后才可读出,这样保证第i个子时段前的数据凭证未被篡改。n个子时段后,生成第一个时段的数据凭证hn(也即cre_data1)。

进一步地,在本发明的一个实施例中,数据上传模块300具体用于:通过tpm对数据上传至区块链的脚本程序代码页进行完整性度量,生成对应的度量日志和pcr值;输入任意一时间段的数据凭证、时间戳、对上传程序进行完整性度量生成的度量日志及度量值,并执行链接和杂凑操作后得到的输出值为任意一时段的数据区块凭证,并在建立起的tee中,上传脚本通过链上公钥地址发送包含数据区块凭证的交易,使得交易打包上链后被永久地记录在本系统的联盟链上。

可以理解的是,如图2所示,数据上传模块300,具体包括:

步骤1:上传程序代码页完整性度量:私有云平台内嵌的tpm对数据上传至区块链的脚本程序代码页进行完整性度量,生成对应的度量日志和pcr值,用于后续对上传过程可信性的验证。

步骤2:数据区块凭证的生成与上传:数据区块凭证是最终被记录在区块链上的凭证。输入某一时间段的数据凭证、时间戳、对上传程序进行完整性度量生成的度量日志及度量值,执行链接和杂凑操作后得到的输出值是这一时段的数据区块凭证。之后在建立起的tee中,上传脚本通过的链上公钥地址发送包含数据区块凭证的交易,交易打包上链后被永久地记录在本系统的联盟链上。

具体而言,步骤1:上传程序代码页完整性度量:假设用户端共上传n个数据区块凭证,私有云平台内嵌的tpm对数据上传至区块链的脚本程序代码页进行完整性度量,生成关于数据上传脚本的度量日志pcr_logj和pcr_valuej(j=1,2,...,n),后续数据可信性环节可根据这两种信息确定上传过程的可信性。

步骤2:数据区块凭证的生成与上传:数据区块凭证是最终被记录在区块链上的凭证,其数据结构为:

cre_blockj=h(tj||pcr_logj||pcr_valuej||cre_dataj)(j=1,2,...,n),

cre_blockj为将tj时刻的时间戳、可信私有云平台对上传脚本程序代码页执行完整性度量操作后生成的度量日志、pcr值和第j个时段生成的cre_dataj(j=1,2,...,n)链接并进行杂凑运算后生成的值。之后在建立起的tee中,上传脚本通过链上公钥地址发送包含数据区块凭证的交易(如图4所示,)至交易池等待矿工打包。矿工完成工作量证明后生成包含该交易的区块并进行广播,在有足够多的区块链接在此区块后时,可认为数据交易凭证被永久地记录在区块链上。

需要说明的是,附图4中,(1)nonce代表区块编号;(2)以太坊中发布交易、执行调用合约函数等操作都需要消耗一定费用,用gas为单位进行计数。gaslimit为单个情况允许的最多gas总量,gasprice为设置的gas价格,一般以gwei(1eth=1000000000gwei)为单位;(3)recipient为交易的收款账户,该交易属于以太坊交易中的messagecalltransaction类型,故该值是发起记录数据区块凭证交易的用户本身;(4)value为转账金额,因该发明所用的交易只为了进行数据记录,故值为0;(5)v,r,s为矿工进行ecdsa签名所必需的参数;(6)data为数据区块凭证,区块被打包上链后便被永久记录储存。

进一步地,在本发明的一个实施例中,数据可信性验证模块400具体以用于:通过dcc公布所需物联网设备数据的类型;根据dcc公布的数据需求获取原始数据对应的数据区块凭证所在的区块号,并将区块号和原始数据一同发送至dcc;根据反馈得到的区块号追溯对应的交易及数据区块凭证,并在ttp的协助下得到有效区块的编号,进而计算有效区块的数据区块凭证验证值,并上传至系统数据酬劳支付模块的对应接口。

可以理解的是,如图2所示,数据可信性验证模块400具体包括:

步骤1:dcc公布数据需求:dcc公布所需物联网设备数据的类型,如设备类型、数据含义类型等。

步骤2:用户反馈区块号并发送原始数据:用户根据dcc公布的数据需求找出符合要求的原始数据对应的数据区块凭证所在的区块号,并将区块号和原始数据一同发送至dcc。

步骤3:有效区块的数据区块凭证验证值生成:dcc根据反馈得到的区块号追溯对应的交易及数据区块凭证,并在ttp的协助下得到有效区块的编号,其中有效区块是指所对应的数据区块凭证是由有认证硬件身份的物联网设备上传,并在tee中执行采集、存储、打包、上传操作所得。dcc根据有效区块编号、用户所上传原始数据计算按照本发明所述的方法计算有效区块的数据区块凭证验证值,并在区块链支付平台接口处输入有效区块的数据区块凭证验证值。

具体而言,步骤1:dcc公布数据需求:dcc通过建立区块链上智能合约的条款内容来公布期望购买的数据类型。dcc发布智能合约的公钥地址是公开的,可以通过广告、官网公告的方式告诉用户,只有用户比对智能合约的发布者公钥地址和公布的账户地址相同时,用户才会执行后续如反馈区块编号等操作。

步骤2:用户反馈区块号并发送原始数据:用户根据dcc公布的数据需求找出符合要求的原始数据对应的数据区块凭证所在的区块号(假设为1,...,n),并将区块号和原始数据一同发送至dcc。原始数据包含:

(1)传感器测量数据:m={m1,...,mn;...;m(n-1)n,...,mnn};

(2)时间戳:t1={t1,...,tn;...;t(n-1)n,...,tnn}和t2={ta,...,ta+n};

(3)物联网设备puf挑战-响应集:

c={c1,...,cn;...;c(n-1)n,...,cnn}和r={r1,...,rn;...;r(n-1)n,...,rnn};

(4)采集程序完整性度量日志:

log1={pcr_log1,...,pcr_logn;...;pcr_log(n-1)n,...,pcr_lognn};

(5)采集程序完整性度量值:

pcr1={pcr_value1,...,pcr_valuen;...;pcr_value(n-1)n,...,pcr_valuenn};

(6)凭证上传程序完整性度量日志:log2={pcr_loga,...,pcr_loga+n};

(7)凭证上传程序完整性度量值:pcr2={pcr_valuea,...,pcr_valuea+n}。

步骤3:有效区块的数据区块凭证验证值生成:dcc根据用户提交的区块号追溯1,...,n区块中所记录的数据区块凭证值。dcc将原始数据中的c,r,log1,pcr1,log2,pcr2发送给ttp。ttp根据收到的puf激励c,查询注册过的对应的响应r值,若注册的响应和收到的响应两者的汉明距离小于阈值ε,则物联网节点的身份认证通过。对于采集程序和凭证上传程序的完整性度量值和度量日志,ttp通过分析完整性度量事件日志信息判断pcr值是否来自正确的度量过程,之后对pcr的值与注册的平台完整性基准值进行比较,若相同,则表明发送数据的私有云平台在执行相关操作时处于可信状态。若以上验证均通过,ttp则认为该区块对应的数据是可信的,ttp将这些有效区块的编号发送给dcc。dcc使用用户上传数据按照本发明所述方法计算有效区块的数据区块凭证验证值,并通过智能合约接口公开、永久地记录在区块链上。

进一步地,在本发明的一个实施例中,数据酬劳支付模块500进一步用于根据区块链智能合约给dcc的接口输入值得到有效区块的数据区块凭证验证值和有效区块编号,合约自动追溯链上对应数据区块凭证记录值并进行比对,并根据验证成功的数据区块凭证个数,智能合约不受第三方依赖、自动地向用户支付数据酬劳。

可以理解的是,如图2所示,区块链上的智能合约根据dcc输入的有效区块的数据区块凭证验证值得到有效区块编号,合约自动追溯链上对应数据区块凭证记录值并进行比对,相同则证明用户上传数据时平台的状态是可信的且传感器数据未经篡改,反之则证明数据无效。根据验证成功的数据区块凭证个数,智能合约不受第三方依赖、自动地向用户支付数据酬劳。

具体而言,数据酬劳支付模块500位于可信大数据采集交易系统的以太坊智能合约端,智能合约由dcc发布,分别留给用户和dcc端不同的接口,dcc和用户调用合约的操作通过以太坊提供的web3模块实现,所有对合约的调用操作最终都会以交易的形式进入交易池,被打包上链的操作被公开、永久地记录在区块链上。dcc被允许在智能合约接口输入有效区块的数据区块凭证验证值和对应用户的公钥地址,合约自动追溯相关区块记录的数据区块凭证,根据比对相同的区块数目自动向用户公钥地址支付对应的数据酬劳,合约支付操作以交易形式进入交易池等待打包,矿工完成工作量证明后生成包含该交易的区块并进行广播,在有足够多的区块链接在此区块后时,可认为数据交易凭证被永久地记录在区块链上,至此支付完成。

综上,本发明实施例提供一种结合puf技术、可信计算技术、区块链技术的可信大数据采集交易系统,可用于在保证数据可信性和交易公平性前提下,大规模物联网个人设备的数据孤岛融合和交易,并保护个人身份隐私不被泄露,其优点和功效是:

1)本发明实施例将puf技术、可信计算技术、区块链技术结合,puf确保所采集数据来自被认证的硬件设备;可信平台模块保证数据采集、存储、上传操作的安全;区块链生成防篡改数据区块凭证记录账本。该系统确保了采集、存储、打包、上传的全链路可信。

2)本发明实施例使用直接匿名证明对用户链上公钥地址进行隐私保护,dcc只能证明与其进行数据交易的链上账户的确和一个内嵌合法tpm的私有云平台绑定,但不能得到关于私有云平台有效性外的其他任何信息,从而保护了用户端的隐私。

3)基于区块链支持智能合约功能的去中心性和自动化特点,该系统保证了数酬劳的公平、透明、自动支付,解决了用户的一大担忧。

根据本发明实施例提出的基于区块链和可信计算平台的大数据采集交易系统,通过对数据的采集、存储、打包、上传操作实施全方位的监督和保护,实现了数据的全链路可信,使用直接匿名证明的方法使得dcc在认证用户链上公钥地址的有效性时保护了用户隐私;并且,基于区块链智能合约去中心化和自动化的特点,保证数据酬劳支付的公开透明,从而在一定程度上调和了个人隐私保护和大数据采集之间的矛盾,并确保了数据源的可信性,并具有实用性、简单易实现。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

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