CN113994630A - 用于did证明的呈现中断 - Google Patents

用于did证明的呈现中断 Download PDF

Info

Publication number
CN113994630A
CN113994630A CN202080043724.8A CN202080043724A CN113994630A CN 113994630 A CN113994630 A CN 113994630A CN 202080043724 A CN202080043724 A CN 202080043724A CN 113994630 A CN113994630 A CN 113994630A
Authority
CN
China
Prior art keywords
entity
owner
proof
computing system
present
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
CN202080043724.8A
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 CN113994630A publication Critical patent/CN113994630A/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/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • 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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/41User authentication where a single sign-on provides access to a plurality of computers
    • 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/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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
    • 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)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本文中公开的实施例涉及用于针对DID证明提供呈现中断的计算系统和方法。访问由分散式网络的第一实体发布的DID证明。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证明呈现给第二实体。
附加特征和优点将在随后的描述中阐述,并且部分地从描述中很清楚,或者可以通过本文中的教导的实践而获知。本发明的特征和优点可以借助于所附权利要求中特别指出的工具和组合来实现和获取。本发明的特征将从以下描述和所附权利要求中变得更加明显,或者可以通过如下面所述的本发明的实践而获知。
附图说明
为了描述获取上述和其他优点和特征的方式,将参考附图中所示的具体实施例对上述简要描述的主题进行更具体的描述。理解这些附图仅描绘典型实施例并且因此不应当被认为是对范围的限制,实施例将通过使用附图以附加特性和细节来描述和解释,在附图中:
图1示出了可以在其中采用本文中描述的原理的示例计算系统;
图2示出了用于创建分散式标识(DID)的示例环境;
图3示出了各种DID管理操作和服务的示例环境;
图4示出了示例分散式存储设备或身份中心;
图5示出了用于针对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证明的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的范围内对该DID所有者201是唯一的。例如,标识符可以是本地唯一标识符,并且可能更希望是预期在全球操作的用于身份系统的全球唯一标识符。在一些实施例中,DID 205可以是统一资源标识符(URI)(诸如,统一资源定位符(URL))或将DID所有者201与用于参与与DID所有者201的可信任交互的机制相关联的其他指针。
DID 205是“分散式的”,因为它不需要用于生成、管理或使用的集中式第三方管理系统。因此,DID 205仍处于DID所有者201的控制之下。这与传统的、基于信任集中式机构的集中式ID不同,并且后者仍在企业目录服务、证书颁发机构、域名注册机构或其他集中式机构(本文中统称为“集中式机构”)的控制之下。因此,DID 205可以是在DID所有者201的控制之下并且独立于任何集中式机构的任何标识符。
在一些实施例中,DID 205的结构可以像用户名或一些其他人类可理解术语一样简单。然而,在其他实施例中,为了提高安全性,DID205可以优选地是数字和字母的随机串。在一个实施例中,DID 205可以是一串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文档210可以在创建DID 205时生成。DID文档210以其最简单的形式描述了如何使用DID 205。因此,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的机制可以示出DID 205(以及因此其DID所有者201)与DID文档210之间的绑定的证明。在一个实施例中,认证信息211可以指定在签名操作中使用公钥207以证明DID 205的所有权。备选地或另外地,认证信息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的具体示例将在下面更详细地解释。
DID文档210还可以包括标识信息214。标识信息214可以包括个人可标识的信息,诸如DID所有者201的姓名、地址、职业、家庭成员、年龄、爱好、兴趣等。因此,例如,出于不同目的,DID文档210中列出的标识信息214可以表示DID所有者201的不同角色。
角色可以是伪匿名的。例如,DID所有者201在将他或她标识为在博客上发布文章的作者时可以在DID文档中包括笔名。角色可以是完全匿名的。例如,DID所有者201可能只想披露他或她的职位或其他背景数据(例如,学校教师、FBI探员、21岁以上的成年人等),而不是DID文档中他或她的名字。又例如,角色可以特定于作为个体的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]、以太坊(Ethereum)和莱特币(Litecoin)。
在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的每个散列还可以包括指定DID205何时被创建的记录或时间戳。在稍后的日期处,当对DID文档210进行修改时,每个修改(以及可能还有修改的时间戳)也可以被记录在DID散列231、DID散列241和DID散列251中。DID散列231、DID散列241和DID散列251还可以包括公钥207的副本,使得DID205以密码方式绑定到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可以驻留在如相应的线301a、302a和303a所示的用户设备301、网络浏览器302和操作系统303上并且由其执行。因此,为了便于解释,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的显示名称。如前所述,DID 205可以是一长串随机数字和字母,因此具有用于显示名称的人类可识别名称可以是有利的。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能够单独控制DID205的机制。以这种方式,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所有者201拥有或控制的用户设备301、浏览器302或操作系统303上创建的,DID所有者201执行DID管理模块320。以这种方式,第三方(最重要的是,DID管理模块320的提供者)获取对私钥206的控制的可能性很小。
然而,DID所有者201可能丢失存储私钥206的设备,这可以使得DID所有者201丢失对DID 205的访问。因此,在一些实施例中,UI 335可以包括允许DID所有者201将私钥206导出到在DID所有者201的控制之下的设备外安全的数据库305的选项。例如,数据库305可以是下面关于图4描述的身份中心410中的一个身份中心。存储模块380被配置为将数据(诸如,私钥206或由DID所有者201做出或关于DID所有者201的证明信息215)存储在数据库305或后面会详细介绍的身份中心410中的设备之外。当然,在一些实施例中,如果设备具有足够的存储资源,则存储模块380可以将至少一些数据存储在设备上。在一些实施例中,私钥206可以被存储为可以由DID所有者201扫描的QR码。
在其他实施例中,DID管理模块320可以包括可以用于恢复丢失的私钥206的恢复模块360。在操作中,恢复模块360允许DID所有者201在创建DID 205时选择一种或多种恢复机制365,该恢复机制稍后可以用于恢复丢失的私钥。在具有UI 335的实施例中,UI 335可以允许DID所有者201提供在恢复期间将由一个或多个恢复机制365使用的信息。恢复模块360然后可以在与DID 205相关联的任何设备上运行。
DID管理模块320还可以包括用于从DID 205撤回或切断设备的撤回模块370。在操作中,撤回模块可以使用UI元素335,UI元素335可以允许DID所有者201指示希望将设备与DID 205取消关联。在一个实施例中,撤回模块370可以访问DID文档210并且可以使得对设备的所有引用从DID文档210中被移除。备选地,可以移除设备的公钥。DID文档210中的这种改变然后可以被反映为分布式账本220上的经更新的事务,如前所述。
图4示出了可以在其中利用诸如DID 205等DID的环境400的实施例。具体地,环境400将用于描述与每个在DID所有者201的控制下的一个或多个分散式存储或身份中心410相关的DID 205的使用,该分散式存储或身份中心410用于存储属于或关于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,设置421允许数据公开暴露,但不包括对DID所有者201的任何认证。这种类型的数据可以用于相对不重要的数据,诸如配色方案等。数据的第二子集可以具有设置421,设置421允许数据被公开暴露并且包括对DID所有者201的认证。数据的第三子集可以具有设置421,设置421使用与DID所有者201相关联的私钥206和公钥207对(或某个其他密钥对)对数据子集进行加密。这种类型的数据将要求一方能够访问公钥207或某个其他相关联的公钥,以便对数据进行解密。该过程还可以包括对DID所有者201的认证。数据的第四子集可以具有将该数据限制到第三方的子集的设置421。这可能需要使用与第三方子集相关联的公钥来解密数据。例如,DID所有者201可以引起设置421指定只有与DID所有者201的朋友相关联的公钥可以解密该数据。关于由存储模块380存储的数据,这些设置411可以至少部分由图3的存储模块380组成。
在一些实施例中,身份中心411可以具有允许DID所有者201为第三方(诸如,第三方401和402等)设置用于访问身份中心的特定授权或许可的许可模块430。例如,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的数据和服务。
应当注意,该验证新用户设备301的过程被执行,而不需要在身份中心411可以被访问之前由DID所有者201向身份中心411的提供者(即,第一云存储装置提供者)提供任何用户名、密码等。相反,访问是基于DID 205、DID文档210、以及相关联的公钥和私钥以分散式方式确定的。由于这些一直在DID所有者201的控制之下,所以身份中心411的提供者没有参与,并且因此不知道事务或DID所有者201的任何个人信息。
在另一示例实施例中,DID所有者201可以向第三方实体401提供DID 205,使得第三方可以访问存储在身份中心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。
图5示出了环境500的实施例,该环境500将用于描述用于DID证明或声明的呈现中断。应当注意,图5可以包括对首先关于图2-图4讨论的元件的参考,并且因此可以使用相同的附图标记以便于解释。
如图所示,环境500包括证明模块530。在一个实施例中,证明模块530可以由诸如DID管理模块320和/或身份中心410的提供者等第三方实现。在一些实施例中,证明模块530可以被托管在与由DID所有者201拥有的设备301分开的服务器计算机上。在其他实施例中,证明模块530可以是DID管理模块320的一部分,或者可以至少与DID管理模块320共享一些功能。在其他实施例中,证明模块530可以是诸如实体550或560等第三方实体的一部分或由其控制。
现在将关于用于DID证明或声明的呈现中断来描述证明模块530的特定使用实施例。例如,假定DID所有者201与实体550相关联。实体550可以是任何类型的实体,诸如公司或组织或甚至另一人类用户。在特定实施例中,将假定实体550是政府机构,诸如已经向DID所有者201发布驾驶执照的机动车辆部(DMV)。如图所示,实体550可以包括已经以先前描述的方式为实体550生成的DID 555。
DID所有者201可以在任何时间点向实体550请求签名证明或声明501,该签名证明或声明501验证DID所有者201具有已经由实体550发布的有效驾驶执照。在一个实施例中,DID所有者201可以直接向实体550提出请求,而在其他实施例中,可以经由DID所有者201首先联系证明模块530并且然后让证明模块530向实体550提出请求来提出请求。证明501因此与DID所有者201的DID 205相关并且可以被认为是DID证明。
证明501还可以被称为经签名的声明、凭证或经验证的凭证,诸如DID文档210的证明215。也就是说,证明或经验证的凭证可以提供关于DID所有者201和/或关于DID所有者201已经与之交互的各种实体的信息。为了解释的一致性,“证明”将是以下讨论中使用的术语。
响应于对证明501的请求,实体550可以创建与验证DID所有者201具有有效驾驶执照相关的证明501。在一些实施例中,证明501可以是加密保护的指针,该指针指向保存有驾驶执照信息的实体550的身份中心556的位置。实体550然后可以使用其公钥对证明501进行数字签名,从而验证实体550同意DID所有者201具有有效驾驶执照。证明模块530然后可以使用公钥207来请求DID所有者201对证明501进行背书或数字签名。以这种方式,当向诸如实体560等其他方提供证明501时,DID所有者201能够验证他或她同意他或她的证明501的驾驶执照信息。
在一些实施例中,除了指定DID所有者201具有有效驾驶执照的信息之外,证明501还可以包括各种附加信息。例如,实体550可以在证明501中包括中断元数据或信息510。如下文将更详细地解释的,中断元数据510可以导致,每当DID所有者201试图向诸如实体560等实体呈现证明501时,在证明501被呈现给实体560之前,实体550被联系。因此,中断元数据510使得呈现过程中的“中断”。如下文还将更详细地解释的,实体550然后可以能够给予或拒绝DID所有者201将证明501呈现给实体560的授权。
实体550可能希望将中断元数据510包括在证明501中的原因可能有多种。在一种情况下,实体550可能想验证试图呈现证明501的一方实际上是DID所有者201。在另一实例中,实体550可能想要确保DID所有者201正在试图在允许的地理位置使用证明501。在又一实例中,实体550可能想要确保证明501是最新的,如果自从实体550向DID所有者201发布证明501以来已经过去了很长一段时间,则这可以是有帮助的。注意,实体550可能想要在证明501中包括中断元数据510的原因可以有很多。
在一些实施例中,中断元数据510可以包括联系元数据511。联系元数据511可以包括当DID所有者201试图将证明501呈现给实体560或某个其他实体时指导如何联系实体550的信息。因此,在一些实施例中,证明模块530可以使用联系元数据511来联系实体550。省略号512表示证明501可以根据情况包括任何数目的附加元素。
虽然所公开的实施例是关于针对由实体550发布的驾驶执照提供证明501而描述的,但是该过程也可以在其他场景中执行。例如,证明可以由与资格、成就、政府ID、政府权利(诸如护照或驾驶执照)、支付提供商或银行账户、大学学位或其他教育经历中的一个或多个相关的各种第三方实体生成。应当注意,可以针对任何数目的对象生成任何数目的证明,并且因此,本文中公开的实施例不限于任何特定类型或数目的证明。
由实体550代表DID所有者201生成的证明501可以被提供给DID所有者(如在502处所示),并且存储在身份中心411中。因此,DID所有者201可以被认为是证明501所有者,因为DID所有者201是证明的主体。换言之,证明501包括关于由实体550生成的DID所有者201的信息。应当注意,虽然未示出,但实体550在向DID所有者201提供证明501时可以利用证明模块550。
在一个特定实施例中,假定可以具有以前述方式生成的其自己的DID 565的实体560是汽车租赁机构或类似企业,该企业可以向DID所有者201出租汽车或其他类型的机动车辆。因此,在这样的实施例中,DID所有者201可能希望将证明501呈现给实体560以证明他或她具有有效驾驶执照,以便实体560将汽车或机动车辆出租给他或她。
因此,证明模块530可以包括证明呈现模块540。在操作中,证明呈现模块540可以能够从身份中心411访问证明501,如503A所示,以便将证明501呈现给实体560。
在该实施例中,证明呈现模块540可以从DID所有者201接收请求503B以将证明501呈现给实体560。这可以发生在DID所有者201想要向实体560租赁汽车或机动车辆时。因此,请求503B可以被认为是DID所有者201将证明501呈现给实体560的试图。
在该实施例中,证明呈现模块540可以如先前描述的那样访问证明501。然而,当试图将证明501呈现给实体560时,证明呈现模块540可以读取或以其他方式对证明501中包括的中断元数据510进行操作。如前所述,中断元数据510可以阻止证明呈现模块540使其无法完成将证明501呈现给实体560,并且可能需要联系实体550以获取呈现证明501的授权。换言之,中断元数据510使得DID所有者201无法在没有首先从实体550以某种形式接收到呈现证明的授权的情况下将证明501呈现给实体560。
因此,如504所示,如果联系元数据511被包括在中断元数据510中,则证明呈现模块540可以使用联系元数据511来联系实体550。在被证明呈现模块540联系时,实体550可以确定它是否想要授权DID所有者201能够将证明501呈现给实体560。因此,实体550可以生成授权信息520,授权信息520指示DID所有者201是否能够呈现证明501。授权信息520可以由证明呈现模块540接收并且附加到证明501以控制DID所有者201是否被授权呈现证明501,并且被提供给DID所有者201,如505所示。
授权信息520可以采用若干形式,如现在将要解释的。应当注意,授权信息520可以包括所讨论的形式中的一个形式、所讨论的所有形式、所讨论的形式的子集、或者甚至是除了或备选如下所讨论的形式的一个或多个形式,如下面的省略号529所示。
在一个实施例中,授权信息520可以采用许可信息525的形式或者包括许可信息525。许可信息525可以为DID所有者201指定给定许可。例如,实体550可以对DID所有者201将证明501呈现给实体560没有问题,并且因此许可信息525可以授予许可。在其中实体550是DMV并且实体560是汽车租赁机构的实施例中,如果DMV 550对DID所有者从汽车租赁机构560租赁没有问题,则DMV 550可以提供允许DID所有者201呈现证明501的许可信息525。
然而,在实体550不希望DID所有者201将证明501呈现给实体560的情况下,许可信息525可以拒绝许可。在一个实施例中,这种拒绝可以采用许可信息525的形式,许可信息525使得实体560无法使用证明501。在这种情况下,即使DID所有者201能够以某种方式将证明501呈现给实体560,实体560也无法使用证明501。
在其中实体550是DMV并且实体560是汽车租赁机构的实施例中,假定汽车租赁机构560以租赁汽车或其他机动车辆而闻名,由于汽车保养不善,这些车辆造成了大量事故。在这样的实施例中,DMV550可能想要拒绝呈现证明501的授权,使得DID所有者201不能从汽车租赁机构560租赁车辆。因此,DMV 550可以提供许可信息525,许可信息525拒绝向汽车租赁机构560进行呈现的许可或者使汽车租赁机构560无法使用证明501,如前所述。
在另一实施例中,授权信息520可以采用回调元数据526的形式或者包括回调元数据526。在操作中,回调元数据526可以指导实体560联系实体550以确定证明501是否是仍然有效,如果自从实体550向DID所有者201发布证明501以来已经过去很长时间,则这可能是有用的。在其中实体550是DMV并且实体560是汽车租赁机构的实施例中,回调元数据526可以允许汽车租赁机构560从DMV 550找出DID所有者201的驾驶执照是否仍然有效。这可以增加DMV 550与汽车租赁机构560之间交互的置信度。
在另一实施例中,授权信息520可以采用位置信息527的形式或者包括位置信息527。在操作中,位置信息527可以限制DID所有者201将证明501呈现给被实体550批准的某些位置的能力。因此,仅在实体560位于经批准的位置时,DID所有者才能够将证明501呈现给实体560。例如,在其中实体550是DMV并且实体560是汽车租赁机构的实施例中,DMV 550可能希望将包括驾驶执照信息的证明501的使用限制到它已经确定为安全的某些国家。因此,如果汽车租赁机构560位于经批准的国家,则位置信息527可以允许DID所有者201将证明501呈现给汽车租赁机构560。然而,如果汽车租赁机构560没有位于经批准的国家,则位置信息527可以不允许DID所有者201将证明501呈现给汽车租赁机构560。
在又一实施例中,授权信息520可以采用对证明501的更新528的形式或者包括对证明501的更新528。因此,更新528允许实体550确保在DID所有者201将证明501呈现给实体560时证明501总是最新的。例如,在其中实体550是DMV并且实体560是汽车租赁机构的实施例中,更新528允许DMV 550确保DID所有者201在从汽车租赁机构560租赁车辆时始终具有更新后的驾驶执照信息。
在一些实施例中,在提供授权信息520之前,实体550可以要求DID所有者201提供标识信息515,如506所示,标识信息515验证实际上是DID所有者201正在试图将证明501呈现给实体560。这可以帮助实体550确保第三方没有冒充DID所有者201并且试图使用证明501是不允许方式。标识信息515可以简单地是DID 205。备选地,标识信息515可以是DID所有者201与实体550之间的成对标识符。标识信息515可以根据需要包括在DID所有者201与实体550之间商定的另外的标识信息。因此,DID所有者201可以能够与实体550一起指定实体550应当请求什么类型的标识信息以便维护对他或她的身份的控制。
例如,假定在其中实体550是DMV并且实体560是汽车租赁机构的实施例中,不是DID所有者201的第三方试图呈现包括驾驶执照信息的证明501以从汽车租赁机构560租赁车辆。第三方可能已经窃取了DID所有者201的设备并且获取了对证明501的访问。汽车租赁机构560可能无法确定呈现证明501的一方是否实际上是DID所有者201。通过要求标识信息515验证或认证DID所有者201,DMV 550可以能够防止证明501的不允许使用。
响应于接收到授权信息520(以任何有效形式),DID所有者201然后可以被授权以将证明501呈现给实体560。因此,如507所示,证明呈现模块540可以将证明501呈现给实体560。实体560然后可以以期望方式使用证明501。例如,在其中实体550是DMV并且实体560是汽车租赁机构的实施例中,汽车租赁机构560可以使用证明501来确定DID所有者201是否具有有效驾驶执照以及是否应当将汽车或其他机动车辆租赁给DID所有者201。
下面的讨论现在涉及可以执行的多种方法和方法动作。虽然方法动作可以按特定顺序讨论或在流程图中说明为按特定顺序发生,但是除非特别说明或者因为一个动作依赖于在该动作执行之前完成的另一动作而需要,否则不需要特定顺序。
图6示出了用于针对DID证明或声明提供呈现中断的示例方法600的流程图。将关于先前讨论的图1-图5中的一个或多个来描述方法600。
方法600包括访问由分散式网络的第一实体发布的DID证明的动作(动作610)。DID证明定义由第一实体生成的关于作为DID证明的主题的DID所有者的信息。DID证明包括中断元数据,中断元数据指导在DID所有者能够将DID证明呈现给分散式网络的第二实体之前第一实体被联系。
例如,如前所述,证明呈现模块540可以访问证明501,如503A所示。证明501可以由实体550生成并且定义关于作为证明501的主体的DID所有者201的信息。证明501因此与DID所有者201的DID205相关并且可以被认为是DID证明。证明501可以包括中断元数据510,中断元数据510指导在DID所有者201能够将证明501呈现给实体560之前实体550被联系。
方法600包括响应于DID所有者试图将DID证明呈现给第二实体,按照中断元数据的指导联系第一实体的动作(动作620)。例如,如前所述,认证呈现模块540可以响应于DID所有者201试图将认证501呈现给实体560(如503B所示),按照中断元数据510的指导联系实体550(如504所示)。
方法600包括从第一实体接收授权信息的动作(动作630)。授权信息指示DID所有者是否能够将DID证明呈现给第二实体。例如,如前所述,证明呈现模块540可以接收授权信息520,如505所示。授权信息520可以标识DID所有者201是否能够将证明501呈现给实体560。
对于本文中公开的过程和方法,在过程和方法中执行的操作可以以不同顺序实现。此外,所概述的操作仅作为示例提供,在不偏离所公开的实施例的本质的情况下,其中一些操作可以是可选的、组合成更少步骤和操作、补充有另外的操作、或者扩展为附加操作。
本发明可以在不脱离其精神或特性的情况下以其他特定形式体现。所描述的实施例在所有方面都应当被视为说明性的而非限制性的。因此,本发明的范围由所附权利要求而不是由前述说明指示。落入权利要求的等效物的含义和范围内的所有变化都应当被包含在其范围内。

