用于分布式分类账中数据机密性的系统和设备的制作方法

文档序号:20702635发布日期:2020-05-12 15:56阅读:200来源:国知局
用于分布式分类账中数据机密性的系统和设备的制作方法

相关申请的交叉引用

本申请要求2018年11月2日提交的题为“用于分布式分类账中数据机密性的系统和设备(systemandapparatusfordataconfidentialityindistributedledger)”的先前提交的美国临时专利申请第62/754,678号的权益和优先权,该临时专利申请通过全文引用的方式特此并入。

本申请涉及区块链,并且更具体地涉及用于维护动态数据(交易)的分布式分类账(ledger)。



背景技术:

区块链是一项起源于加密货币领域的技术,但其使用可延伸到从质量保证到供应链和金融部门的许多其他领域。区块链由分布式分类账组成,该分布式分类账本质上是位于不同节点上的数据库。通常,分类账是一系列序列区块。每个节点都维护分布式分类账的副本,以确保数据完整性、可审计性、冗余度等。

构成分布式分类账的区块每个都包含记录,也称为操作或交易。交易并非由中央机构来分发,而是由节点构成。通常,在由指定数量的节点确证或“接受”之后,将交易输入分类账中。因此,每个节点可独立地根据经确证的交易来构建分类账,使得所有节点到达相同的分类账。通过区块链技术避免了传统上由律师、银行家、公证人等引起的对分类账内容的信任成本。因此,区块链为想要交换商品或服务的两个实体之间的“智能合约”提供了良好的平台。

通过设计,分布式分类账是透明的。换句话说,每个参与节点都可查看和验证写入分类账的所有内容。在区块链的一些使用情况中,这种透明度是期望的。但是,这妨碍了将区块链用于机密信息。

附图说明

通过结合附图参考以下详细描述,本文件的前述方面和许多附带优点将变得更容易理解,其中除非另有指定,否则贯穿各个视图,相似的附图标记指代相似的部分。

图1是根据一些实施例的用于将记录存储在分布式分类账或区块链中的示例性系统的示意性框图。

图2是根据一些实施例的分布式分类账或区块链的第二视图。

图3是根据一些实施例的分布式分类账或区块链基础设施的简化图。

图4是根据一些实施例的其中现有节点发起交易的系统的简化图。

图5是根据一些实施例的分布式分类账或区块链系统的简化图。

图6是根据一些实施例的用于分布式分类账中的数据机密性的系统的简化图。

图7是根据一些实施例的其中新节点加入节点网络(诸如图3的区块链基础设施)的示意图。

图8是根据一些实施例的示出用于由节点向分布式分类账发送交易的操作的示意图。

图9是根据一些实施例的示出由图6的用于数据机密性的系统使用的加密的交易的元素的简化框图。

图10是根据一些实施例的示出图6的用于分布式分类账中的数据机密性的系统的交易处理器的操作的示意图。

图11是根据一些实施例的示出作为图6的用于分布式分类账中的数据机密性的系统的一部分,在对交易执行业务逻辑之后读取或写入数据的操作的流程图。

图12是根据一些实施例的示出一个示例的示意图,在该示例中,业务逻辑读取或写入数据以支持交易处理,作为图6的用于分布式分类账中的数据机密性的系统的一部分。

图13是根据一些实施例的示出通过用于分布式分类账中的数据机密性的系统支持加密的读取请求的操作的流程图。

具体实施方式

根据本文描述的实施例,公开了一种用于分布式分类账中的数据机密性的系统和设备。该系统和设备保留了分布式分类账的质量,诸如透明度、完整性和冗余度,同时还提供了以前在分布式分类账中不可获得的机密性、可扩展性和安全性。该系统包括数据机密性模块,该数据机密性模块利用可信执行环境进行交易处理和密钥同步。访问分布式分类账的设备提供加入网络的新节点,通过现有节点向分类账发送交易,使用可信执行环境安全地处理交易,安全传输到逻辑层以应用业务逻辑,从本地存储设备读取数据并将数据写入本地存储设备,以及读取加密的交易。

在以下详细描述中,参照了附图,附图通过图示的方式示出了其中可实践本文描述的主题的特定实施例。然而,应该理解,在阅读本公开后,其他实施例对于本领域的技术人员将变得显而易见。在其他情况下,未详细示出或描述公知的结构、材料或操作以避免模糊本公开的各个方面。因此,以下详细描述不应以限制意义进行解释,因为主题的范围由权利要求限定。

区块链是在计算机(称为节点)的对等(p2p)网络上共享的分布式分类账或数据库。通过分散用于验证数据库的计算机,区块链缺乏对数据库的中央管辖权。通过因特网、局域网(lan)、广域网(wan)等连接的p2p网络,提供通信并促进节点之间的信息交换。

介绍性的图1至图4提供本文所述的用于数据机密性的系统和设备的上下文,该系统和设备在图5中介绍并在下面的图6至图14中进一步描述和说明。

