CN113946864A - 一种机密信息获取方法、装置、设备及存储介质 - Google Patents
一种机密信息获取方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113946864A CN113946864A CN202111205490.5A CN202111205490A CN113946864A CN 113946864 A CN113946864 A CN 113946864A CN 202111205490 A CN202111205490 A CN 202111205490A CN 113946864 A CN113946864 A CN 113946864A
- Authority
- CN
- China
- Prior art keywords
- data
- key
- execution environment
- trusted execution
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 96
- 238000013523 data management Methods 0.000 claims abstract description 35
- 230000008569 process Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000012550 audit Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6236—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database between heterogeneous systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供了一种机密信息获取方法、装置、设备及存储介质,分布式账本技术领域。保证机密信息在分布式账本的多个节点之间安全传输。所述方法包括:从密钥注册表获取第一服务器地址;将第一服务器地址运行在可信执行环境,以使可信执行环境根据所述第一服务器地址,从数据提供节点的密钥服务器获取解密密钥;将数据获取合约和解密密钥运行在可信执行环境,以使可信执行环境根据所述解密密钥,对调用数据获取合约得到的机密数据进行解密,获得明文的机密数据;其中,机密数据是数据提供节点对本地数据的数据管理合约进行加密得到的;将数据使用合约运行在可信执行环境,以使可信执行环境对机密数据和数据使用合约进行计算,得到加密结果。
Description
技术领域
本申请涉及分布式账本技术领域,特别是涉及一种机密信息获取方法、装置、设备及存储介质。
背景技术
区块链具有去中心化、可追溯、不可抵赖等特点,区块链中的节点可以采用生成区块的方式,对数据使用细节进行存储,以便进行后续验证数据的使用情况,上述特征使得区块链技术天然契合大数据环境下的数据共享,区块链技术将原始数据、数据使用方法等全部状态记录于账本上,并全网存储达到数据和计算的可信,使得数据的持有者可以通过任何节点都从账本中查询原始数据、数据使用方法,进而保证数据使用过程可以被监督和验证。
然而大数据环境下,不同数据来源于不同的平台,基于区块链技术进行数据共享,必然会存在原始数据、密钥、运算结果等信息在多个节点之间传输,从而导致机密数据泄漏的巨大风险。
因此,如何在数据共享过程中保证信息的机密传输,是基于区块链技术进行数据共享领域亟待解决的问题。
发明内容
本申请实施例提供一种机密信息获取方法、装置、设备及存储介质,保证机密信息在分布式账本的多个节点之间安全传输。
本申请实施例第一方面提供一种机密信息获取方法,应用于分布式账本系统中的任意节点,所述方法包括:
从密钥注册表获取第一服务器地址;
将所述第一服务器地址运行在可信执行环境,以使所述可信执行环境根据所述第一服务器地址,从数据提供节点的密钥服务器获取解密密钥;
将数据获取合约和所述解密密钥运行在所述可信执行环境,以使所述可信执行环境根据所述解密密钥,对所述调用所述数据获取合约得到的机密数据进行解密,获得明文的机密数据;其中,所述机密数据是所述数据提供节点对本地数据的数据管理合约进行加密得到的;
将数据使用合约运行在所述可信执行环境,以使所述可信执行环境对所述机密数据和所述数据使用合约进行计算,得到加密结果;其中,所述数据使用合约是数据使用节点根据所述数据使用过程生成的。
可选地,所述方法还包括:
运行所述数据获取合约,以调用所述数据管理合约,获得所述数据提供节点的第一节点标识;其中,所述数据提供节点是根据数据使用过程提供机密数据的节点;
从密钥注册表获取第一服务器地址,包括:
根据所述第一节点标识,从所述密钥注册表获取第一服务器地址。
可选地,所述方法包括:
根据所述数据使用节点的第二节点标识,从所述密钥注册表获取第二服务器地址;
将所述第二服务器地址运行在可信执行环境,以使所述可信执行环境根据第二服务器地址,从所述数据使用节点的密钥服务器获取加密密钥;
将数据使用合约运行在所述可信执行环境,以使所述可信执行环境对所述机密数据和所述数据使用合约进行计算,得到加密结果,包括:
将所述数据使用合约和所述加密密钥运行在所述可信执行环境,以使所述可信执行环境根据所述加密密钥,对所述加密数据和所述数据使用合约进行计算,得到加密结果。
可选地,所述第一节点标识是所述数据提供节点的公钥;根据所述第一节点标识,从所述密钥注册表获取第一服务器地址,包括:
运行密钥注册合约和所述数据提供节点的公钥,从所述密钥注册表中提取出与所述数据提供节点的公钥对应的目标服务器地址;其中,所述密钥注册合约用于处理所述分布式账本系统中所有节点的密钥服务器注册请求,得到所述密钥注册表;所述密钥注册表是多个服务器地址和多个公钥的对应关系;所述多个服务器地址与所述分布式账本系统中的多个节点一一对应,所述多个公钥与所述分布式账本系统中的多个节点一一对应;
将所述目标服务器地址作为所述第一服务器地址。
可选地,所述方法还包括:
将所述第一服务器地址添加到配置文件;
将所述第一服务器地址运行在可信执行环境,以使所述可信执行环境根据所述第一服务器地址,从数据提供节点的密钥服务器获取解密密钥,包括:
根据添加有所述第一服务器地址的配置文件,生成所述可信执行环境,以使所述可信执行环境在生成后,根据所述第一服务器地址,将其本地生成的自证报告发送给所述数据提供节点的密钥服务器;
在所述自证报告通过所述数据提供节点的密钥服务器验证后,建立所述数据提供节与所述可信执行环境之间的安全通道,以使所述可信执行环境通过所述安全通道获取所述解密密钥。
本申请实施例第二方面提供一种机密信息获取装置,位于分布式账本系统中的任意节点,所述装置包括:
第一获取模块,用于从密钥注册表获取第一服务器地址;
第一运行模块,用于将所述第一服务器地址运行在可信执行环境,以使所述可信执行环境根据所述第一服务器地址,从数据提供节点的密钥服务器获取解密密钥;
第二运行模块,用于将数据获取合约和所述解密密钥运行在所述可信执行环境,以使所述可信执行环境根据所述解密密钥,对调用所述数据获取合约得到的机密数据进行解密,获得明文的机密数据;其中,所述机密数据是所述数据提供节点对本地数据的数据管理合约进行加密得到的;
第三运行模块,用于将数据使用合约运行在所述可信执行环境,以使所述可信执行环境对所述机密数据和所述数据使用合约进行计算,得到加密结果;其中,所述数据使用合约是数据使用节点根据所述数据使用过程生成的。
可选地,所述装置还包括:
第四运行模块,用于运行所述数据获取合约合约,以调用所述数据管理合约,获得所述数据提供节点的第一节点标识;其中,所述数据提供节点是根据数据使用过程提供机密数据的节点;
所述获取模块包括:
获取子模块,用于根据所述第一节点标识,从所述密钥注册表获取第一服务器地址。
可选地,所述装置还包括:
第二获取模块,用于根据所述数据使用节点的第二节点标识,从所述密钥注册表获取第二服务器地址;
第五运行模块,用于将所述第二服务器地址运行在可信执行环境,以使所述可信执行环境根据第二服务器地址,从所述数据使用节点的密钥服务器获取加密密钥;
所述第三运行模块包括:运行子模块,用于将所述数据使用合约和所述加密密钥运行在所述可信执行环境,以使所述可信执行环境根据所述加密密钥,对所述加密数据和所述数据使用合约进行计算,得到加密结果。
可选地,所述第一节点标识是所述数据提供节点的公钥;所述获取子模块包括:
运行子单元:运行密钥注册合约和所述数据提供节点的公钥,从所述密钥注册表中提取出与所述数据提供节点的公钥对应的目标服务器地址;其中,所述密钥注册合约用于处理所述分布式账本系统中所有节点的密钥服务器注册请求,得到所述密钥注册表;所述密钥注册表是多个服务器地址和多个公钥的对应关系;所述多个服务器地址与所述分布式账本系统中的多个节点一一对应,所述多个公钥与所述分布式账本系统中的多个节点一一对应;
确定子单元,用于将所述目标服务器地址作为所述第一服务器地址。
可选地,所述装置还包括:
添加模块,用于将所述第一服务器地址添加到配置文件;
所述第一运行模块包括:
生成子模块,用于根据添加有所述第一服务器地址的配置文件,生成所述可信执行环境,以使所述可信执行环境在生成后,根据所述第一服务器地址,将其本地生成的自证报告发送给所述数据提供节点的密钥服务器;
建立子模块,用于在所述自证报告通过所述数据提供节点的密钥服务器验证后,建立所述数据提供节与所述可信执行环境之间的安全通道,以使所述可信执行环境通过所述安全通道获取所述解密密钥。
本申请实施例第三方面提供一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如本申请第一方面所述的方法中的步骤。
本申请实施例第四方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本申请第一方面所述的方法的步骤。
本申请实施例通过对数据获取合约的运行,调用数据提供节点的数据管理合约,获得第一服务器地址,再将第一服务器地址运行在可信执行环境中,使可信执行环境直接定位到数据提供节点的密钥服务器,从而将解密密钥直接从数据提供节点传输到可信执行环境。再通过在可信执行环境中运行数据获取合约和解密密钥,利用解密密钥对调用数据获取合约得到的数据提供节点的数据管理合约中公开方法进行解密,使得可信执行环境可以通过解密后的公开方法调用读写接口进而读取机密数据的方式,获得机密数据。最后在可信执行环境中运行机密数据和数据使用合约,得到计算结果。根据上述分析可知,本申请实施例通过对数据获取合约执行获取、运行等相关操作,将机密数据通过安全通道添加到可信执行环境中,再通过对数据使用合约的运行,按照数据使用合约设置的计算步骤,对机密数据进行计算,得到加密后的计算结果,再将加密后的计算结果返回给数据使用节点,使得机密计算整个过程需要的机密信息的获取和输出都发生可信执行环境中,避免了机密信息直接在分布式账本系统的节点间传输。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例机密信息获取方法的步骤流程图;
图2是本申请实施例获取机密信息的流程图;
图3是本申请另一实施例获取机密信息的流程图;
图4是本申请再一实施例获取机密信息的流程图;
图5是本申请实施例提出的机密信息获取装置的功能模块图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了同时兼顾机密数据的保密性计算和对机密数据计算过程的监管,相关领域在分布式账本的节点设置可信执行环境,进一步在可信执行环境中对从不同数据持有节点获取的机密数据进行计算,以区块链技术的可验证性保障数据被获取、参与计算的历史被记录,以可信执行环境保证机密数据的计算细节不会被恶意获取。
具体地,在用户想要完成特定项目的运算时,可以将分布式账本系统中的任意节点作为数据使用节点,利用数据使用节点根据数据使用过程,编写多个分析方法,并根据多个分析方法,生成在响应触发条件时,自动运行预先设置的多个分析方法,完成项目运算的数据使用合约。将分布式账本系统中的持有相关数据的节点作为数据提供节点,在数据使用节点通过数据提供节点的审核后,从数据提供节点获取机密数据,将获取的机密数据和数据使用合约在可信执行环境中进行运算,最后从可信执行环境获取运算结果,存储至数据使用节点。
但在可信执行环境中对机密数据进行计算,必然涉及将机密数据从不同数据持有节点传输至可信执行环境;当可信执行环境完成对机密数据的计算后,还涉及将计算结果返回给数据使用节点,同时可信执行环境对机密数据进行运行必然需要其他机密信息,例如对机密数据进行解密的密钥,这些机密信息也可能从分布式账本的不同节点传输到可信执行环境中。机密数据、密钥等其他机密信息在分布式账本中各节点之间传输具有极大的风险,易被非法窃取。
鉴于上述问题,本申请实施例提出一种机密信息获取方法,应用于分布式账本系统中的任意节点,本申请通过特定的获取机制,在可信执行环境中直接获取机密信息,避免了机密信息先从其他节点传输到可信执行环境所在的节点,再传递到可信执行环境,从而避免了机密信息之间在节点间的传输,保证了机密信息在分布式账本的传输安全性。
分布式账本系统中的任意节点是指分布式账本系统中支持可信执行环境生成技术的任意节点,因此本申请提出的机密信息获取方法可以应用在数据使用节点,也可以应用在除数据使用节点外的其他节点。
图1是本申请实施例机密信息获取方法的步骤流程图,图2是本申请实施例获取机密信息的流程图,如图1和图2图所示,步骤如下:
步骤S11:从密钥注册表获取第一服务器地址。
在新节点加入分布式账本系统时,将本地的密钥进行注册,注册节点密钥的相关交易信息存储在分布式账本的区块中,得到密钥注册表。第一服务器地址是数据提供节点的密钥服务器的地址。
步骤S12:将所述第一服务器地址运行在可信执行环境,以使所述可信执行环境根据所述第一服务器地址,从数据提供节点的密钥服务器获取解密密钥。解密密钥是数据提供节点的本地密钥,用于在可信执行环境中对数据管理合约的公开方法进行解密。
步骤S13:将数据获取合约和所述解密密钥运行在所述可信执行环境,以使所述可信执行环境根据所述解密密钥,对调用所述数据获取合约得到的机密数据进行解密,获得明文的机密数据;其中,所述机密数据是所述数据提供节点通过对本地数据的数据管理合约进行加密得到的。
数据获取合约数据是本申请实施例为了从数据持有节点获得机密数据,使持有节点编写的,用于发送到其他节点,为其他节点提供调用数据持有节点本地的数据管理合约的合约。
调用数据获取合约是指,运行数据获取合约,通过数据获取合约定义的方法,从数据提供节点的数据管理合约中获取机密数据。
本申请实施例通过对数据获取合约进行调用,从数据提供节点的数据管理合约中获取机密数据。
数据使用节点得到数据使用合约后,将数据使用合约发送给数据提供节点审核,数据提供节点在其对数据使用合约审核通过后,对其提供的相关数据编写多个读写接口,并针对多个读写接口定义公开方法,利用其本地的密钥对涉及机密数据的公开方法进行加密,得到数据管理合约。拥有权限的节点可以调用公开方法获取数据提供节点的普通数据,拥有权限并且具有数据提供节点的密钥的节点,可以调用公开方法获取机密数据。本申请的数据提供节点通过数据管理合约的方式提供加密数据,避免了机密数据直接在节点间传输。
数据管理合约还包括数据提供节点的节点标识、对公开方法进行加密采用的加密计算等。
获取解密密钥、利用解密密钥对数据管理合约的公开方法解密,以直接从读写接口从读取数据提供节点读取机密数据等有关机密信息的操作都是发生在可信执行环境中,保证了机密信息的安全。
本申请另一种实施例提出获取第一服务器地址的具体方法:运行所述数据获取合约,以调用数据提供节点的数据管理合约,获得所述数据提供节点的第一节点标识;其中,所述数据提供节点是根据数据使用过程提供机密数据的节点;根据所述第一节点标识,从所述密钥注册表获取第一服务器地址。
第一节点标识可以是数据提供节点的公钥、数据提供节点的IP地址、数据提供节点在分布式哈希表中的索引标识等。
可以将数据获取合约的非机密部分交由可信执行环境所在节点的智能合约引擎处理,可信执行环境所在节点的智能合约引擎运行数据管理合约的非机密部分,得到数据提供节点的第一节点标识、加密计算等内容,可信执行环境运行数据管理合约的机密部分,调用加密后的公开方法。数据获取合约的非机密部分是用于从数据管理合约的非机密部分调用数据的方法。
可信执行环境所在节点获得第一节点标识后,采用第一节点标识在分布式账本系统存储的密钥注册表匹配得到第一服务器地址。
本申请实施例通过运行数据获取合约获取第一服务器地址,避免第一服务器地址直接从数据提供节点传输到其他节点,而数据获取合约是在数据使用合约通过数据提供节点的审核后,数据提供节点提供的用于提供机密数据的智能合约,智能合约具有符合触发条件才会执行相关操作的特性,因此即使恶意节点在数据获取合约传输过程中窃取到从数据管理合约调用机密数据的方法,也无法运行,从而无法通过运行数据获取合约的方式获取到其中的内容。
步骤S14:将数据使用合约运行在所述可信执行环境,以使所述可信执行环境对所述机密数据和所述数据使用合约进行计算,得到加密结果;其中,所述数据使用合约是数据使用节点根据所述数据使用过程生成的。
本申请实施例通过对数据获取合约的运行,调用数据提供节点的数据管理合约,获得第一服务器地址,再将第一服务器地址运行在可信执行环境中,使可信执行环境直接定位到数据提供节点的密钥服务器,从而将解密密钥直接从数据提供节点传输到可信执行环境。再通过在可信执行环境中运行数据获取合约和解密密钥,利用解密密钥对调用数据获取合约得到的数据提供节点的数据管理合约中公开方法进行解密,使得可信执行环境可以通过解密后的公开方法调用读写接口进而读取机密数据的方式,获得机密数据。最后在可信执行环境中运行机密数据和数据使用合约,得到计算结果。根据上述分析可知,本申请实施例通过对数据获取合约执行获取、运行等相关操作,将机密数据通过安全通道添加到可信执行环境中,再通过对数据使用合约的运行,按照数据使用合约设置的计算步骤,对机密数据进行计算,得到加密后的计算结果,再将加密后的计算结果返回给数据使用节点,使得机密计算整个过程需要的机密信息的获取和输出都发生可信执行环境中,避免了机密信息直接在分布式账本系统的节点间传输。
本申请另一种实施例提出在可信执行环境中实现加密计算的具体方法。图3是本申请另一实施例获取机密信息的流程图,如图3所示,在可信执行环境中实现加密计算首先根据所述数据使用节点的第二节点标识,从所述密钥注册表获取第二服务器地址。
可信执行环境所在的节点可以在数据使用节点对其发送数据使用合约时,获取数据使用节点的第二节点标识。
再将所述第二服务器地址运行在可信执行环境,以使所述可信执行环境根据第二服务器地址,从所述数据使用节点的密钥服务器获取加密密钥。加密密钥是数据使用节点的密钥,用于在可信执行环境中对计算结果进行加密。
将所述数据使用合约和所述加密密钥运行在所述可信执行环境,以使所述可信执行环境根据所述加密密钥,对所述加密数据和所述数据使用合约进行计算,得到加密结果。
本申请可信执行环境将加密结果加载到数据使用合约,将具有加密结果的数据使用合约存储在可信执行环境所在节点中,数据使用节点通过读取具有加密结果的数据使用合约的方式,得到加密结果。
本申请实施例在可信执行环境中运行第二服务器地址,以第二服务器地址定位到数据使用节点的密钥服务器,加密密钥直接从数据使用节点的密钥服务器输出到可信执行环境,在可信执行环境中对计算结果进行加密,得到加密结果,由于涉及对机密信息的明文处理都是发生在可信执行环境内的,即使恶意节点在传输过程中窃取加密结果,也无法获得计算结果的明文数据,那么可信执行环境将加密结果发送给其所在节点,再由其所在节点返回数据使用节点的过程也是安全可靠的。
本申请另一实施例提出从数据提供节点的密钥服务器获取解密密钥的具体方法:将所述第一服务器地址添加到配置文件;配置文件是可信执行环境启动的配置文件。根据添加有所述第一服务器地址的配置文件,生成所述可信执行环境,以使所述可信执行环境在生成后,根据所述第一服务器地址,将其本地生成的自证报告发送给所述数据提供节点的密钥服务器;在所述自证报告通过所述数据提供节点的密钥服务器验证后,建立所述数据提供节与所述可信执行环境之间的安全通道,以使所述可信执行环境通过所述安全通道获取所述解密密钥。
在本申请一种示例中,可信执行环境启动后,根据配置文件记载的第一服务器地址、第二服务器地址等,与配置文件中存储的密钥服务器建立连接,并建立与密钥服务器的安全通道,通过安全通道获取解密密钥或加密密钥,可信执行环境获取解密密钥和加密密钥后,将解密密钥和加密密钥存储在对应的环境变量中,以使可信执行环境的合约引擎在运行数据管理合约和运行数据使用合约时,能够调用解密密钥和加密密钥。
从数据使用节点的密钥服务器获取加密密钥也可以采用上述方法。
在本申请一种示例中,用户拟比较平台A和平台B销售额,在分布式账本系统选择其中一个节点作为数据使用节点X,在数据使用节点X根据比较销售额涉及的计算步骤,编写了多个分析方法,并设置了分析方法的调用条件,得到数据使用合约1。数据使用节点X根据比较平台A和平台B销售额所需要的数据,在分布式账本系统中查找到能提供相关数据的数据提供节点C,将数据使用合约1发送给数据提供节点C,数据提供节点C审核数据使用合约1中对相关机密数据的使用方法是否合理,在审核通过的情况下,数据提供节点C设置调用其原始销售的读写接口1,并编写调用读写接口1的公开方法1,对公开方法1返回的数据进行加密,得到数据管理合约1,再针对数据管理合约1编写用于调取数据管理合约1中机密数据的数据获取合约1,将数据获取合约1返回给数据使用节点X,数据使用节点X将数据获取合约1和数据使用合约1发送给支持可信执行环境的节点D,节点D运行数据获取合约合约1,调用数据管理合约1得到节点标识1,节点D根据节点标识1和数据提供节点C的标识,从密钥服务器获取到数据提供节点C的密钥服务器地址1,和数据使用节点X的密钥服务器地址2,将密钥服务器地址1和密钥服务器地址2添加到配置文件,节点D运行数据使用合约1在节点D未启动的进程中启动可信执行环境,可信执行环境生成自证报告,使得根据密钥服务器地址1,将自证报告发送给数据提供节点C的密钥服务器,数据提供节点C检验自证报告后,将解密密钥直接返回给可信执行环境;同时,可信执行环境将自证报告发送给数据使用节点X的密钥服务器,数据使用节点X检验自证报告后,将加密密钥直接返回给可信执行环境,进而在不同过节点间传输密钥的情况下,可信执行环境获得了加密密钥和解密密钥。可信执行环境运行数据获取合约1和解密密钥,可信执行环境通过运行数据获取合约1调用数据管理合约1中的机密数据1,利用解密密钥对机密数据1进行解密,从而可信执行环境得到解密后明文的机密数据。可见,本申请直接通过在可信执行环境中运行数据获取合约的方式,建立了可信执行环境与数据提供节点的安全通道,从而从安全通道获取加密数据,避免了加密数据直接在分布式账本系统中传输。进一步地,可信执行环境运行机密数据和数据使用合约1,得到平台A和平台B销售额比较结果,利用加密密钥对销售额比较结果进行加密,可信执行环境输出加密后的销售额比较结果,返回给数据使用节点X。
在本申请另一种实施例中,采用运行智能合约的方式,获得第一服务器地址和第二服务地址。图4是本申请再一实施例获取机密信息的流程图,如图4所示,第一节点标识是所述数据提供节点的公钥,第二标识是数据使用节点的公钥,密钥注册表是密钥注册合约中的数据存储结构,运行密钥注册合约和数据提供节点的公钥,得到第一服务器地址;运行密钥注册合约和数据使用节点的公钥,得到第二服务器地址。
从所述密钥注册表获取第一服务器地址,包括:
运行密钥注册合约和所述数据提供节点的公钥,从所述密钥注册表中提取出与所述数据提供节点的公钥对应的目标服务器地址;其中,所述密钥注册合约用于处理所述分布式账本系统中所有节点的密钥服务器注册请求,得到所述密钥注册表;所述密钥注册表是多个服务器地址和多个公钥的对应关系;所述多个服务器地址与所述分布式账本系统中的多个节点一一对应,所述多个公钥与所述分布式账本系统中的多个节点一一对应;所述目标服务器地址作为所述第一服务器地址。
在本申请一种示例中,分布式账本系统有节点a、节点b、节点c以及节点d;节点a的公钥是公钥a,节点b的公钥是公钥b,节点c的公钥是公钥c,节点d的公钥是公钥d;节点a请求得到的密钥服务器地址是a123、节点b请求得到的密钥服务器地址是b124,节点c请求得到的密钥服务器地址是c125、节点d请求得到的密钥服务器地址是d131,密钥注册表记载的多个服务器地址和多个公钥的对应关系包括:节点a--a123、节点b--b124、节点c--c125、节点d--d131。
本申请实施例在新节点加入分布式账本系统时,通过密钥注册合约注册节点的本地密钥。由于分布式账本系统对于任意交易数据都会共识和备份,所以密钥注册合约存储在分布式账本系统的多个节点,数据使用节点和数据提供节点加入分布式账本系统时,在邻近节点的对其本地的密钥进行注册,并将节点公钥和密钥服务器地址存储在密钥注册合约的数据存储结构中。存储有分布式账本系统中所有节点公钥和密钥服务器地址的数据存储结构,是本申请实施例用于获取第一服务器地址和第二服务器地址的密钥注册表。
密钥注册合约提供的方法包括:第一方法和第二方法;第一方法是密钥服务器的注册方法,第一方法被运行时,为节点提供注册其本地密钥的密钥服务器地址,第一方法被运行时,还用于根据对请求更新的节点进行身份验证,并在身份验证通过的情况下,对现有的注册数据进行更新。
第二方法被运行时,用于提供注册信息的读取接口,响应请求注册密钥服务器的节点提供的公钥,返回对应的密钥服务器地址。
基于同一发明构思,本申请实施例提供一种机密信息获取装置。图5是本申请实施例提出的机密信息获取装置的功能模块图。如图5所示,该装置包括:
第一获取模块51,用于从密钥注册表获取第一服务器地址;
第一运行模块52,用于将所述第一服务器地址运行在可信执行环境,以使所述可信执行环境根据所述第一服务器地址,从数据提供节点的密钥服务器获取解密密钥;
第二运行模块53,用于将数据获取合约和所述解密密钥运行在所述可信执行环境,以使所述可信执行环境根据所述解密密钥,对调用所述数据获取合约得到的机密数据进行解密,获得明文的机密数据;其中,所述机密数据是所述数据提供节点对本地数据的数据管理合约进行加密得到的;
第三运行模块54,用于将数据使用合约运行在所述可信执行环境,以使所述可信执行环境对所述机密数据和所述数据使用合约进行计算,得到加密结果;其中,所述数据使用合约是数据使用节点根据所述数据使用过程生成的。
可选地,所述装置还包括:
第四运行模块,用于运行所述数据获取合约,以调用所述数据管理合约,获得所述数据提供节点的第一节点标识;其中,所述数据提供节点是根据数据使用过程提供机密数据的节点;
所述获取模块包括:
获取子模块,用于根据所述第一节点标识,从所述密钥注册表获取第一服务器地址。
可选地,所述装置还包括:
第二获取模块,用于根据所述数据使用节点的第二节点标识,从所述密钥注册表获取第二服务器地址;
第五运行模块,用于将所述第二服务器地址运行在可信执行环境,以使所述可信执行环境根据第二服务器地址,从所述数据使用节点的密钥服务器获取加密密钥;
所述第三运行模块包括:运行子模块,用于将所述数据使用合约和所述加密密钥运行在所述可信执行环境,以使所述可信执行环境根据所述加密密钥,对所述加密数据和所述数据使用合约进行计算,得到加密结果
可选地,所述第一节点标识是所述数据提供节点的公钥;所述获取子模块包括:
运行子单元:运行密钥注册合约和所述数据提供节点的公钥,从所述密钥注册表中提取出与所述数据提供节点的公钥对应的目标服务器地址;其中,所述密钥注册合约用于处理所述分布式账本系统中所有节点的密钥服务器注册请求,得到所述密钥注册表;所述密钥注册表是多个服务器地址和多个公钥的对应关系;所述多个服务器地址与所述分布式账本系统中的多个节点一一对应,所述多个公钥与所述分布式账本系统中的多个节点一一对应;
确定子单元,用于将所述目标服务器地址作为所述第一服务器地址。
可选地,所述装置还包括:
添加模块,用于将所述第一服务器地址添加到配置文件;
所述第一运行模块包括:
生成子模块,用于根据添加有所述第一服务器地址的配置文件,生成所述可信执行环境,以使所述可信执行环境在生成后,根据所述第一服务器地址,将其本地生成的自证报告发送给所述数据提供节点的密钥服务器;
建立子模块,用于在所述自证报告通过所述数据提供节点的密钥服务器验证后,建立所述数据提供节与所述可信执行环境之间的安全通道,以使所述可信执行环境通过所述安全通道获取所述解密密钥。
基于同一发明构思,本申请另一实施例提供一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述任一实施例所述的机密信息获取方法中的步骤。
基于同一发明构思,本申请另一实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请上述任一实施例所述的机密信息获取方法中的步骤。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进或说明的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种机密信息获取方法、装置、设备及存储介质,进行了详细介绍,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种机密信息获取方法,其特征在于,应用于分布式账本系统中的任意节点,所述方法包括:
从密钥注册表获取第一服务器地址;
将所述第一服务器地址运行在可信执行环境,以使所述可信执行环境根据所述第一服务器地址,从数据提供节点的密钥服务器获取解密密钥;
将数据获取合约和所述解密密钥运行在所述可信执行环境,以使所述可信执行环境根据所述解密密钥,对调用所述数据获取合约得到的机密数据进行解密,获得明文的机密数据;其中,所述机密数据是所述数据提供节点对本地数据的数据管理合约进行加密得到的;
将数据使用合约运行在所述可信执行环境,以使所述可信执行环境对所述机密数据和所述数据使用合约进行计算,得到加密结果;其中,所述数据使用合约是数据使用节点根据所述数据使用过程生成的。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
运行所述数据获取合约,以调用所述数据管理合约,获得所述数据提供节点的第一节点标识;其中,所述数据提供节点是根据数据使用过程提供机密数据的节点;
从密钥注册表获取第一服务器地址,包括:
根据所述第一节点标识,从所述密钥注册表获取第一服务器地址。
3.根据权利要求1所述的方法,其特征在于,所述方法包括:
根据所述数据使用节点的第二节点标识,从所述密钥注册表获取第二服务器地址;
将所述第二服务器地址运行在可信执行环境,以使所述可信执行环境根据第二服务器地址,从所述数据使用节点的密钥服务器获取加密密钥;
将数据使用合约运行在所述可信执行环境,以使所述可信执行环境对所述机密数据和所述数据使用合约进行计算,得到加密结果,包括:
将所述数据使用合约和所述加密密钥运行在所述可信执行环境,以使所述可信执行环境根据所述加密密钥,对所述加密数据和所述数据使用合约进行计算,得到加密结果。
4.根据权利要求2所述的方法,其特征在于,所述第一节点标识是所述数据提供节点的公钥;根据所述第一节点标识,从所述密钥注册表获取第一服务器地址,包括:
运行密钥注册合约和所述数据提供节点的公钥,从所述密钥注册表中提取出与所述数据提供节点的公钥对应的目标服务器地址;其中,所述密钥注册合约用于处理所述分布式账本系统中所有节点的密钥服务器注册请求,得到所述密钥注册表;所述密钥注册表是多个服务器地址和多个公钥的对应关系;所述多个服务器地址与所述分布式账本系统中的多个节点一一对应,所述多个公钥与所述分布式账本系统中的多个节点一一对应;
将所述目标服务器地址作为所述第一服务器地址。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述第一服务器地址添加到配置文件;
将所述第一服务器地址运行在可信执行环境,以使所述可信执行环境根据所述第一服务器地址,从数据提供节点的密钥服务器获取解密密钥,包括:
根据添加有所述第一服务器地址的配置文件,生成所述可信执行环境,以使所述可信执行环境在生成后,根据所述第一服务器地址,将其本地生成的自证报告发送给所述数据提供节点的密钥服务器;
在所述自证报告通过所述数据提供节点的密钥服务器验证后,建立所述数据提供节与所述可信执行环境之间的安全通道,以使所述可信执行环境通过所述安全通道获取所述解密密钥。
6.一种机密信息获取装置,其特征在于,位于分布式账本系统中的任意节点,所述装置包括:
第一获取模块,用于从密钥注册表获取第一服务器地址;
第一运行模块,用于将所述第一服务器地址运行在可信执行环境,以使所述可信执行环境根据所述第一服务器地址,从数据提供节点的密钥服务器获取解密密钥;
第二运行模块,用于将数据获取合约和所述解密密钥运行在所述可信执行环境,以使所述可信执行环境根据所述解密密钥,对调用所述数据获取合约得到的机密数据进行解密,获得明文的机密数据;其中,所述机密数据是所述数据提供节点对本地数据的数据管理合约进行加密得到的;
第三运行模块,用于将数据使用合约运行在所述可信执行环境,以使所述可信执行环境对所述机密数据和所述数据使用合约进行计算,得到加密结果;其中,所述数据使用合约是数据使用节点根据所述数据使用过程生成的。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第四运行模块,用于运行所述数据获取合约,以调用所述数据管理合约,获得所述数据提供节点的第一节点标识;其中,所述数据提供节点是根据数据使用过程提供机密数据的节点;
所述获取模块包括:
获取子模块,用于根据所述第一节点标识,从所述密钥注册表获取第一服务器地址。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于根据所述数据使用节点的第二节点标识,从所述密钥注册表获取第二服务器地址;
第五运行模块,用于将所述第二服务器地址运行在可信执行环境,以使所述可信执行环境根据第二服务器地址,从所述数据使用节点的密钥服务器获取加密密钥;
所述第三运行模块包括:运行子模块,用于将所述数据使用合约和所述加密密钥运行在所述可信执行环境,以使所述可信执行环境根据所述加密密钥,对所述加密数据和所述数据使用合约进行计算,得到加密结果。
9.一种可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5任一所述的方法中的步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行时实现如权利要求1-5任一所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111205490.5A CN113946864B (zh) | 2021-10-15 | 2021-10-15 | 一种机密信息获取方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111205490.5A CN113946864B (zh) | 2021-10-15 | 2021-10-15 | 一种机密信息获取方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113946864A true CN113946864A (zh) | 2022-01-18 |
CN113946864B CN113946864B (zh) | 2024-03-19 |
Family
ID=79330865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111205490.5A Active CN113946864B (zh) | 2021-10-15 | 2021-10-15 | 一种机密信息获取方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113946864B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170353309A1 (en) * | 2016-06-06 | 2017-12-07 | Microsoft Technology Licensing, Llc | Cryptographic applications for a blockchain system |
CN110245506A (zh) * | 2019-05-30 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 基于区块链的智能合约管理方法及装置、电子设备 |
KR20200014682A (ko) * | 2019-05-10 | 2020-02-11 | 주식회사 스트리미 | 암호화폐 교환을 위한 트랜잭션을 매칭하는 전자 장치 및 방법 |
CN111064569A (zh) * | 2019-12-09 | 2020-04-24 | 支付宝(杭州)信息技术有限公司 | 可信计算集群的集群密钥获取方法及装置 |
US20200167503A1 (en) * | 2019-05-30 | 2020-05-28 | Alibaba Group Holding Limited | Managing a smart contract on a blockchain |
WO2021184962A1 (zh) * | 2020-03-18 | 2021-09-23 | 支付宝(杭州)信息技术有限公司 | 生成共享合约密钥的方法及装置 |
-
2021
- 2021-10-15 CN CN202111205490.5A patent/CN113946864B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170353309A1 (en) * | 2016-06-06 | 2017-12-07 | Microsoft Technology Licensing, Llc | Cryptographic applications for a blockchain system |
KR20200014682A (ko) * | 2019-05-10 | 2020-02-11 | 주식회사 스트리미 | 암호화폐 교환을 위한 트랜잭션을 매칭하는 전자 장치 및 방법 |
CN110245506A (zh) * | 2019-05-30 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 基于区块链的智能合约管理方法及装置、电子设备 |
US20200167503A1 (en) * | 2019-05-30 | 2020-05-28 | Alibaba Group Holding Limited | Managing a smart contract on a blockchain |
CN113240519A (zh) * | 2019-05-30 | 2021-08-10 | 创新先进技术有限公司 | 基于区块链的智能合约管理方法及装置、电子设备 |
CN111064569A (zh) * | 2019-12-09 | 2020-04-24 | 支付宝(杭州)信息技术有限公司 | 可信计算集群的集群密钥获取方法及装置 |
WO2021184962A1 (zh) * | 2020-03-18 | 2021-09-23 | 支付宝(杭州)信息技术有限公司 | 生成共享合约密钥的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113946864B (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7222036B2 (ja) | モデルトレーニングシステムおよび方法および記憶媒体 | |
US10891384B2 (en) | Blockchain transaction device and method | |
CN110377239B (zh) | 数据签名方法、装置、服务器、系统及存储介质 | |
JP2022000757A5 (zh) | ||
CN109274652B (zh) | 身份信息验证系统、方法及装置及计算机存储介质 | |
US8447983B1 (en) | Token exchange | |
CN109067528B (zh) | 密码运算、创建工作密钥的方法、密码服务平台及设备 | |
CN106991298B (zh) | 应用程序对接口的访问方法、授权请求方法及装置 | |
TW202018569A (zh) | 基於區塊鏈的資料存證方法及裝置、電子設備 | |
CN111950020B (zh) | 基于区块链的数据共享系统、方法、计算设备和存储介质 | |
US11025415B2 (en) | Cryptographic operation method, method for creating working key, cryptographic service platform, and cryptographic service device | |
KR20210017432A (ko) | 블록체인 기반 개인정보 관리 장치 및 방법 | |
CN108471403B (zh) | 一种账户迁移的方法、装置、终端设备及存储介质 | |
JP2010514000A (ja) | 電子装置にプログラム状態データをセキュアに記憶するための方法 | |
CN111753014B (zh) | 基于区块链的身份认证方法及装置 | |
CN111460400A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
EP4092984A1 (en) | Data processing method and apparatus, device and medium | |
CN112861102A (zh) | 基于区块链对电子文件的处理方法和系统 | |
CN113271366B (zh) | 基于区块链和安全计算的数据共享系统 | |
CN112887087B (zh) | 数据管理方法、装置、电子设备及可读存储介质 | |
CN114398623A (zh) | 一种安全策略的确定方法 | |
CN109981650B (zh) | 区块链中通证的转移方法及系统 | |
CN113901498B (zh) | 一种数据共享方法、装置、设备及存储介质 | |
KR20210103615A (ko) | 블록체인 기반 사용자 인증 방법 | |
CN115048672A (zh) | 基于区块链的数据审计方法和装置、处理器及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |