CN114341855A - 对did相关数据的委托使用的控制 - Google Patents

对did相关数据的委托使用的控制 Download PDF

Info

Publication number
CN114341855A
CN114341855A CN202080062178.2A CN202080062178A CN114341855A CN 114341855 A CN114341855 A CN 114341855A CN 202080062178 A CN202080062178 A CN 202080062178A CN 114341855 A CN114341855 A CN 114341855A
Authority
CN
China
Prior art keywords
related data
owner
party
data objects
computing system
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
CN202080062178.2A
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 CN114341855A publication Critical patent/CN114341855A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • 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
    • 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
    • H04L63/101Access control lists [ACL]
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/321Cryptographic 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 a third party or a trusted authority
    • 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/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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)
  • Machine Translation (AREA)

Abstract

本文公开的实施例涉及用于DID所有者控制DID相关数据的委托使用的计算系统和方法。委托许可被附加到由DID所有者提供给第一第三方实体的DID相关数据对象。委托许可指定在DID所有者和从第一第三方实体接收DID相关数据对象的第二第三方实体之间应该发生的交互。DID相关数据对象被提供给第一第三方实体。各种交互从试图使用DID相关数据对象的第二第三方实体被接收。当接收到的交互满足委托许可时,第二第三方实体被允许使用DID相关数据对象。

Description

对DID相关数据的委托使用的控制
背景技术
大多数当前使用的证明身份的文件或记录都是由中心化组织(诸如政府、学校、雇主或其他服务中心或监管组织)发布的。这些组织通常在中心化身份管理系统中维护每个成员的身份。中心化身份管理系统是用于组织管理签发的身份及其认证、授权、角色和权限的中心化信息系统。中心化身份管理系统一直被认为是安全的,因为它们通常使用专业维护的硬件和软件。通常,身份发布组织设置向该组织注册人员的条款和要求。当一方需要验证另一方的身份时,验证方往往需要通过中心化身份管理系统来获取验证和/或认证另一方身份的信息。
去中心化标识符(DID)是一种新类型的标识符,其独立于任何中心化注册表、身份提供者或认证授权机构。分布式账本技术(诸如区块链)为使用完全去中心化的标识符提供了机会。分布式账本技术使用全球分布的账本以可验证的方式记录双方或多方之间的交易。一旦交易被记录,则在不更改账本所有后续部分的情况下,不能追溯更改账本部分中的数据,这提供了相当安全的平台。由于DID通常不受中心化管理系统的控制,而是由DID的所有者拥有,因此DID有时被称为无需授权的身份。
本文要求保护的主题不限于解决任何缺点或仅在诸如上述环境中操作的实施例。而是,提供该背景仅仅是为了说明可以实施本文描述的一些实施例的一个示例技术领域。
发明内容
提供本发明内容是为了以简化形式介绍一组概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本文公开的实施例涉及用于DID所有者控制DID相关数据的委托使用的计算系统和方法。委托许可被附加到由DID所有者提供给第一第三方实体的DID相关数据对象。委托许可指定在DID所有者和第二第三方实体之间应该发生的交互,该第二第三方实体从第一第三方实体接收DID相关数据对象。DID相关数据对象被提供给第一第三方实体。从试图使用DID相关数据对象的第二第三方实体接收各种交互。当接收到的交互满足委托许可时,第二第三方实体被允许使用DID相关数据对象。
附加的特征和优点将在下面的描述中陈述,并且部分地将从该描述中显而易见,或者可以通过本文教导的实践来获知。本发明的特征和优点可以通过在所附权利要求中特别指出的工具和组合来实现和获得。本发明的特征将从以下描述和所附权利要求书中变得更加明显,或者可以通过下文阐述的本发明的实践来获知。
附图说明
为了描述可以获取上述以及其他优点和特征的方式,将通过参考附图中所示的特定实施例来对上面简要描述的主题进行更详细的描述。应当理解,这些附图仅描绘了典型实施例,因此不被认为是范围上的限制。将通过使用附图对实施例进行额外的具体性和细节的描述和解释,在附图中:
图1示出了其中可以采用本文描述的原理的示例计算系统;
图2示出了用于创建去中心化标识(DID)的示例环境;
图3示出了用于各种DID管理操作和服务的示例环境;
图4示出了示例去中心化存储设备或身份中心;
图5A和图5B示出了用于DID所有者控制DID相关数据的委托使用的计算系统环境的示例实施例;以及
图6示出了DID所有者控制DID相关数据的委托使用的示例方法的流程图。
具体实施方式
本文公开的实施例涉及用于DID所有者控制DID相关数据的委托使用的计算系统和方法。委托许可被附加到由DID所有者提供给第一第三方实体的DID相关数据对象。委托许可指定在DID所有者和第二第三方实体之间应该发生的交互,该第二第三方实体从第一第三方实体接收DID相关数据对象。DID相关数据对象被提供给第一第三方实体。从试图使用DID相关数据对象的第二第三方实体接收各种交互。当接收到的交互满足委托许可时,第二第三方实体被允许使用DID相关数据对象。
本文公开的实施例表示了相对于现有系统的技术进步。例如,DID所有者可能希望向DID所有者知道的第一第三方实体提供他或她的DID相关数据对象,诸如视频、图片、文档等。然而,第一第三方实体随后可以在没有DID所有者许可的情况下,向一个或多个第二第三方实体提供DID相关数据对象,DID所有者可以不知道该一个或多个第二第三方实体。将各种委托许可附加到DID相关数据对象允许DID所有者至少保留对数据的某种级别的控制。在允许一个或多个第二第三方实体访问DID相关数据之前,DID所有者可以指定他或她想要从这些实体接收什么类型的信息。这增加了用户的便利性和生产率,因为DID所有者和一个或多个第二第三方实体知道如果要使用DID相关数据将会发生什么。一个或多个第二第三方实体不需要提供不想要的信息,这进而减少了各方之间不必要的交互,从而节省了时间并减少了处理资源的使用。
因为本文描述的原理可以在计算系统的上下文中执行,所以将参考图1描述计算系统的一些介绍性讨论。然后,该描述将返回到关于其余附图的去中心化标识符(DID)平台的原理。
计算系统现在越来越多地采取各种各样的形式。计算系统可以是,例如,手持设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统、数据中心,或者甚至是传统上未被认为是计算系统的设备,诸如可穿戴设备(例如,眼镜)。在本说明书和权利要求书中,术语“计算系统”被广泛地定义为包括任何设备或系统(或其组合),该设备或系统包括至少一个物理和有形处理器,以及能够在其上具有可以由处理器执行的计算机可执行指令的物理和有形存储器。存储器可以采取任何形式,并且可以取决于计算系统的性质和形式。计算系统可以分布在网络环境上,并且可以包括多个组成的计算系统。
如图1所示,在其最基本的配置中,计算系统100通常包括至少一个硬件处理单元102和存储器104。处理单元102可以包括通用处理器,并且还可以包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)或任何其他专用电路。存储器104可以是物理系统存储器,其可以是易失性、非易失性或两者的某种组合。本文还可以使用术语“存储器”来指诸如物理存储介质的非易失性大容量存储装置。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。
计算系统100在其上还具有多个结构,该多个结构通常被称为“可执行组件”。例如,计算系统100的存储器104被示为包括可执行组件106。术语“可执行组件”是计算领域的普通技术人员所熟知的结构的名称,该结构可以是软件、硬件或其组合。例如,当以软件实现时,本领域普通技术人员将理解,可执行组件的结构可以包括可以在计算系统上执行的软件对象、例程、方法等,无论这种可执行组件是否存在于计算系统的堆中,或者无论该可执行组件是否存在于计算机可读存储介质上。
在这种情况下,本领域普通技术人员将认识到,可执行组件的结构存在于计算机可读介质上,使得当由计算系统的一个或多个处理器(例如,由处理器线程)解释时,使计算系统执行功能。这样的结构可以是由处理器直接计算机可读的(就像可执行组件是二进制的情况一样)。备选地,该结构可以被构造为可解释的和/或编译的(无论是在单级中还是在多级中),以便生成可以由处理器直接解释的这种二进制。这种对可执行组件的示例结构的理解完全在计算领域的普通技术人员使用术语“可执行组件”时所能理解的范围内。
本领域技术人员也可以很好地理解术语“可执行组件”包括以硬件(诸如在现场可编程门阵列(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的各种计算系统。其余附图的计算系统包括可以实现如将解释的本文公开的各种实施例的各种组件或功能块。各种组件或功能块可以在本地计算系统上实现,或者可以在分布式计算系统上实现,该分布式计算系统包括驻留在云中的元件或实现云计算的各方面。各种组件或功能块可以实现为软件、硬件或软件和硬件的组合。其余附图的计算系统可以包括比附图中所示的组件更多或更少的组件,并且一些组件可以在情况允许的情况下组合。
现在将参考图2给出去中心化标识符(DID)和在其中被创建和驻留的环境的一些介绍性讨论,图2示出了去中心化网络200的部分。如图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或至少具有为其创建和/或与其相关联的DID 205的任何实体,人或非人。尽管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 205保持在DID所有者201的控制之下。这不同于传统的中心化ID,传统的中心化ID基于中心化授权机构,并且保持公司目录服务、认证授权机构、域名注册处或其他中心化授权机构(在此统称为“中心化授权机构”)的控制之下。因此,DID 205可以是在DID所有者201的控制下并且独立于任何中心化授权机构的任何标识符。
在一些实施例中,DID 205的结构可以像用户名或某些其他人类可理解的术语一样简单。然而,在其他实施例中,为了提高安全性,DID 205优选地可以是数字和字母的随机串。在一个实施例中,DID205可以是128个数字和字母的字符串。因此,本文公开的实施例不依赖于DID 205的任何具体实现。在非常简单的示例中,DID 205在图中显示为“123ABC”。
还如图2所示,DID所有者201控制与DID 205相关联的私钥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 205时生成DID文档210。在其最简单的形式中,DID文档210描述了如何使用DID205。因此,DID文件210包括对DID 205的引用,该DID 205是由DID文档210描述的DID。在一些实施例中,DID文档210可以根据分布式账本220(诸如区块链)指定的方法来实现,该分布式账本220将用于存储DID 205的表示,这将在后面更详细地解释。因此,根据具体的分布式账本,DID文档210可以具有不同的方法。
DID文档210还包括由DID所有者201创建的公钥207或一些其他等效密码信息。公钥207可以由第三方实体使用,该第三方实体被DID所有者201给予许可以访问DID所有者201所拥有的信息和数据。公钥207还可以用于验证DID所有者201实际上拥有或控制DID205。
DID文档210还可以包括认证信息211。认证信息211可以指定DID所有者201能够证明DID所有者201拥有DID 205的一个或多个机制。换言之,认证信息211的机制可以显示DID205(从而其DID所有者201)和DID文档210之间的绑定的证据。在一个实施例中,认证信息211可以指定在签名操作中使用公钥207来证明DID 205的所有权。备选地或附加地,认证信息211可以指定在生物计量(biometric)操作中使用公钥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的具体示例。
DID文档210还可以包括标识信息214。标识信息214可以包括个人可标识信息,诸如DID所有者201的姓名、地址、职业、家庭成员、年龄、爱好、兴趣等。因此,在DID文档210中列出的标识信息214可以代表出于不同目的的DID所有者201的不同角色。
角色可以是伪匿名的。作为示例,当将DID所有者201标识为在博客上发表文章的作者时,他或她可以在DID文档中包括笔名。角色可以是完全匿名的。作为示例,DID所有者201可能只想在DID文件中公开他或她的职称或其他背景数据(例如,学校教师、FBI特工、21岁以上的成年人等),而不公开他或她的名字。作为又一示例,角色可以特定于DID所有者201作为个体是谁。作为示例,DID所有者201可以包括将他或她标识为特定慈善组织的志愿者、特定公司的雇员、特定奖项的获奖者等的信息。
DID文档210还可以包括证明信息215。证明信息215可以是与DID所有者201的背景相关联的任何信息。例如,证明信息215可以是(但不限于)资格、成就、政府ID、诸如护照或驾照的政府权利、支付提供者或银行账户、大学学位或其他教育历史、就业状况和历史、或关于DID所有者201的背景的任何其他信息。在一些实施例中,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文档210的指针之外,DID哈希231、DID哈希241和DID哈希251中的每个DID哈希还可以包括指定何时创建DID 205的记录或时间戳。在以后的日期,当对DID文档210进行修改时,每次修改(并且可能还包括修改的时间戳)也可以被记录在DID哈希231、DID哈希241和DID哈希251中。DID哈希231、DID哈希241和DID哈希251还可以包括公钥207的副本,使得DID 205被密码绑定到DID文档210。
在参考图2描述了DID及其一般如何操作之后,现在将解释DID环境的具体实施例。现在转到图3,将解释可用于执行各种DID管理操作和服务的计算系统环境300。应当理解,为了便于解释,图3的环境可以根据需要引用图2中的元件。
如图3所示,环境300可以包括可以由DID所有者201拥有或控制的各种设备和计算系统。这些设备可以包括用户设备301。用户设备301可以是但不限于,诸如智能电话的移动设备、诸如膝上型计算机的计算设备或诸如汽车或包括计算能力的电器的任何设备。设备301可以包括在设备上操作的网络浏览器302和操作设备的操作系统303。更广泛地说,虚线304表示所有这些设备可以由DID所有者201拥有或以其他方式控制。
环境300还包括DID管理模块320。应当注意,在操作中,DID管理模块320可以驻留在用户设备301、web浏览器302和操作系统303中的一个或多个上并由其执行,如相应行301a、302a和303a所示。因此,为便于解释,DID管理模块320被示为分开的。在一些实施例中,管理模块320可以被称为“数字钱包”或“用户代理”。
如图3所示,DID管理模块320包括DID创建模块330。DID创建模块330可以由DID所有者201用来创建DID 205或任何数目的附加DID,诸如DID 331。在一个实施例中,DID创建模块可以包括,或以其他方式访问,用户界面(UI)元件335,该UI元件335可以引导DID所有者201创建DID 205。DID创建模块330可以具有一个或多个驱动,这些驱动被配置为与诸如分布式账本220的特定分布式账本一起工作,使得DID 205符合该分布式账本的底层方法。
现在将描述具体实施例。例如,UI 335可以为用户提供输入用户名或某些其他人类可识别名称的提示。该名称可以被用作将被生成的DID 205的显示名称。如前所述,DID205可以是一长串随机数字和字母,因此具有用于显示名称的人类可识别的名称可能是有利的。然后,DID创建模块330可以生成DID 205。在具有UI 335的实施例中,DID 205可以显示在身份列表中,并且可以与人类可识别的名称相关联。
DID创建模块330还可以包括密钥生成模块350。密钥生成模块可以生成前述的私钥206和公钥207对。然后,DID创建模块330可以使用DID 205以及私钥和公钥对来生成DID文档210。
在操作中,DID创建模块330访问注册器310,注册器310被配置为将记录与DID 205相关的交易的特定分布式账本。DID创建模块330使用注册器310以前述方式在分布式账本中记录DID哈希231、DID哈希241和DID哈希251,并以前述方式存储DID文档210。该过程可以在哈希生成中使用公钥207。
在一些实施例中,DID管理模块320可以包括所有权模块340。所有权模块340可以提供确保DID所有者201完全控制DID 205的机制。以此方式,DID管理模块320的提供者能够确保提供者不控制DID 205而仅提供管理服务。
如前所述,密钥生成模块350生成私钥206和公钥207对,然后公钥207被记录在DID文档210中。因此,公钥207可以由与DID所有者201相关联的所有设备以及期望向DID所有者201提供服务的所有第三方使用。因此,当DID所有者201期望将新设备与DID 205相关联时,DID所有者201可以在新设备上执行DID创建模块330。然后,DID创建模块330可以使用注册器310来更新DID文档210,以反映新设备现在与DID 205相关联,该更新将反映在分布式账本220上的交易中,如前所述。
然而,在一些实施例中,具有由DID所有者201拥有的每个设备301的公钥可以是有利的,因为这可以允许DID所有者201在不必访问通用公钥的情况下用设备专用公钥签名。换言之,由于DID所有者201将在不同的时间使用不同的设备(例如,在一种情况下使用移动电话,然后在另一种情况下使用膝上型计算机),所以具有与每个设备相关联的密钥以提供使用密钥进行签名的效率是有利的。因此,在这样的实施例中,当附加设备执行DID创建模块330时,密钥生成模块350可以生成附加公钥208和209。这些附加公钥可以与私钥206相关联,或者在一些情况下可以与新私钥配对。
在附加公钥208和209与不同设备相关联的那些实施例中,附加公钥208和209可以被记录在DID文档210中作为与那些设备相关联。这在图3中示出。可以理解,除了图3所示的信息(信息208、209和365)之外,DID文档210还可以包括先前关于图2描述的信息(信息205、207和211至216)。如果DID文档210在生成设备专用公钥之前存在,则DID文档210将由创建模块330经由注册器310更新,并且这将反映在分布式账本220上的更新交易中。
在一些实施例中,DID所有者201可能期望将设备与公钥的关联或设备与DID 205的关联保密。因此,DID创建模块330可以使这样的数据秘密地显示在DID文档210中。
如上所述,DID 205已经与DID所有者201控制下的所有设备相关联,即使这些设备具有它们自己的公钥。然而,在一些实施例中,在DID所有者201的控制下的每个设备或设备的某个子集各自具有其自己的DID可能是有用的。因此,在一些实施例中,DID创建模块330可以为每个设备生成附加的DID,例如DID 331。然后,DID创建模块330将为每个设备生成私钥和公钥对以及DID文档,并以前面描述的方式将它们记录在分布式账本220上。这样的实施例对于可以改变所有权的设备可以是有利的,因为有可能通过在DID文档中授予新所有者授权权限并从旧所有者撤销这样的权限来将设备专用DID与设备的新所有者相关联。
如上所述,为了确保私钥206完全在DID所有者201的控制下,私钥206被创建在由执行DID管理模块320的DID所有者201拥有或控制的用户设备301、浏览器302或操作系统303上。以此方式,第三方(并且最相应地,DID管理模块320的提供者)几乎不可能获得对私钥206的控制。
然而,DID所有者201有可能丢失存储私钥206的设备,这可以导致DID所有者201失去对DID 205的访问。因此,在一些实施例中,UI 335可以包括允许DID所有者201将私钥206导出到在DID所有者201控制下的脱机设备安全数据库305的选项。作为示例,数据库305可以是下面参考图4描述的身份中心410中的一个身份中心。存储模块380被配置为将数据(诸如由DID所有者201做出的或关于DID所有者201的私钥206或证明信息215)存储到设备外、数据库305中或身份中心410中,该数据库305或身份中心410将在后面更详细地描述。当然,在一些实施例中,如果设备具有足够的存储资源,则存储模块380可以在设备上存储至少一些数据。在一些实施例中,私钥206可以存储为可以由DID所有者201扫描的QR码。
在其他实施例中,DID管理模块320可以包括恢复模块360,该恢复模块360可以用于恢复丢失的私钥206。在操作中,恢复模块360允许DID所有者201在创建DID 205时选择一个或多个恢复机制365,该一个或多个恢复机制365稍后可以被用于恢复丢失的私钥。在具有UI 335的那些实施例中,UI 335可以允许DID所有者201提供将由一个或多个恢复机制365在恢复期间使用的信息。然后,恢复模块360可以在与DID 205相关联的任何设备上运行。
DID管理模块320还可以包括用于从DID 205撤销或切断设备的撤销模块370。在操作中,撤销模块可以使用UI元件335,其可以允许DID所有者201指示从与DID 205相关联的设备中移除设备的期望。在一个实施例中,撤销模块370可以访问DID文档210,并且可以使得从DID文档210中移除对该设备的所有引用。备选地,可以移除设备的公钥。然后,DID文档210中的该改变可以被反映为分布式账本220上的更新交易,如前所述。
图4示出了其中可以利用诸如DID 205的DID的计算系统环境400的实施例。具体地,环境400将用于描述DID 205相对于各自处于DID所有者201控制下的一个或多个去中心化存储装置或身份中心410的使用,以存储属于DID所有者201或关于DID所有者201的数据。例如,可以使用图3的存储模块380将数据存储在身份中心内。应当注意,图4可以包括对首先参考图2或图3讨论的元件的引用,因此为了便于解释,使用相同的附图标记。
在一个实施例中,身份中心410可以是相同身份中心的多个实例。这由线410A表示。因此,各种身份中心410可以包括至少一些相同的数据和服务。因此,如果对身份中心410中的一个身份中心中的至少一些数据的一部分(以及潜在的任何数据的任何部分)做出改变,则该改变可以反映在一个或多个其余的身份中心中(并且可能是所有的)。
身份中心410可以是可以由DID所有者201独占控制的任何数据存储装置。仅作为示例,第一身份中心411和第二身份中心412在云存储装置中实现(可能在相同云中,或者甚至在由不同云提供者管理的不同云上),因此可能能够保存大量数据。因此,全套数据可以存储在这些身份中心中。
然而,身份中心413和414可能具有较少的存储空间。因此,在这些身份中心中可以包括存储在第一身份中心和第二身份中心中的数据的描述符。备选地,也可以包括对其他身份中心中的数据进行改变的记录。因此,身份中心410中的一个身份中心中的改变或者在其他身份中心中被完全复制,或者该数据的至少一个记录或描述符被记录在其他身份中心中。
由于身份中心可以是相同身份中心的多个实例,因此将仅提供第一身份中心411的完整描述,因为该描述也可以应用于身份中心412至身份中心414。如图所示,身份中心411可以包括数据存储装置420。数据存储装置420可以用于存储与DID所有者201相关联的任何类型的数据。在一个实施例中,数据可以是对应于特定协议的特定类型数据的集合422。例如,集合422可以是对应于医疗数据的特定协议的医疗记录数据。集合422可以包括任何其他类型的数据,诸如由DID所有者201做出的或关于DID所有者201的证明215。
在一个实施例中,所存储的数据可以具有与所存储的数据相关联的不同认证和隐私设置421。例如,数据的第一子集可以具有允许公开暴露数据的设置421,但是这不包括对DID所有者201的任何认证。这种类型的数据可以用于诸如配色方案等相对不重要的数据。数据的第二子集可以具有设置421,该设置421允许公开暴露数据并且包括对DID所有者201的认证。数据的第三子集可以具有利用与DID所有者201相关联的私钥206和公钥207对(或某个其他密钥对)加密数据子集的设置421。这种类型的数据将需要一方能够访问公钥207(或一些其他相关联的公钥)以解密数据。该过程还可以包括对DID所有者201的认证。数据的第四子集可以具有将该数据限制为第三方的子集的设置421。这可以需要使用与第三方的子集相关联的公钥来解密数据。例如,DID所有者201可以使设置421指定只有与DID所有者201的朋友相关联的公钥才可以解密该数据。关于由存储模块380存储的数据,这些设置411可以至少部分地由图3的存储模块380组成。
在一些实施例中,身份中心411可以具有许可模块430,该许可模块430允许DID所有者201为诸如第三方401和402的第三方设置访问身份中心的特定授权或许可。例如,DID所有者201可以向他或她的配偶提供对所有数据420的访问许可。备选地,DID所有者201可以允许访问他或她的医生以用于任何医疗记录。应当理解,DID所有者201可以允许任何数目的第三方访问数据420的子集。这将在后面更详细地解释。对于由存储模块380存储的数据,这些访问许可430可以至少部分地由图3的存储模块380组成。
身份中心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的数据和服务以及身份中心410的其余部分。
应当注意,在可以访问身份中心411之前,无需DID所有者201向身份中心411的提供者(即,第一云存储提供者)提供任何用户名、密码等,来执行认证新用户设备301的该过程。相反,访问是基于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可以包括端点213,该端点213是指向与去中心化身份相关联的服务的地址或指针。
完成研究数据示例后,第三方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所有者完全控制该过程。
如图4所示,第三方402还可以使用DID 205和DID文档210请求访问身份中心411的许可。因此,本文公开的实施例允许任何数目的第三方访问身份中心410。
图5A示出了根据本文公开的实施例的计算系统环境500的实施例,其将用于解释DID所有者如何能够控制DID相关数据的委托。应当注意,由于计算系统环境500可以对应于先前描述的计算系统环境100-400中的一个或多个,所以图5A可以包括对首先参考图2-图4讨论的元件的引用,因此为了便于解释,可以使用相同的附图标记。
假设DID所有者201希望将许可委托给第三方实体530,以访问包括在身份中心411中存储的数据420中的诸如数据对象420A和420B的一个或多个DID相关数据对象,第三方实体530可以拥有DID535或以其他方式与DID 535相关联。DID相关数据对象420A和420B可以被认为是“DID相关的”,因为数据由DID所有者201的DID 205标识并与其相关联。DID相关数据对象420A和420B可以包括任何合理类型的数据,诸如视频、音频、图片、文档数据。因此,本文公开的实施例不受DID相关数据对象420A和420B的类型的限制。
第三方实体530可以被给予对DID相关数据对象420A和420B中的一个或多个的访问,使得第三方实体530可以读取和/或写入数据对象,或者以其他方式操作或使用数据对象。例如,DID相关数据对象420A可以是将要由第三方实体530观看的DID所有者201的视频,或者它可以是将要由第三方实体530编辑的文档。由于DID所有者201希望将访问DID相关数据对象的许可委托给第三方实体530,因此当第三方实体530读取或写入数据对象时不存在问题。在一些实施例中,DID相关数据对象420A和/或420B可以由DID所有者201使用私钥和公钥对206和207进行加密,如前所述。在这种情况下,可以向第三方实体530提供对公钥207的访问,使得可以对加密后的DID相关数据对象进行解密。
尽管DID所有者201可能希望将使用DID相关数据对象的许可委托给第三方实体530,但他或她可能不希望第三方实体530进一步将使用DID相关数据对象的许可委托给其他第三方实体,诸如第三方实体540、550、560或任何数目的附加第三方实体,如省略号570所示。第三方实体530-570可以是人或人的组织,或者可以是机器、系统或设备,或机器、设备和/或系统的集合。例如,如果DID相关数据对象420A是视频,则DID所有者201可能不希望除第三方实体530之外的任何实体观看该视频。备选地,如果DID相关数据对象420A是他或她已经创建的文档,则DID所有者201可能不希望除了第三方实体530之外的任何实体在没有某种形式的付费的情况下查看该文档。在任一情况下,DID所有者201可能不希望第三方实体530在没有对这种委托的某种形式的控制的情况下委托使用DID相关数据对象的许可。有利的是,本文公开的实施例提供了当在没有DID所有者201授权的情况下将数据对象提供给其他第三方实体时,DID所有者201控制使用DID相关数据对象420A和/或420B的许可的委托的方式。
如图5A所示,计算系统环境500可以包括委托模块510。在一个实施例中,委托模块510可以由第三方实体实现,诸如DID管理模块320和/或身份中心410的提供者。在其他实施例中,委托模块510可以驻留在与DID所有者201拥有的设备301分开的服务器计算机上。在其他实施例中,委托模块510可以是DID管理模块320的一部分,或者可以至少与DID管理模块320共享一些功能。在进一步的实施例中,委托模块510可以是身份中心410中的一个身份中心的一部分或由其托管。因此,本文公开的实施例不限于委托模块510在哪里实现。
在该实施例中,委托模块510可以访问或已经向其提供了DID相关数据对象420A和/或420B。在接收到DID相关数据对象420A和/或420B之后,委托模块510可以将一个或多个委托许可520与DID相关数据对象420A和/或420B附加或关联。如下面将更详细解释的,委托许可520可以指定在DID所有者201和任何第三方实体之间应该发生的一个或多个交互,该任何第三方实体在其他第三方实体能够使用DID相关数据对象420A和/或420B之前已经从第三方实体530接收到DID相关数据对象420A和/或420B。为便于解释,委托许可520将仅相对于附加到DID相关数据对象420A来解释。然而,该解释也可以适用于DID相关数据对象420B。
图5B示出了委托许可520的示例实施例。如图所示,在示例实施例中,委托许可520可以包括第一委托许可521、第二委托许可522、第三委托许可523以及由省略号524所证明的任意数目的附加委托许可。委托许可521-524中的每个委托许可可以指定应该在第三方实体(即,第三方实体540、550和560)能够使用DID相关数据420A之前发生的特定交互。应当注意,在其他实施例中,委托许可520可以仅包括委托许可521-524的一个或更小的子集。下面将更详细地解释由委托许可521-524指定或定义的交互的具体示例。
在一些实施例中,委托许可520可以包括地理委托许可525。DID所有者201可以使用地理委托许可525来限制第三方实体540、550和560可以使用DID相关数据对象420A的地理区域。例如,DID所有者201可能希望将委托限制在他或她的家乡、州或国家。因此,第三方实体540、550和560不能在地理委托许可525指定的地理区域之外使用DID相关数据对象420A。
在其他实施例中,委托许可520可以包括时间委托许可526。时间委托许可526可以由DID所有者201用来将第三方实体540、550和560对DID相关数据对象420A的使用限制在特定时间段内。例如,特定时间段可以是几周或几个月。在由时间委托许可526指定的时间期满后,DID相关数据对象420A可以变得不能够由第三方实体540、550和560使用。
在委托许可520已经被附加到DID相关数据对象420A后,则可以将该数据对象提供给第三方实体530。在这种情况下,由于DID所有者201希望第三方实体530能够使用DID相关数据对象420A,因此向第三方实体530提供或给予对可以解密DID相关数据对象420A的公钥207的访问权。可以理解,委托许可520通常可能不适用于第三方实体530,因为实体530旨在使用DID相关数据对象420A。如前所述,委托许可520被附加到DID相关数据对象420A,使得DID所有者201可以至少对从第三方实体530接收DID相关对象420A的附加第三方实体的使用具有一些控制。然而,在一些实施例中,DID所有者201可以在委托许可520中包括对第三方实体530使用DID相关数据对象420A施加限制的许可。
如图5A所示,第三方实体可以向第三方实体540提供具有附加的委托许可520的DID相关数据对象420A。如图所示,第三方实体540可以拥有DID 545或与DID 545相关联。当第三方实体540试图使用DID相关数据对象420A时,委托许可520可以指定在可以使用DID相关数据对象420A之前需要发生的定义的交互。
例如,在一个实施例中,假设委托许可521-524中的一个委托许可指定了导致记录从第三方实体530接收DID相关数据对象420A的第三方实体的数目的计数515A的交互。这在DID所有者201仅仅想知道在DID相关数据对象420A已经被提供给第三方实体530之后,其被访问的频率,并且不关心第三方实体的身份的情况下可能是有用的。在这样的实施例中,委托模块510可以包括账本515。备选地,账本515可以存储在身份中心411或诸如数据库305的一些其他数据库中。
因此,如图5A所示,第三方实体540可以向委托模块510提供交互546,该交互546通知委托模块第三方实体540正在试图使用DID相关数据对象420A。在接收到交互546后,可以将计数515A写入账本515中。一旦计数515A已经被记录,则可以允许第三方实体540读取和/或写入或以其他方式操作或使用DID相关数据对象420A,而无需来自DID所有者201的任何输入。在一些实施例中,这可以包括提供或以其他方式允许第三方实体540访问公钥207,使得可以解密DID相关数据对象420A。
在另一实施例中,对于前面描述的委托许可附加地或备选地,假设委托许可521-524中的一个委托许可指定交互,该交互包括请求第三方实体540提供关于该实体从谁接收到DID相关数据对象420A的历史信息。在该实施例中,第三方实体540可以提供交互546,该交互546通知委托模块510从第三方实体530接收到DID相关数据对象420A。然而,如果第三方实体540在第三方实体550或560中的一个第三方实体从第三方实体530接收到DID相关数据对象420A之后,从该第三方实体550或560之一接收到DID相关数据对象420A,则这将被包括在交互546中。
在接收到交互546后,管理模块510可以记录历史516。历史516可以包括关于已经提供有DID相关数据对象420A的第三方实体的身份的信息。在DID所有者201可能想要知道试图使用DID相关数据对象420A的第三方实体的身份但可能对关于该第三方实体的任何进一步信息不感兴趣的情况下,记录第三方实体的该使用链可以是有用的。一旦记录了历史516,就可以允许第三方实体使用DID相关数据对象420A,这可以包括提供对公钥207的访问以解密DID相关数据对象420A。
如图5A所示,第三方实体540可以向第三方实体550提供具有附加的委托许可520的DID相关数据对象420A。如图所示,第三方实体550可以拥有DID 555或与DID 555相关联。当第三方实体550试图使用DID相关数据对象420A时,委托许可520可以指定在可以使用DID相关数据对象420A之前需要发生的定义的交互。
在一个实施例中,对于前面描述的委托许可附加地或备选地,假设委托许可521-524中的一个委托许可指定了第三方实体550和DID所有者201之间的动态交互。当DID相关数据对象420A是敏感类型或DID所有者201可能希望保密的类型时,该动态交互可以是有用的。例如,DID相关数据对象420A可以是为特定目的提供给第三方实体530的医疗记录或财务记录。在DID所有者201向第三方实体550授权使用之前,DID所有者201可能希望确定第三方实体550是谁以及该实体为什么试图使用DID相关数据对象420A。
因此,委托模块510可以接收通知委托模块第三方实体550正试图使用DID相关数据对象420A的交互556。由于DID相关数据对象420A是敏感类型,所以包括在委托模块510中的动态模块518可以发起与第三方实体550的动态交互518A。例如,假设DID相关数据对象420A是医疗记录。因此,动态模块518可以提示DID所有者201实时询问第三方实体550一系列问题518A。在该实施例中,实时问题可以包括询问第三方实体550的身份以及第三方实体550为什么需要使用DID相关数据对象420A。也如交互556所表示的,第三方实体550可以实时回答问题。例如,在医疗记录的情况下,第三方实体550可以回复他们是医生并且已经由第三方实体530经由第三方实体540提供了DID相关数据对象420A,以便向DID所有者201和第三方实体530提供第二意见,在该示例中,第三方实体530也可以是医生。
如果DID所有者对应允许第三方实体550使用DID相关数据对象420A的回答感到满意,则他或她可以授权动态模块518允许第三方实体550使用DID相关数据对象420A,这可以包括提供对公钥207的访问以解密DID相关数据对象420A。如果DID所有者201不满意,则他或她可以继续询问更多问题,直到满意,或者他或她可以指示动态模块518拒绝使用DID相关数据对象420A。有利的是,在允许使用DID相关数据对象420A之前要求动态交互允许DID所有者201实时确定是否应该允许从第三方实体530向其提供DID相关数据对象420A的第三方使用DID相关数据对象420A。
如图5A所示,第三方实体540可以将具有附加委托许可的DID相关数据对象420A提供给第三方实体560。备选地或附加地,可以从第三方实体550提供DID相关数据对象420A。如图所示,第三方实体560可以拥有DID 565或与DID 565相关联。当第三方实体560试图使用DID相关数据对象420A时,委托许可520可以指定在可以使用DID相关数据对象420A之前需要发生的定义的交互。
在一个实施例中,对于前述委托许可附加地或备选地,假设委托许可521-524中的一个委托许可指定在可以使用DID相关数据对象420A之前提供费用支付。在DID相关数据对象420A可能是DID所有者201可能想要出售给除第三方实体530之外的实体的诸如书籍或电影的类型的那些实例中,或者如果DID所有者201仅仅想要从DID相关数据对象420A赚钱的情况下,这可能是有用的。
因此,委托模块510可以接收交互566,该交互566通知委托模块第三方实体560正在试图使用DID相关数据对象420A。由于委托许可需要费用支付,因此包括在委托模块510中的支付模块517可以从第三方实体560请求支付517A。也如交互566所表示的,第三方实体560然后可以向支付模块517提供支付。在验证支付后,支付模块517可以允许第三方实体560使用DID相关数据对象420A,这可以包括提供对公钥207的访问以解密DID相关数据对象420A。
下面的讨论现在涉及可以执行的多个方法和方法动作。尽管该方法动作可以按特定顺序讨论或在流程图中图示为以特定顺序发生,但不要求特定顺序,除非特别说明,或者因为一个动作依赖于在执行该动作之前完成的另一个动作而要求特定顺序。
图6示出了DID所有者控制DID相关数据的委托使用的示例方法的流程图。将参考前面讨论的图1-图5B中的一个或多个来描述方法600。
方法600包括将委托许可附加到将要由DID所有者提供给第一第三方实体的一个或多个DID相关数据对象的动作,该委托许可至少指定将要在DID所有者和一个或多个第二第三方实体之间发生的一个或多个交互,该一个或多个第二第三方实体在该一个或多个第二第三方实体能够使用该一个或多个DID相关数据对象之前已经从第一第三方实体接收到该一个或多个DID相关数据对象(动作610)。例如,如前所述,委托模块510可以将包括委托许可521-526中的一个或多个的委托许可520附加到DID相关数据对象420A和/或420B。委托许可520指定在已经从第三方实体530接收到DID相关数据对象420A和/或420B的第三方实体(诸如第三方实体540、550和560)能够使用DID相关数据对象420A和/或420B之前,应该发生的各种交互,诸如交互546、556和566。第三方实体540、550和560可以直接从第三方实体530接收DID相关数据对象420A和/或420B,或者经由已经从第三方实体530接收数据对象的第三方实体540、550和560中的另一第三方实体间接从第三方实体530接收DID相关数据对象420A和/或420B。
方法600包括,在附加委托许可之后,向第一第三方实体提供一个或多个DID相关数据对象的动作(动作620)。例如,如前所述,委托模块510可以在附加委托许可520之后,向第三方实体530提供DID相关数据对象420A和/或420B。
方法600包括,当一个或多个第二第三方实体试图使用一个或多个DID相关数据对象时,从该一个或多个第二第三方实体接收一个或多个交互的动作(动作630)。例如,如前所述,当第三方实体试图使用DID相关数据对象420A和/或420B时,委托模块510可以从第三方实体540、550和560中的一个第三方实体接收交互546、556和566中的一个交互。
方法600包括当接收到的一个或多个交互满足委托许可时,一个或多个第二第三方实体被允许使用一个或多个DID相关数据对象的动作(动作640)。例如,如前所述,当已经满足委托许可520时,委托模块510可以允许使用DID相关数据对象420A和/或420B。在一些实施例中,这可以包括提供对公钥207的访问,使得可以解密DID相关数据对象420A和/或420B。
对于本文公开的过程和方法,在过程和方法中执行的操作可以以不同的顺序实现。此外,概述的操作仅作为示例提供,并且一些操作可以是可选的、组合成更少的步骤和操作、补充有进一步的操作、或者扩展为附加的操作,而不减损所公开实施例的本质。
本发明可以在不背离其精神或特征的情况下以其他具体形式实施。所描述的实施例在所有方面仅被认为是说明性的,而非限制性的。因此,本发明的范围由所附权利要求指示,而不是由前述描述指示。权利要求的含义和等同范围内的所有改变均应包括在其范围内。

Claims (10)

1.一种在实现分布式账本的去中心化网络中实现的计算系统,所述分布式账本被配置为支持针对所述计算系统的一个或多个用户的一个或多个去中心化身份(DID),所述计算系统包括:
一个或多个处理器;以及
一个或多个计算机可读介质,其上具有计算机可执行指令,所述计算机可执行指令被构造以使得在由所述一个或多个处理器执行时,使所述计算系统:
将委托许可附加到一个或多个DID相关数据对象,所述一个或多个DID相关数据对象将要由DID所有者提供给第一第三方实体,所述委托许可至少指定将要在所述DID所有者和一个或多个第二第三方实体之间发生的一个或多个交互,所述一个或多个第二第三方实体在所述一个或多个第二第三方实体能够使用所述一个或多个DID相关数据对象之前,已经从所述第一第三方实体接收到所述一个或多个DID相关数据对象;
在附加所述委托许可之后,将所述一个或多个DID相关数据对象提供给所述第一第三方实体;
当所述一个或多个第二第三方实体试图使用所述一个或多个DID相关数据对象时,从所述一个或多个第二第三方实体接收一个或多个交互;以及
当接收到的一个或多个交互满足所述委托许可时,允许所述一个或多个第二第三方实体使用所述一个或多个DID相关数据对象。
2.根据权利要求1所述的计算系统,其中所述一个或多个交互包括记录试图使用所述一个或多个DID相关数据对象的第二第三方实体的数目的计数。
3.根据权利要求1所述的计算系统,其中所述一个或多个交互包括针对特定第二第三方实体提供关于已经使用所述一个或多个DID相关数据对象的其他第三方实体的历史信息的请求。
4.根据权利要求1所述的计算系统,其中所述一个或多个委托许可指定所述一个或多个第二第三方实体在试图使用所述一个或多个DID相关数据时将要在指定位置内,或者指定所述一个或多个第二第三方实体应该在指定时间段内使用所述一个或多个DID相关数据对象。
5.根据权利要求1所述的计算系统,其中所述一个或多个交互包括在允许使用所述一个或多个DID相关数据对象之前,从所述一个或多个第二第三方实体接收指定费用的支付。
6.根据权利要求1所述的计算系统,其中所述一个或多个交互包括在所述一个或多个第二第三方实体能够使用所述一个或多个DID相关数据对象之前,动态地从所述一个或多个第二第三方实体接收进一步的信息。
7.根据权利要求6所述的计算系统,其中动态地接收进一步的信息基于所述一个或多个DID相关数据对象的类型。
8.根据权利要求1所述的计算系统,其中所述一个或多个第二第三方实体直接从所述第一第三方实体或者从一个或多个其他第二第三方实体接收所述一个或多个DID相关数据对象。
9.根据权利要求1所述的计算系统,其中允许使用所述一个或多个DID相关数据对象包括提供对公钥的访问,所述公钥被配置为解密所述一个或多个DID相关对象。
10.一种在实现分布式账本的去中心化网络中实现的计算系统中用于去中心化身份(DID)所有者控制DID相关数据的委托使用的方法,所述分布式账本被配置为支持针对所述计算系统的一个或多个用户的一个或多个DID,所述方法包括:
将委托许可附加到一个或多个DID相关数据对象的动作,所述一个或多个DID相关数据对象将要由DID所有者提供给第一第三方实体,所述委托许可至少指定将要在所述DID所有者和一个或多个第二第三方实体之间发生的一个或多个交互,所述一个或多个第二第三方实体在所述一个或多个第二第三方实体能够使用所述一个或多个DID相关数据对象之前,已经从所述第一第三方实体接收到所述一个或多个DID相关数据对象;
在附加所述委托许可之后,将所述一个或多个DID相关数据对象提供给所述第一第三方实体的动作;
当所述一个或多个第二第三方实体试图使用所述一个或多个DID相关数据对象时,从所述一个或多个第二第三方实体接收一个或多个交互的动作;以及
当接收到的一个或多个交互满足所述委托许可时,允许所述一个或多个第二第三方实体使用所述一个或多个DID相关数据对象的动作。
CN202080062178.2A 2019-09-05 2020-06-17 对did相关数据的委托使用的控制 Pending CN114341855A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/561,510 US11184334B2 (en) 2019-09-05 2019-09-05 Control of the delegated use of DID-related data
US16/561,510 2019-09-05
PCT/US2020/038003 WO2021045821A1 (en) 2019-09-05 2020-06-17 Control of the delegated use of did-related data

Publications (1)

Publication Number Publication Date
CN114341855A true CN114341855A (zh) 2022-04-12

Family

ID=71409584

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080062178.2A Pending CN114341855A (zh) 2019-09-05 2020-06-17 对did相关数据的委托使用的控制

Country Status (5)

Country Link
US (1) US11184334B2 (zh)
EP (1) EP4026291B1 (zh)
CN (1) CN114341855A (zh)
ES (1) ES2961364T3 (zh)
WO (1) WO2021045821A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN113012008B (zh) * 2020-09-15 2022-06-03 支付宝(杭州)信息技术有限公司 一种基于可信硬件的身份管理方法、装置及设备
JP7180038B1 (ja) * 2021-04-06 2022-11-29 株式会社ワコム アートワーク管理方法、コンピュータ、及びプログラム
US11804966B2 (en) * 2021-05-31 2023-10-31 Microsoft Technology Licensing, Llc Trusted custody chain for verifiable claims

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9674194B1 (en) 2014-03-12 2017-06-06 Amazon Technologies, Inc. Privilege distribution through signed permissions grants
US20170324711A1 (en) * 2016-05-03 2017-11-09 The Real Mccoy, Llc Inc. Method for establishing, securing and transferring computer readable information using peer-to-peer public and private key cryptography
US11159315B2 (en) 2018-01-22 2021-10-26 Microsoft Technology Licensing, Llc Generating or managing linked decentralized identifiers
WO2020081727A1 (en) * 2018-10-16 2020-04-23 Eluvio, Inc. Decentralized content fabric
US11281394B2 (en) * 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system

Also Published As

Publication number Publication date
US20210075774A1 (en) 2021-03-11
WO2021045821A1 (en) 2021-03-11
EP4026291B1 (en) 2023-09-20
US11184334B2 (en) 2021-11-23
ES2961364T3 (es) 2024-03-11
EP4026291A1 (en) 2022-07-13

Similar Documents

Publication Publication Date Title
EP3743839B1 (en) Attestation management
US10841094B2 (en) Private and public media data in a decentralized system
US11251977B2 (en) Validation data structure for decentralized identity claim
US11288389B2 (en) Scoped sharing of DID-associated data using a selector
US11238170B2 (en) Delegation using pairwise decentralized identifier
US11762746B2 (en) Failover between decentralized identity stores
US20200394206A1 (en) Channeling data with decentralized identity stores
EP4026291B1 (en) Control of the delegated use of did-related data
CN113614725A (zh) 数据位置和政策遵守中的用户选择
US11212263B2 (en) Dynamic generation of pseudonymous names
US11128457B2 (en) Cryptographic key generation using external entropy generation
US11916919B2 (en) Resolving decentralized identifiers using multiple resolvers
CN115191104A (zh) 由去中心化标识符锚定的去中心化标识
US11394713B2 (en) Did delegation/revocation to another DID
CN114391148A (zh) 基于事件的did委托权限转移

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