图1是根据一些实施例的用于将记录添加到区块链的示例性系统100的示意性框图。记录102包括交易104,该交易104可以是双方(以a方和b方的形式给出)之间达成的各种协议中的任一种。记录102还包括a方的数字签名106和b方的数字签名108。交易104可包括但不限于数字货币的转移,诸如在支付商品或服务、在a方和b方之间的合约等中的数字货币的转移。系统100的每个记录102包括交易104和a方和b方分别的数字签名106和108。

节点的p2p网络在记录之前独立地查看和验证包含a方和b方之间的交易104的记录102,因此交易可成为区块链120的一部分。节点执行该查看和验证操作110的方式超出了本公开的范围,并且可根据区块链120的应用而变化。一旦节点确认了记录102的真实性,该记录就成为区块112中的记录集合的一部分。除了多个记录102之外,区块112还包含区块链120的先前区块的散列114,以及区块的当前内容的散列116。对区块112的内容的任何改变都将引起散列116改变。这被设计成保护区块112内的记录102,并且因此保护记录内的交易104。

在成为区块链120的一部分之前,区块112要经历共识算法118。对于使用区块链技术的加密货币比特币,共识算法被称为工作证明,其使用一些节点执行的复杂数学运算。存在许多其他类型的共识算法,诸如权益证明(proofofstake)、消逝时间证明(poet)、权威证明(poa)、能力证明(proofofcapacity)、活动证明(proofofactivity)、燃烧证明(proofofburn)、委托权益证明(dpos)、拜占庭容错(byzantinefaulttolerance)、重要性证明(proofofimportance)和有向非循环图(dag)。在比特币的情况下,工作证明减慢了区块链接受区块的速度。一旦区块112通过大多数节点进行的共识算法118,则将区块添加到区块链120。

创世区块(genesisblock)122不包括先前区块的散列,但是区块链120的其他区块确实包括将区块链接到先前区块的散列。这些链接散列和共识算法的组合有助于使区块链安全。

图2是根据一些实施例的区块链200的另一视图。区块链200由多个区块202a-202d(统称为“区块202”)组成,每个区块包括相应的标题(header)204a-204d(统称为“标题”)、证明206a-206d(统称为“证明206”)和消息208a-208d(统称为“消息208”)。消息208进一步分别包括索引210a-210d(统称为“索引210”)、认证记录212a-212d(统称为“认证记录212”)和其他信息214a-214d(统称为“其他信息214”)。区块202两侧的省略号指示区块链200可由未示出的更多区块构成。

相应的标题204将每个区块202标识为与另一个区块不同。标题204可包括由散列函数生成的散列值。散列函数是可用于将任意大小的输入数据映射到固定大小的散列值的任何函数。因此,图1的区块112中的先前区块的散列114和当前内容的散列116是相同的长度。散列函数的另一特性是极难找到以相同散列结束的另一个区块,因此伪造先前区块是不太可能的。作为一个示例,在图2中,区块202b的标题204b可包括区块202a的散列以及其自己的区块(诸如merkel根)内的消息208b的散列和时间戳。

如关于图1所描述的,待添加到区块链的区块满足共识算法(consensusalgorithm)。在图2的示例中,每个区块202包括各自的证明206(其是工作证明的简称)。进一步地,在一些实施例中,相应区块202的标题204包括被选择以确保标题满足工作证明条件的随机数。作为一个示例,一旦标题的散列落入预定的值的范围内,就可满足工作证明条件。或者,标题可在授权用户的密码密钥内进行数字签名,其中数字签名被包括在标题中。

相应区块202的消息208可包括索引信息210、认证信息212和其他信息214。例如,索引信息210可包括非敏感信息,诸如用户的姓名、电话号码和电子邮件地址。对区块链中的其他区块(或区块的散列)(诸如与同一用户相关联的那些区块)的引用也可以是索引信息的一部分。可加密或以其他方式模糊索引信息,以便限制谁能够查看索引信息210。或者索引信息可包括用户的个人信息的散列(例如,姓名、电话号码、电子邮件地址)。

在一些实施例中,相应区块202的消息208还包括认证记录212。认证记录212可包括使得能够随后审计交易的信息。例如,假设区块链200是仅可由精选群体(例如证券交易所)访问的私有区块链。认证记录可标识被允许访问区块链200的计算系统。认证记录212还可标识认证请求的目的,诸如创建与证券交易所的关系,诸如经纪关系。认证记录212还可包括认证请求的结果,诸如是否实现了认证请求的目的。认证记录212还可包括与认证请求有关的信息,诸如与认证请求相关联的附加联系信息、金融信息、人口统计信息等。与索引信息210类似,可对认证信息212进行加密,诸如利用密码密钥进行加密。此前未描述的其他信息214也可以是区块202的相应消息208的一部分。

