CN115176247A - 使用成对的去中心化标识符的委托 - Google Patents

使用成对的去中心化标识符的委托 Download PDF

Info

Publication number
CN115176247A
CN115176247A CN202180017326.3A CN202180017326A CN115176247A CN 115176247 A CN115176247 A CN 115176247A CN 202180017326 A CN202180017326 A CN 202180017326A CN 115176247 A CN115176247 A CN 115176247A
Authority
CN
China
Prior art keywords
computing system
owner
data
relationship
distributed ledger
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
CN202180017326.3A
Other languages
English (en)
Inventor
B·默多克
A·帕特尔
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN115176247A publication Critical patent/CN115176247A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/604Tools and structures for managing or administering access control systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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
    • G06F16/2365Ensuring data consistency and integrity
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • H04W12/084Access security using delegated authorisation, e.g. open authorisation [OAuth] protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Data Mining & Analysis (AREA)
  • Storage Device Security (AREA)

Abstract

在成对的DID之间委托许可范围。首先,计算系统确定第一DID和第二DID之间的关系。第一DID和第二DID是成对的DID。基于该关系,计算系统将第一DID拥有的许可范围委托给第二DID。具体而言,计算系统定义了许可范围,将许可范围授予第二DID的公钥。已定义许可范围的委托由第一DID的私钥签名,使得该签名即为委托的证明。然后将与委托相关的数据部分传播到分布式账本上。

Description

使用成对的去中心化标识符的委托
背景技术
目前使用的大多数证明身份的文件或记录都是由中心化组织发布的,例如政府、学校、雇主或其他服务中心或监管机构。这些组织通常将每个成员的身份维护在中心化身份管理系统中。中心化身份管理系统是用于组织管理已发布的身份、身份认证、授权、角色和特权的中心化信息系统。中心化身份管理系统已经被认为是安全的,因为它们经常使用专业维护的硬件和软件。通常,身份发布组织会设置针对在组织中注册人员的条款和要求。最后,当一方需要验证另一方的身份时,验证方往往需要通过中心化身份管理系统来获取验证和/或认证另一方身份的信息。
去中心化标识符(DID)是一种新型标识符,它独立于任何中心化注册机构、身份提供者或证书颁发机构。分布式账本技术(例如区块链)为使用完全去中心化标识符提供了机会。分布式账本技术使用全球分布式账本,以采用可验证的方式记录两方或多方之间的交易。一旦交易被记录,分布式账本的分段中的数据就不能在不更改分布式账本的所有后续分段的情况下进行追溯更改,这提供了一个相当安全的平台。在这样的去中心化的环境中,每个DID的所有者通常都可以使用他/她的DID来控制他/她拥有的数据。DID所有者通过DID管理模块访问在与DID相关联的个人存储器中存储的数据,该模块是移动应用程序、个人计算机、浏览器等。
本公开要求保护的主题不限于解决任何缺点或仅在诸如上文所描述的环境中操作的实施例。相反,提供该背景仅是为了说明一个示例性技术领域,在该技术领域中实施了在本公开中描述的一些实施例。
发明内容
提供本发明内容以通过简化形式介绍构想的选择,这将在下面的详细描述中进一步描述。本发明内容并非旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用作确定所要求保护的主题的范围的帮助。
本公开描述的实施例涉及在成对去中心化标识符(DID)之间委托许可范围。在去中心化环境中,一个DID所有者可以生成并使用许多不同的DID,以与其他DID所有者进行通信。成对的DID被称为一对DID,其仅用于两个实体之间的通信。例如,第一DID所有者拥有第一DID,第二DID所有者拥有第二DID。当第一DID和第二DID是成对的DID时,该第一DID和第二DID仅在第一DID所有者和第二DID所有者之间使用。当第一所有者与第三DID所有者通信时,将生成并使用第三DID。同样,当第二DID拥有者要与第三DID拥有者通信时,将生成第四DID。
由于成对的DID只在两个所有者之间使用,所以两个所有者之间的关系往往可以很清晰地标识出来,比如父母-子女关系、雇主雇员关系、客户-服务关系等。当某种关系存在时,一个DID所有者可能希望向其他DID所有者授予许可范围。例如,子女可能希望向他/她的父母委托许可范围,以允许父母代表子女行事。
在中心化环境中,这种类型的委托通常是通过办理并向其他方呈现书面协议来手动执行的,这既繁琐又容易欺诈。本公开描述的原理允许使用计算系统和密码技术以在去中心化环境中安全并且自动地办理和证实各种委托。
当第一DID所有者将许可范围委托给第二DID所有者时,第一DID所有者是委托方,第二DID所有者是被委托方。从委托方到被委托方的许可范围的委托很可能由与委托方相关联的计算系统(例如,管理模块(例如,钱包应用程序)、用户代理和/或委托方的ID中心)来执行的。计算系统首先确定成对DID的所有者之间的关系。基于该关系,计算系统之后将委托方DID拥有的许可范围委托给被委托方DID。具体地,计算系统定义了许可范围,并且将所定义的许可范围授予第二DID的公钥。然后计算系统通过第一DID的私钥生成签名。该签名证明了所定义的许可范围对第二DID的公钥的委托。然后将与委托相关的数据部分传播到分布式账本上。
在一些实施例中,计算系统进一步将多个关系映射到多个许可范围。映射数据被记录在可由计算系统访问的存储器中。基于映射数据,计算系统确定对应于成对的DID所有者之间的关系的许可范围。多个关系到多个许可范围的映射基于(1)DID文档中记录的数据,(2)传播到分布式账本上的数据,和/或(3)用户输入。
在一些实施例中,计算系统接收用于生成、更新或删除特定许可范围和特定关系的映射对的用户输入。基于用户输入,计算系统更新存储器中记录的映射数据。在一些情况下,响应于用户指示,计算系统还更新具有受用户输入影响的特定关系的成对DID之间的(多个)委托。
多个关系包括但不限于:(1)子女-父母关系,其中一个成对DID的拥有者是另一个成对DID的拥有者的未成年子女;(2)夫妻关系,其中成对的DID的所有人为配偶;(3)雇员-雇主关系,其中一个成对DID的所有者是另一个成对DID所有者的雇员;(4)客户服务关系,其中一个成对DID的所有者是另一个成对DID所有者的客户;或(5)合同关系,其中成对的DID的所有者是双方同意的合同的当事人。
由于DID所有者之间的某些关系可能在各种情况下改变,因此在一些实施例中,计算系统被致使响应于关系的改变而自动更新委托。在一些情况下,响应于来自第二DID的第二DID所有者针对访问许可范围的请求,计算系统确定特定关系是否仍然存在。备选地或附加地,计算系统周期性地检查成对DID之间的特定关系是否仍然存在。在一些情况下,响应于改变与第一DID相关的信息或与第二DID相关的信息的用户输入,计算系统确定特定关系是否仍然存在。响应于确定特定关系不再存在,计算系统撤销对相应许可范围的委托,并将与许可撤销相关的数据传播到分布式账本。
在一些实施例中,定义许可范围包括定义一个或多个限制,并且传播与委托相关的数据部分包括将一个或多个限制传播到分布式账本。一个或多个限制包括但不限于:(1)委托的到期时间,(2)被委托方被允许访问部分数据或服务的预定次数,或(3)限制对数据部分的访问的限制,例如(i)读取权限,(ii)写入权限,(iii)删除权限,或(iv)委托权限。在一些实施例中,一个或多个限制包括一个或多个条件,被委托方每次请求访问所委托的权限时都需要满足这些条件。一项或多项条件包括但不限于(i)要求受委托方DID支付预定数量的加密货币,(ii)要求受委托方DID提供一项或多项可验证的声明,或(iii)要求受委托方DID提供特定个人数据,例如(a)电子邮件地址、(b)电话号码、(c)位置、(d)被委托方的姓名、(e)IP地址或(f)设备标识符。
在一些实施例中,响应于从第二DID的第二DID所有者接收到访问许可范围的请求,计算系统请求用于证明许可范围的委托的第二DID(即,与第二DID相关联的计算系统,包括管理模块、用户代理或第二DID的ID中心)。然后,第二DID生成证明代码并将该证明代码发送到计算系统。证明代码被配置为证明第二DID已被委托给请求的许可范围。然后计算系统接收并证实证明代码。基于证实结果,计算系统授予或拒绝来自第二DID的请求。
在某些情况下,证明代码包括由第一DID的私钥签名的签名。证明代码的证实包括通过第一DID的公钥解密签名,以及从分布式账本中检索与委托相关的数据。然后计算系统分析经解密的签名和与委托相关的数据以确定证明代码是否有效。在一些实施例中,证明代码的证实还包括验证所请求的许可范围是否在所委托的许可范围内。当许可范围包括一个或多个条件时,计算系统还确定是否满足一个或多个条件。
因此,此处描述的原理允许用户(即,DID所有者)将许可范围委托给彼此或基本上立即撤销先前的委托。一旦许可范围被委托,被委托方也可以基本上立即访问被委托的数据。因此,委托由DID所有者的计算系统创建和执行是有利的,因为消除了对记录或执行委托的中介或中心化实体的传统要求。此外,由于没有中心化的实体来记录与DID所有者之间的委托相关的所有数据,并且每个成对DID仅用于与另一个DID进行通信,DID所有者的隐私进一步得到保护。
附加的特征和优点将在下面的描述中阐述,并且部分地从描述中是显而易见的,或者可以通过本公开教导的实践而获知。本发明的特征和优点可以通过所附权利要求中特别指出的手段和组合来实现和获得。本发明的特征将通过以下描述和所附权利要求变得更加明显,或者可以通过如下文所述的本发明的实践而获知。
附图说明
为了描述能够获得上述和其他优点和特征的方式,将通过参考附图中示出的特定实施例来对在上文中简要描述的主题进行更具体的描述。应当理解,这些附图仅描绘了典型实施例并且不应因此被视为对范围的限定,将通过使用附图以附加的特殊性和细节来描述和说明实施例,其中:
图1示出了在其中可以采用这里描述的原理的示例计算系统;
图2示出了用于创建去中心化标识或标识符(DID)的示例环境;
图3示出了各种DID管理操作和服务的示例环境;
图4示出了示例去中心化个人存储器或身份中心;
图5示出了在其中DID所有者使用成对DID相互通信的示例环境;
图6A示出了记录成对DID的关系的示例数据结构;
图6B示出了记录将多个关系映射到多个许可范围的映射数据的示例数据结构;
图6C示出了允许用户手动输入或更新对应于成对DID的关系和许可范围的管理模块的示例用户界面;
图7示出了用于将许可范围从艾丽斯委托给鲍勃的示例委托证明;
图8示出了当被委托方请求访问被委托的许可范围时发生的示例通信模式;
图9示出了用于在两个成对DID之间委托许可范围的示例方法的流程图;
图10示出了用于确定成对DID的DID所有者之间关系的示例方法的流程图;以及
图11示出了示例方法的流程图,该示例方法用于响应于被委托方证明委托是有效的,允许被委托方访问被委托的许可范围。
具体实施方式
本公开描述的实施例涉及在成对去中心化标识符(DID)之间委托许可范围。因为这里描述的原理是在计算系统的情境中执行的,因此将参考图1描述计算系统的一些介绍性讨论。然后,说明书将返回参考其他附图的DID平台的原理。
目前,计算系统越来越多地采用多种形式。例如,计算系统可以是手持设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统、数据中心,甚至是传统上不被认为是计算系统的设备,例如可穿戴设备(例如,眼镜)。在本说明书和权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),其包括至少一个物理的且有形的处理器,以及物理的且有形的存储器,能够在其上具有由处理器执行的计算机-可执行指令。存储器采用任何形式,并取决于计算系统的性质和形式。计算系统被分布在网络环境中并且包括多个构成计算系统。
如图1所示,在其最基本的配置中,计算系统100通常包括至少一个硬件处理单元102和存储器104。处理单元102包括通用处理器并且还包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)或任何其他专用电路。存储器104是物理系统存储器,它是易失性、非易失性或两者的某种组合。术语“存储器”在本公开中也用于指非易失性大容量存储器,例如物理存储介质。如果计算系统是分布式的,那么处理、内存和/或存储能力也是分布式的。
计算系统100在其上还具有通常被称为“可执行组件”的多个结构。例如,计算系统100的存储器104被示为包括可执行组件106。术语“可执行组件”是结构的名称,计算领域的本领域普通技术人员很好理解为结构可以是软件、硬件或它们的组合。例如,当以软件实现时,本领域普通技术人员将理解可执行组件的结构包括在计算系统上执行的软件对象、线程、方法等,而不管这样的可执行组件是否存在在计算系统的堆(heap)中,或者可执行组件是否存在于计算机可读存储介质上。
在这种情况下,本领域普通技术人员将认识到可执行组件的结构存在于计算机可读介质上,使得当其由计算系统的一个或多个处理器(例如,由处理器线程)说明时,计算系统被致使执行功能。这种结构是处理器直接在计算机上可读的(就像可执行组件是二进制的情况一样)。可替换地,该结构被结构化为可说明和/或编译(无论是在单个阶段还是在多个阶段中),以便生成处理器可直接说明的这种二进制文件。当使用术语“可执行组件”时,对可执行组件的示例结构的这种理解完全在计算领域的普通技术人员的理解范围内。
术语“可执行组件”也被普通技术人员很好地理解为包括诸如硬编码或硬连线逻辑门之类的结构,其仅在硬件中实现或几乎完全在硬件中实现,例如在现场可编程门阵列内(FPGA)、专用集成电路(ASIC)或任何其他专用电路。因此,术语“可执行组件”是计算领域的普通技术人员很好理解的结构的术语,无论以软件、硬件或组合实现。在本说明书中,术语“组件”、“代理”、“管理器”、“服务”、“引擎”、“模块”、“虚拟机”或类似也可以使用。如在本说明书和案例中使用的,这些术语(无论是否带有修改条款)也旨在与术语“可执行组件”同义,因此也具有对于在计算领域的普通技术人员容易理解的结构。
在下面的描述中,参考由一个或多个计算系统执行的动作来描述实施例。如果这些动作以软件实现,则(执行该动作的相关联计算系统的)一个或多个处理器响应于构成可执行组件的计算机可执行指令已经被执行来引导计算系统的操作。例如,这种计算机可执行指令体现在形成计算机程序产品的一个或多个计算机可读介质上。这种操作的一个例子涉及数据的操作。如果此类行为仅在硬件中实现或几乎完全在硬件中实现,例如在FPGA或ASIC内,则计算机可执行指令是硬编码或硬连线逻辑门。计算机可执行指令(和经处理的数据)存储在计算系统100的存储器104中。计算系统100还包含允许计算系统100通过例如网络110与其他计算系统通信的通信信道108。
虽然并非所有计算系统都需要用户界面,但在一些实施例中,计算系统100包括用于与用户交互的用户界面系统112。用户界面系统112包括输出机制112A以及输入机制112B。这里描述的原理不限于精确的输出机构112A或输入机构112B,因为其将取决于设备的性质。然而,输出机构112A可以包括例如扬声器、显示器、触觉输出、全息图等等。输入机构112B的示例可以包括例如麦克风、触摸屏、全息图、照相机、键盘、鼠标或其他指针输入、任何类型的传感器等等。
此处描述的实施例包括或利用包括计算机硬件的专用或通用计算系统,例如一个或多个处理器和系统存储器,如下面更详细讨论的。本公开描述的实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是通用或专用计算系统可以访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。携带计算机的计算机可读介质可执行指令是传输介质。因此,作为示例而非限制,本发明的实施例可以包括至少两种截然不同的计算机可读介质:存储介质和传输介质。
计算机可读存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备,或任何其他可用于存储所期望的以计算机可执行指令或数据结构的形式的程序代码装置的物理和有形存储介质,可由通用或专用计算系统访问。
“网络”被定义为能够在计算系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)传输或提供到计算系统时,计算系统适当地将连接视为传输介质。传输介质可包括网络和/或数据链路,其可用于以计算机可执行指令或数据结构的形式承载所期望的程序代码装置并且可由通用或专用计算系统访问。上述的组合也应包括在计算机可读介质的范围内。
此外,在到达各种计算系统组件时,计算机可执行指令或数据结构形式的程序代码装置可以从传输介质自动传输到存储介质(反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终传输到计算系统RAM和/或非易失性计算系统中的存储介质。因此,应当理解,存储介质可以包括在计算系统组件中,其也(或甚至主要)利用传输介质。
计算机可执行指令包括例如指令和数据,当它们在处理器处执行时,使通用计算系统、专用计算系统或专用处理设备执行特定功能或功能组。可替换或附加的,计算机可执行指令配置计算系统以执行特定功能或功能组。计算机可执行指令例如是二进制或甚至是在由处理器直接执行之前经过一些翻译(例如编译)的指令,例如诸如汇编语言之类的中间格式指令,甚至源代码。
尽管已经以特定于结构特征和/或方法行为的语言描述了主题,但是应当理解,在所附权利要求中定义的主题不一定限于上文描述的特征或行为。相反,所描述的特征和动作被公开为实施权利要求的示例形式。
本领域技术人员将理解本发明在具有多种类型的计算系统配置的网络计算环境中实施,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、微处理器-基于或可编程的消费电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机、数据中心、可穿戴设备(如眼镜)等。在某些情况下,本发明还可以在分布式系统环境中实施,其中本地和远程计算系统均执行任务,该本地和远程计算系统通过网络链接(通过硬连线数据链路、无线数据链路或通过硬连线和无线数据链路的组合)。在分布式系统环境中,程序模块位于本地和远程存储器存储设备中。
本领域技术人员还将理解本发明在云计算环境中实施。云计算环境是分布式的,尽管这不是必需的。当云计算环境是分布式时,云计算环境在组织内分布在国际范围内和/或具有跨多个组织拥有的组件。在本说明书和以下权利要求中,“云计算”被定义为用于实现对可配置计算资源(例如,网络、服务器、存储、应用程序和服务)的共享池的按需网络访问的模型。“云计算”的定义不限于正确部署时可以从此类模型中获得的其他众多优势中的任何一个。
其余附图讨论了对应于先前描述的计算系统100的各种计算系统。其余附图的计算系统包括实现本公开公开的各种实施例的各种组件或功能块,如将说明的。各种组件或功能块在本地计算系统上实现或在分布式计算系统上实现,该分布式计算系统包括驻留在云中的元素或实现云计算的各个方面。各种组件或功能块被实现为软件、硬件或软件和硬件的组合。其余图中的计算系统包括多于或少于图中所示的组件,并且某些组件在情况允许时组合。尽管未必示出,但计算系统的各种组件根据需要访问和/或利用处理器和存储器,例如处理器102和存储器104,以执行它们的各种功能。
将不会针对图2给出关于去中心化标识符(DID)及其创建和驻留的环境的一些介绍性讨论。如图2所示,DID所有者201拥有或控制代表DID所有者201的身份的DID 205。DID所有者201使用创建和注册服务来注册DID,这将在下面更详细地说明。
DID所有者201是可以从DID中受益的任何实体。例如,DID所有者201是人类或人类的组织。此类组织可能包括公司、部门、政府、代理机构或任何其他组织或组织组。每个人都可能拥有DID,而每个人所属的组织可能同样拥有DID。
可替换地,DID所有者201是机器、系统或设备,或机器、设备和/或系统的集合。在其他实施例中,DID所有者201是机器、系统或设备的子部分。例如,设备可以是印刷电路板,其中该电路板的子部分是电路板的各个组件。在这样的实施例中,机器或设备具有DID并且每个子部分也具有DID。DID所有者也可以是软件组件,例如上面结合图1描述的可执行组件106。复杂的可执行组件106的示例可以是人工智能。人工智能也拥有DID。
因此,DID所有者201是能够创建DID 205或至少具有为其创建并与其相关联的DID205的任何合理实体、人类或非人类。尽管DID所有者201被示为具有单个DID 205,但这不一定是这种情况,因为情况允许时存在与DID所有者201相关联的任何数量的DID。
如上所述,DID拥有者201创建并注册DID 205。DID 205是任何与DID拥有者201相关联的标识符。优选地,该标识符对于该DID拥有者201是唯一的,至少在DID预期被使用的范围内是唯一的。作为示例,标识符是本地唯一的标识符,并且对于预期在全球范围内操作的身份系统而言,可能更希望是全局唯一的标识符。在一些实施例中,DID 205是统一资源标识符(URI)(例如统一资源定位器(URL))或将DID所有者201与和DID所有者201进行可信任交互的机制相关联的其他指针。
DID 205是“去中心化的”,因为它不需要中心化的第三方管理系统来生成、管理或使用。因此,DID 205仍处于DID所有者201的控制之下。这不同于基于对中心化机构的信任的传统中心化ID,后者仍处于公司目录服务、证书颁发机构、域名注册机构或其他中心化机构的控制之下(本公开统称为“中心化机构”)。因此,DID205是在DID所有者201的控制下并且独立于任何中心化权限的任何标识符。
在一些实施例中,DID 205的结构与用户名或一些其他人类可理解的术语一样简单。然而,在其他实施例中,DID 205优选地是数字和字母的随机串以增加安全性。在一个实施例中,DID 205是一串128个字母和数字。因此,本公开公开的实施例不取决于DID 205的任何具体实现。在一个非常简单的示例中,DID 205被示为“123ABC”。
同样如图2所示,DID所有者201控制与DID 20相关联的私钥206和公钥207对。因为DID 205独立于任何中心化的机构,所以私钥206应始终完全处于DID所有者201的控制之下。也就是说,私钥和公钥应该以去中心化的方式生成,以确保它们保持在DID所有者201的控制之下。
如将在下文更详细描述的,私钥206和公钥207在由DID所有者201控制的设备上生成。私钥206和公钥207对不应在由任何中心化机构控制的服务器上生成,因为这会导致私钥206和公钥207对始终不完全处于DID所有者201的控制之下。尽管图2和本说明书描述了私钥和公钥对,但也应注意,其他类型的合理密码信息和/或机制也可根据情况使用。
图2还示出了与DID 205相关联的DID文档210。如下面将更详细说明的,DID文档210是在创建DID 205时生成的。在其最简单的形式中,DID文档210描述了如何使用DID205。因此,DID文档210包括对DID 205的引用,它是由DID文档210描述的DID。在一些实施例中,DID文档210根据将在下面更详细地说明的、将用于存储DID 205的表示的分布式账本220特定的方法来实现。因此,DID文档210根据特定的分布式账本具有不同的方法。
DID文档210还包括由DID所有者201创建的公钥207或一些其他等效密码信息。公钥207被第三方实体使用,该第三方实体DID所有者201被DID所有者201授予许可,以访问DID所有者201所拥有的信息和数据。公钥207也可以通过验证DID所有者201被使用,也就是,验证DID所有者201拥有或控制DID 205。
DID文档210还包括认证信息211。认证信息211指定一个或多个机制,通过该机制DID所有者201能够证明DID所有者201拥有DID 205。换句话说,认证信息211的机制示出DID205(并且因此其DID所有者201)和DID文档210之间绑定的证明。在一个实施例中,认证信息211指定公钥207被用于签名操作以证明DID205的所有权。可替换地,或附加地,认证信息211指定公钥207被用于生物特征操作以证明DID 205的所有权。因此,认证信息211包括任何数量的机制,通过这些机制DID所有者201能够证明DID所有者201拥有DID 205。
DID文档210还包括授权信息212。授权信息212允许DID所有者201授权第三方实体修改DID文档210或文档的某些部分的权利,而不赋予第三方证明对DID 205的所有权的权利。例如,授权信息212允许第三方使用任何指定的更新机制来更新DID文档210中的一个或多个字段的任何指定集合。可替换的,授权信息允许第三方将DID所有者201对DID 205的使用限制在指定的时间段内。这在DID所有者201是未成年子女并且第三方是子女的父母或监护人时很有用。授权信息212允许父母或监护人限制DID 201的使用,直到子女不再是未成年人。
授权信息212还指定第三方将需要遵循以证明其被授权修改DID文档210的一个或多个机制。在一些实施例中,该机制类似于先前结合认证信息211所讨论的那些。
DID文档210还包括一个或多个服务端点213。服务端点包括服务代表DID所有者201操作的网络地址。特定服务的示例包括发现服务、社交网络、诸如身份服务器或中心的文件存储服务,以及可验证的声明存储库服务。因此,服务端点213用作代表DID所有者201操作的服务的指针。这些指针被DID所有者201或第三方实体使用,以访问代表DID所有者201操作的服务。下面将更详细地说明服务端点213的特定实例。
ID文档210还包括身份信息214。身份信息214包括个人可身份信息,例如DID所有者201的姓名、地址、职业、家庭成员、年龄、爱好、兴趣等。因此,DID文档210中列出的身份信息214代表不同目的的DID所有者201的不同角色。例如,角色是伪匿名的,例如,对于DID所有者201,在将他或她识别为在博客上发表文章的作家时,在DID文档中包括笔名;角色是完全匿名的,例如,DID所有者201只想披露他或她的职位或其他背景数据(例如,学校教师、联邦调查局特工、21岁以上的成年人等),但不想在DID文件中披露他的或她的姓名;并且角色特定于作为个人的DID所有者201,例如,DID所有者201包括将他或她识别为特定慈善组织的志愿者、特定公司的雇员、特定奖项的获奖者等的信息。
DID文档210还包括凭证信息215,其在本公开中也被称为证明。凭证信息215是与DID所有者201的背景相关联的任何信息。例如,凭证信息215是(但不限于)资格、成就、政府ID、诸如护照或驾驶执照的政府权利、数字资产提供者或银行账户、大学学位或其他教育历史、就业状况和历史,或有关DID所有者201的背景的任何其他信息。
DID文档210还包括各种其他信息216。在一些实施例中,其他信息216包括指定DID文档210何时被创建和/或何时被最后修改的元数据。在其他实施例中,其他信息216包括DID文档210的完整性的密码证明。在更进一步的实施例中,其他信息216包括由实现DID文档的特定方法指定或由DID所有者201期望的附加信息。
图2还示出了分布式账本或区块链220。分布式账本220是任何去中心化的分布式网络,包括相互通信的各种计算系统。例如,分布式账本220包括第一分布式计算系统230、第二分布式计算系统240、第三分布式计算系统250,以及如椭圆260所示的任意数目的附加分布式计算系统。账本或区块链220根据分布式账本的任何已知标准或方法操作。对应于分布式账本或区块链220的传统分布式账本的示例包括但不限于比特币[BTC]、以太坊和莱特币。
在DID 205的情境中,分布式账本或区块链220用于存储指向DID文档210的DID205的表示。在一些实施例中,DID文档210存储在实际的分布式账本上。可替换地,在其他实施例中,DID文档210被存储在与分布式账本或区块链220相关联的数据存储器(未示出)中。
如已经提到的,DID 205的表示存储在分布式账本或区块链220的每个分布式计算系统上。例如,在图2中,DID哈希231,DID哈希241,DID哈希251,理想情况下,它们是相同DID的相同副本。然后DID哈希231、DID哈希241和DID哈希251指向DID文档210的位置。分布式账本或区块链220还存储其他DID的许多其他表示,如参考232、233、234、242、243、244、252、253和254示出的。
在一个实施例中,当DID用户201创建DID 205和相关联的DID文档210时,DID哈希231,DID哈希241,并且DID哈希251被写入分布式账本或区块链220。分布式账本或区块链220因此记录DID 205现在存在。由于分布式账本或区块链220是去中心化的,因此DID 205不受DID所有者201之外的任何实体的控制。DID哈希231,DID哈希241,DID哈希251,除了到DID文档210的指针还包括指定DID 205何时被创建的记录或时间戳。稍后当对DID文档210进行修改时,这也记录在DID哈希231,DID哈希241,DID哈希251中。DID哈希231,DID哈希241,以及DID哈希252还包括公钥207以便使DID 205被加密绑定到DID文档210。
已经参考图2描述了DID以及它们一般如何操作,现在将说明DID的特定实施例。转向图3,现在将说明用于执行各种DID生命周期管理操作和服务的环境300。应当理解,为了便于说明,图3的环境根据需要参考来自图2的元素。
如图3所示,环境300包括由DID所有者21拥有或控制的各种设备和计算系统。这些包括用户设备301。在一些情况下,用户设备301是移动设备,例如智能手机、膝上型计算机等计算设备,或任何具有计算能力的设备,如汽车或电器。设备301包括在设备上运行的Web浏览器302和运行该设备的操作系统303。更广泛地说,虚线304表示所有这些设备都由DID所有者201拥有或控制。
环境300还包括DID生命周期管理模块320。有时,DID生命周期管理模块320也被称为钱包或代理。应当注意,在操作中,DID生命周期管理模块320驻留在用户设备301、Web浏览器302和操作系统303中的一个或多个上并由其执行,其如由线301a、302a和303a所示。因此,为了便于说明,DID生命周期管理模块320被示为是分开的。
如图3所示,DID生命周期管理模块320包括DID创建模块330。DID所有者201使用DID创建模块330来创建DID 205或任何数目的附加DID,例如DID 331。在实施例中,DID创建模块包括或以其他方式可以访问用来引导DID所有者201创建DID 205的用户界面(UI)元素335。DID创建模块330具有一个或多个驱动程序,这些驱动程序被配置为与特定分布式账本、例如分布式账本220一起工作,以便DID 205符合该分布式账本的底层方法。
现在将描述具体实施例。例如,UI 335提示用户输入用户名或一些其他人类可识别的名称。此名称用作将生成的DID 205的显示名称。如上文所述,DID 205是一长串随机数字和字母,因此具有用于显示名称的人类可识别名称是有利的。DID创建模块330然后生成DID 205。在具有UI 335的实施例中,DID 205显示在身份列表中并且与人类可识别的名字相关联。
DID创建模块还包括密钥生成模块350。密钥生成模块生成先前描述的私钥206和公钥207对。DID创建模块330在之后使用DID 205以及私钥和公钥对来生成DID文档210。
在操作中,DID创建模块330访问被配置为将记录与DID 205相关的交易的特定分布式账本的注册器310。DID创建模块330使用注册器310来将DID哈希231、DID哈希241和DID哈希251以先前所述方式记录在分布式账本中,并以先前所述方式存储DID文档210。这个过程使用哈希生成中的公钥207。
在一些实施例中,DID生命周期管理模块320包括所有权模块340。所有权模块340提供确保DID所有者201知道DID所有者201单独控制DID 205的机制。以这种方式,DID生命周期管理模块320的提供者能够确保提供者不控制DID 205,而只是提供管理服务。
如先前所述,密钥生成模块350生成私钥206和公钥207对,然后将公钥207记录在DID文档210中。因此,与DID所有者201相关联的所有设备以及希望向DID拥有者201提供服务的所有第三方都使用公钥207。因此,当DID拥有者201希望将新设备与DID205相关联时,DID拥有者201在新设备上执行DID创建模块330。然后DID创建模块330使用注册器310来更新DID文档210以反映新设备现在与DID 205相关联,并且这将反映在如先前所述的分布式账本220上的更新的交易中。
然而,在一些实施例中,每个设备301拥有一个由DID所有者201拥有的公钥是有利的,因为这允许DID所有者201用特定设备公钥签名而不必访问通用公钥。换言之,由于DID所有者201将在不同时间使用不同的设备(例如,在一个实例中使用移动电话,然后在另一个实例中使用膝上型计算机),具有与每个设备相关联的密钥以提供在使用密钥进行签名的效率是有利的。因此,在这样的实施例中,当附加设备执行DID创建模块330时,密钥生成模块生成附加公钥208和209。这些附加公钥与私钥206相关联,或者在某些情况下与新私钥配对。
在附加公钥208和209与不同设备相关联的那些实施例中,在DID文档210中将附加公钥208和209记录为与那些设备相关联。这在图3中被示出。应当理解,除了图3中所示的信息之外,DID文档210还包括先前结合图2描述的信息。如果DID文档210在设备特定公钥生成之前存在,创建模块330将通过注册器310更新DID文档210,这将反映在分布式账本220上的更新的交易中。
在一些实施例中,DID所有者201可以将设备与公钥或者甚至与DID 205的关联保密。因此,DID创建模块330致使这样的数据被保密地显示在DID文档210中。
如迄今为止所描述的,DID 205已经与在DID所有者201控制下的所有设备相关联,即使这些设备具有它们自己的公钥。然而,在一些实施例中,对于在DID所有者201的控制下的每个设备或设备的某个子集来说,每个设备都具有它们自己的DID是有用的。因此,在一些实施例中,DID创建模块330为每个设备生成附加DID,例如DID 331。然后,创建模块将为设备中的每一个生成私钥和公钥对以及DID文档,并以先前所述方式将它们记录在分布式账本220上。这样的实施例对于改变所有权的设备是有利的,因为可以通过在DID文档中授予新的所有者授权权限并且从旧的所有者撤销此类权限,来将特定设备DID关联到设备的新所有者。
如已经提到的,为了确保私钥完全在DID所有者201的控制之下,该私钥被创建在执行DID管理模块320的DID所有者201拥有或控制的用户设备301、浏览器302或操作系统303上。以此方式,第三方获得对私钥206的控制权的可能性很小,尤其是DID生命周期管理模块320的提供者。然而,存储私钥206的设备可能被DID所有者201丢失,这导致DID所有者201失去对DID 205的访问权。因此,在一些实施例中,UI 335包括允许DID所有者201将私钥206导出到在DID所有者201的控制下的设备外安全数据库的选项305。在一些实施例中,私钥206被存储为由DID所有者201扫描的QR码。
在其他实施例中,DID生命周期管理模块320包括用于恢复丢失的私钥206的恢复模块360。在操作中,恢复模块360允许DID所有者201在创建DID 205时选择一个或多个恢复机制365,该恢复机制365稍后用于恢复丢失的私钥。在具有UI 335的那些实施例中,UI 335允许DID所有者201提供当实施恢复机制时,一个或多个恢复机制365将需要的所需信息。然后恢复模块在与DID 205关联的任何设备上运行。
DID生命周期管理模块320还包括撤销模块370,其用于从DID 205撤销或切断设备。在操作中,撤销模块使用UI元素335,其允许DID所有者201指示希望从与DID 205相关联的设备中移除。在一个实施例中,撤销模块访问DID文档210并导致从DID文档中移除对该设备的所有引用。可替换地,针对设备的公钥被移除。DID文档210中的这种变化在之后反映为先前描述的分布式账本220上的更新的交易。
图4示出了环境400的实施例,其中使用了诸如DID 205的DID。具体而言,环境400将用于描述DID 205与一个或多个去中心化的个人存储或身份中心(hub)相关的使用。身份中心是属性的存储,包括在DID持有者控制下的密钥和元数据。应当注意,图4包括对首先关于图2或图3讨论的元素的引用,因此为了便于说明使用相同的附图标记。
在一个实施例中,身份中心410是同一身份中心的多个实例。这由线410A表示。因此,各种身份中心410包括至少一些相同的数据和服务。因此,如果对身份中心410之一进行任何改变,则该改变反映在剩余的身份中心中。例如,第一身份中心411和第二身份中心412在云存储中实现,因此能够保存大量数据。因此,一整套数据存储在这些身份中心中。然而,身份中心412和413具有较少的存储器空间。因此,存储在第一和第二身份中心中的数据的描述符被包括在这些身份中心中。可替换地,还包括对其他身份中心中的数据所做的更改的记录。因此,身份中心410之一中的改变或者在其他身份中心中被完全复制,或者该数据的至少一个记录或描述符被记录在其他身份中心中。
因为身份中心是同一身份中心的多个实例,所以将仅提供第一身份中心411的完整描述,因为该描述也适用于身份中心412-415。如图所示,身份中心411包括数据存储420。数据存储420用于存储与DID所有者201相关联的任何类型的数据。在一个实施例中,数据是对应于特定协议的特定类型的数据的集合422。例如,在一些情况下,集合422是对应于医疗数据的特定协议的医疗记录数据。在一些其他情况下,集合422是任何其他类型的数据。
在一个实施例中,存储的数据具有与存储的数据相关联的不同的认证和隐私设置421。例如,数据的第一子集具有允许数据被公开的暴露的设置421,但不包括对DID所有者201的任何认证。这种类型的数据用于相对不重要的数据,例如配色方案等。数据的第二子集具有设置421,其允许数据被公开的暴露并且包括对DID所有者201的认证。数据的第三子集具有设置421,其使用与DID所有者201相关联的私钥206和公钥207对(或一些其他密钥对)加密数据子集。这种类型的数据将要求一方有权访问公钥207或其他一些相关联的公钥,以便解密数据。该过程还包括对DID所有者201的认证。数据的第四子集具有将这个数据限制到第三方子集的设置421。这要求使用与第三方子集关联的公钥来解密数据。例如,DID所有者201使设置421指定只有与DID所有者201的朋友相关联的公钥解密该数据。
在一些实施例中,身份中心411具有允许DID所有者201为诸如第三方401和402之类的第三方访问身份中心的特定授权或许可而设置的许可模块430。例如,DID所有者201向他或她的配偶提供对所有数据420的访问许可。可替换的,DID所有者201允许访问他或她的医生以获取任何医疗记录。应当理解,DID所有者201允许任何数目的第三方访问数据420的子集。这将在后面更详细地说明。
身份中心411还具有消息传输模块440。在操作中,消息传输模块允许身份中心接收消息,例如来自第三方401和402等各方的对身份中心的数据和服务的访问的请求。此外,消息传输模块440允许身份中心411响应来自第三方的消息并且还与DID解析器450通信。这将在后面更详细地说明。省略号416表示身份中心411在情况允许时具有附加服务。
在一个实施例中,DID所有者201希望以先前描述的方式利用已经与DID 205相关联的身份中心411来认证新设备301。因此,DID所有者201利用与新用户设备301相关联的DID管理模块320向身份中心411发送消息,断言新用户设备与DID所有者201的DID 205相关联。
然而,身份中心411最初并未将新设备识别为由DID所有者201拥有。因此,身份中心411使用消息传输模块440联系DID解析器450。发送到DID解析器450的消息包括DID 205.
DID解析器450是被配置为在操作中搜索分布式账本220以查找与DID相关联的DID文档的的服务、应用程序或模块。因此,在该实施例中,DID解析器450使用DID 205搜索分布式账本220,这导致DID解析器450找到DID文档210。然后将DID文档210提供给身份中心411。
如前所述,DID文档210包括与新用户设备301相关联的公钥208或209。为了验证新用户设备由DID所有者201拥有,身份中心411使用消息传输模块440向新用户设备301提供密码质询。该密码质询将被构造使得只有有权访问私钥206的设备才能成功回答该质询。
在该实施例中,由于新用户设备由DID所有者201拥有并且因此有权访问私钥206,质询被成功地回答。身份中心411然后在许可430中记录新用户设备301有权访问身份中心411以及其余的身份中心210的数据和服务。
应当注意,在不需要DID所有者201向身份中心411的提供者(即,第一云存储提供者)提供任何用户名、密码等的情况下,执行认证新用户设备301的过程在可以访问身份中心411之前。相反,访问是基于DID 205、DID文档210以及相关的公钥和私钥以去中心化的方式确定的。由于这些始终处于DID所有者201的控制之下,身份中心411的提供者没有参与,因此不知道交易或DID所有者201的任何个人信息。
在另一示例实施例中,DID所有者201将DID 205提供给第三方实体401以便第三方访问存储在身份中心411上的数据或服务。例如,DID所有者201是参加科学会议的人,他希望允许第三方401(其同样是人)访问他或她的研究数据。因此,DID所有者201将DID 205提供给第三方401。
一旦第三方401有权访问DID 205,他或她就访问DID解析器450以访问DID文档210。如前所述,DID文档210包括指向身份中心411的地址或指针的端点213。第三方401然后使用地址或指针访问身份中心411。
第三方401向消息传输模块440发送消息,请求访问研究数据的许可。消息传输模块440然后向DID所有者201发送消息,以询问是否应给予第三方401访问研究数据的权限。因为DID所有者期望提供对该数据的访问,所以DID所有者201允许对第三方401的许可并且该许可被记录在许可430中。
消息传输模块440然后向第三方401发送消息,通知第三方他或她有权访问研究数据。身份中心411和第三方401然后直接通信以便第三方访问数据。应当注意,在许多情况下,与身份中心411通信的实际上是与第三方401相关联的身份中心。然而,进行通信的是第三方401的设备。
有利地,上述过程允许身份中心411和第三方401通信和共享数据,而无需第三方以常规方式访问身份中心411。相反,使用DID 205和DID文档210以去中心化的方式提供通信。这有利地允许DID所有者完全控制该过程。
如上面简要讨论的,身份中心411托管在云服务中。服务提供者有权访问存储在每个用户的身份中心411中的数据。此外,服务提供者还有权访问DID所有者的某些活动。例如,DID所有者与其实体共享他/她的存储在身份中心411中的数据。作为另一示例,用户具有多个DID并且在多个DID之间共享数据。可替换的,用户使用了不同的DID管理模块访问相同的数据。基于数据共享活动,身份中心411的服务提供者将不同DID的关系关联起来,并发现两个DID相关或属于同一所有者。因此,用户的隐私受到损害。
本公开描述的原理将通过加密存储在身份中心411中的个人数据来解决这些DID所有者的潜在隐私问题。身份中心411不存储或访问加密/解密密钥,因此DID所有者不仅可以很好地控制来自其他DID所有者或用户的数据,还可以保护他们的隐私不受服务提供者的影响。
在身份中心411中存储了许多不同的对象。数据对象是文件、文件夹或存储在身份中心411中的数据的任何部分。整个身份中心411使用一个加密/解密密钥作为一个对象进行加密。可替换的,存储在身份中心411中的数据的不同部分用不同的加密/解密密钥加密。
在另一个示例实施例中,可验证声明被发布并存储在身份中心411。例如,与DID所有者201相关联的可验证声明由声明发布实体发布,并且所发布的可验证声明存储在与DID所有者201相关联的身份中心411。当另一个实体需要验证DID所有者的证书时,DID所有者201将可验证声明发送给另一个实体。例如,DID所有者201是持有驾驶执照的人,索赔签发实体是已签发DID所有者驾驶执照的DMV。DMV发出可验证的声明,验证DID所有者201持有有效的驾驶执照。DID所有者201将可验证声明存储在身份中心411中。另一个实体是汽车租赁公司,这要求DID所有者201证明他/她具有有效的驾驶执照。然后,DID所有者将存储在身份中心411中的可验证声明发送到汽车租赁公司。
如上所述,当一个DID所有者使用一个DID与许多不同的实体进行通信时,可以根据这些许多不同实体之间的通信相关性来重建DID所有者的个人身份信息。为了进一步保护DID所有者的隐私,可以使用成对的DID。一对成对的DID是两个DID所有者仅用于彼此通信的一对DID。每个DID所有者可以生成许多成对的DID,这些成对DID中的每对DID仅用于与另一个实体通信。因此,即使同一个DID所有者正在与许多不同的实体进行通信,但这些实体中的每一个都不知道涉及同一个DID所有者使用其他成对DID的通信。因此,DID所有者的隐私得到了进一步的保护。
图5示出了示例环境500,其中艾丽斯510、鲍勃520和服务提供者530正在使用成对的DID来相互通信。艾丽斯510、鲍勃520和服务提供者530中的每一个都对应于图2中的DID所有者201。例如,艾丽斯510拥有多个成对DID,包括DID A 511、DID B 512和DID C 513。省略号514表示艾丽斯可以拥有任意数目的成对DID或任意数目的非成对DID。类似地,鲍勃520也拥有多个成对DID,包括DID E 521、DID F 522和DID G 523。省略号524表示鲍勃可以拥有任意数目的成对DID或任意数目的非成对DID。服务提供者530还拥有多个成对DID,包括DID H 531、DID F 532和DID J 533。省略号534表示服务提供者530可以拥有任何数目的成对DID或任何数目的非成对DID。如图5所示,艾丽斯510拥有的DIDA 511和鲍勃520拥有的DID E 521是一对成对的DID。因此,艾丽斯510和鲍勃520仅使用DID A 511和DID E 521相互通信,这由箭头541表示。类似地,艾丽斯510拥有的DIDB 512和服务提供者530拥有的DIDH 531是一对成对的DID。因此,艾丽斯510和服务提供者530仅使用DID B 512和DID H 531来相互通信,这由箭头542表示。同样,类似地,鲍勃520拥有的DID F 522和服务提供者530拥有的DID I 532是一对成对的DID,仅用于鲍勃520和服务提供者530之间的通信(由箭头543表示)。
由于每一对成对的DID只用于两个DID所有者之间的通信,因此在很多情况下,可以明确定义两个DID所有者之间的关系。在一些实施例中,一对成对的DID之间的关系记录在DID所有者的管理模块中。在一些实施例中,这种关系数据与每个成对的DID(例如,DID文档)一起存储或记录在分布式账本中。可替换地或附加地,每对成对DID的关系记录在一个数据结构(例如,表)中。
图6A说明了记录艾丽斯510拥有的成对DID的关系的示例数据结构600A。例如,艾丽斯的DID A 511用于与鲍勃的DID 521通信,艾丽斯和鲍勃之间的关系是子女-父母,即艾丽斯是鲍勃的孩子女。又例如,艾丽斯的DID B 512用于与服务提供者530通信,艾丽斯510与服务提供者530之间的关系是雇员-雇主关系,即艾丽斯510是服务提供者530的雇员。省略号611A、612A、533A表示可以有任意数目的成对DID对,它们的关系记录在表600A中。
在一些实施例中,基于每对成对DID之间的关系,艾丽斯的DID管理模块、用户代理和/或ID中心被配置为确定要从艾丽斯的成对DID委托给相应的成对DID的许可范围。在一些实施例中,多个关系和多个许可范围相互映射。映射数据记录在艾丽斯的DID管理模块、用户代理和/或ID中心的存储中。图6B示出了存储映射数据600B的示例数据结构。如图6B所示,子女-父母关系621B被映射到委托范围X 631B;雇员-雇主关系622B被映射到委托范围Y532B;客户-服务关系623B映射到委托范围Z 633B。省略号624B和634B表示可以有任意数目的映射对的关系和委托范围。
在某些情况下,计算系统(例如,艾丽斯的管理模块或钱包应用程序、用户代理或ID中心)被配置为根据DID文档或其他一些艾丽斯的个人信息中记录的数据自动编译数据结构600A和/或600B数据。可替换地或附加地,数据结构600A和/或600B的至少一部分是基于用户(例如,艾丽斯的)输入而生成的。图6A和6B仅示出如何存储关系数据和委托数据的简单示例。各种其他数据结构也可以被实施,以实现类似的目的。例如,在一些情况下,数据结构600A和600B可以被相关地存储。可替换地或附加地,数据结构600A和600B可以存储在相同的数据结构中。
如上所述,在某些情况下,允许DID所有者定义其成对的DID之间的关系以及要授予的许可范围。图6C示出了管理模块的示例用户界面600C。用户界面600C包括允许用户(例如,DID所有者)选择一对或多对特定的成对DID的选择列表610C。用户界面600C还包括允许用户选择应用于所选择的成对DID对的一个或多个关系的选择列表620C。用户界面600C还包括菜单630C,其允许用户选择或手动定义将被授予到相应DID的许可范围。一旦用户按下确认按钮640C,用户输入被记录在计算系统有权访问的数据结构(例如,数据结构600A和/或600B)中。
基于数据结构600A和600B,计算系统被配置为自动确定两个DID所有者之间的关系和/或自动将许可范围委托给成对的DID。例如,计算系统访问关系数据600A以确定特定成对DID(例如,DID A 511)及其对应的成对DID(例如,鲍勃520拥有的DID E521)。基于所确定的关系(例如,子女-父母关系),计算系统然后访问委托数据600B以确定将被委托给对应的成对DID(例如,由鲍勃520拥有的DID E 521)的许可范围(例如,范围X 631)。响应于确定,计算系统将许可范围(例如,范围X 631)委托给对应的成对DID(例如,鲍勃520拥有的DID E 521)。
可以实现许多不同的机制来将许可范围从一个DID委托给另一个DID。图7和8示出了可以在委托方的DID所有者管理模块、用户代理和/或ID中心中实现的一些实施例。在一些实施例中,当艾丽斯的DID 511将许可范围委托给鲍勃的DID 521时,艾丽斯的计算系统(例如,艾丽斯的管理模块、用户代理或ID中心)更新艾丽斯的DID 511的DID文档或鲍勃的DID 521的DID文档来记录许可范围的委托。在一些实施例中,新的DID被生成,并且许可范围的委托被记录在新DID的DID文档中。然后将与委托相关的数据传播部分到分布式账本上。
图7示出了用于将许可范围从艾丽斯510委托给鲍勃520的示例委托证明700。委托证明700包括与记录类型相关的数据710。这里,记录的类型是“委托”710。记录700还包括与委托方720相关的数据。这里,委托方是“艾丽斯的DID”720。记录700还包括与“被授予的密钥”相关的数据。这里,被授予的密钥是与鲍勃的DID关联的密钥。
记录700还需要定义被授予的许可范围。在一些实施例中,许可范围的定义包括一个或多个限制。如图7所示,记录700包括与一个或多个限制相关的数据740。一个或多个限制包括但不限于:(1)委托的到期时间,(2)被委托方被允许访问部分数据或服务的预定次数,或(3)限制对数据部分的访问的限制,例如(i)读取权限,(ii)写入权限,(iii)删除权限,或(iv)委托权限。在一些实施例中,一个或多个限制包括一个或多个条件,被委托方每次请求访问所委托的权限时都需要满足这些条件。一项或多项条件包括但不限于(i)要求受委托方DID支付预定数量的加密货币,(ii)要求受委托方DID提供一项或多项可验证的声明,或(iii)要求受委托方DID提供特定个人数据,例如(a)电子邮件地址、(b)电话号码、(c)位置、(d)被委托方的姓名、(e)IP地址或(f)设备标识符。如图7所示,一个或多个限制740指示鲍勃的DID被限制为仅读取艾丽斯的个人数据的一部分(即鲍勃的DID不能修改艾丽斯的个人数据)。
最后,委托数据710-740由与艾丽斯的DID相关联的私钥754签名。签名750包括签名的类型751、签名的创建时间752、创建者753和签名值754。这里,签名的类型是Rsa签名,创建者是艾丽斯的DID 753,并且签名754由与艾丽斯的DID 753相关联的私钥生成。在一些实施例中,委托证明与艾丽斯DID的DID文档和/或鲍勃的DID的DID文档一起存储。在一些实施例中,新的DID被生产,并且委托数据与新DID的DID文档相关联并被存储。至少与委托证明相关的数据部分被传播到分布式账本上。在一些实施例中,完整的委托证明被传播到分布式账本上。可替换地,将转换后的记录(例如,哈希、URL或委托证明的标识符)传播到分布式账本上。
图8进一步说明了当被委托方(例如鲍勃810)请求访问被委托的许可范围(例如艾丽斯的数据)时发生的示例通信模式800。如图8所示,鲍勃的设备(例如,鲍勃的管理模块、用户代理和/或ID中心)首先请求访问艾丽斯的数据,这由箭头831表示。该请求被发送到艾丽斯的设备840(例如,艾丽斯的管理模块、用户代理和/或ID中心)。接收到该请求,艾丽斯的设备840然后请求鲍勃的设备820证明鲍勃810被委托访问所请求的艾丽斯的数据的许可范围,这由箭头832表示。鲍勃的设备820进而生成证明数据,该数据是由箭头833表示。证明数据至少包括由艾丽斯的私钥签名的签名(例如,图7的签名750)。然后将证明数据打包在响应中并发送到艾丽斯的设备840,如箭头834所示。
接收到证明数据后,艾丽斯的设备840使用其密钥和/或与传播到分布式账本860上的委托证明相关的数据部分来验证响应,这由箭头835表示。例如,当艾丽斯的设备签署的签名收到私钥后,艾丽斯的设备840尝试通过对应的公钥。然后使用解密结果(和/或转换的解密结果)与在分布式账本860上传播的数据进行比较以确定证明数据是否有效。当许可范围包括一个或多个限制或条件时,艾丽斯的设备840还将验证请求的许可范围是否落入一个或多个限制和/或是否满足一个或多个条件。例如,如果某个条件要求鲍勃支付预定数量的加密货币,则需要证明数据来显示支付证明。再举一个例子,如果条件要求鲍勃提供他的电子邮件地址,则证明数据需要包括鲍勃的电子邮件地址。如果证明数据有效,艾丽斯的设备840批准鲍勃的请求,否则艾丽斯的设备840拒绝鲍勃的请求,如箭头835所示。
下面的讨论现在涉及许多方法和可以执行的方法动作。尽管方法动作可以按特定顺序讨论或在流程图中说明为按特定顺序发生,但不需要特定顺序,除非特别说明,或者因为一个动作取决于在该动作开始之前完成的另一个动作而需要执行。
图9示出了用于在两个成对的DID之间委托许可范围的示例方法900的流程图。委托许可范围的DID称为委托方DID或简称为委托方,接收委托的DID称为被委托方DID或简称为被委托方。方法900由与委托方DID(例如,管理模块、用户代理和/或ID中心)相关联的计算系统执行。方法900包括确定成对DID的所有者的关系(910)。基于所确定的关系,将许可范围从委托方委托给被委托方(920)。
在一些实施例中,委托包括定义许可范围(921)。例如,在某些情况下,许可范围的定义包括与许可范围相关的一个或多个限制(922)。一个或多个限制包括但不限于:(1)委托的到期时间,(2)被委托方被允许访问部分数据或服务的预定次数,或(3)限制对数据部分的访问的限制,例如(i)读取权限,(ii)写入权限,(iii)删除权限,或(iv)委托权限。在一些实施例中,一个或多个限制包括一个或多个条件,被委托方每次请求访问所委托的权限时都需要满足这些条件。一项或多项条件包括但不限于(i)要求受委托方DID支付预定数量的加密货币,(ii)要求受委托方DID提供一项或多项可验证的声明,或(iii)要求受委托方DID提供特定个人数据,例如(a)电子邮件地址、(b)电话号码、(c)位置、(d)被委托方的姓名、(e)IP地址或(f)设备标识符。
在一些实施例中,委托包括授予被委托方的密钥许可范围(923)。委托还包括通过委托方的私钥生成签名(924)并将与委托相关的数据记录在DID文档(例如委托方的DID文档、被委托方的DID文档和/或DID新DID的文件)(925)。最后,至少与委托有关的数据部分被传播到分布式账本上(930)。在一些实施例中,完整的委托证明被传播到分布式账本上。在一些实施例中,将诸如哈希、DID文档的URL或委托证明的标识符之类的转换的委托证明传播到分布式账本上。
图10进一步示出了用于确定一对成对DID的DID所有者之间的关系的示例方法1000的流程图,其对应于图9的步骤910。方法1000包括访问将多个关系映射到用于委托的多个许可范围的映射的映射数据(1010)。映射数据的示例在上面的图6A和6B中说明。
在一些实施例中,映射数据由用户手动输入(1030、1040)。在一些实施例中,映射数据是基于委托方的个人数据、记录在DID文档中的数据和/或传播到分布式账本上的数据生成的。在一些实施例中,还允许用户(例如,DID所有者)手动更新自动生成的映射数据。例如,在某些情况下,不仅允许用户更新映射数据(1030),还允许用户更新成对DID的所有者之间的关系(1040)。基于映射数据(1010)和/或用户的输入(1030、1040),计算系统然后确定对应于特定关系的特定许可范围(1020)。
被委托方收到许可范围的委托后,被委托方将被允许访问被委托的许可范围。图11示出了示例方法1100的流程图,该方法用于响应于证明委托是有效的而允许被委托方访问所委托的许可范围。方法1100也可能在与委托方的DID相关联的计算系统中实现。方法1100包括从被委托方DID接收针对访问许可范围的请求(1110)。响应于该请求,计算系统请求被委托方提供委托证明(1120)。一旦接收到来自被委托方的证明代码(1130),计算系统就验证该证明代码(1140)。
在一些实施例中,当证明代码包括由委托方的私钥签名的签名时,证明代码的证实包括通过委托方的公钥解密签名(1141)。在一些实施例中,证明代码的证实还包括取回分布式账本中与委托相关的数据(1142)。然后,计算系统分析解密的签名和从分布式账本中检索到的委托数据,以确定证明数据是否有效(1143)。证明代码的证实还包括验证所请求的许可范围是否在委托范围内(1144)。
例如,当委托的许可范围包括一个或多个限制时,计算系统验证所请求的许可范围不落入限制范围内。在一些实施例中,当限制包括用于访问许可范围的一个或多个条件时,证明代码的验证还包括验证满足一个或多个条件(1145)。例如,当一个条件要求被委托方支付预定数量的加密货币时,被委托方将需要在证明代码中进一步显示支付证明。又如,当条件要求被委托方提供电子邮件地址时,证明代码需要包含电子邮件地址。最后,响应于证明数据有效的确定,计算系统准许受委托方的请求;否则,计算系统拒绝受委托方的请求(1150)。
对于本公开所公开的过程和方法,在过程和方法中执行的操作可以以不同的顺序实施。此外,所概述的操作仅作为示例提供,并且一些操作可以是可选的,可以组合成更少的步骤和操作,补充进一步的操作,或者扩展成额外的操作而不偏离所公开的实施例的本质。
本发明可以在不背离其精神或特征的情况下以其他具体形式体现。所描述的实施例在所有方面都被认为仅是说明性的而不是限制性的。因此,本发明的范围由所附权利要求而不是由前述描述指示。在权利要求的等效含义和范围内的所有变化都应包含在其范围内。

Claims (10)

1.一种计算系统,包括:
一个或多个处理器;以及
一个或多个计算机可读介质,其上具有计算机可执行指令,所述计算机可执行指令被结构化,使得当所述计算机可执行指令被一个或多个处理器执行时,使所述计算系统如下执行:
确定第一去中心化标识符(DID)的第一DID所有者和第二DID的第二DID所有者之间的关系,所述第一DID和所述第二DID是成对的DID;以及
基于所述关系,将所述第一DID所拥有的许可范围委托给第二DID,包括:
定义所述许可范围;
将所述第二DID的公钥授予所定义的所述许可范围;
由所述第一DID的私钥生成签名,证明所定义的所述许可范围对所述第二DID的所述公钥的所述委托;以及
将与所述委托相关的数据部分传播到分布式账本上。
2.根据权利要求1所述的计算系统,所述计算系统还被致使:
将多个关系映射到多个许可范围;
将所映射的数据记录在计算系统能够访问的存储器中;以及
基于所映射的所述数据,确定与所述第一DID所有者和所述第二DID所有者之间的所述关系相对应的所述许可范围。
3.根据权利要求2所述的计算系统,其中将所述多个关系映射到所述多个许可范围是基于以下至少一项:(1)记录在(多个)DID文档中的数据,(2)传播到所述分布式账本上的数据,或(3)用户输入。
4.根据权利要求3所述的计算系统,所述计算系统还被致使:
接收用户输入,所述用户输入用于生成、更新或删除特定许可范围和特定关系的映射对,以及
基于所述用户输入,更新所述存储器中所记录的所映射的所述数据。
5.根据权利要求4所述的计算系统,所述计算系统还被致使:
响应于所述用户指示,更新成对DID之间的委托,所述成对DID具有受所述用户输入影响的特定关系。
6.根据权利要求2所述的计算系统,其中所述多个关系包括以下至少一种:(1)子女-父母关系,(2)配偶关系,(3)雇员-雇主关系,(4)客户-服务关系,或(5)合同关系。
7.根据权利要求2所述的计算系统,所述计算系统还被致使:
响应于来自所述第二DID的所述第二DID所有者的针对许可范围的访问的请求,确定所述特定关系是否仍然存在;以及
响应确定所述特定关系不再存在,撤销相应的所述许可范围的所述委托,以及将与许可的所述撤销相关的数据部分传播到所述分布式账本。
8.根据权利要求2所述的计算系统,所述计算系统还被致使:
周期性地检查所述特定关系是否仍然存在;以及
响应确定所述特定关系不再存在,撤销相应的所述许可范围的所述委托,以及将与许可的所述撤销相关的数据传播到所述分布式账本。
9.根据权利要求2所述的计算系统,所述计算系统还被致使:
响应于接收到改变与所述第一DID相关的信息或与所述第二DID相关的信息的用户输入,确定所述特定关系是否仍然存在;以及
响应确定所述特定关系不再存在,撤销相应的所述许可范围的所述委托,以及将与许可的所述撤销相关的数据传播到所述分布式账本。
10.根据权利要求1所述的计算系统,其中:
所述许可范围的所述定义包括定义一个或多个限制;并且
所述传输与所述委托相关的数据部分包括将所述一个或多个限制传播到所述分布式账本。
CN202180017326.3A 2020-02-27 2021-01-20 使用成对的去中心化标识符的委托 Pending CN115176247A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/803,498 2020-02-27
US16/803,498 US11238170B2 (en) 2020-02-27 2020-02-27 Delegation using pairwise decentralized identifier
PCT/US2021/014064 WO2021173257A1 (en) 2020-02-27 2021-01-20 Delegation using pairwise decentralized identifier

Publications (1)

Publication Number Publication Date
CN115176247A true CN115176247A (zh) 2022-10-11

Family

ID=74673309

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180017326.3A Pending CN115176247A (zh) 2020-02-27 2021-01-20 使用成对的去中心化标识符的委托

Country Status (4)

Country Link
US (1) US11238170B2 (zh)
EP (1) EP4111663A1 (zh)
CN (1) CN115176247A (zh)
WO (1) WO2021173257A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11403348B2 (en) 2020-01-20 2022-08-02 International Business Machines Corporation Conflict-free version control
US11675854B2 (en) * 2020-01-20 2023-06-13 International Business Machines Corporation Conflict-free version control
WO2020098845A2 (en) * 2020-03-13 2020-05-22 Alipay (Hangzhou) Information Technology Co., Ltd. Data authorization based on decentralized identifiers
US20210314293A1 (en) * 2020-04-02 2021-10-07 Hewlett Packard Enterprise Development Lp Method and system for using tunnel extensible authentication protocol (teap) for self-sovereign identity based authentication
CN112906064B (zh) * 2020-07-31 2022-05-17 支付宝(杭州)信息技术有限公司 生成描述信息的方法及装置
CN111932426B (zh) * 2020-09-15 2021-01-26 支付宝(杭州)信息技术有限公司 一种基于可信硬件的身份管理方法、装置及设备
GB202018919D0 (en) * 2020-12-01 2021-01-13 Smarter Contracts Ltd Consent Management

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10903996B2 (en) 2018-01-22 2021-01-26 Microsoft Technology Licensing, Llc Persona selection using trust scoring
US20200220726A1 (en) * 2019-01-04 2020-07-09 Axuall, Inc. Systems and methods for verifying and managing digital credentials
CN111316303B (zh) * 2019-07-02 2023-11-10 创新先进技术有限公司 用于基于区块链的交叉实体认证的系统和方法
CN111213147B (zh) * 2019-07-02 2023-10-13 创新先进技术有限公司 用于基于区块链的交叉实体认证的系统和方法

Also Published As

Publication number Publication date
WO2021173257A1 (en) 2021-09-02
EP4111663A1 (en) 2023-01-04
US11238170B2 (en) 2022-02-01
US20210271765A1 (en) 2021-09-02

Similar Documents

Publication Publication Date Title
US20210273931A1 (en) Decentralized authentication anchored by decentralized identifiers
US11238170B2 (en) Delegation using pairwise decentralized identifier
US20200349256A1 (en) Self-help for did claims
US11288389B2 (en) Scoped sharing of DID-associated data using a selector
US20210288974A1 (en) Access token for a verifiable claim
CN113614725A (zh) 数据位置和政策遵守中的用户选择
WO2020251693A1 (en) Channeling data with decentralized identity stores
EP4026291B1 (en) Control of the delegated use of did-related data
US11587084B2 (en) Decentralized identification anchored by decentralized identifiers
US11411736B2 (en) Automatic renewal of a verifiable claim
US11138341B2 (en) Quick actions for did attestation user interface elements
WO2020242584A1 (en) Dynamic generation of pseudonymous names
CN113632088A (zh) 用于did证明的回调模式
KR20240015642A (ko) 검증 가능 클레임을 위한 신뢰성 있는 관리 연속성
EP4018614B1 (en) Did delegation/revocation to another did
CN113994630A (zh) 用于did证明的呈现中断
CN114391148A (zh) 基于事件的did委托权限转移
US11288358B2 (en) On skin decentralized identity technologies
US20230050460A1 (en) Issuing verifiable pairwise claims
US20230177487A1 (en) Digital wallet as a relying party in a decentralized network
US20230319039A1 (en) Securing authentication flows using a decentralized identifier

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