首页 / 专利库 / 银行与财务事项 / 加密货币 / 比特币 / 一种保护用户隐私和系统安全的线上身份管理方法

一种保护用户隐私和系统安全的线上身份管理方法

阅读:703发布:2020-05-28

专利汇可以提供一种保护用户隐私和系统安全的线上身份管理方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种保护用户隐私和系统安全的线上身份管理方法,该方法通过混淆用户所持有的身份凭证来实现其每次身份认证的不可关联性;并且用户通过验证路径来验证一个身份凭证的有效性,同时验证过程不破坏用户的匿名性和不可关联性;此外,发生恶意行为的用户所持有的身份凭证将被撤销并被加入黑名单,该用户不再能获得新的有效身份凭证,以此实现了可问责性。该发明在互联网上服务、 电子 商务等领域具有重要的应用前景。,下面是一种保护用户隐私和系统安全的线上身份管理方法专利的具体信息内容。

1.一种保护用户隐私和系统安全的线上身份管理方法,其特征在于,包括:
用户向身份管理平台发起身份注册请求,并在收到身份管理平台返回的授权信息后,将授权信息嵌入在用于凭证生成的比特币交易中,从而生成初始身份凭证,并通过授权信息,用于身份管理平台、以及用户之间的初始身份凭证验证;
多个用户一并通过身份凭证混淆器更换其所持有的有效身份凭证,从而生成与有效身份凭证无关联的新的身份凭证,并在新的身份凭证生效后,相应的有效身份凭证失效;其中,有效身份凭证包括:初始身份凭证与当前身份凭证;
当某用户发生恶意行为时,身份管理平台通过更新黑名单并将相应用户的身份凭证撤销,并加入黑名单中,同时,对黑名单的更新进行声明并将声明写入比特币链中。
2.根据权利要求1所述的一种保护用户隐私和系统安全的线上身份管理方法,其特征在于,
用户选取一个自己拥有的未花费交易输出,并将该未花费交易输出和其身份信息一起发送给身份管理平台请求身份注册;
当身份管理平台验证身份注册请求中所包含身份的有效性与合法性,且判定相应用户为新用户时,返回对注册请求所包含的交易输出的授权信息。
3.根据权利要求1所述的一种保护用户隐私和系统安全的线上身份管理方法,其特征在于,
用户创建一笔用于凭证生成的比特币交易,其包含一个输入与至少两个输出;输入消耗了用户所提供给身份管理平台用于授权的未花费交易输出,其中一个输出嵌入了身份管理平台返回给该用户的授权信息,另一个输出包含用户公钥的哈希运算结果,该结果将作为用户的初始身份凭证;
用户将凭证生成交易发送至区块链网络,当该交易被区块链网络接收并被写入比特币区块链后,用户的初始身份凭证生效。
4.根据权利要求1所述的一种保护用户隐私和系统安全的线上身份管理方法,其特征在于,多个用户一并通过身份凭证混淆器更换其身份凭证包括:
用户通过某种边信道发现其他用户;之后,每一用户基于其他用户的验证路径来验证相应用户身份凭证的有效性,并基于其他用户提供的签名来验证其他用户对身份凭证的所有权,同时查看其他用户是否在黑名单中,并且验证其他用户所持有的初始身份凭证所在交易的输出是否是一个未花费交易输出;所述用户包括:普通用户与服务提供者;
当用户之间均通过验证后,各用户将其有效身份凭证以及指定的新身份凭证发送至身份凭证混淆器;
身份凭证混淆器以各用户的有效身份凭证作为交易输入,以指定的新身份凭证作为输出,生成一个用于凭证混淆的比特币交易;凭证混淆交易中,身份凭证混淆器混淆了各用户初始身份凭证以及指定的新身份凭证之间的关联。
5.根据权利要求4所述的一种保护用户隐私和系统安全的线上身份管理方法,其特征在于,该方法还包括:构建验证路径规则,以验证用户身份凭证的有效性;在一笔比特币交易内,对于任意一个输出,将相同序号的输入和输出之间进行关联;在每笔比特币交易间,按照实际的输入和输出之间的指向关系进行关联;基于以上规则,用户能够为其身份凭证生成一条验证路径;验证路径的原点为用户所持有的身份凭证所在的未花费交易输出,终点为某个包含初始身份凭证的交易输出,且该输出所在交易包含由身份管理平台签名的授权信息。
6.根据权利要求4所述的一种保护用户隐私和系统安全的线上身份管理方法,其特征在于,用于凭证混淆的比特币交易创建完毕后,将被广播到区块链网络;当该交易被网络接收并被写入比特币区块链后,各用户指定的新身份凭证生效,同时原身份凭证失效。
7.根据权利要求1所述的一种保护用户隐私和系统安全的线上身份管理方法,其特征在于,该方法还包括:身份凭证注销:用户向身份管理平台发送注销请求以退出系统;该注销请求包含用户所持有的身份凭证和拥有该身份凭证的证明,身份管理平台验证收到的请求,验证通过后,将请求中的身份凭证加入到黑名单中,随后生成并广播黑名单更新交易。
8.根据权利要求1所述的一种保护用户隐私和系统安全的线上身份管理方法,其特征在于,身份管理平台将黑名单中的身份凭证以Merkle树的数据结构排列并生成Merkle树的根,该Merkle树的根即黑名单已更新的声明;
身份管理平台生成一笔用于黑名单更新的比特币交易,并将声明嵌入到该黑名单更新交易中,随后将该交易广播至区块链网络,由区块链网络接收该交易并将其写入比特币区块链中。

说明书全文

一种保护用户隐私和系统安全的线上身份管理方法

技术领域

[0001] 本发明涉及计算机网络安全技术、密码学技术和链技术领域,尤其涉及一种利用比特币区块链来保护用户隐私和系统安全的互联网上身份管理方法。

背景技术

[0002] 在互联网中,用户在身份管理平台上注册并获取身份凭证。用户使用身份凭证向服务提供者认证并在认证通过后使用其提供的服务,或者用户之间通过身份凭证互相认证。
[0003] 一方面,身份管理平台的身份管理大都基于用户的手机号码或者邮箱,用户以手机号码或者邮箱进行身份注册并获取身份凭证,身份凭证通常由用户给定的用户名以及密码组成。对于身份管理平台来说,用户的身份凭证都与其初始注册所用信息(如:手机号码、邮箱等)关联在一起。另一方面,用户每次以其身份凭证向服务提供者认证并使用其所提供的服务时,服务提供者可将用户的访问信息与其身份凭证相关联。对于服务提供者来说,其在积累了某一用户足够多的访问信息后,可利用大数据分析、深度学习等工具,推断出这一用户的出行习惯、消费平、作息规律等隐私信息。若身份管理平台与服务提供者共谋,且身份凭证是基于用户的邮箱、手机号码或者政府签发的身份证件时,服务提供者即可推断出真实世界某人的隐私信息。事实上,目前互联网上的大多数服务提供者使用自有的身份管理系统。
[0004] 现有方案中的第一种是基于2016年ACM数字身份字管理研讨会上Recordon等人发表的《OpenID 2.0:a platform for user-centric identity management》一文中提出的OpenID。该方案已在数以百万个网页中得到使用并拥有超过十亿注册用户账号。OpenID底层由身份提供者以及服务提供者组成,身份提供者负责用户注册以及管理OpenID账号,服务提供者认证用户的OpenID账号并且向用户提供服务。用户与服务提供者的每次认证都需要访问身份提供者,这导致身份提供者可以记录用户每次的活动信息。一个好奇的身份提供者可以进而分析用户的隐私信息并将这些隐私信息卖给第三方。
[0005] 第二种是基于利用零知识证明为用户生成匿名凭证(Anonymous Credential)。其中,以Tsang等人在2007年的ACM CCS发表的《Blacklistable anonymous credentials:blocking misbehaving users without ttps》提出的BLAC为代表。该方案为用户提供可撤销的匿名凭证使得用户可以匿名地互相认证,同时亦可将发生恶意行的用户所持有的匿名凭证加入黑名单。由于利用了零知识证明,使得在认证阶段服务器的计算开销是相对黑名单大小线性增加的。
[0006] 第三种是基于区块链技术。其中,以2017年Khovratovich等人在《Sovrin:digital identities in the blockchain》一文中提出的基于非公开区块链的数字身份系统Sovrin为代表。该系统支持单向以及双向的用户身份验证。然而该系统基于修改过的非公开区块链,并不与现有的比特币区块链相兼容。