密码密钥可用于加密区块202的元素,包括消息208。例如,密码密钥可与授权用户或系统相关联。对应的密码密钥可使加密的消息元素能够解密。例如,区块中的消息可用对称密钥加密,并且相同的对称密钥可用于解密加密的元素。或者,可利用私有密钥加密消息,同时使用对应的公共密钥来解密加密的消息。

图3是根据一些实施例的分布式分类账或区块链基础设施(在本文中也称为节点网络300)的简化图。如上所述,网络300由多个节点302组成,每个节点302包括分布式分类账或区块链120(图1)的副本。节点302由计算装置(诸如服务器、工作站或专用计算装置)组成。节点302互连并且可以是通信网络(诸如因特网,或专用网络,诸如局域网等)的一部分。因此,区块链120是存储在其区块内的所有交易的分布式数据库或分布式分类账。

图4是根据一些实施例的其中用户发起交易的系统400的简化图。用户402(诸如人类用户)想要与另一个用户(未示出)进行交易。用户402可经由手机、平板电脑、膝上型计算机等访问在其上加载软件的网页404或其他图形用户界面(gui)。替代地,用户402可从她的手机上的应用程序访问gui。gui使用户402能够发起交易,诸如交易104(图1)。交易可以是例如将比特币转移到另一个用户,以换取商品或由另一个用户为了用户402而执行的服务。包含交易的记录最终位于区块链120上,诸如在图1中所示。用户402通常没有意识到区块链(或更具体地,节点)在确认用户和其他用户之间的交易的真实性中的作用。

如上所述,分布式分类账或区块链是透明的。因此,分布式分类账通常不用于存储机密信息。本公开提供以安全的方式来使用区块链,使得分类账可用于存储机密信息。

例如,一种使用情况是制造飞行器的企业。这种企业可能希望与其供应商一起实施基于区块链的系统,诸如用于跟踪零件的移动。然而,让供应商能够访问传统的区块链会冒使那些供应商获取制造商的飞行器的整个材料清单(bom)的访问权的风险,其中材料清单中的一些对于该企业是机密性的。

当前的分布式分类账系统缺少可用于维护交易(诸如作为记录102的一部分被存储在区块112中,并且然后最终成为区块链120的一部分的交易104(图1))机密性的特征。维护数据机密性和访问控制的一种解决方案是省略分类账中的敏感数据,并在受保护的数据库中对其进行单独地管理。分类账可存储敏感数据对象的散列,使得能够查询受保护的数据库以检索敏感数据。然而,这种模型可能很复杂并且难以维护。进一步地,使用单独的数据库消除或至少减少了区块链的益处。

另一种解决方案可以是使用同态加密,该同态加密允许对加密的数据进行计算,或允许多方计算,该多方计算允许双方在保持输入私有的同时针对输入联合计算函数。然而,这显著增加了计算开销并且通常难以在现实应用中实施。

图5是根据一些实施例的分布式分类账或区块链的节点500的简化图。交易区块502被接收到节点500的网络同步器504中,该网络同步器504将交易区块分发到网络(诸如图3中的网络300)中的其他节点。在节点500内,网络同步器504还将交易区块发送到日志506。日志是在不同节点(诸如节点302(图3))之间分发交易的基础设施。交易执行器508将交易区块502发送到一个或多个交易处理器512进行处理。在一些实施例中,交易处理器512是可编程代码模块以确证交易。在该示例中,在交易处理器512内,业务逻辑514被应用于交易区块502。数据存储510是代表一个或多个交易处理器512的数据(密钥值对)的存储库。

图5示出了对于节点500所存在的一些威胁。第一个威胁是完整性威胁516,该完整性威胁516可涉及在将交易区块502发送到交易处理器512时不道德行为者对交易区块502的篡改。第二个威胁是机密性威胁518,其中存储在数据存储510中的密钥值对可被不道德行为者获取。

图6是根据一些实施例的用于分布式分类账中的数据机密性的系统600的简化图。系统600是诸如图3中的节点网络的节点,并且被设计为防止图5中所示的完整性威胁和机密性威胁。节点600允许加密的数据存储在分布式分类账上,同时强制执行其安全处理和访问控制。在一些实施例中,由现有节点发送的区块链交易包括用分类账密钥(lk)加密的有效负载。分类账密钥(lk)在分布式分类账的节点之间共享,并使用可信执行环境(tee)(诸如软件保护扩展(softwareguardextensions)(sgx))进行保护。tee通过获取应用程序的敏感部分并允许应用程序在cpu强化的飞地内运行,为系统提供硬件辅助安全性。

节点600具有节点500的元素,包括由网络同步器504接收和分发的交易区块502、日志506、交易执行器508和数据存储510。另外,节点600包括新数据机密性模块602,在一些实施例中,该新数据机密性模块602包括两个tee飞地(enclave)604和616。这些飞地是存储器的隔离环境或专用区域,其被保护以免被在平台(包括操作系统)上运行的程序和应用程序访问。在其他实施例中,新数据机密性模块602使用单一tee飞地。在其他实施例中,新数据机密性模块602包括除sgx之外的其他tee实施方案。

在一些实施例中,分布式分类账的节点允许访问加密的数据,同时强制执行访问控制策略。分类账节点可以是例如图3的互连节点302,每个节点302保持区块链120。区块链由数据历史组成(链中的每个区块基本上是数据变化)。使用比特币作为示例,数据变化可以是例如将10比特币从用户a移动到用户b,以及本地数据库中的数据的当前状态(a具有40比特币,b具有20比特币)。在一些实施例中,当前数据状态被访问并修改为密钥对(id和数据),因此可存储为{(a,40),(b,20)}或{(用户_余额,a=40:b=20)},或然而业务逻辑决定保存它。在其他分类账中,可像结构化查询语言(sql)面向表的数据库那样组织本地数据库。区块链“智能合约”在基于sgx的隔离环境中执行,该环境允许将智能合约逻辑应用于节点数据,无论其形式如何。

在一些实施例中,用于分布式分类账中的数据机密性的系统600保留了分布式分类账或区块链的质量,包括透明度、冗余度和完整性。进一步地,在一些实施例中,系统600是机密系统,其为迄今未开发的用例开放了区块链技术。在一些实施例中,该系统是可扩展的,其依赖于现有的分布式分类账机制并且不引入新的基础设施元件。系统600还通过加强端到端过程来提供安全性。

在一些实施例中,用于分布式分类账中的数据机密性的系统600在包括分布式分类账(dl)或区块链基础设施的系统中实施,该分布式分类账或区块链基础设施提供1)对分类账的共同状态达成一致的多节点系统;2)用于在系统的不同节点(日志)之间分发交易的基础设施;3)用于确证交易的可编程代码模块(交易处理器);和4)允许交易处理器存储和检索数据(密钥值对)的数据存储件。

节点600通过在tee飞地604内运行交易处理器606来增强分布式分类账,从而保护其代码和数据免受底层系统的影响。在一些实施例中,交易处理器606由以下组成:1)访问控制逻辑608,其维护和强制执行访问控制策略;2)业务逻辑612,其执行区块链智能合约的机密实施方案;和密码库614,其通过使用分类账密钥(未示出)支持密码操作。进一步地,在一些实施例中,新数据机密性模块602包括密钥同步器618。虽然在该示例中密钥同步器618嵌入在其自己的tee飞地616内,但是替代地,密钥同步器618可与访问控制608、业务逻辑612和密码库614一起作为tee飞地604的一部分。在一些实施例中,密钥同步器618根据访问控制逻辑608确保分类账密钥的安全传送。在一些实施例中,访问控制逻辑608维护列表610,该列表610管控哪些操作可由各个参与者完成,并且参与者可访问哪些数据。

在一些实施例中,节点600还使用分类账密钥(未示出)。分类账密钥是区块链操作(诸如解密交易、加密交易,和解密来自/去往分类账数据存储件的数据、加密现有节点请求的结果等)中使用的一组密码密钥。

为了断定交易是否有效,一种方法是在时间上深度回溯并查看直到现在发生的分布式分类账或区块链的所有交易。例如,在比特币的情况下,用户被给予一些比特币,并且该交易被添加到区块链的区块中。用户可让比特币成为她不用的财产。但是,在将来的某个时间,用户可能希望将她的比特币转移给另一个用户,作为他们之间交易的一部分。为了使系统断定将比特币从该用户移动到新用户的这种交易是否有效,系统跟踪比特币,即找到给予原始用户她的比特币的交易。并且,随着时间的推移,那些比特币可从用户移动到用户。为了简化逻辑的执行并避免系统不得不浏览区块链的整个历史,分类账为将帮助它进行计算的逻辑提供了一些基础设施。

因为逻辑可从一种使用情况到另一种使用情况显著变化,所以通用分布式分类账可向智能合约分配密钥值对,这意味着智能合约使用密钥来存储和检索数据。例如,分类账可将智能合约的密钥值对存储在分类账中。随后,可检索信息以断定交易是否有效。因此,作为一般事项,可使用许多不同的地址。从分类账的角度来看,数据称为二进制大对象(blob)。

因此,系统可避免浏览区块链的历史,就其本质而言,随着时间的推移,该历史随着这种记录保留而变得越来越长。例如,在比特币的情况下,将未花费的交易保留在列表中。每当发起新交易时,以比特币形式进行的交易指定其输入。用户获取比特币的位置将在列表中。新交易意味着比特币将从未花费的交易列表中移除,并且比特币的接收方用户将被添加到未花费的交易列表中。该列表的构思是为了简化确定交易是否有效。

