CN114168921B - 具有隐私保护的众包任务分配方法和系统 - Google Patents
具有隐私保护的众包任务分配方法和系统 Download PDFInfo
- Publication number
- CN114168921B CN114168921B CN202111475127.5A CN202111475127A CN114168921B CN 114168921 B CN114168921 B CN 114168921B CN 202111475127 A CN202111475127 A CN 202111475127A CN 114168921 B CN114168921 B CN 114168921B
- Authority
- CN
- China
- Prior art keywords
- task
- account
- information
- user
- module
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000008569 process Effects 0.000 claims abstract description 27
- 238000012795 verification Methods 0.000 claims abstract description 13
- 230000004044 response Effects 0.000 claims abstract description 11
- 230000008520 organization Effects 0.000 claims description 18
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 230000010076 replication Effects 0.000 claims description 5
- 238000011156 evaluation Methods 0.000 claims description 4
- 230000003542 behavioural effect Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 18
- 238000005516 engineering process Methods 0.000 description 16
- 230000006399 behavior Effects 0.000 description 13
- 230000003993 interaction Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 241001481828 Glyptocephalus cynoglossus Species 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- 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
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本公开一种具有隐私保护的众包任务分配的方法,包括以下步骤:请求注册和任务有关的匿名账户;在本地数据库中检索原始账户是否已经申请过针对任务的匿名账户,并且响应于检索到原始账户未申请过针对任务的匿名账户,向原始账户返回匿名账户证书;匿名账户向可信执行环境模块发起信息复制请求;可信执行环境模块向用户链模块获取必要身份信息;响应于可信执行环境模块针对必要身份信息验证成功,将复制的信息发送给匿名账户;匿名账户调用用户链模块上的用户智能合约将匿名账户的信息注册到用户链模块中;匿名账户调用任务链模块中的任务智能合约参与任务。以此方式,在任务分配过程中,既能保护用户隐私又能充分利用用户历史数据。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种具有隐私保护的众包任务分配方法和系统。
背景技术
近年来,利用群智资源来处理复杂任务的众包平台得到了广泛关注和应用。但是,目前大多数众包平台采用了中心化架构,容易受到单点失效、隐私泄露、分布式拒绝服务攻击和女巫攻击等的破坏性影响。同时,由于中心化众包平台的不透明性,使得众包结果的评估和奖励分配可能存在不公平的问题。此外,由于中心化平台只能利用平台自身所拥有的工人资源和任务资源,难以实现平台之间的资源共享。
目前的解决方案是利用区块链技术的架构去中心化、数据不可篡改、行为可以追溯和系统集体维护等特点,实现基于区块链的去中心化众包平台的构建。这些工作虽然在一定程度上解决了传统中心化众包平台的问题,但还存在着数据公开透明导致的用户隐私泄漏、任务分配阶段用户历史数据利用不充分等问题。
为了保护基于区块链的众包平台中用户的隐私,现有的研究通常使用加密技术或匿名技术来解决问题。常用在区块链众包平台中的加密技术包括可搜索加密技术、代理重加密技术、同态加密技术等,常用的匿名技术包括组签名技术、K匿名方法、前缀链接匿名认证技术等。
但是,由于大多数加密过后的用户数据无法被众包平台分析利用,并且常用的匿名技术为了防止其他用户关联原始账户和匿名账户,新生成的匿名账户不具有任何相关信息,任务参与双方无法参考彼此的历史行为和属性信息,进行任务分配。而且,现有的系统架构复杂,技术实现难度大,不利于系统操作和实现。
因此,需要一种具有隐私保护的众包任务分配方法和系统,以至少部分地解决现有技术中存在的上述问题。
发明内容
针对现有技术存在的问题,本公开提供一种具有隐私保护的众包任务分配的方案。在本发明的方案中,本发明中利用针对现有基于区块链的众包平台中数据公开透明导致用户隐私泄漏、在任务分配中用户历史数据利用不充分的问题,使用匿名认证技术生成匿名账户,并且在可信执行环境TEE(包括但不限于Intel SGX、AMD SEV、ARM TrustZone)中将用户历史数据复制给匿名账户,以匿名账户参与任务,充分利用匿名账户中的用户历史数据实现具有时间限制的任务分配。
根据本公开的第一方面,一种具有隐私保护的众包任务分配的方法,包括以下步骤:步骤一:当客户端模块中的原始账户发布任务或者参加任务时,使用原始账户向认证中心模块发起申请,请求注册和任务有关的匿名账户,以针对任务生成匿名账户;步骤二:响应于接收到注册和任务有关的匿名账户的请求,认证中心模块验证原始账户的身份是否合法,并且响应于验证到原始账户的身份合法,在本地数据库中检索原始账户是否已经申请过针对任务的匿名账户,并且响应于检索到原始账户未申请过针对任务的匿名账户,向原始账户返回匿名账户证书,否则向原始账户返回匿名账户已存在的错误信息;步骤三:响应于匿名账户获得匿名账户证书,由匿名账户向可信执行环境模块发起信息复制请求,将原始账户的历史行为信息复制到匿名账户中;步骤四:可信执行环境模块向用户链模块获取必要身份信息,以基于必要身份信息保证复制历史信息的合理性和正确性;步骤五:响应于可信执行环境模块针对必要身份信息验证成功,将复制的信息发送给匿名账户,并且附上可信执行环境模块的签名;步骤六:匿名账户调用用户链模块上的用户智能合约将匿名账户的信息注册到用户链模块中;步骤七:用户智能合约将可信执行环境模块的签名作为可信的依据更新链上数据,并且匿名账户调用任务链模块中的任务智能合约参与任务;步骤八:任务发布者优选地基于用户链模块中的信息查看作为任务执行者的匿名账户的历史任务信息;以及步骤九:任务发布者基于历史任务信息选择任务执行者来执行任务。
在一些实施例中,认证中心模块被配置为作为原始账户和匿名账户的认证中心并且保留着组织的根证书,以及基于根证书来检验发来请求的账户是否属于本组织,并且认证中心模块还被配置为能够签发原始账户证书和匿名账户证书,其中认证中心模块的数据库中存储有原始账户的身份信息、匿名账户的身份信息和任务身份的信息。
在一些实施例中,客户端模块包括组织的用户实体,用户实体具有原始账户身份并且能够拥有一个或多个匿名账户身份,原始账户的用户证书需要由组织的管理员向认证中心模块发起注册过程,原始账户本地发起登记过程,获得组织签发的X509证书,其中在客户端模块中,用户注册需要由管理员发起,以保证组织中的用户是经过验证的诚实用户,匿名证书根据原始账户的信息向认证中心模块发起登记过程,并且匿名证书中存放有任务身份的信息。
在一些实施例中,可信执行环境模块被配置为为数据和代码的执行提供安全空间和保证数据和代码的机密性和完整性,可信执行环境模块提供隔离的环境保存用户的敏感信息,在可信执行环境模块上运行的应用是一个或多个可信应用,可信应用之间通过密码学保证彼此隔离开,并且不会随意读取和操作其它可信应用的数据,其中可信应用在执行前需要做完整性验证,以保证可信应用没有被篡改,可信执行环境模块还被配置为接收匿名账户传递来的账户数据信息,以隐私保护的方式进行数据复制。
在一些实施例中,用户链模块包括保存用户信息的区块链,保存用户信息的区块链上保存着原始账户的数据信息和匿名账户的数据信息,其中原始账户的隐私信息使用原始账户的公钥进行加密,以保证只有原始账户的所有者可以查看隐私信息明文,其中匿名账户的隐私信息使用任务发布者的公钥进行加密,以确保只有任务发布者可以进行查看,用户链模块上部署着用户管理智能合约,用户管理智能合约被配置为负责用户的注册以及用户信息更新。
在一些实施例中,任务链模块是保存任务信息的区块链,保存任务信息的区块链上存储着任务生命周期的数据信息,整个任务生命周期的数据信息包括以下项中的一项或多项:任务发布阶段的基本信息、任务的参与者、任务的解决方案、解决方案的评估结果,以及任务的奖励分配结果,其中在任务链模块上部署着任务管理智能合约,任务管理智能合约被配置为管理众包任务的实现流程。
在一些实施例中,必要身份信息包括隐私信息哈希值和用户公钥中的一种或多种,用于保证复制历史信息的合理性和正确性。
在一些实施例中,在可信执行环境模块中,基于SGX、SEV和TrustZone中的一种或多种来实现匿名账户生成过程中的信息复制,并且其中当基于SGX实现信息复制时,SGX在位于飞地地址空间中开辟受保护内存空间,受保护空间使得能够实现严格的访问控制和加密操作,从而提供对程序数据机密性和代码完整性的保护,避免特权应用访问所述飞地地址空间。
根据本公开的另一方面,一种具有隐私保护的众包任务分配的系统,包括认证中心模块、客户端模块、可信执行环境模块、任务链模块以及用户链模块,认证中心模块、客户端模块、可信执行环境模块、任务链模块以及用户链模块被配置为协作实现根据本公开第一方面的方法。
本公开所要实现的技术效果在于:
1.方法和系统实现方式简洁,避免不必要的交互和信息传输,节约硬件实现成本,并进一步应用区块链技术的架构去中心化、数据不可篡改、行为可以追溯和系统集体维护等特点。
2.使用匿名认证技术生成匿名账户,以匿名账户参与任务,同时一个原始账户可以对应多个匿名账户,可以保证众包任务分配过程中的用户隐私同时提升众包任务分配的效率,与此同时,每一个用户针对每一个任务只能生成一个匿名账户,从而能够防范女巫攻击和分布式拒绝服务攻击。
3.在可信执行环境TEE中将用户历史数据复制给匿名账户,可以实现原始账户和匿名账户之间历史数据复制,在不泄漏隐私的基础上,将原始账户的历史行为信息复制到匿名账户中,作为后续任务分配的参考信息,实现具有时间限制的任务分配。因为保证了原始账户针对具体任务的匿名账户唯一性,可以保证在众包任务分配过程中不仅能充分利用用户历史数据,还能最大程度的保证用户隐私和数据安全。
附图说明
图1示出了根据本公开的一个实施例的众包平台整体框架;
图2示出了根据一个实施例的具有隐私保护的众包任务分配方法框架;以及
图3示出了根据一个实施例的实现匿名账户信息复制的方法。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
本发明针对现有基于区块链的众包平台中数据公开透明导致用户隐私泄漏、在任务分配中用户历史数据利用不充分的问题,旨在提出一种具有隐私保护的众包任务分配方法,在任务分配过程中,既能保护用户隐私又能充分利用用户历史数据。
在本公开的实施例中,为了保护众包任务分配过程中的用户隐私,使用匿名认证技术生成匿名账户,并在可信执行环境TEE(如Intel SGX、AMD SEV、ARM TrustZone)中将用户历史数据复制给匿名账户,以匿名账户参与任务,充分利用匿名账户中的用户历史数据实现具有时间限制的任务分配。
图1示出了根据本公开的一个实施例的众包平台整体框架。参照图1众包平台的总体框架。在一些实施例中,框4指示的众包平台包括存储层、区块链层和应用层。如图1所示,在存储层中,任务原始数据模块和任务解决方案模块可以存储在IPFS里,并且存储层的数据哈希值保存在区块链层中。在应用层中,分别包括任务管理模块和用户管理模块,两者可以与区块链层进行数据交互。
在一些实施例中,区块链层包括任务发布模块、任务接受和工人选择模块2、任务提交模块、任务评估和奖励分配模块3、用户智能合约模块以及任务链和用户链模块1。具体来说,任务链模块可以根据哈希值检索存储在存储层中的任务原始数据模块和任务解决方案模块。如图1所示,本公开针对任务接受和工人选择模块2中的任务接受和工人选择步骤提出了一种具有隐私保护的众包任务分配的方案。需要注意,在本文中,“工人”和“任务执行者”属于相同或相似概念,可以互换使用。
图2示出了根据一个实施例的具有隐私保护的众包任务分配方法框架。参考图2,在用户参与任务时,使用匿名认证技术实现匿名账户的生成,使得每一个用户针对每一个任务只能生成一个匿名账户,以此防范女巫攻击和分布式拒绝服务攻击。并且使用TEE来实现原始账户和匿名账户的信息复制,在不泄漏隐私的基础上,将原始账户的历史行为信息复制到匿名账户中,作为后续任务分配的参考信息,实现具有时间限制的任务分配。
如图2所示,参与实体可以包括认证中心CA、客户端、TEE、任务链、用户链五部分。需要说明的是,认证中心CA、客户端、TEE、任务链、用户链可以被称之为认证中心CA模块、客户端模块、TEE模块、任务链模块、用户链模块。下面将结合图2对上述五个部分分别进行详细介绍。
在一些实施例中,认证中心CA作为账户的认证中心,保留着整个组织的根证书,并以此来检验发来请求的账户是否属于本组织,并兼具签发用户证书(原始账户证书)和匿名证书(匿名账户证书)的功能。CA的数据库中存储着原始账户的身份信息,匿名账户的身份信息和任务身份的信息。
在一些实施例中,客户端指的是某一组织的某一用户实体,具有一个原始账户身份,可拥有多个匿名账户身份。原始账户的用户证书需要由该组织的管理员向CA发起注册过程,原始账户本地发起登记过程,获得该组织签发的X509证书。由于用户注册需要由管理员发起,因此,可以保证组织中的用户是某一个经过验证的诚实用户。匿名证书需要根据原始账户的信息向CA发起登记过程,匿名证书中存放着任务ID的信息。
在一些实施例中,参考图2,TEE给数据和代码的执行提供一个更安全的空间,并保证它们的机密性和完整性。TEE提供了一个隔离的环境保存用户的敏感信息,在TEE上运行的应用叫做可信应用(Trusted Application,简称TA),可信应用之间通过密码学技术保证它们之间是隔离开的,不会随意读取和操作其它可信应用的数据。另外,可信应用在执行前需要做完整性验证,保证应用没有被篡改。TEE负责接收匿名账户传递来的账户数据信息,以隐私保护的方式进行数据复制。
继续参考图2,在一些实施例中,用户链是保存用户信息的区块链,该链上保存着原始账户的数据信息和匿名账户的数据信息。原始账户的隐私信息是使用原始账户的公钥来进行加密的,保证只有原始账户的所有者可以查看隐私信息明文。匿名账户的隐私信息是使用任务发布者的公钥进行加密的,确保只有任务发布者可以进行查看。用户链上部署着用户管理智能合约,主要负责用户的注册、用户信息更新等功能。
在图2中,根据一些实施例,任务链是保存任务信息的区块链,链上存储着任务整个生命周期的数据信息,包括任务发布阶段的基本信息,任务的参与者,任务的解决方案,解决方案的评估结果,以及任务的奖励分配结果等。在任务链上部署着任务管理智能合约,负责管理众包任务的实现流程。
基于图2所示的各个模块的系统图,本公开的方法的实现过程可以包括:当用户想要发布任务或者参加任务时,要针对该任务生成匿名账户,使用原始账户向CA认证中心发起申请,要求注册和任务有关的匿名账户(步骤①)。CA收到请求后,验证原始用户的身份是否合法。验证过后,检索本地数据库该原始账户是否已经申请过针对该任务的匿名账户,若未申请过,则向该用户返回匿名账户证书,否则返回匿名账户已存在的错误信息(步骤②)。匿名账户拿到证书后,要将原始账户的行为信息复制到匿名账户中,由匿名账户向TEE信息发起信息复制请求(步骤③)。TEE将原始账户的历史行为信息复制到匿名账户中,在该过程中,TEE向用户链获取必要身份信息,包括隐私信息哈希值,用户的公钥等(步骤④),以这些信息为根据来保证信息复制的合理性和正确性。TEE验证成功后将复制的信息发送给匿名账户,并附上自己的签名(步骤⑤)。匿名账户调用用户链上的智能合约将自己的信息注册到用户链中(步骤⑥),用户智能合约将TEE的签名作为可信的依据更新链上数据。匿名账户调用任务区块链中的任务智能合约参与任务(步骤⑦)。在任务分配阶段,任务发布者可以查看工人的历史任务信息(步骤⑧),选择更适合的工人来完成任务(步骤⑨),提高任务完成的质量和效率。
继续参考图1和图2,在匿名账户生成的过程中,在一些实施例中,可以采用任意可以实现上述匿名认证的匿名认证技术,将任务ID编码到匿名账户的证书中。CA在发布匿名证书时如果查询到该账户已有相关任务的证书发放,则拒绝此次请求,以保证匿名账户关于任务ID的唯一性。在一些实施例中,使用零知识证明方法对证书进行签名,隐藏原始账户ID信息,保留任务ID信息。任务智能合约会对匿名证书的任务ID进行校验,只有任务ID相符的证书才能发布、加入、处理任务。该过程涉及到认证中心CA、客户端、区块链三部分。表1介绍了匿名认证技术中使用的符号。需要说明,零知识证明方法仅仅是示例性的,本领域技术人员可以根据实际需要采用任意合适的对证书进行签名的方法。
表1匿名认证技术的符号说明
在上述实施例中,客户端主要包括Enroll、Sign两个函数。其中Enroll函数包括匿名账户注册函数。该函数的主要功能是向CA端注册匿名账户证书,在该函数中,需要的参数为当前需要注册匿名账户的原始账户信息Ui,当前用户需要参与的任务ID,该算法输出匿名账户的身份信息。具体的算法如表2所示。
表2客户端Enroll算法
其中,Sign包括匿名账户签名函数。该函数的主要功能是对匿名证书做零知识证明,可以隐藏证书中的部分消息,在本文中隐藏匿名账户的身份ID信息,展示匿名账户的任务ID信息。将签名发送给区块链,区块链可以在不知道具体信息的情况下验证该匿名证书是由CA发放的可靠证书,具体算法如表3所示。
表3客户端Sign算法
其中,在一些实施例中,CA端主要包括CASetup、Enroll两个函数。
CASetup包括CA的初始化函数。在匿名账户生成前,CA要生成自己的私钥和公钥。随机选择一个并计算/>ω为CA的公钥,γ为CA的私钥。CA需要存储四元组(i,Ui,Ci,IDT),代表着每一个用户i的原始身份标识Ui和关于任务T的匿名证书Ci。
Enroll包括匿名账户注册函数。CA端收到用户端发起的匿名账户注册请求,第一次请求发送随机数s’,验证原始账户的身份,第二次包含原始账户的身份信息,CA处理后将新的属性TaskID的信息存储在CA本地数据库,并将生成的公钥信息发送给原始账户。具体的算法流程如表4所示
表4 CA端Enroll算法
其中,区块链端也就是Fabric端主要为验证函数,验证用户提供的零知识证明的签名是否有效,具体的算法如表5,输出为true表示验证成功,输出为false验证失败。
表5 Fabric端Verify算法
在一些实施例中,基于TEE的匿名账户生成可以通过以下方式来完成。使用TEE来实现匿名账户生成过程中的信息复制。在实现中,使用的Intel的SGX来完成TEE的功能。SGX是实现在第六代CPU之后的一组扩展指令集。SGX着眼于提供一个为用户应用程序提供可信的执行环境,为了达到这一目标,SGX使得应用程序在一段位于飞地(Enclave)地址空间中能够开辟一段受保护的内存空间。这段受保护空间实行严格的访问控制和加密操作来提供对程序数据机密性和代码完整性的保护,使得即使是Hypervisor、BIOS,操作系统等特权应用都不能随意访问这段地址空间。在飞地中运行的受保护程序还拥有一个密码学测度,这可被发送给客户端来验证程序的可信执行和为远程终端或不可信平台提供验证。因此使用SGX将原始账户的历史任务信息和属性信息复制给匿名账户,可以确保过程中的用户隐私,并且保证原始账户和匿名账户不被链接。表6对匿名账户生成过程中使用的符号进行了解释说明。
为了方便用户和TEE进行沟通,不使用Intel提供的远程服务来进行会话,而是提前将TEE部署好,使用TEE生成RSA公私钥对,公钥pubTEE直接导出并公开,私钥priTEE使用SGX的seal功能密封保存,并且在使用SGX实例的时候通过unseal功能将私钥读取并作为全局变量保存。
表6匿名账户生成的符号说明
图3示出了根据一个实施例的实现匿名账户信息复制的方法。在一些实施例中,在客户端,原始账户ui根据任务ID从CA处申请匿名账户u'i后,匿名账户u'i向TEE发起匿名账户数据复制的请求。客户端的主要任务是向TEE证明这个用户既是匿名账户u'i同时也是原始账户ui。需要传递给TEE的信息包括原始账户的ID信息/>原始账户的隐私信息匿名账户的ID信息/>任务的ID信息/>信息最终由pubTEE进行加密,只有指定的TEE能够解密,并且由u'i对加密过后的信息进行签名。
只有同时拥有原始账户私钥和匿名账户私钥,才能保证此次发起的匿名账户数据复制操作是有效的。下面介绍TEE端是如何验证发送该信息的用户是同时具有两个账户信息的。
验证该信息是由原始账户ui发出的。该过程需要因为区块链上的隐私信息都是由用户的公钥加密存储的,因此,只有用户本人的私钥可以解密得到隐私信息的明文。同时,区块链上存储着隐私信息的明文对应的哈希值,只要通过区块链得到哈希值,对比/>的哈希值就可以验证此次信息传递的/>是否是正确的。
验证该信息是匿名账户u'i发出,由于使用u'i的私钥做数据签名,只要TEE向区块链申请u'i的公钥,来验证签名,就可以确认u'i的身份。
TEE端需要的操作如下,首先将传递的加密数据使用预留的私钥priTEE进行解密。解密过后根据和/>向区块链申请匿名账户的公钥/>任务的公钥/>申请所有用户的哈希信息并检索原始用户ui的哈希信息/>接下来验证签名,查看是否是由匿名账户的私钥进行签名的。验证/>使用SHA256进行摘要,对比区块链中的结果。验证成功后,将隐私信息复制给匿名账户,使用/>加密为任务生成的用户隐私数据/>使用/>加密为匿名账户生成的用户隐私数据/>并用priTEE对加密后的数据、匿名账户的隐私数据哈希值,匿名账户ID进行签名,将数据返回给匿名账户。
匿名账户在收到TEE传递回的信息后,将数据发送到用户链中,用户链验证签名是由TEE传出的,作为可信的依据来更新链上数据。
需要说明的是,上述方法仅仅是示例性的,本领域技术人员可以根据实际需要采用其他任意合适的方法,例如SEV和TrustZone等,本公开对此不做限制。
在一些实施例中,可以通过下述示例性的方式实现具有时间限制的任务分配。
在一些实施例中,在用户发布任务和参与任务的过程中,匿名技术可以保护用户隐私。但在任务执行过程中,任务发布者应该具有查看工人部分信息的权利,在此基础上进行工人选择、分配任务,保证任务的完成效率和完成质量。
用户链上的隐私数据全部以密文的方式进行存储。原始账户使用原始账户的公钥进行加密,只有原始账户可以进行查看,CA、智能合约、以及其他用户都不能进行解密,以此保证原始账户的隐私。
用户在浏览任务链上的任务时,可以通过拉取的方式浏览感兴趣的众包任务,并从中选取自己喜欢的任务进行参与。在参加任务的过程中需要执行匿名账户生成的操作,在匿名账户生成的操作中传递回来的密文是使用的是任务的公钥来进行加密,只有任务发布者可以查看参与该任务的匿名账户的数据信息。这些信息都是参加任务的工人的相关信息,帮助任务发布者选择更符合条件的工人,进行任务分配,提高任务完成的效率和质量。并且匿名账户生成的密文是截止到当前时间的隐私信息,因此只要对隐私信息进行模糊处理,就可以保证任务发布者不能推断出工人的具体身份,但是可以从一定程度上了解到工人的一些属性信息以及历史任务信息。工人的数据更改后,任务发布者不能持续感知,实现对工人的隐私保护。
需要说明的是,本发明中不仅可以使用Web页面进行交互,还可以使用本地应用或者其他任意合适的方式来实现。
综上所述,本公开提供了一种具有隐私保护的众包任务分配的方法,包括以下步骤:步骤一:当客户端模块中的原始账户发布任务或者参加任务时,使用原始账户向认证中心模块发起申请,请求注册和任务有关的匿名账户,以针对任务生成匿名账户;步骤二:响应于接收到注册和任务有关的匿名账户的请求,认证中心模块验证原始账户的身份是否合法,并且响应于验证到原始账户的身份合法,在本地数据库中检索原始账户是否已经申请过针对任务的匿名账户,并且响应于检索到原始账户未申请过针对任务的匿名账户,向原始账户返回匿名账户证书,否则向原始账户返回匿名账户已存在的错误信息;步骤三:响应于匿名账户获得匿名账户证书,由匿名账户向可信执行环境模块发起信息复制请求,将原始账户的历史行为信息复制到匿名账户中;步骤四:可信执行环境模块向用户链模块获取必要身份信息,以基于必要身份信息保证复制历史信息的合理性和正确性;步骤五:响应于可信执行环境模块针对必要身份信息验证成功,将复制的信息发送给匿名账户,并且附上可信执行环境模块的签名;步骤六:匿名账户调用用户链模块上的用户智能合约将匿名账户的信息注册到用户链模块中;步骤七:用户智能合约将可信执行环境模块的签名作为可信的依据更新链上数据,并且匿名账户调用任务链模块中的任务智能合约参与任务;步骤八:任务发布者优选地基于用户链模块中的信息查看作为任务执行者的匿名账户的历史任务信息;以及步骤九:任务发布者基于历史任务信息选择任务执行者来执行任务。
通过本公开的实施例,方法和系统实现方式简洁,避免不必要的交互和信息传输,节约硬件实现成本,并进一步应用区块链技术的架构去中心化、数据不可篡改、行为可以追溯和系统集体维护等特点;使用匿名认证技术生成匿名账户,以匿名账户参与任务,同时一个原始账户可以对应多个匿名账户,可以保证众包任务分配过程中的用户隐私同时提升众包任务分配的效率,与此同时,每一个用户针对每一个任务只能生成一个匿名账户,从而能够防范女巫攻击和分布式拒绝服务攻击;匿名账户在可信执行环境TEE中将用户历史数据复制给匿名账户,可以实现原始账户和匿名账户之间历史数据复制,在不泄漏隐私的基础上,将原始账户的历史行为信息复制到匿名账户中,作为后续任务分配的参考信息,实现具有时间限制的任务分配。因为保证了原始账户针对具体任务的匿名账户唯一性,可以保证在众包任务分配过程中不仅能充分利用用户历史数据,还能最大程度的保证用户隐私和数据安全。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (9)
1.一种具有隐私保护的众包任务分配的方法,其特征在于,包括以下步骤:
步骤一:当客户端模块中的原始账户发布任务或者参加任务时,使用所述原始账户向认证中心模块发起申请,请求注册和所述任务有关的匿名账户,以针对所述任务生成所述匿名账户;
步骤二:响应于接收到注册和所述任务有关的所述匿名账户的请求,所述认证中心模块验证所述原始账户的身份是否合法,并且响应于验证到所述原始账户的身份合法,在本地数据库中检索所述原始账户是否已经申请过针对所述任务的所述匿名账户,并且响应于检索到所述原始账户未申请过针对所述任务的所述匿名账户,向所述原始账户返回匿名账户证书,否则向所述原始账户返回所述匿名账户已存在的错误信息;
步骤三:响应于所述匿名账户获得所述匿名账户证书,由所述匿名账户向可信执行环境模块发起信息复制请求,将所述原始账户的历史行为信息复制到所述匿名账户中;
步骤四:所述可信执行环境模块向用户链模块获取必要身份信息,以基于所述必要身份信息保证复制所述历史信息的合理性和正确性;
步骤五:响应于所述可信执行环境模块针对所述必要身份信息验证成功,将复制的信息发送给所述匿名账户,并且附上所述可信执行环境模块的签名;
步骤六:所述匿名账户调用所述用户链模块上的用户智能合约将所述匿名账户的信息注册到所述用户链模块中;
步骤七:所述用户智能合约将所述可信执行环境模块的签名作为可信的依据更新链上数据,并且所述匿名账户调用任务链模块中的任务智能合约参与任务;
步骤八:任务发布者优选地基于所述用户链模块中的信息查看作为任务执行者的所述匿名账户的历史任务信息;以及
步骤九:所述任务发布者基于所述历史任务信息选择所述任务执行者来执行所述任务。
2.根据权利要求1所述的方法,其特征在于,所述认证中心模块被配置为作为所述原始账户和所述匿名账户的认证中心并且保留着组织的根证书,以及基于所述根证书来检验发来请求的账户是否属于本组织,并且认证中心模块还被配置为能够签发原始账户证书和匿名账户证书,其中所述认证中心模块的数据库中存储有所述原始账户的身份信息、所述匿名账户的身份信息和任务身份的信息。
3.根据权利要求1或2所述的方法,其特征在于,所述客户端模块包括组织的用户实体,所述用户实体具有原始账户身份并且能够拥有一个或多个匿名账户身份,所述原始账户的用户证书需要由所述组织的管理员向所述认证中心模块发起注册过程,所述原始账户本地发起登记过程,获得所述组织签发的X509证书,其中在所述客户端模块中,用户注册需要由所述管理员发起,以保证所述组织中的用户是经过验证的诚实用户,匿名证书根据原始账户的信息向所述认证中心模块发起登记过程,并且所述匿名证书中存放有任务身份的信息。
4.根据权利要求1所述的方法,其特征在于,所述可信执行环境模块被配置为为数据和代码的执行提供安全空间和保证所述数据和代码的机密性和完整性,所述可信执行环境模块提供隔离的环境保存用户的敏感信息,在所述可信执行环境模块上运行的应用是一个或多个可信应用,所述可信应用之间通过密码学保证彼此隔离开,并且不会随意读取和操作其它可信应用的数据,其中所述可信应用在执行前需要做完整性验证,以保证所述可信应用没有被篡改,所述可信执行环境模块还被配置为接收匿名账户传递来的账户数据信息,以隐私保护的方式进行数据复制。
5.根据权利要求1所述的方法,其特征在于,所述用户链模块包括保存用户信息的区块链,所述保存用户信息的区块链上保存着所述原始账户的数据信息和所述匿名账户的数据信息,其中所述原始账户的隐私信息使用所述原始账户的公钥进行加密,以保证只有原始账户的所有者可以查看隐私信息明文,其中所述匿名账户的隐私信息使用任务发布者的公钥进行加密,以确保只有任务发布者可以进行查看,所述用户链模块上部署着用户管理智能合约,所述用户管理智能合约被配置为负责用户的注册以及用户信息更新。
6.根据权利要求1所述的方法,其特征在于,所述任务链模块是保存任务信息的区块链,所述保存任务信息的区块链上存储着任务生命周期的数据信息,所述任务生命周期的数据信息包括以下项中的一项或多项:任务发布阶段的基本信息、任务的参与者、任务的解决方案、解决方案的评估结果,以及任务的奖励分配结果,其中在所述任务链模块上部署着任务管理智能合约,所述任务管理智能合约被配置为管理众包任务的实现流程。
7.根据权利要求1所述的方法,其特征在于,所述必要身份信息包括隐私信息哈希值和用户公钥中的一种或多种,以用于保证复制所述历史信息的合理性和正确性。
8.根据权利要求1所述的方法,其特征在于,还包括:在所述可信执行环境模块中,基于SGX、SEV和TrustZone中的一种或多种来实现所述匿名账户生成过程中的信息复制;并且其中当基于SGX实现信息复制时,所述SGX在位于飞地地址空间中开辟受保护内存空间,所述受保护空间使得能够实现严格的访问控制和加密操作,从而提供对程序数据机密性和代码完整性的保护,避免特权应用访问所述飞地地址空间。
9.一种具有隐私保护的众包任务分配的系统,其特征在于,包括认证中心模块、客户端模块、可信执行环境模块、任务链模块以及用户链模块,所述认证中心模块、所述客户端模块、所述可信执行环境模块、所述任务链模块以及所述用户链模块被配置为协作实现根据权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111475127.5A CN114168921B (zh) | 2021-12-06 | 2021-12-06 | 具有隐私保护的众包任务分配方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111475127.5A CN114168921B (zh) | 2021-12-06 | 2021-12-06 | 具有隐私保护的众包任务分配方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114168921A CN114168921A (zh) | 2022-03-11 |
CN114168921B true CN114168921B (zh) | 2024-05-31 |
Family
ID=80483177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111475127.5A Active CN114168921B (zh) | 2021-12-06 | 2021-12-06 | 具有隐私保护的众包任务分配方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114168921B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114826572A (zh) * | 2022-03-31 | 2022-07-29 | 西安电子科技大学 | 支持属性隐私保护的去中心化众包方法、系统及终端 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110069345A (zh) * | 2019-04-23 | 2019-07-30 | 江苏大学 | 基于区块链的众包资源分布式匿名配给方法及其配给系统 |
WO2020061923A1 (zh) * | 2018-09-27 | 2020-04-02 | 区链通网络有限公司 | 一种基于区块链的账户管理系统以及管理方法、存储介质 |
CN111476573A (zh) * | 2020-04-13 | 2020-07-31 | 腾讯科技(深圳)有限公司 | 一种账户数据处理方法、装置、设备及存储介质 |
CN112446048A (zh) * | 2020-11-26 | 2021-03-05 | 平安科技(深圳)有限公司 | 一种基于区块链的数据共享方法、系统、终端及存储介质 |
CN112839046A (zh) * | 2021-01-14 | 2021-05-25 | 暨南大学 | 基于区块链的可追踪的匿名众包方法及系统 |
WO2021138591A1 (en) * | 2020-01-03 | 2021-07-08 | Battelle Memorial Institute | Blockchain cybersecurity solutions |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101873301B (zh) * | 2009-04-22 | 2015-10-21 | 索尼株式会社 | 匿名注册系统以及方法 |
-
2021
- 2021-12-06 CN CN202111475127.5A patent/CN114168921B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020061923A1 (zh) * | 2018-09-27 | 2020-04-02 | 区链通网络有限公司 | 一种基于区块链的账户管理系统以及管理方法、存储介质 |
CN110069345A (zh) * | 2019-04-23 | 2019-07-30 | 江苏大学 | 基于区块链的众包资源分布式匿名配给方法及其配给系统 |
WO2021138591A1 (en) * | 2020-01-03 | 2021-07-08 | Battelle Memorial Institute | Blockchain cybersecurity solutions |
CN111476573A (zh) * | 2020-04-13 | 2020-07-31 | 腾讯科技(深圳)有限公司 | 一种账户数据处理方法、装置、设备及存储介质 |
CN112446048A (zh) * | 2020-11-26 | 2021-03-05 | 平安科技(深圳)有限公司 | 一种基于区块链的数据共享方法、系统、终端及存储介质 |
CN112839046A (zh) * | 2021-01-14 | 2021-05-25 | 暨南大学 | 基于区块链的可追踪的匿名众包方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114168921A (zh) | 2022-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Miao et al. | Multi-authority attribute-based keyword search over encrypted cloud data | |
Shen et al. | A privacy-preserving and untraceable group data sharing scheme in cloud computing | |
TWI701929B (zh) | 密碼運算、創建工作密鑰的方法、密碼服務平台及設備 | |
US7526649B2 (en) | Session key exchange | |
Cai et al. | Towards private, robust, and verifiable crowdsensing systems via public blockchains | |
Wang et al. | EIDM: A ethereum-based cloud user identity management protocol | |
TWI706658B (zh) | 密碼運算、創建工作密鑰的方法、密碼服務平台及設備 | |
JP2004537095A (ja) | 情報セキュリティシステム | |
CN111614680B (zh) | 一种基于cp-abe的可追溯云存储访问控制方法和系统 | |
Xu et al. | An efficient blockchain‐based privacy‐preserving scheme with attribute and homomorphic encryption | |
CN107302524A (zh) | 一种云计算环境下的密文数据共享系统 | |
CN114168913B (zh) | 基于智能合约众包结果评估与奖励分配方法和系统 | |
CN117240452A (zh) | 一种基于区块链的高原数据安全共享方法 | |
Mao et al. | BTAA: Blockchain and TEE-Assisted Authentication for IoT Systems | |
CN114168921B (zh) | 具有隐私保护的众包任务分配方法和系统 | |
Hu et al. | Enhancing Account Privacy in Blockchain-based IoT Access Control via Zero Knowledge Proof | |
Gowda et al. | Blockchain-based access control model with privacy preservation in a fog computing environment | |
CN116582261A (zh) | 一种区块链隐私合约密钥系统及密钥生成方法、使用方法 | |
Shi et al. | Privacy protection in social applications: A ciphertext policy attribute‐based encryption with keyword search | |
Kashif et al. | BCPriPIoT: BlockChain utilized privacy-preservation mechanism for IoT devices | |
Zhang et al. | A Secure Access Control Framework for Cloud Management | |
Hahn et al. | Verifiable outsourced decryption of encrypted data from heterogeneous trust networks | |
Frimpong et al. | Footsteps in the fog: Certificateless fog-based access control | |
Wu et al. | E‐LPDAE: An Edge‐Assisted Lightweight Power Data Aggregation and Encryption Scheme | |
Moon et al. | A Secure Authentication Protocol for Cloud Services |
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 |