发明内容

[0007] 针对现有技术中的缺陷,本发明的目的是提供一种基于比特币区块链来保护用户隐私和系统安全的线上身份管理方法,既可以保护用户隐私,又支持对用户的问责从而确保系统安全。
[0008] 本发明的目的是通过以下技术方案实现的:
[0009] 一种保护用户隐私和系统安全的线上身份管理方法,包括:
[0010] 用户向身份管理平台发起身份注册请求,并在收到身份管理平台返回的授权信息后,将授权信息嵌入在用于凭证生成的比特币交易中,从而生成初始身份凭证,并通过授权信息,用于身份管理平台、以及用户之间的初始身份凭证验证;
[0011] 多个用户一并通过身份凭证混淆器更换其所持有的有效身份凭证,从而生成与有效身份凭证无关联的新的身份凭证,并在新的身份凭证生效后,相应的有效身份凭证失效;其中,有效身份凭证包括:初始身份凭证与当前身份凭证;
[0012] 当某用户发生恶意行为时,身份管理平台通过更新黑名单并将相应用户的身份凭证撤销,并加入黑名单中,同时,对黑名单的更新进行声明并将声明写入比特币区块链中。
[0013] 由上述本发明提供的技术方案可以看出,用户将一笔包含初始身份凭证以及授权信息的比特币交易广播至区块链网络,待该笔交易被写入比特币区块链后,用户的初始身份凭证生效;用户间通过身份凭证混淆器生成一笔比特币交易来安全交换所持有的身份凭证,实现每次身份认证的不可关联性;并且用户通过验证路径来验证一个身份凭证的有效性,同时验证过程不破坏用户的匿名性和不可关联性;此外,发生恶意行为的用户所持有的身份凭证将被撤销并被加入黑名单,并且在比特币区块链上维护黑名单,确保该用户不再能获得新的有效身份凭证,以此实现了可问责性。该发明在互联网上服务等领域具有重要的应用前景。附图说明
[0014] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
[0015] 图1为本发明实施例提供的一种保护用户隐私和系统安全的线上身份管理方法示意图;
[0016] 图2为本发明实施例提供的比特币交易结构图;
[0017] 图3为本发明实施例提供的用于身份凭证生成的比特币交易结构图;
[0018] 图4为本发明实施例提供的身份凭证混淆流程图
[0019] 图5为本发明实施例提供的用于身份凭证混淆的比特币交易结构图;
[0020] 图6为本发明实施例提供的Merkle树结构图;
[0021] 图7为本发明实施例提供的用于黑名单更新的比特币交易结构图。

具体实施方式