在一些实施例中,业务逻辑514实现区块链智能合约的机密实施方案。业务逻辑514在交易处理器606中运行智能合约,该交易处理器606在安全tee飞地604内。对机密信息的这种保护可具有许多应用。例如,证券交易所正与选定的银行合作,以实施关于银行间股票的借出和借入的一些业务逻辑。作为竞争对手,银行不希望其竞争者知道他们在寻求什么或他们提供什么。但是,作为一个团体,这些相同的银行确实希望共享并具有共同市场,以用于借入和借出安全性。因为一切都在tee中执行,所以图6的新数据机密性模块602的基础设施将允许每个银行发送或接收其他银行无法看到的交易,断定交易是否有效,确定作为交易一部分的资源是否可用,并获取结果,而不会将敏感信息暴露给竞争对手银行。因此,该示例中的智能合约为是否存在足够的股票借出,借入是否有效,实体是否试图借出其拥有的股票等。为此,将不同类型的信息存储在数据存储件中的智能合约之外。

在该示例中,业务逻辑智能合约将涉及如何处理涉及股票借入和借出的交易。待存储的数据将是每个银行具有的股票数量、两个银行之间的合约中有多少股票等,其中这种机密信息被隐藏以免暴露给竞争对手银行。在图6中,数据存储510在tee外部。因此,在存储到那里之前,数据将被加密。

图7至图12是根据一些实施例的示出设备的操作的图示,该设备实施图6的用于分布式分类账中的数据机密性的系统600。应该注意,这些图示是参考流程图的操作或“框”来描述的。不应将这些“框”混淆或解释为意指区块链的区块(例如,区块112等)。

图7描绘示意性操作700,其中诸如节点706的新节点加入网络702,诸如网络300(图3),该网络702包括现有节点704。在该示例中,现有节点704和新节点706各自包括单一tee飞地708,该单一tee飞地708包括交易处理器606和密钥同步器618。

新节点706期望加入网络702,这由加入请求(框710)指示。新节点与已经是网络一部分的现有节点建立安全信道(框712)。使用远程认证或类似的安全机制,新节点706向现有节点704证明其身份。远程认证是一种方法,通过该方法,新节点706向远程服务器(在这种情况下,其为已经存在的节点704)认证其硬件和软件配置。现有节点用于确定是否信任新节点的完整性。远程认证超出了本公开的范围。在继续进行之前,向现有节点704证明新节点706的身份(框714)。

一旦被证明,新节点706就能够获取分类账密钥(框716)。在一些实施例中,分类账密钥在本地加密存储。操作712、714和716在tee的密封安全性环境下进行。在一些实施例中,分类账密钥保存在新节点706的数据存储件中。在其他实施例中,分类账密钥保存在新节点的本地磁盘驱动器上。在任一种情况下,由于分类账密钥被加密和签名,因此它们受到保护而免于修改。用于本地加密和存储分类账密钥的功能由密钥同步器618执行,该密钥同步器618也密封在tee飞地内。

图8是根据一些实施例的示出用于将交易发送到分布式分类账的操作800的示意图。例如,交易804可由图4的用户402发起。在该示例中,图7的新节点706处理交易804,但是可使用区块链的任何节点。新节点706希望将交易发送到分布式分类账或区块链。新节点使用在加入网络(图7)时获取的分类账密钥802来加密交易(框810)。在一些实施例中,通过生成一次性对称密钥(例如,使用diffiehellman技术)以与分类账交换对称密钥来完成加密,但是使用分类账的已公布的公共密钥也将可行。diffiehellman(最早的公共密钥协议中的一种)是一种通过公共信道安全地交换密码密钥的方法。一旦加密,分类账将加密的交易806分发到网络的节点(框812)以进行处理。

图9是根据一些实施例的示出加密的交易806的内容的框图900。加密的交易由以下组成:1)加密的数据902;2)一次性密钥的公共部分904,其由分类账用于生成一次性对称密钥并解密数据;3)现有节点密钥的公共部分906,其标识现有节点,使访问控制层能够检查其许可权,和4)现有节点数字签名908,其由分类账用于验证该数据确实来自现有节点。

图10是根据一些实施例的示出交易处理器(诸如图6的交易处理器606)的操作1000的示意图。回想一下图8,分类账将加密的交易分发到节点网络的节点(框812)。在一些实施例中,当交易804到达tee飞地708内部的交易处理器606的访问控制608时(框1002),访问控制层对请求(交易)进行审查,确保交易来自已知的来源(新节点706)。如所描述的,交易被加密,但它们也被数字签名(图9)。当交易被数字签名时,交易的有效负载用于计算散列值,并且现有节点的私有密钥用于对散列进行签名。然后,现有节点能够提供其公共密钥和交易的散列以证明其身份。这是交易处理器606的访问控制单元608如何知道交易来自已知来源的方式。