Claims (10)

1.一种在实现分布式账本的分散式网络中实现的计算系统,所述分布式账本被配置为支持用于所述计算系统的一个或多个用户的一个或多个分散式身份(DID),所述计算系统包括:
一个或多个处理器;以及
一个或多个计算机可读介质,其上具有计算机可执行指令,所述计算机可执行指令被构造为使得在由所述一个或多个处理器执行时使所述计算系统:
访问由所述分散式网络的第一实体发布的DID证明,所述DID证明定义由所述第一实体已经生成的关于作为所述DID证明的主体的DID所有者的信息,所述DID证明包括中断元数据,所述中断元数据指导在所述DID所有者能够将所述DID证明呈现给所述分散式网络的第二实体之前所述第一实体被联系;
响应于所述DID所有者试图将所述DID证明呈现给所述第二实体,按照所述中断元数据的指导联系所述第一实体;以及
从所述第一实体接收授权信息,所述授权信息指示所述DID所有者是否能够将所述DID证明呈现给所述第二实体。
2.根据权利要求1所述的计算系统,其中执行的所述计算机可执行指令还使所述计算系统:
响应于从所述第一实体接收到所述授权信息,将所述DID证明呈现给所述第二实体。
3.根据权利要求1所述的计算系统,其中所述授权信息包括对所述DID证明的更新。
4.根据权利要求1所述的计算系统,其中所述授权信息包括指导所述第二实体联系所述第一实体以确定所述DID证明是否有效的回调元数据。
5.根据权利要求1所述的计算系统,其中所述授权信息包括指定地理区域的位置信息,在所述地理区域中,所述DID所有者被授权以将所述DID证明呈现给所述第二实体。
6.根据权利要求1所述的计算系统,其中所述中断信息包括定义如何联系所述第一实体以接收所述授权信息的联系元数据。
7.根据权利要求1所述的计算系统,其中在没有首先从所述第一实体接收到所述授权信息的情况下,所述DID所有者不能将所述DID证明呈现给所述第二实体。
8.根据权利要求1所述的计算系统,其中当所述第一实体没有授予用于所述DID所有者将所述DID证明呈现给所述第二实体的许可时,所述授权信息使所述第二实体不能使用所述DID证明。
9.根据权利要求1所述的计算系统,其中执行的所述计算机可执行指令还使所述计算系统:
在联系所述第一实体时,向所述第一实体提供标识信息,所述标识信息验证所述DID所有者试图将所述DID证明呈现给所述第二实体。
10.一种在实现分布式账本的分散式网络中实现的计算系统中的方法,所述分布式账本被配置为支持用于所述计算系统的一个或多个用户的一个或多个分散式身份(DID),所述方法用于针对DID证明或声明提供呈现中断,所述方法包括:
访问由所述分散式网络的第一实体发布的DID证明的动作,所述DID证明定义由所述第一实体已经生成的关于作为所述DID证明的主体的DID所有者的信息,所述DID证明包括中断元数据,所述中断元数据指导在所述DID所有者能够将所述DID证明呈现给所述分散式网络的第二实体之前所述第一实体被联系;
响应于所述DID所有者试图将所述DID证明呈现给所述第二实体,按照所述中断元数据的指导联系所述第一实体的动作;以及
从所述第一实体接收授权信息的动作,所述授权信息指示所述DID所有者是否能够将所述DID证明呈现给所述第二实体。
CN202080043724.8A 2019-06-26 2020-05-08 用于did证明的呈现中断 Pending CN113994630A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/453,776 US11240244B2 (en) 2019-06-26 2019-06-26 Presentation interrupt for a DID attestation
US16/453,776 2019-06-26
PCT/US2020/031975 WO2020263434A1 (en) 2019-06-26 2020-05-08 Presentation interrupt for a did attestation