[0022] 下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0023] 本发明实施例提供一种保护用户隐私和系统安全的线上身份管理方法,既可以保护用户隐私,又支持对用户的问责从而确保系统安全。该发明在互联网上服务、电子商务等领域具有重要的应用前景。
[0024] 本发明包含的实体主要有4类:身份管理平台、用户(包含普通用户与服务提供者)、区块链网络、身份凭证混淆器。身份管理平台负责配合用户进行身份凭证注册,为用户提供身份凭证注销功能,撤销发生恶意行为的用户所持有的身份凭证,以及使用身份凭证对用户认证等。普通用户以及服务提供者共同构成了用户这一大类。普通用户是相对服务提供者而言,由其服务的用户。普通用户使用身份凭证向服务提供者认证并使用其所提供的服务。在系统中的多个用户可一起参与身份凭证混淆协议,并通过身份凭证混淆器产生一笔用于身份凭证混淆的比特币交易。身份凭证混淆器可以是基于分布式协议的虚拟混淆器,也可以是基于第三方平台的实体混淆器。区块链网络是一个基于比特币区块链的分布式网络。其负责接收本系统产生的比特币交易并将交易写入比特币区块链中。本发明仅利用了比特币区块链,并未修改已有比特币的代码、属性、运作模型等,系统中所产生的用于身份凭证注册、身份凭证混淆以及黑名单更新的比特币交易均为比特币标准交易,因此本发明的实施例可以直接部署在现有的比特币区块链上。
[0025] 如图1所示,为本发明提供的框图;系统支持的核心操作有以下几种:1)身份凭证注册。用户向身份管理平台提交注册信息并获得授权信息,授权信息是身份管理平台用其私钥对用户所提交注册信息中部分内容的签名。用户收到身份管理平台返回的授权信息后,创建一个用于身份凭证生成的比特币交易(以下简称“凭证生成交易”)并将授权信息和初始身份凭证嵌入在该交易中。随后,用户将该凭证生成交易广播至区块链网络中,待网络接收该交易并将其写入比特币区块链后,用户的初始身份凭证生效。若用户想要使用其初始身份凭证完成验证方对其的认证,只需要向验证方证明其对所持有身份凭证的所有权并告知该身份凭证所在的比特币交易。验证方首先检查所有权证明是否正确,随后通过检索比特币区块链获取该交易的完整信息,并检查其是否包含身份管理平台用其私钥签名的授权信息。2)身份凭证混淆。为了获得匿名的身份凭证,若干用户在一起执行一个凭证混淆协议,在身份凭证混淆器的参与下生成一笔用于身份凭证混淆的比特币交易(以下简称“凭证混淆交易”)。凭证混淆交易中包含了用户在混淆前的身份凭证以及混淆后的身份凭证。随后,身份凭证混淆器将凭证混淆交易广播到区块链网络中,待网络接收该交易并将其写入比特币区块链后,用户混淆后的身份凭证生效,同时用户混淆前的身份凭证失效。在凭证混淆协议中,一个用户的旧身份凭证(混淆前的身份凭证)与新身份凭证(混淆后的身份凭证)的关联性并不被其他用户以及第三方知道,因此新身份凭证与旧身份凭证具有不可关联性。这也为新身份凭证提供了匿名性。3)身份凭证撤销。当身份管理平台发现某用户存在恶意操作,其更新黑名单并将该用户所持有的身份凭证加入黑名单中。随后身份管理平台生成一笔用于黑名单更新的比特币交易(以下简称“黑名单更新交易”)并广播至区块链网络等待网络接收。被加入到黑名单中的身份凭证持有者将不能够参与凭证混淆协议以及通过服务提供者对其的认证。4)身份凭证注销。用户可选择主动退出身份管理平台并向平台注销其身份凭证。同身份凭证撤销类似,身份管理平台会在收到用户的注销请求后,将其身份凭证加入黑名单并生成一笔黑名单更新交易。同样地,该用户在之后不能继续参与凭证混淆协议以及使用其失效的身份凭证完成服务提供者对其的认证。5)身份凭证验证。普通用户之间可以通过各自持有的身份凭证互相认证,普通用户也可以使用身份凭证向服务提供者认证并使用其所提供的服务。若一个普通用户为了获得最佳的匿名性,其可以在每次与服务提供者完成身份认证后参与新一轮身份凭证混淆协议并获取新的身份凭证。由于用户的新旧身份凭证之间具有不可关联性,用户在下一次使用新身份凭证与服务提供者进行认证时,服务提供者并不知道这次认证的用户是否是以前认证的某个用户。为了完成认证,用户需要证明其有身份管理平台生成的授权信息。这其中存在两个挑战:1.用户不能直接向验证方出示其在身份凭证注册阶段获得的授权信息,否则用户的匿名性得不到保证,如何在保证用户的匿名性下完成对身份凭证的验证是第一个挑战;2.用户在参与一次凭证混淆协议后,其当前身份凭证已与原授权信息失去关联,如何在保证用户的不可链接性下完成对身份凭证的验证是第二个挑战。为此,我们引入验证路径规则,基于此规则用户构建一条验证路径,在不破坏用户匿名性以及不可链接性的前提下验证身份凭证的有效性。
[0026] 为了便于理解,下面针对本发明实施例中涉及到的比特币交易的相关概念做简要的介绍。
[0027] 一、未花费交易输出。
[0028] 未花费交易输出(Unspent Transaction Output,简称UTXO)是比特币交易的基本单位。一笔比特币交易就是花掉一些UTXO并生成新的UTXO。这些被花掉的UTXO,在该笔比特币交易生效后,便不再属于UTXO。
[0029] 二、比特币交易结构。
[0030] 一笔比特币交易的结构如图2所示,其包含多个输入以及多个输出。
[0031] 比特币交易的标准输出有多种类型,本发明实施例中主要使用如下两种类型:P2PKH以及OP_RETURN。其中,若某个交易输出的类型是P2PKH,则该交易输出为一个UTXO(记该UTXO为UTXO),且该UTXO包含一个公钥的哈希hash(pk),同时该UTXO的拥有者拥有公钥pk以及对应的私钥sk。若某个交易输出的类型为OP_RETURN,则该交易输出可用于存放数据,且不可用做下一笔交易的输入。我们将在后面利用OP_RETURN类型的输出存放用于表示系统不同操作的数据。
[0032] 比特币交易(记该交易为tx)的任意一个输入必须是前一笔交易的UTXO(记该UTXO为UTXOprevious)以及一段解信息。若该UTXOprevious是P2PKH类型,则该解锁信息必须是UTXOprevious拥有者的公钥pkprevious以及其使用私钥pkprevious对该交易tx的签名[0033] 一笔比特币交易通过使用所有者的签名来解锁UTXO,并通过使用新的所有者的比特币公钥来锁定并创建UTXO。一定量的比特币价值在不同所有者之间转移,并在交易中消耗和创建UTXO。
[0034] 为了便于理解,下面针对图1中的各个操作做详细的介绍。
[0035] 一、身份凭证注册。
[0036] 1)发送身份注册请求。
[0037] 我们假设用户安全地知道身份管理平台的公钥(例如通过任何一种常用的公钥基础设施)。同时我们假设用户拥有一定量的UTXO用于生成比特币交易。
[0038] 用户向身份管理平台发送身份注册请求主要过程为:用户选取一个自己拥有的UTXO,并将该UTXO和其身份信息一起发送给身份管理平台。身份管理平台收到注册请求后,先验证请求所含身份信息的有效性及合法性,再判断该身份信息是否未曾用于注册。若以上皆通过,则身份管理平台对请求所包含的UTXO用自己的私钥进行签名并将该签名返回给用户。该签名可以证明身份管理平台对用户所提供UTXO的授权,我们称该签名为授权信息。
[0039] 2)创建凭证生成交易。
[0040] 用户收到身份管理平台返回的授权信息后,创建一个包含初始身份凭证以及该授权信息的比特币交易,并使该交易发送至区块链网络中。主要过程如下:用户创建一笔用于身份凭证生成的比特币交易(以下简称为:“凭证生成交易”),其包含一个输入以及两个输出。
[0041] 如图3所示,该交易的输入所花费的交易输出即是上述身份注册请求中用户所提供的UTXO(记该UTXO为UTXOregistration);该交易第一个输出为P2PKH类型,该输出中所含的公钥哈希(记为:hash(pkuser))就是用户的初始身份凭证,用户拥有该公钥pkuser以及对应的私钥skuser,用户可使用私钥skuser证明其对身份凭证hash(pkuser)的所有权;该交易的第二个输出为OP_RETURN类型,该输出嵌入了上述由身份管理平台返回的授权信息,记身份管理平台公开的公钥为pkplatform以及对应的私钥为skplatform,则该授权信息为[0042] 3)初始身份凭证生效。
[0043] 用户将创建好的用于凭证生成的比特币交易发送至区块链网络,当该交易被区块链网络接收并被写入比特币区块链后,该初始身份凭证生效。
[0044] 4)验证初始身份凭证。
[0045] 验证用户所持有的初始身份凭证包含验证初始身份凭证的有效性、验证用户对初始身份凭证的所有权以及检查初始身份凭证是否在黑名单中。
[0046] 验证者首先检查该身份凭证所在交易的第一个输出是否是一个UTXO。如果不是,则说明该身份凭证已经如操作二发生更换,那么该身份凭证已经失效。然后检查该身份凭证所在交易的第二个OP_RETURN输出是否包含授权信息,并验证授权信息是否为身份管理平台用其私钥对交易的第一个输入所花费的交易输出的签名。若上述验证都通过,则说明该身份凭证有效。
[0047] 随后验证者验证用户是否持有该身份凭证(有无冒用其他用户的身份凭证)。用户通过操作五中所述方法构造所有权证明完成验证。
[0048] 最后验证者检查用户所持有的身份凭证是否在黑名单中。验证者通过操作五中所述方法进行检查。
[0049] 值得注意的是,当用户与身份管理平台交互时可以使用其初始身份凭证进行认证,不过初始身份凭证并不具备匿名性。为了实现匿名认证,若干用户还需执行凭证混淆协议获得新的身份凭证。
[0050] 二、身份凭证混淆。
[0051] 本步骤为多个用户一同利用混淆器生成一笔凭证混淆交易并获得新的身份凭证。身份凭证混淆的执行步骤如图4所示,主要过程如下:
[0052] 1)发现参与者。
[0053] 某个用户作为发起者,通过一个公开的平台广播其准备开始一次凭证混淆并附上一个期限时间。其他有意向进行凭证混淆的用户在看到发起者所广播的消息后,在期限时间内告知该发起者其将参与此次凭证混淆。发起者等到了期限时间,在有足够多的参与者后进行后续步骤。
[0054] 2)验证参与者。
[0055] 之后,发起者生成一个随机数并广播给所有参与者。对于每个用户,其先对收到的随机数进行哈希运算并得到结果,然后用当前持有的身份凭证对应的私钥对该结果进行签名,这个签名用于证明用户对其持有的身份凭证的所有权。在签名生成后,每个用户验证其他参与者。首先,每一用户基于其他参与者所提供的验证路径来验证相应身份凭证的有效性,同时基于参与者提供的签名来验证参与者对身份凭证的所有权,之后检查其他参与者所持有的身份凭证所在交易输出是否是一个UTXO,同时查看身份凭证是否在黑名单中;所述用户包括:普通用户与服务提供商。上述验证路径将在操作五中描述。
[0056] 3)创建凭证混淆交易。
[0057] 当用户之间均通过验证后,各用户将其有效身份凭证以及指定的新身份凭证发送至身份凭证混淆器;身份凭证混淆器以各用户的有效身份凭证作为交易输入,以指定的新身份凭证作为交易输出,生成一个用于凭证混淆的比特币交易(以下简称“凭证混淆交易”);凭证混淆交易中,身份凭证混淆器混淆了各用户有效身份凭证以及指定的新身份凭证之间的关联。所述的有效身份凭证包括:初始身份凭证与当前身份凭证。
[0058] 如图5所示,一个用于身份凭证混淆的比特币交易(以下简称“凭证混淆交易”),接受各用户所持有的身份凭证(即凭证混淆交易创建前用户所持有的有效身份凭证)作为该交易的输入,该交易的各输出则包含用户的新身份凭证。值得注意的是,在创建凭证混淆交易中,为了更好地保证身份的匿名性且不暴露多余信息量,各个包含新身份凭证的输出的数字货币面额应当保持一致。
[0059] 在本发明实施例中,身份凭证混淆器可以是基于CoinJoin或CoinShuffle协议的去中心化的虚拟混淆器。也就是说,若使用虚拟混淆器,则系统不需要引入额外的实体,所有参与者便可一同完成身份凭证混淆协议。
[0060] 在本发明实施例中,身份凭证混淆器也可以是基于中心化平台的实体混淆器。若使用实体混淆器,则需要引入一个第三方作为混淆者,接收参与者的混淆请求,并生成一笔凭证混淆交易。在本发明实施例中,我们使用可信执行环境(TEE)来实现。现有的具备可信执行环境的硬件有Intel SGX以及ARM TrustZone。以Intel SGX为例,参与者生成一笔比特币交易并广播至区块链网络,其中该交易的输入消耗的UTXO为用户当前身份凭证所在的UTXO,交易的第一个输出为SGX为此次混合所生成的接收地址,交易的第二个输出为OP_RETURN类型,并嵌入了参与者的新身份凭证。SGX通过读取比特币区块链,收集这段时间内发送至SGX的接收地址的交易,同时提取这些交易中第二个输出(OP_RETURN类型)所包含的参与者指定的新身份凭证。随后,SGX将这些新身份凭证在安全飞地中混淆,并生成一笔凭证混淆交易,该交易中每个输出嵌入了混淆后的新身份凭证。为了保证匿名性,参与者在OP_RETURN输出中嵌入新身份凭证具体表现为嵌入用SGX的公钥对新身份凭证加密后的密文,同时该密文只有SGX用其私钥可以解密。(我们假设参与者安全地知道SGX的公钥,例如通过任何一种常用的公钥基础设施。)
[0061] 4)广播至区块链网络。
[0062] 凭证混淆交易创建完毕后,将被参与者广播到区块链网络;当该交易被网络接收并被写入比特币区块链后,各参与者指定的新身份凭证生效,同时相应的旧身份凭证失效。
[0063] 当凭证混淆交易生效后,参与用户在交易生效前提供的有效身份凭证在此刻成为了失效的旧身份凭证,同时参与用于在交易生效前指定的新身份凭证在此刻成为了有效的新身份凭证。在验证身份凭证有效性时,通过验证身份凭证所在输出是否是一个UTXO可判断该身份凭证是否是最新的。这是由UTXO的特性所决定的:假设一个UTXO被一个交易的输入所消耗,当该交易被写入比特币区块链后,那么该UTXO就不再是UTXO,同时该交易的输出是新生成的UTXO。
[0064] 因为凭证混淆协议中所有参与用户都不知道其他用户的新身份凭证所对应的旧身份凭证,所以用户所持有的新身份凭证与曾持有的旧身份凭证之间具有不可关联性。
[0065] 三、身份凭证撤销。
[0066] 当某用户发生恶意行为时,身份管理平台更新黑名单并将相应用户所持有的身份凭证加入黑名单中,同时,生成一笔用于黑名单更新的比特币交易(以下简称“黑名单更新交易”),并将声明嵌入到该黑名单更新交易中,随后将该交易广播至区块链网络,由区块链网络接收该交易并将其写入比特币区块链中。
[0067] 如图6所示,身份管理平台将黑名单中的身份凭证以Merkle树的数据结构排列并计算Merkle树的根,该Merkle树的根即黑名单已更新的声明;对于一个存在于黑名单中的身份凭证,身份管理平台可以构造一条关于该身份凭证的Merkle证明用于证明该身份凭证存在于黑名单中;该Merkle证明包含了以该身份凭证所在的叶子节点到Merkle树的根节点的路径所经历的所有节点的兄弟节点;以图6为例,对于“身份凭证1”的Merkle证明为两个哈希值:h2以及h34。
[0068] 如图7所示,一个黑名单更新交易嵌入了黑名单已更新的声明,其输入消耗掉的交易输出是上一笔黑名单更新交易的UTXO。
[0069] 值得注意的是,身份凭证被撤销后,该身份凭证将不再能够使用平台所提供服务以及参与凭证混淆协议,因为它已经不是有效身份凭证,无法通过身份凭证验证。
[0070] 所述的恶意行为可以是身份管理平台或服务提供者预先定义的任何一种可被检测到的用户行为。举例来说:
[0071] 1)用户在使用服务提供者所提供服务时发生了服务提供者所认为的恶意行为。这个恶意行为对于不同的服务提供者来说可以不同。比如,若某服务提供者是类似于滴滴的出行平台,恶意行为可以是利用平台的注册邀请机制恶意刷单骗钱的行为。若某服务提供者是类似小猪短租的民宿平台,恶意行为可以是房客破坏了房源的设施或者房东盗取了房客的物品。当服务提供者发现其提供服务的用户发生了恶意行为后其将告诉身份管理平台。
[0072] 2)用户尝试破坏系统安全。比如,用户试图在参与一个凭证混淆的同时,参与另一个凭证混淆。用户频繁的在参与凭证混淆的过程中退出(若发生一次,可能是用户网络连接出现问题;若多次发生,则可认为用户在破坏其他参与凭证混淆的用户的体验)。用户将自己的身份凭证借给其他用户并被发现。
[0073] 四、身份凭证注销。
[0074] 用户可以向身份管理平台发送注销请求以退出系统。该请求包含用户所持有的身份凭证和拥有该身份凭证的证明,身份管理平台验证收到的请求,验证通过后,将请求中的身份凭证加入到黑名单中,随后生成并广播黑名单更新交易。
[0075] 五、身份凭证验证。
[0076] 1)验证路径规则
[0077] 由于用户的新旧身份凭证之间具有不可关联性,用户在下一次使用新身份凭证与服务提供者进行认证时,服务提供者并不知道这次认证的用户是否是以前认证的某个用户。为了完成认证,用户需要证明其有身份管理平台生成的授权信息。这其中存在两个挑战:第一,用户不能直接向验证方出示其在身份凭证注册阶段获得的授权信息,否则用户的匿名性得不到保证,如何在保证用户的匿名性下完成对身份凭证的验证是第一个挑战;第二,用户在参与一次凭证混淆协议后,其当前身份凭证已与原授权信息失去关联,如何在保证用户的不可链接性下完成对身份凭证的验证是第二个挑战。为此,我们引入验证路径规则,基于此规则用户构建一条验证路径,在不破坏用户匿名性以及不可链接性的前提下验证身份凭证的有效性。
[0078] 验证路径规则具体表现为:
[0079] (1)在一笔比特币交易内:对于任意一个输出,将其与该交易内具有相同序号的输入进行关联。比如,对于一笔凭证混淆交易,将其第一个输出与第一个输入进行关联,将其第二个输出与第二个输入进行关联,以此类推;
[0080] (2)在每个比特币交易间:按照实际的输入和输出之间的指向关系进行关联。比如,若一笔比特币交易的第i个输入消耗的是前一笔比特币交易的第j个输出,那么将该交易的第i个输入和前一笔交易的第j个输出进行关联;
[0081] 通过上述规则,用户可以为其身份凭证生成一条路径(我们称作“验证路径”)。该验证路径的原点为用户所持有的身份凭证所在的UTXO,终点为某个包含初始身份凭证的交易输出,且该输出所在交易包含由身份管理平台签名的授权信息。用户通过构造验证路径,将持有的身份凭证指向了一个授权信息。通过这种关联,验证方只须验证该授权信息的有效性便可验证用户所持有身份凭证的有效性。
[0082] 为了验证一个授权信息的有效性,验证方只须检查该授权信息是否为身份管理平台用其私钥对该授权信息所在交易所消耗的前一笔交易的UTXO的签名。
[0083] 2)所有权证明。用户向验证方进行认证时,验证方还须验证用户对身份凭证的所有权。在本发明实施例中,通过挑战-应答的方式来完成验证。验证者生成一个随机数发送给用户,用户使用其身份凭证对应的私钥对该随机数签名并返回给验证者。验证者验证签名,验证通过后说明用户持有该身份凭证。
[0084] 3)黑名单检查。用户向验证方进行认证时,验证方还须验证用户所持有身份凭证是否在黑名单中。在本发明实施例中,验证方将用户所持有身份凭证发送至身份管理平台并请求其检查该身份凭证是否在黑名单中。若不存在,则身份管理平台返回消息“不存在”给验证方;若存在,则身份管理平台返回消息“存在”以及一个存在性证明给验证方,该证明是身份管理平台依据该身份凭证在以Merkle树为数据结构的黑名单中的位置而生成的Merkle证明。验证方在收到消息“存在”后,验证收到的Merkle证明,若验证通过则说明用户所持有身份凭证存在于黑名单中。
[0085] 4)身份管理平台认证用户。用户向身份管理平台认证时,用户使用验证路径规则为其持有的身份凭证构造一条验证路径以证明该身份凭证的有效性;身份管理平台检查用户所持有的身份凭证是否在黑名单中;身份管理平台检查用户所持有的的身份凭证所在交易的输出是否是一个UTXO。在认证过程中,身份管理平台验证了用户所持有的身份凭证的有效性。
[0086] 5)服务提供者认证普通用户。当普通用户向服务提供者认证时,用户各自使用验证路径规则为其持有的身份凭证构造一条验证路径以证明其所持有的身份凭证的有效性;用户检查对方所持有的身份凭证是否在黑名单中;用户检查对方所持有的身份凭证所在交易的输出是否是一个UTXO。在认证过程中,双方验证了对方所持有的身份凭证的有效性。
[0087] 本发明实施例上述方案,在不需要第三方可信机构下用户间可共同更新其身份凭证;用户当前所持有的身份凭证与历史曾持有的身份凭证之间具有不可链接性;在保证匿名性与不可链接性的前提下,用户与用户之间可互相验证对方所持有的身份凭证的有效性,身份管理平台可验证用户所持有的身份凭证的有效性;身份管理平台可以撤销发生恶意行为的用户所持有的身份凭证。
[0088] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0089] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