访问控制单元还管理访问控制列表610(图6)。在一些实施例中,访问控制列表610管控各个参与者(现有节点)可完成哪些操作以及参与者可访问哪些数据。这些操作由访问控制层608管理。在一些实施例中,访问控制列表610由预定义的交易组成。在其他实施例中,访问控制列表610在运行时使用专用交易构建。分类账的信任根是交易处理器的签名者或程序员。因为交易处理器的签名者可修改交易处理器,所以签名者是信任根。

一旦交易806通过访问控制层(框1002),就发送交易以通过密码库进行解密(框1004)。在一些实施例中,密码库使用分类账密钥802来解密交易的内容,从而产生交易的明文版本1010(框1006)。即使交易现在被解密,但它仍然是tee内部的交易处理器606的一部分,并且因此免于完整性威胁,诸如图5的完整性威胁516。

然后,将解密的交易1010作为明文版本发送到逻辑层(框1008),其中应用业务逻辑。在上述证券交易所的示例中,假设银行想要以价格z购买10股股票w。业务逻辑将是决定卖方是否实际拥有银行想要购买的股票w的程序。该程序还将确定卖方是否实际上以价格z提供股票w。在一些实施例中,除了交易在tee硬件内部受到安全保护之外,业务逻辑的应用与遗留系统如何实施逻辑类似。

图11是根据一些实施例的示出由于将业务逻辑应用于交易(图10)而读取或写入数据的操作1100的流程图。为了从本地数据存储读取数据或将数据写入本地数据存储(该本地数据存储在tee飞地外部)(框1102),逻辑层将请求传递到访问控制层(框1104),该访问控制层仍然在交易处理器606的tee飞地604内。在访问控制层,检查请求的访问权限(框1106)。当授予访问权限时,为逻辑层读取并解密加密的数据(框1108)。待存储的明文数据被加密(框1110)并被发送到分类账基础设施以进行存储(框1112)。

图12是根据一些实施例的示出如何执行由业务逻辑读取或写入数据的示意图1200。在该示例中,简单的交易说明了操作:将$10从用户a移动到用户b。在图示1200的左侧(其是节点网络的节点中的一个),示出了在tee飞地1230保护范围之外的数据存储510,并且在右侧是业务逻辑612,其在tee飞地内部。在中心示出访问控制和密码库1232,该访问控制和密码库1232被示出为单个单元。

业务逻辑612具有交易的明文版本:将$10从用户a移动到用户b(框1202)。在完成该交易之前,业务逻辑需要获取用户a的账户和用户b的账户的余额。因此,对用户a的账户余额进行读取请求(框1204)。框1232的访问控制部验证命令是合法的并且现有节点已完成对交易的许可(框1206)。从数据存储获取仍为加密形式的用户a的账户余额的内容(框1208)。框1232的密码库解密用户a的账户余额(框1210),并将其作为明文版本:a:$50发送到业务逻辑612(框1212)。

类似地,业务逻辑612通过发出读取请求:b的余额来获取用户b的账户余额(框1214)。同样,访问控制单元验证命令是合法的并且现有节点已完成对交易的许可(框1216),使得从数据存储获取仍然呈加密形式的用户b的账户余额的内容(框1218)。密码库解密余额(框1220),并且业务逻辑可利用用户b的账户余额的明文版本:b:$20(框1222)。现在,业务逻辑612具有执行交易:将$10从a移动到b所需的内容,结果为:a:$40;b:$30(框1224)。将用户a的账户和用户b的账户的更新余额加密(框1226),并且使数据存储更新以反映用户b的新余额(框1228)和用户a的新余额(框1230)。

数据存储510中的数据被加密,并且因此避免了诸如图5中的机密性威胁。进一步地,因为在tee内解密业务逻辑所应用于的数据,所以也避免了诸如图5中的完整性威胁。因此,在一些实施例中,用于分布式分类账中的数据机密性的系统和方法提供了免受机密性威胁和完整性威胁的保护。

图13是根据一些实施例的示出用于支持加密的读取请求的操作1300的流程图。在一些实施例中,为了支持读取加密的交易或状态(数据存储的当前状态)(框1302),交易处理器支持来自现有节点的加密的读取请求(框1304)。在一些实施例中,与任何交易类似地来处理请求(通过访问控制层等)(框1306),其中对请求方的响应被加密(框1308)。在一些实施例中,加密使用一次性对称密钥和dh用于密钥交换。在其他实施例中,请求方(例如,现有节点)的公共密钥用于加密。还利用分类账的签名密钥对响应进行签名,以便现有节点可验证应答来自分类账(框1310)。

例如,现有节点想要知道a当前有多少钱。节点无法直接从数据存储中读取它,因为信息被加密。因此,现有节点将通过类似于交易中的数据(加密的请求数据、公共一次性密钥、公共现有节点、现有节点签名)来发起读取请求,并且在完成所有认证并且读取和解密数据之后,分类账将以相同的方式(加密的响应数据、公共一次性密钥、公共分类账、分类账签名)返回结果($40)。