Publications (1)

Publication Number Publication Date
CN113994630A true CN113994630A (zh) 2022-01-28

Family

ID=70857266

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080043724.8A Pending CN113994630A (zh) 2019-06-26 2020-05-08 用于did证明的呈现中断

Country Status (4)

Country Link
US (1) US11240244B2 (zh)
EP (1) EP3991352A1 (zh)
CN (1) CN113994630A (zh)
WO (1) WO2020263434A1 (zh)

Families Citing this family (2)

* 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
US11947687B2 (en) * 2021-09-27 2024-04-02 International Business Machines Corporation Trusted system upgrade and secrets transfer in a secure computing environment

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011162750A1 (en) * 2010-06-23 2011-12-29 Hewlett-Packard Development Company, L.P. Authorization control
CN105099690A (zh) * 2014-05-19 2015-11-25 江苏博智软件科技有限公司 一种移动云计算环境下基于otp和用户行为的认证授权方法
CN106127017A (zh) * 2010-11-25 2016-11-16 安西哥尼亚有限公司 用于处置编码后的信息的方法和系统
CN107660293A (zh) * 2015-04-20 2018-02-02 欧吉达克斯公司 物权电子凭证(edt)的分布式管理方法及其系统
CN109074565A (zh) * 2016-04-11 2018-12-21 区块链控股有限公司 用于验证用于基于区块链的加密货币的通证的计算机实现的方法及系统
WO2019075156A1 (en) * 2017-10-11 2019-04-18 Cambridge Blockchain, Inc. SYSTEMS AND METHODS FOR MANAGING RELATIONS BETWEEN DIGITAL IDENTITIES

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190158275A1 (en) * 2017-11-22 2019-05-23 Michael Beck Digital containers for smart contracts
US20190303541A1 (en) * 2018-04-02 2019-10-03 Ca, Inc. Auditing smart contracts configured to manage and document software audits
US20190303623A1 (en) * 2018-04-02 2019-10-03 Ca, Inc. Promotion smart contracts for software development processes
US20200184470A1 (en) * 2018-12-08 2020-06-11 International Business Machines Corporation Identity ecosystem
US11178151B2 (en) * 2018-12-19 2021-11-16 International Business Machines Corporation Decentralized database identity management system
CN109918942B (zh) 2019-02-21 2020-07-31 领信智链(北京)科技有限公司 一种基于以太坊区块链的去中心化标识符管理系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011162750A1 (en) * 2010-06-23 2011-12-29 Hewlett-Packard Development Company, L.P. Authorization control
CN106127017A (zh) * 2010-11-25 2016-11-16 安西哥尼亚有限公司 用于处置编码后的信息的方法和系统
CN105099690A (zh) * 2014-05-19 2015-11-25 江苏博智软件科技有限公司 一种移动云计算环境下基于otp和用户行为的认证授权方法
CN107660293A (zh) * 2015-04-20 2018-02-02 欧吉达克斯公司 物权电子凭证(edt)的分布式管理方法及其系统
CN109074565A (zh) * 2016-04-11 2018-12-21 区块链控股有限公司 用于验证用于基于区块链的加密货币的通证的计算机实现的方法及系统
WO2019075156A1 (en) * 2017-10-11 2019-04-18 Cambridge Blockchain, Inc. SYSTEMS AND METHODS FOR MANAGING RELATIONS BETWEEN DIGITAL IDENTITIES

Also Published As

Publication number Publication date
WO2020263434A1 (en) 2020-12-30
EP3991352A1 (en) 2022-05-04
US11240244B2 (en) 2022-02-01
US20200412721A1 (en) 2020-12-31

Similar Documents

Publication Publication Date Title
US20200349256A1 (en) Self-help for did claims
US11762746B2 (en) Failover between decentralized identity stores
US20210288974A1 (en) Access token for a verifiable claim
EP4026291B1 (en) Control of the delegated use of did-related data
US11411736B2 (en) Automatic renewal of a verifiable claim
US11587084B2 (en) Decentralized identification anchored by decentralized identifiers
CA3216881A1 (en) Trusted custody chain for verifiable claims
EP4348915A1 (en) Endorsement claim in a verifiable credential
CN113994630A (zh) 用于did证明的呈现中断
US11394713B2 (en) Did delegation/revocation to another DID
CN114391148A (zh) 基于事件的did委托权限转移
US11288358B2 (en) On skin decentralized identity technologies
US20230319039A1 (en) Securing authentication flows using a decentralized identifier
US20230177487A1 (en) Digital wallet as a relying party in a decentralized network
CN115053217A (zh) 发布可验证成对声明

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination