CN113239123A - 一种数据共享方法及系统 - Google Patents

一种数据共享方法及系统 Download PDF

Info

Publication number
CN113239123A
CN113239123A CN202110649990.1A CN202110649990A CN113239123A CN 113239123 A CN113239123 A CN 113239123A CN 202110649990 A CN202110649990 A CN 202110649990A CN 113239123 A CN113239123 A CN 113239123A
Authority
CN
China
Prior art keywords
data
layer
processing layer
requester
access
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.)
Pending
Application number
CN202110649990.1A
Other languages
English (en)
Inventor
杨扬
范渊
吴卓群
王欣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DBAPPSecurity Co Ltd
Hangzhou Dbappsecurity Technology Co Ltd
Original Assignee
Hangzhou Dbappsecurity Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Dbappsecurity Technology Co Ltd filed Critical Hangzhou Dbappsecurity Technology Co Ltd
Priority to CN202110649990.1A priority Critical patent/CN113239123A/zh
Publication of CN113239123A publication Critical patent/CN113239123A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Bioethics (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Computing Systems (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种数据共享方法及系统,该方法包括:终端交互层在数据请求者的触发下生成相应的数据访问请求,并将数据访问请求发送至中央处理层;中央处理层调用区块链层中的访问控制合约,以由访问控制合约判断数据请求者对数据访问请求对应的数据是否具有访问权限,并将判断所得的结果记录在区块链层中的区块链日志中;中央处理层发送此次访问对应的数据访问信息至数据处理层,以由数据处理层将数据访问信息转发给数据存储层;数据存储层在数据访问信息的触发下查询区块链日志,如果查询到判断所得的结果为是,则查询数据访问请求对应的数据,并将查询到的数据通过终端交互层返回给数据请求者。本申请的数据共享方案具有较高的数据安全性。

Description

一种数据共享方法及系统
技术领域
本发明涉及数据处理技术领域,更具体地说,涉及一种数据共享方法及系统。
背景技术
近年来,信息化进程的不断加深,数据增长速度不断提升,数据已经成为一种重要的资产。数据共享就是让在不同地方使用不同计算机、不同软件的用户能够读取他人数据并进行各种操作、运算和分析数据,通过数据的共享交互能够查询数据的巨大价值,打破数据孤岛,然而一旦数据遭受安全威胁,可能会造成难以挽回的损失,因此数据安全成为数据共享交互中不可忽视的问题。
发明内容
本发明的目的是提供一种数据共享方法及系统,具有较高的数据安全性。
为了实现上述目的,本发明提供如下技术方案:
一种数据共享方法,包括:
终端交互层在数据请求者的触发下生成相应的数据访问请求,并将所述数据访问请求发送至中央处理层;
所述中央处理层调用区块链层中的访问控制合约,以由所述访问控制合约判断所述数据请求者对所述数据访问请求对应的数据是否具有访问权限,并将判断所得的结果记录在所述区块链层中的区块链日志中;
所述中央处理层发送此次访问对应的数据访问信息至数据处理层,以由所述数据处理层将所述数据访问信息转发给数据存储层;
所述数据存储层在所述数据访问信息的触发下查询所述区块链日志,如果查询到判断所得的结果为是,则查询所述数据访问请求对应的数据,并将查询到的数据通过所述终端交互层返回给所述数据请求者。优选的,终端交互层在数据请求者的触发下生成相应的数据访问请求之前,还包括:
所述终端交互层在所述数据请求者的触发下生成相应的身份注册请求,并将所述身份注册请求发送至所述中央处理层;
所述中央处理层调用所述区块链层中的注册合约,以由所述注册合约完成所述数据请求者的身份注册;
所述中央处理层调用区块链层中的访问控制合约之前,还包括:
所述中央处理层判断所述数据请求者是否已完成身份注册,如果是,则执行调用区块链层中的访问控制合约的步骤,否则,拒绝所述数据访问请求。
优选的,所述中央处理层判断所述数据请求者是否已完成身份注册,包括:
所述中央处理层查询所述数据访问请求中携带的身份标识、请求内容及签名信息;其中,所述签名信息为所述数据访问者利用自身的公钥对所述身份标识及所述请求内容进行摘要计算得到的;
所述中央处理层调用所述注册合约,以由所述注册合约查询所述区块链层中记录的所述数据请求者的公钥;其中,所述公钥为所述中央处理层完成所述数据请求者的身份注册时记录至所述区块链层中的;
所述中央处理层利用查询的公钥对所述身份标识及所述请求内容进行摘要计算,如果计算所得结果与所述签名信息相同,则确定所述数据请求者已完成身份注册,否则,确定所述数据请求者未完成身份注册。
优选的,所述数据存储层将查询到的数据通过所述终端交互层返回给所述数据请求者,包括:
所述数据存储层将查询到的数据返回给所述数据处理层,所述数据处理层将查询到的数据通过所述终端交换层返回给所述数据请求者;
所述数据处理层将查询到的数据返回给所述数据请求者之前,还包括:
所述数据处理层调用所述注册合约,以由所述注册合约查询所述区块链层中记录的所述数据请求者的公钥;
所述数据处理层生成临时会话密钥,使用所述临时会话密钥加密查询到的数据,并使用所述公钥加密所述临时会话密钥;
所述数据处理层将查询到的数据返回给所述数据请求者,包括:
所述数据处理层将加密后的所述临时会话密钥及加密后的数据返回给所述数据请求者,以供所述数据请求者利用自身的私钥对加密后的所述临时会话密钥解密得到所述临时会话密钥,并利用所述临时会话密钥对加密后的数据解密得到相应的数据。
优选的,所述数据处理层使用所述临时会话密钥加密查询到的数据之后,还包括:
所述数据处理层使用自身的私钥对加密后的数据进行摘要计算,得到相应的待验证签名,以供所述数据请求者利用所述数据处理层的公钥对解密后的数据进行摘要计算,并在判断出计算得到的结果与所述待验证签名相对应后执行对加密后的所述临时会话密钥及数据进行解密的步骤。
优选的,还包括:
所述区块链层在外界触发下实现对所述注册合约中不同数据请求者具有的访问权限进行相应的更新。
优选的,还包括:
所述中央处理层将所述访问控制合约判断所述数据请求者对所述数据访问请求对应的数据是否具有访问权限的结果记录在所述区块链层中的区块链日志中的同时,将所述数据请求者此次的访问记录记录在所述区块链日志中。
一种数据共享系统,包括终端交互层、中央处理层、数据处理层、区块链层及数据存储层,其中:
所述终端交互层,用于:在数据请求者的触发下生成相应的数据访问请求,并将所述数据访问请求发送至中央处理层;以及将所述数据存储层查询到的数据返回给所述数据请求者;
所述中央处理层,用于:调用区块链层中的访问控制合约,以由所述访问控制合约判断所述数据请求者对所述数据访问请求对应的数据是否具有访问权限,并将判断所得的结果记录在所述区块链层中的区块链日志中;以及发送此次访问对应的数据访问信息至数据处理层;
所述数据处理层,用于:将所述数据访问信息转发给数据存储层;
所述数据存储层,用于:在所述数据访问信息的触发下查询所述区块链日志,如果查询到判断所得的结果为是,则查询所述数据访问请求对应的数据,并将查询到的数据通过所述终端交互层返回给所述数据请求者;
所述区块链层,用于:存储所述访问控制合约及所述区块链日志。
本发明提供了一种数据共享方法及系统,该方法包括:终端交互层在数据请求者的触发下生成相应的数据访问请求,并将所述数据访问请求发送至中央处理层;所述中央处理层调用区块链层中的访问控制合约,以由所述访问控制合约判断所述数据请求者对所述数据访问请求对应的数据是否具有访问权限,并将判断所得的结果记录在所述区块链层中的区块链日志中;所述中央处理层发送此次访问对应的数据访问信息至数据处理层,以由所述数据处理层将所述数据访问信息转发给数据存储层;所述数据存储层在所述数据访问信息的触发下查询所述区块链日志,如果查询到判断所得的结果为是,则查询所述数据访问请求对应的数据,并将查询到的数据通过所述终端交互层返回给所述数据请求者。可见,本申请通过访问控制合约这一智能合约实现对数据请求者查询数据时权限范围的确定,仅允许数据请求者对其权限范围内的数据进行查询,从而提高数据共享时的数据安全性;并且,在区块链上记录数据请求者查询数据时的权限范围以及上述访问控制合约,能够使得数据查询的过程均在区块链上进行,防止修改和伪造,进一步提高数据共享时的数据安全性;综上,本申请的数据共享方案具有较高的数据安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种数据共享方法的流程图;
图2为本发明实施例提供的一种数据共享方法中身份注册与数据访问请求处理的交互图;
图3为本发明实施例提供的一种数据共享方法中数据返回的交互图;
图4为本发明实施例提供的一种数据共享系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明实施例提供的一种数据共享方法的流程图,具体可以包括:
S11:终端交互层在数据请求者的触发下生成相应的数据访问请求,并将数据访问请求发送至中央处理层。
其中,需要实现数据共享的用户均可以作为数据请求者请求查询相应的数据,本申请实施例中可以确定当前需要实现查询相应数据的用户为数据请求者;相应的,终端交互层能够通过终端设备提供用户交互、系统展示等功能,如果用户需要查询相应的数据,则用户作为数据请求者能够通过终端设备向终端交互层发送需要查询相应数据的信息,终端交互层在该信息的触发下生成相应的数据访问请求。在一种具体实现方式中,数据访问请求能够包含数据请求者的身份标识(如用户ID)、请求内容(如需要查询的数据所属的数据库名-表名)以及签名信息,签名信息为利用数据请求者的公钥对数据请求者的身份标识及请求内容进行摘要计算得到的,当然还可以根据实际需要进行其他设定,均在本发明的保护范围之内。
S12:中央处理层调用区块链层中的访问控制合约,以由访问控制合约判断数据请求者对数据访问请求对应的数据是否具有访问权限,并将判断所得的结果记录在区块链层中的区块链日志中。
在数据资源交易中,通常包括数据资源提供方和数据资源购买方/数据资源请求方,数据资源购买方/数据资源请求方为需要查询相应数据的用户,数据资源提供方为数据提供方,其可以是组织,也可以是一个人。区块链层为区块链所在的层,区块链是一个分布式账本,存储于其中的数据或信息具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特征。
本申请实施例中数据提供方能够定制适用于自身的细粒度访问控制方案,并基于该细粒度访问控制方案编写相应的访问控制合约(合约2)发布在区块链层上,合约2包含但不限于授权、权限变更的方法/函数;其中,授权表示任意用户对相应数据具有访问权限的授予,而权限变更则为对用户具有的访问权限进行的修改。合约2为智能合约,智能合约与现有技术的对应概念含义相同,具体来说,其是一种特殊协议,在区块链内制定合约时使用,且其中内含了代码函数,也能够与其他合约进行交互、做决策、存储资料等。在一种具体实现方式中,合约2的授权流程可以包括:1.管理员制定访问控制列表,该访问控制列表中包含用户及该用户具有访问权限的数据之间的对应关系;2.编写仅合约2的数据提供方可调用的访问控制函数,即传入有访问权限的用户的身份标识及具有的访问权限,如采用mapping标记身份标识对应相应数据的访问权限为true/false;3.调用步骤2的访问控制函数,将步骤1中制定的访问控制列表转为智能合约的访问控制列表。由此,中央处理层调用区块链层中的访问控制合约,访问控制合约能够调用访问控制函数,而访问控制函数按照访问控制列表基于数据请求者的身份标识确定数据请求者具有的访问权限,从进而基于数据请求者具有的访问权限确定数据请求者对所请求的数据(即数据访问请求对应的数据)是否具有访问权限,并将数据请求者对所请求的数据是否具有访问权限的结果记录在区块链层的区块链日志中,以避免被篡改等;如向合约2传入用户ID,合约2通过访问控制函数进行访问权限的确定后,通过mapping返回用户具有的访问权限。
需要说明的是,在调用合约2实现数据请求者是否对所请求的数据具有访问权限的确定时,可以将数据请求者的身份标识及请求内容(与请求的数据相对应)等作为参数,合约2基于此调用访问控制函数,以使得访问控制函数基于数据请求者的身份标识及请求内容确定数据请求者对所请求的数据是否具有访问权限,当然根据实际需要还可以进行其他设定,均在本发明的保护范围之内。
S13:中央处理层发送此次访问对应的数据访问信息至数据处理层,以由数据处理层将数据访问信息转发给数据存储层。
其中,在中央处理层接收到数据访问请求后可以发起一笔相应的交易,进而完成该交易,也即针对数据访问请求实现后续的系列操作;并且该交易还可以具有相应的交易标识(如交易ID等)及交易内容(如请求内容、是否对所请求的数据具有访问权限等)。基于此,中央处理层可以将携带有交易标识等唯一性的表示此次交易的数据访问信息通过数据处理层转发给数据存储层,以使得数据存储层确定数据请求者对应的交易标识后,基于该交易标识查询解析相应的交易内容,进而基于交易内容确定数据请求者对所请求的数据是否具有访问权限的结果。
在另一种具体实现方式中,中央处理层还可以查询区块链日志,如果区块链日志中记录的是数据请求者对所请求的数据具有访问权限,则发送数据访问信息至数据处理层,以指示数据处理层从数据存储层中查询相应的数据,否则,直接拒绝数据访问请求,即终止此次数据查询;从而在数据请求者对所请求的数据不具有访问权限时,不再通过数据处理层将数据访问信息转发给数据存储层以进行相应处理,减少数据访问信息的转发及区块链日志中相应信息的查询,提高数据共享方法的效率。
S14:数据存储层在数据访问信息的触发下查询区块链日志,如果查询到判断所得的结果为是,则查询数据访问请求对应的数据,并将查询到的数据通过终端交互层返回给数据请求者。
数据处理层接收到数据访问信息后可以直接将数据访问信息转发给数据存储层,数据存储层可以基于数据请求者对应的交易标识查询解析相应的交易内容,进而基于交易内容确定数据请求者对所请求的数据是否具有访问权限的结果,如果该结果为具有访问权限,则数据存储层查询数据访问请求对应的数据,并将查询到的数据通过终端交互层返回给数据请求者,否则,终止此次数据查询。
本申请通过访问控制合约这一智能合约实现对数据请求者查询数据时权限范围的确定,仅允许数据请求者对其权限范围内的数据进行查询,从而提高数据共享时的数据安全性;并且,在区块链上记录数据请求者查询数据时的权限范围以及上述访问控制合约,能够使得数据查询的过程均在区块链上进行,防止修改和伪造,进一步提高数据共享时的数据安全性;综上,本申请的数据共享方案具有较高的数据安全性。
本发明实施例提供的一种数据共享方法,终端交互层在数据请求者的触发下生成相应的数据访问请求之前,还可以包括:
终端交互层在数据请求者的触发下生成相应的身份注册请求,并将身份注册请求发送至中央处理层;
中央处理层调用区块链层中的注册合约,以由注册合约完成数据请求者的身份注册;
中央处理层调用区块链层中的访问控制合约之前,还可以包括:
中央处理层判断数据请求者是否已完成身份注册,如果是,则执行调用区块链层中的访问控制合约的步骤,否则,拒绝数据访问请求。
数据提供方可以在区块链层上发布注册合约(合约1),合约1包含但不限于身份注册的方法/函数(可以称为身份注册函数)和查询用户公钥的方法/函数(可以称为查询函数)。具体来说,合约1可以提供查询用户公钥的函数(即查询函数),其基于用户的身份标识(如用户ID、用户名等)调用查询函数,相应的返回用户公钥registeredPubkey[name]或空。具体来说,合约1也为智能合约;对于身份注册函数,调用者(注册身份的数据请求者可以通过中央处理层作为调用者实现调用)传入自身的身份标识(如ID、名称等)等唯一身份信息(也即数据请求者的身份信息)及公钥并调用,身份注册函数执行以将注册者(注册身份的数据请求者)的身份信息及公钥记录下来。另外,上述合约函数均需要包含记录日志功能,如在solidity语法中,在合约中申明:event AuthLog(uintUserId,string name);从而在函数中调用AuthLog实现记录日志功能。在一种具体实现方式中,合约1可以通过下述语句实现:
Figure BDA0003110750620000081
本申请实施例中数据请求者可以通过终端交互层发起身份注册请求,即数据请求者携带身份标识及自身的公钥,通过中央处理层发起身份注册的请求,中央处理层调用注册合约,注册合约调用身份注册函数实现数据请求者的身份注册,并将其身份信息及公钥记录至区块链层中;相应的,中央处理层在调用区块链层中的访问控制合约之前,还可以判断数据请求者是否已完成身份注册,也即数据请求者的身份信息是否存在于区块链层中,如果判断的结果为是则继续进行后续步骤,否则终止此次查询。从而通过数据请求者的身份注册及后续对数据请求者是否进行身份注册的验证,进一步提高数据安全性。
本发明实施例提供的一种数据共享方法,中央处理层判断数据请求者是否已完成身份注册,可以包括:
中央处理层查询数据访问请求中携带的身份标识、请求内容及签名信息;其中,签名信息为数据访问者利用自身的公钥对身份标识及请求内容进行摘要计算得到的;
中央处理层调用注册合约,以由注册合约查询区块链层中记录的数据请求者的公钥;其中,公钥为中央处理层完成数据请求者的身份注册时记录至区块链层中的;
中央处理层利用查询的公钥对身份标识及请求内容进行摘要计算,如果计算所得结果与签名信息相同,则确定数据请求者已完成身份注册,否则,确定数据请求者未完成身份注册。
本申请实施例中数据请求者可以携带自身的身份标识、请求内容及签名信息向中央处理层发起数据访问请求,中央处理层接收到数据访问请求后,获取数据访问请求中携带的身份标识,将该身份标识传给注册合约,注册合约调用查询函数在区块链中查询与数据访问请求中身份标识对应的公钥,中央处理层使用该公钥对数据访问请求中的身份标识及请求内容进行验证,从而通过验证的结果确定数据请求者是否完成身份注册,从而有效且方便的实现数据请求者是否实现身份注册的确定。
本发明实施例提供的一种数据共享方法,数据存储层将查询到的数据通过终端交互层返回给数据请求者,可以包括:
数据存储层将查询到的数据返回给数据处理层,数据处理层将查询到的数据通过终端交换层返回给数据请求者;
数据处理层将查询到的数据返回给数据请求者之前,还可以包括:
数据处理层调用注册合约,以由注册合约查询区块链层中记录的数据请求者的公钥;
数据处理层生成临时会话密钥,使用临时会话密钥加密查询到的数据,并使用公钥加密临时会话密钥;
数据处理层将查询到的数据返回给数据请求者,可以包括:
数据处理层将加密后的临时会话密钥及加密后的数据返回给数据请求者,以供数据请求者利用自身的私钥对加密后的临时会话密钥解密得到临时会话密钥,并利用临时会话密钥对加密后的数据解密得到相应的数据。
数据存储层返回数据时可以依次通过数据处理层、中央处理层返回给终端交互层的,在这种情况下,为了确保数据出库后的安全,本申请实施例中数据处理层可以通过调用合约1查询数据请求者的公钥,并生成临时会话密钥key,使用公钥加密临时会话密钥key,并使用key加密查询结果(也即从数据存储层中查询到的与数据访问请求对应的数据);通过中央处理层及终端交互层返回加密后的临时会话密钥key及查询结果给数据请求者,数据请求者使用自己的私钥解密出临时会话密钥key,再使用临时会话密钥key解密查询结果的密文,获得查询结果明文。
本发明实施例提供的一种数据共享方法,数据处理层使用临时会话密钥加密查询到的数据之后,还可以包括:
数据处理层使用自身的私钥对加密后的数据进行摘要计算,得到相应的待验证签名,以供数据请求者利用数据处理层的公钥对解密后的数据进行摘要计算,并在判断出计算得到的结果与待验证签名相对应后执行对加密后的临时会话密钥及数据进行解密的步骤。
为了进一步确保数据出库后的安全,本申请实施例可以运用数据脱敏和非对称加密技术处理查询结果;具体来说,本申请实施例在数据处理层得到加密后的查询结果后,还会使用数据处理层的私钥对加密后的查询结果进行摘要计算,得到相应的签名为待验证签名;数据请求者在接收到解密后的查询结果后,使用数据处理层的公钥对加密后的查询结果进行摘要计算,得到相应的签名为验证签名,如果待验证签名和验证签名是对应的,则说明对待验证签名的验证通过,否则,确定对待验证签名的验证未通过。
本发明实施例提供的一种数据共享方法,还可以包括:
区块链层在外界触发下实现对注册合约中不同数据请求者具有的访问权限进行相应的更新。
本申请实施例中数据提供方可以根据实际需要实现合约2中的权限变更,具体来说,可以编写仅数据提供方可调用的权限变更函数(权限变更函数包含于合约2中),即传入有权限的身份标识和访问权限,则可采用mapping标记身份标识对应的权限为true/false,实现访问控制列表中权限的变更,从而实现了合约2中权限变更的灵活性。
本发明实施例提供的一种数据共享方法,还可以包括:
中央处理层将访问控制合约判断数据请求者对数据访问请求对应的数据是否具有访问权限的结果记录在区块链层中的区块链日志中的同时,将数据请求者此次的访问记录记录在区块链日志中。
为了便于需要时对数据请求者查询数据的记录进行查询,本申请实施例可以将数据请求者查询数据的访问记录访问在区块链日志中(如以太坊的event);访问记录可以包括查询数据请求者的身份信息、请求内容、查询时间等,当然根据实际需要进行的其他设定,也均在本发明的保护范围之内。
在一种具体实现方式中,本发明实施例提供的一种数据共享方法具体可以包括:数据提供方在区块链层上发布注册合约(合约1),合约1包含但不限于身份注册的方法/函数和查询用户公钥的方法/函数;数据提供方定制适用于自身的细粒度访问控制方案,编写相应访问控制合约(合约2)发布在区块链层上,合约2包含但不限于授权、权限变更的方法/函数。数据请求者通过终端交互层发起身份注册请求,即数据请求者携带身份ID和自身公钥通过中央处理层发起身份注册,调用合约1身份注册的方法完成身份注册;数据请求者携带自身ID、请求内容(如数据库名-表名等)及签名信息向中央处理层发起数据访问请求;中央处理层接收数据请求者发起的数据访问请求,根据用户ID在合约1中查询用户公钥。中央处理层使用公钥验证数据请求者数据访问请求中相应请求信息的签名,若签名非法,则终止查询,若合法,则继续。中央处理层发起一笔交易,将数据请求者的ID及查询信息等作为参数,调用合约2的授权方法。合约层合约2判断当前数据请求者是否具备访问权限,将访问记录和结果(是否有权限)等信息记录在区块链日志中(如以太坊的event)。中央处理层查询当前调用合约的交易ID,查询解析该交易日志(即为记录在区块链日志中的内容)中的权限结果,若有权限,则将该交易ID发送给数据处理层;如无权限,终止查询。数据存储层根据交易ID查询交易内容,查询解析该交易日志中的权限结果,若有权限,则将查询到的数据返回给数据处理层,否则,终止查询。数据处理层通过合约1查询用户公钥,并生成临时会话密钥key,使用用户公钥加密临时会话密钥key,使用key加密查询结果,加密后的查询结果使用数据处理层的私钥签名。通过中央处理层返回加密签名的结果给数据请求者,数据请求者使用数据处理层的公钥验证签名,验证通过后,使用自己的私钥解密出临时会话密钥key,再使用key解密查询结果的密文,获得查询结果明文。数据拥有者能够根据实际情况通过区块链智能合约变更访问权限,同时通过区块链记录审核,权限变更的过程。其中,身份注册与数据访问请求处理的交互图可以如图2所示,而数据返回的交互图可以如图3所示,数据拥有者即为数据提供方,中央处理器即为中央处理层。
可见,本申请终端交互层通过终端设备提供用户交互、系统展示;中央处理层为系统的中枢/转发模块,连接用户、区块链层和数据处理层;来自上层的数据访问请求由数据中央处理层转化成对应的数据库查询指令,并转发到对应的数据库系统的数据处理层;区块链层提供智能合约的部署等底层区块链能力;数据处理层接收中央处理层发起的访问请求与令牌,向数据存储层取出数据并做加密签名等处理;数据存储层用于存储数据,其可以为分布式数据存储层,而分布式数据存储层为各个独立的数据库系统,主要用于存储数据。可见,本申请利用区块链以及智能合约技术,结合适当的访问控制机制,实现安全的数据共享;通过智能合约实现注册、授权、权限变更、权限审核等,将与合约方法进行交易的交易ID作为访问令牌;最后结合混合加密技术,实现数据的安全访问。
本方案主要通过区块链技术解决数据共享过程中的安全性问题,尤其是针对敏感数据,主要解决了以下问题:
数据共享过程中的细粒度数据授权:通过智能合约对查询进行预处理,对数据请求者的身份进行验证,确定其查询权限范围;
防篡改的链上日志:智能合约在预处理查询请求时,在链上记录相应的日志,使得日志的产生和存储过程都在链上进行,防止修改和伪造;
链上的权限变更审核:在区块链上对查询权限的修改请求进行公开审核和验证,审核方直接在区块链上提交审核证明,既提高审核效率也防止伪造证明;
数据传输安全:为了确保数据出库后的安全,运用数据脱敏和非对称加密技术处理查询结果。
本发明实施例还提供了一种数据共享系统,如图4所示,可以包括终端交互层、中央处理层、数据处理层、区块链层及数据存储层,其中:
终端交互层,用于:在数据请求者的触发下生成相应的数据访问请求,并将数据访问请求发送至中央处理层;以及将数据存储层查询到的数据返回给数据请求者;
中央处理层,用于:调用区块链层中的访问控制合约,以由访问控制合约判断数据请求者对数据访问请求对应的数据是否具有访问权限,并将判断所得的结果记录在区块链层中的区块链日志中;以及发送此次访问对应的数据访问信息至数据处理层;
数据处理层,用于:将数据访问信息转发给数据存储层;
数据存储层,用于:在数据访问信息的触发下查询区块链日志,如果查询到判断所得的结果为是,则查询数据访问请求对应的数据,并将查询到的数据通过终端交互层返回给数据请求者;
区块链层,用于:存储访问控制合约及区块链日志。
需要说明的是,本发明实施例提供的一种数据共享系统中相关部分的说明请参见本发明实施例提供的一种数据共享方法中对应部分的详细说明,在此不再赘述。另外本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (8)

1.一种数据共享方法,其特征在于,包括:
终端交互层在数据请求者的触发下生成相应的数据访问请求,并将所述数据访问请求发送至中央处理层;
所述中央处理层调用区块链层中的访问控制合约,以由所述访问控制合约判断所述数据请求者对所述数据访问请求对应的数据是否具有访问权限,并将判断所得的结果记录在所述区块链层中的区块链日志中;
所述中央处理层发送此次访问对应的数据访问信息至数据处理层,以由所述数据处理层将所述数据访问信息转发给数据存储层;
所述数据存储层在所述数据访问信息的触发下查询所述区块链日志,如果查询到判断所得的结果为是,则查询所述数据访问请求对应的数据,并将查询到的数据通过所述终端交互层返回给所述数据请求者。
2.根据权利要求1所述的方法,其特征在于,终端交互层在数据请求者的触发下生成相应的数据访问请求之前,还包括:
所述终端交互层在所述数据请求者的触发下生成相应的身份注册请求,并将所述身份注册请求发送至所述中央处理层;
所述中央处理层调用所述区块链层中的注册合约,以由所述注册合约完成所述数据请求者的身份注册;
所述中央处理层调用区块链层中的访问控制合约之前,还包括:
所述中央处理层判断所述数据请求者是否已完成身份注册,如果是,则执行调用区块链层中的访问控制合约的步骤,否则,拒绝所述数据访问请求。
3.根据权利要求2所述的方法,其特征在于,所述中央处理层判断所述数据请求者是否已完成身份注册,包括:
所述中央处理层查询所述数据访问请求中携带的身份标识、请求内容及签名信息;其中,所述签名信息为所述数据访问者利用自身的公钥对所述身份标识及所述请求内容进行摘要计算得到的;
所述中央处理层调用所述注册合约,以由所述注册合约查询所述区块链层中记录的所述数据请求者的公钥;其中,所述公钥为所述中央处理层完成所述数据请求者的身份注册时记录至所述区块链层中的;
所述中央处理层利用查询的公钥对所述身份标识及所述请求内容进行摘要计算,如果计算所得结果与所述签名信息相同,则确定所述数据请求者已完成身份注册,否则,确定所述数据请求者未完成身份注册。
4.根据权利要求3所述的方法,其特征在于,所述数据存储层将查询到的数据通过所述终端交互层返回给所述数据请求者,包括:
所述数据存储层将查询到的数据返回给所述数据处理层,所述数据处理层将查询到的数据通过所述终端交换层返回给所述数据请求者;
所述数据处理层将查询到的数据返回给所述数据请求者之前,还包括:
所述数据处理层调用所述注册合约,以由所述注册合约查询所述区块链层中记录的所述数据请求者的公钥;
所述数据处理层生成临时会话密钥,使用所述临时会话密钥加密查询到的数据,并使用所述公钥加密所述临时会话密钥;
所述数据处理层将查询到的数据返回给所述数据请求者,包括:
所述数据处理层将加密后的所述临时会话密钥及加密后的数据返回给所述数据请求者,以供所述数据请求者利用自身的私钥对加密后的所述临时会话密钥解密得到所述临时会话密钥,并利用所述临时会话密钥对加密后的数据解密得到相应的数据。
5.根据权利要求4所述的方法,其特征在于,所述数据处理层使用所述临时会话密钥加密查询到的数据之后,还包括:
所述数据处理层使用自身的私钥对加密后的数据进行摘要计算,得到相应的待验证签名,以供所述数据请求者利用所述数据处理层的公钥对解密后的数据进行摘要计算,并在判断出计算得到的结果与所述待验证签名相对应后执行对加密后的所述临时会话密钥及数据进行解密的步骤。
6.根据权利要求5所述的方法,其特征在于,还包括:
所述区块链层在外界触发下实现对所述注册合约中不同数据请求者具有的访问权限进行相应的更新。
7.根据权利要求6所述的方法,其特征在于,还包括:
所述中央处理层将所述访问控制合约判断所述数据请求者对所述数据访问请求对应的数据是否具有访问权限的结果记录在所述区块链层中的区块链日志中的同时,将所述数据请求者此次的访问记录记录在所述区块链日志中。
8.一种数据共享系统,其特征在于,包括终端交互层、中央处理层、数据处理层、区块链层及数据存储层,其中:
所述终端交互层,用于:在数据请求者的触发下生成相应的数据访问请求,并将所述数据访问请求发送至中央处理层;以及将所述数据存储层查询到的数据返回给所述数据请求者;
所述中央处理层,用于:调用区块链层中的访问控制合约,以由所述访问控制合约判断所述数据请求者对所述数据访问请求对应的数据是否具有访问权限,并将判断所得的结果记录在所述区块链层中的区块链日志中;以及发送此次访问对应的数据访问信息至数据处理层;
所述数据处理层,用于:将所述数据访问信息转发给数据存储层;
所述数据存储层,用于:在所述数据访问信息的触发下查询所述区块链日志,如果查询到判断所得的结果为是,则查询所述数据访问请求对应的数据,并将查询到的数据通过所述终端交互层返回给所述数据请求者;
所述区块链层,用于:存储所述访问控制合约及所述区块链日志。
CN202110649990.1A 2021-06-10 2021-06-10 一种数据共享方法及系统 Pending CN113239123A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110649990.1A CN113239123A (zh) 2021-06-10 2021-06-10 一种数据共享方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110649990.1A CN113239123A (zh) 2021-06-10 2021-06-10 一种数据共享方法及系统

Publications (1)

Publication Number Publication Date
CN113239123A true CN113239123A (zh) 2021-08-10

Family

ID=77139689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110649990.1A Pending CN113239123A (zh) 2021-06-10 2021-06-10 一种数据共享方法及系统

Country Status (1)

Country Link
CN (1) CN113239123A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108989357A (zh) * 2018-09-12 2018-12-11 中国人民解放军国防科技大学 一种基于区块链的用户授权与数据共享访问控制方法
CN109347941A (zh) * 2018-10-10 2019-02-15 南京简诺特智能科技有限公司 一种基于区块链的数据共享平台及其实现方法
CN110473094A (zh) * 2019-07-31 2019-11-19 阿里巴巴集团控股有限公司 基于区块链的数据授权方法及装置
CN111914269A (zh) * 2020-07-07 2020-11-10 华中科技大学 一种区块链和云存储环境下的数据安全共享方法和系统
CN111950020A (zh) * 2020-07-20 2020-11-17 北京思特奇信息技术股份有限公司 基于区块链的数据共享系统、方法、计算设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108989357A (zh) * 2018-09-12 2018-12-11 中国人民解放军国防科技大学 一种基于区块链的用户授权与数据共享访问控制方法
CN109347941A (zh) * 2018-10-10 2019-02-15 南京简诺特智能科技有限公司 一种基于区块链的数据共享平台及其实现方法
CN110473094A (zh) * 2019-07-31 2019-11-19 阿里巴巴集团控股有限公司 基于区块链的数据授权方法及装置
CN111914269A (zh) * 2020-07-07 2020-11-10 华中科技大学 一种区块链和云存储环境下的数据安全共享方法和系统
CN111950020A (zh) * 2020-07-20 2020-11-17 北京思特奇信息技术股份有限公司 基于区块链的数据共享系统、方法、计算设备和存储介质

Similar Documents

Publication Publication Date Title
US11496310B2 (en) Methods and systems for universal storage and access to user-owned credentials for trans-institutional digital authentication
CN103795692B (zh) 开放授权方法、系统与认证授权服务器
EP3585032B1 (en) Data security service
US7237114B1 (en) Method and system for signing and authenticating electronic documents
US8627437B2 (en) Method for reading attributes from an ID token
US6898707B1 (en) Integrating a digital signature service into a database
CN111316278A (zh) 安全身份和档案管理系统
US6185308B1 (en) Key recovery system
CN102077506B (zh) 用于对等存储系统的安全结构
EP1914951B1 (en) Methods and system for storing and retrieving identity mapping information
CN108830733A (zh) 一种信息处理方法、区块链集群及系统
US20070271618A1 (en) Securing access to a service data object
KR102285805B1 (ko) 보안 상호작용에서 서비스 거부 공격을 검출하기 위한 방법 및 디바이스
CN110704864B (zh) 基于区块链的政府诚信档案证照管理方法
CN113420319A (zh) 一种基于区块链和权限合约的数据隐私保护的方法和系统
CN111415233B (zh) 一种基于区块链多方授权的银行电子询证函生成方法
TWI623904B (zh) 基於區塊鏈智能合約的函證系統及其方法
CN115277122A (zh) 基于区块链的跨境数据流动与监管系统
JPH10260939A (ja) コンピュータネットワークのクライアントマシン認証方法,クライアントマシン,ホストマシン及びコンピュータシステム
CN110635915B (zh) 一种基于多ca的高并发数字证书注册管理方法
CN113239123A (zh) 一种数据共享方法及系统
WO2021073383A1 (zh) 一种用户注册方法、用户登录方法及对应装置
CN114036490A (zh) 外挂软件接口调用安全认证方法、USBKey驱动装置及认证系统
TW202101267A (zh) 帳戶資料處理方法及帳戶資料處理系統
CN112491868B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210810