概括地说,在第一示例中,用于分布式分类账中的数据机密性的系统和方法可通过一种设备来实施,该设备包括可信执行环境(tee)和用于存储分类账密钥的数据存储器,该可信执行环境(tee)包括处理器和耦合到处理器的存储器,该存储器包括指令,该指令在由处理器执行时,使处理器从现有节点接收加密的交易并将业务逻辑应用于该交易,该加密的交易使用分类账密钥进行加密,该加密的交易将被分发到网络的多个节点。

对于本文讨论的第一示例或任何其他示例进一步地,在第二示例中,设备的tee进一步包括用于使用分类账密钥对加密的交易进行解密的密码库,其中交易的解密版本包括交易的明文版本。

对于本文讨论的第二示例或任何其他示例进一步地,在第三示例中,将设备的业务逻辑应用于交易的明文版本。

对于本文讨论的第三示例或任何其他示例进一步地,在第四示例中,一旦应用了业务逻辑,设备的交易就变为执行的交易,并且该执行的交易被加密。

对于本文讨论的第一示例或任何其他示例进一步地,在第五示例中,设备的tee进一步包括访问控制单元,该访问控制单元用于验证允许现有节点参与交易并确认现有节点能够访问与交易相关联的数据。

对于本文讨论的第五示例或任何其他示例进一步地,在第六示例中,设备的访问控制单元进一步包括访问控制列表,以指示允许多个节点中的哪些节点参与交易。

对于本文讨论的第六示例或任何其他示例进一步地,在第七示例中,设备的访问控制列表进一步指示与交易相关的哪些数据是可访问的。

对于本文讨论的第一示例或任何其他示例进一步地,在第八示例中,设备的tee进一步包括密钥同步器,该密钥同步器用于响应于从现有节点接收到加入请求而建立与现有节点的安全连接,并且响应于现有节点证明其身份与现有节点共享分类账密钥。

对于本文讨论的第八示例或任何其他示例进一步地,在第九示例中,设备的现有节点使用远程认证来证明其身份。

对于本文讨论的第九示例或任何其他示例进一步地,在第十示例中,交易包括加密的数据;用于生成一次性对称密钥以解密数据的一次性密钥的公共部分;标识现有节点的现有节点密钥的公共部分;和用于验证加密的数据来自现有节点的签名。

在第十一示例中,用于分布式分类账中的数据机密性的系统和方法可通过一种设备来实施,该设备包括可信执行环境(tee),该可信执行环境(tee)包括处理器和耦合到处理器的存储器,该存储器包括指令,该指令在由处理器执行时,使处理器从现有节点接收加密的交易,其中使用分发到网络的多个节点的分类账密钥对交易进行加密;使用分类账密钥对加密的交易进行解密,从而产生交易的明文版本;并且将业务逻辑应用于交易的明文版本,从而产生更新的交易,其中在离开tee之前使用分类账密钥对更新的交易进行加密。

对于本文讨论的第十一示例或任何其他示例进一步地,在第十二示例中,设备的tee进一步包括用于对加密的交易进行解密的密码库。

对于本文讨论的第十一示例或任何其他示例进一步地,在第十三示例中,设备的tee进一步包括访问控制单元,该访问控制单元用于验证允许现有节点参与交易,并确认现有节点能够访问与交易相关联的数据,其中访问控制单元查阅访问控制列表以进行验证和确认。

对于本文讨论的第十一示例或任何其他示例进一步地,在第十四示例中,设备包括密钥同步器,该密钥同步器用于响应于接收到加入请求而建立与现有节点的安全连接,并且响应于现有节点证明其身份与现有节点共享分类账密钥。

在第十五示例中,用于分布式分类账中的数据机密性的系统和方法可通过包括指令的至少一种机器可读存储介质来实施,该指令在由处理器执行时,使处理器从现有节点接收加密的交易,该加密的交易将分发到网络的多个节点;在可信执行环境(tee)内对加密的交易进行解密,从而产生解密的交易;并且将业务逻辑应用于tee内部的解密的交易,从而产生更新的交易,其中更新的交易在被发送到tee外部之前被加密。

对于本文讨论的第十五示例或任何其他示例进一步地,在第十六示例中,至少一种机器可读存储介质包括进一步通过位于tee内部的密码库获取分类账密钥的指令,其中分类账密钥用于对加密的交易进行解密并且对更新的交易进行加密。

对于本文讨论的第十五示例或任何其他示例进一步地,在第十七示例中,至少一种机器可读存储介质包括以下指令:进一步通过业务逻辑发起对数据的读取请求,其中数据与解密的交易相关;从tee内部的访问控制单元接收读取请求是被许可的验证;从tee内部的密码库接收解密的数据,其中密码库从tee外部的数据存储获取数据并将该数据解密,从而产生解密的数据,其中解密的数据使得能够对解密的交易实施业务逻辑。

对于本文讨论的第十七示例或任何其他示例进一步地,在第十八示例中,至少一种机器可读存储介质包括进一步对交易的明文版本实施业务逻辑的指令。

对于本文讨论的第十五示例或任何其他示例进一步地,在第十九示例中,至少一种机器可读存储介质包括以下指令:响应于从现有节点接收到加入请求而通过tee内部的密钥同步器进一步建立与现有节点的安全连接,并且响应于现有节点证明其身份与现有节点共享分类账密钥。

对于本文讨论的第十五示例或任何其他示例进一步地,在第二十示例中,至少一种机器可读存储介质包括进一步使处理器接收加密的交易的指令,该加密的交易包括加密的数据、用于生成一次性对称密钥以解密数据的一次性密钥的公共部分、标识现有节点的现有节点密钥的公共部分,和用于验证加密的数据来自现有节点的签名。

在第二十一示例中,用于分布式分类账中的数据机密性的系统和方法可通过一种方法来实施,该方法包括从现有节点接收加密的交易,该加密的交易将被分发到网络的多个节点;在可信执行环境(tee)内将加密的交易解密,从而产生解密的交易;并且将业务逻辑应用于tee内部的解密的交易,从而产生更新的交易,其中更新的交易在被发送到tee外部之前被加密。

对于本文讨论的第二十一示例或任何其他示例进一步地,在第二十二示例中,方法进一步包括通过位于tee内部的密码库获取分类账密钥,其中分类账密钥用于对加密的交易进行解密并且对更新的交易进行加密。

对于本文讨论的第二十一示例或任何其他示例进一步地,在第二十三示例中,方法进一步包括进一步通过业务逻辑发起对数据的读取请求,其中数据与解密的交易相关;从tee内部的访问控制单元接收读取请求是获取许可的验证;并且从tee内部的密码库接收解密的数据,其中密码库从tee外部的数据存储获取数据并将该数据解密,从而产生解密的数据,其中解密的数据使得能够对解密的交易实施业务逻辑。

对于本文讨论的第二十三示例或任何其他示例进一步地,在第二十四示例中,方法进一步包括对交易的明文版本实施业务逻辑。

对于本文讨论的第二十一示例或任何其他示例进一步地,在第二十五示例中,方法进一步包括响应于从现有节点接收到加入请求而通过tee内部的密钥同步器建立与现有节点的安全连接,并且响应于现有节点证明其身份与现有节点共享分类账密钥。

对于本文讨论的第二十一示例或任何其他示例进一步地,在第二十六示例中,方法进一步包括接收加密的交易,该加密的交易包括加密的数据、用于生成一次性对称密钥以解密数据的一次性密钥的公共部分、标识现有节点的现有节点密钥的公共部分,和用于验证加密的数据来自现有节点的签名。

在第二十七示例中,用于分布式分类账中的数据机密性的系统和方法可通过包括指令的至少一种机器可读存储介质来实施,该指令在由处理器执行时,用于实施方法或实现如前述任一权利要求所要求保护的设备。

可使用表达“一个实施例”或“实施例”及其派生词来描述一些实施例。这些术语意指描述的与实施例有关的特征、结构或特点被包括在至少一个实施例中。在说明书中各处出现的短语“在一个实施例中”不一定都指代同一实施例。进一步地,可使用表达“耦合”和“连接”及其派生词来描述一些实施例。这些术语不一定旨在作为彼此的同义词。例如,可使用术语“连接”和/或“耦合”来描述一些实施例,以指示两个或更多个元件彼此直接物理或电接触。然而,术语“耦合”还可意指两个或更多个元件彼此不直接接触,但仍然彼此协作或交互。此外,可组合来自不同实施例的方面或元件。

需要强调的是,提供本公开的摘要是为了使读者快速弄清本技术公开的本质。该摘要按以下理解而提交,即它将不用于解释或限制权利要求的范围或含义。另外,在前面的具体实施方式中,在单个实施例中将各种特征分组在一起以精简本公开。该公开方法不应被解释为反映这样的意图,即所要求保护的实施例需要比每个权利要求中明确叙述更多的特征。相反,如以下权利要求所反映的,发明主题在于少于单个公开实施例的所有特征。因此,以下权利要求在此并入到具体实施方式中,其中每个权利要求自身作为单独的实施例。在所附权利要求中,术语“包括(including)”和“其中(inwhich)”分别用作相应术语“包含(comprising)”和“其中(wherein)”的简明英语等效词。此外,术语“第一”、“第二”、“第三”等仅用作标记,并不旨在对其对象施加数字要求。

以上描述的内容包括所公开的架构的示例。当然,不可能描述组件和/或方法的每个可想到的组合,但是本领域的技术人员可认识到许多进一步的组合和置换是可能的。因此,新颖的架构旨在涵盖落入所附权利要求的精神和范围内的所有此类更改、修改和变化。详细的公开现在转向提供与进一步的实施例有关的示例。以下提供的示例不旨在是限制性的。

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