CN113574528A - 提供针对did数据的遵守策略的存储 - Google Patents

提供针对did数据的遵守策略的存储 Download PDF

Info

Publication number
CN113574528A
CN113574528A CN202080021143.4A CN202080021143A CN113574528A CN 113574528 A CN113574528 A CN 113574528A CN 202080021143 A CN202080021143 A CN 202080021143A CN 113574528 A CN113574528 A CN 113574528A
Authority
CN
China
Prior art keywords
data
owner
policy rules
rules
alice
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.)
Granted
Application number
CN202080021143.4A
Other languages
English (en)
Other versions
CN113574528B (zh
Inventor
D·J·巴克纳
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 CN113574528A publication Critical patent/CN113574528A/zh
Application granted granted Critical
Publication of CN113574528B publication Critical patent/CN113574528B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • H04L63/205Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved
    • 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
    • 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
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Automation & Control Theory (AREA)
  • Medical Informatics (AREA)
  • Storage Device Security (AREA)

Abstract

强制执行适用于不同数据的类型的不同策略规则。多个DID和多个存储装置由计算系统管理。多个存储装置中的每个存储装置与多个DID中的至少一个DID相关联。从实体接收对于对被存储或将要被存储在多个存储装置中的一个存储装置中的数据进行操作的请求。确定被请求要被操作的数据的类型。访问适用于数据的类型的一个或多个策略规则。基于所访问的一个或多个策略规则,确定要对数据所执行的操作是否将导致数据遵守一个或多个策略规则。基于该确定,允许或拒绝请求。

Description

提供针对DID数据的遵守策略的存储
背景技术
目前使用的大多数证明身份的文件或记录是由诸如政府、学校、雇主、或者其他服务中心或监管组织等集中式组织发布的。这些组织通常在集中式身份管理系统中维护每个成员的身份。集中式身份管理系统是用于组织以管理所发布的身份、其认证、授权、角色和特权的集中式信息系统。集中式身份管理系统被认为是安全的,因为它们通常使用专业维护的硬件和软件。通常,身份发布组织设置用于向组织注册人员的条款和要求。最后,当一方需要验证另一方的身份时,验证方往往需要通过集中式身份管理系统以获取用于验证和/或认证另一方的身份的信息。
去中心化标识符(DID)是一种新型标识符,其独立于任何集中式注册处、身份提供方或证书机构。分布式账本技术(诸如区块链)提供了使用完全去中心化标识符的机会。分布式账本技术使用全球分布式账本以可验证方式记录两方或更多方之间的事务。一旦事务被记录,就无法在不更改所有后续账本部分的情况下追溯地更改账本部分中的数据,这提供了一个相当安全的平台。由于DID通常不受集中式管理系统的控制,而是由DID的所有者拥有,因此DID有时称为未经授权的身份。然而,在现实中,不同国家或组织可能会关于个人应当拥有的选项和权限制定特定要求和规则。具体地,不同位置处或不同组织内的某些类型的数据可能需要以不同方式来处置。
本文中要求保护的主题不限于解决任何缺点或仅在诸如上述环境中操作的实施例。而是,提供该背景仅用于说明可以实践本文中描述的一些实施例的一个示例性技术领域。
发明内容
提供本发明内容以便以简化形式介绍在以下具体实施方式中进一步描述的概念的选择。本发明内容无意确定所要求保护的主题的关键特征或基本特征,也无意用于帮助确定所要求保护的主题的范围。
本文中公开的实施例涉及用于强制执行适用于不同数据类型的不同策略规则的计算系统和方法。计算系统和方法在实现分布式账本的去中心化网络中被实现,分布式账本被配置为为计算系统的一个或多个用户备份一个或多个去中心化标识符(DID)。多个DID和多个存储装置由计算系统管理。多个存储装置中的每个存储装置与多个DID中的至少一个DID相关联。首先,对于对被存储或将要被存储在与特定DID相关联的存储装置中的数据进行操作的请求从实体被接收。然后,确定被请求要被操作的数据的类型。此后,访问适用于所确定的数据的类型的一个或多个策略规则。基于所访问的一个或多个策略规则,做出对以下的确定:要对数据执行的操作是否将导致数据遵守一个或多个策略规则。当确定操作将导致数据遵守一个或多个策略规则时,则允许该请求。
附加特征和优点将在随后的描述中阐述,并且部分地从描述中很清楚,或者可以通过本文中的教导的实践而获悉。本发明的特征和优点可以借助于所附权利要求中特别指出的工具和组合来实现和获取。本发明的特征将从以下描述和所附权利要求中变得更加明显,或者可以通过如下面所述的本发明的实践而获悉。
附图说明
为了描述获取上述和其他优点和特征的方式,将参考附图中所示的具体实施例对上述简要描述的主题进行更具体的描述。理解这些附图仅描绘典型实施例并且因此不应当被认为是对范围的限制,实施例将通过使用附图以附加特性和细节来描述和解释,在附图中:
图1示出了可以在其中采用本文中描述的原理的示例计算系统;
图2示出了用于创建去中心化标识(DID)的示例环境;
图3示出了用于各种DID生命周期管理操作和服务的示例环境;
图4示出了示例去中心化存储设备或身份中枢(hub);
图5示出了集中式数据系统与去中心化数据系统之间的概览比较;
图6示出了用于强制执行适用于一种数据类型的一个或多个策略规则的示例实施例;
图7示出了用于强制执行适用于一种数据类型的一个或多个策略规则的示例方法的流程图;
图8示出了用于从实体接收对于对被存储或将要被存储在与DID相关联的存储装置中的数据的操作的请求的示例方法的流程图;
图9示出了用于确定被请求要被操作的数据的类型的示例方法的流程图;
图10示出了用于访问适用于该数据类型的一个或多个策略规则的示例方法的流程图;
图11示出了用于确定对数据的操作是否将导致数据遵守一个或多个策略规则的示例方法的流程图;
图12示出了用于允许(或拒绝)访问被请求的数据的示例方法的流程图;以及
图13示出了用于在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对应的各种计算系统。其余附图的计算系统包括可以实现如将解释的本文中所公开的各种实施例的各种组件或功能块。各种组件或功能块可以在本地计算系统上被实现,或者可以在包括驻留在云中的元件或者实现云计算的各方面的分布式计算系统上被实现。各种组件或功能块可以被实现为软件、硬件、或者软件和硬件的组合。其余附图的计算系统可以包括比图中所示的组件更多或更少的组件,并且组件中的一些组件可以根据情况被组合。尽管不一定示出,但是计算系统的各种组件可以根据需要访问和/或利用处理器和存储器(诸如处理器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或至少具有为其创建并且与其相关联的DID 205的任何合理的实体、人类或非人类。尽管DID所有者201被示出为具有单个DID205,但情况并不需要如此,因为根据情况可以存在与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不同,常规的集中式ID将信任基于集中式机构,并且仍在企业目录服务、证书颁发机构、域名注册处或其他集中式机构(本文中统称为“集中式机构”)的控制之下。因此,DID 205可以是在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描述了如何使用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实际上拥有或控制DID 205。
DID文档210还可以包括认证信息211。认证信息211可以指定一个或多个机制,通过该一个或多个机制,DID所有者201能够证明DID所有者201拥有DID 205。换言之,认证信息211的机制可以示出DID 205(以及因此其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可以允许父母或监护人限制对DID201的使用直到孩子不再是未成年人为止。
授权信息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可能只想在DID文档中披露他或她的职位或其他背景数据(例如,学校教师、FBI探员、21岁以上的成年人等),而不是他或她的名字;并且人物角色可以特定于作为个人的DID所有者201是谁,例如,DID所有者201可以包括将他或她标识为特定慈善组织的志愿者、特定公司的雇员、特定奖项的获奖者等的信息。
DID文档210还可以包括凭证信息215,凭证信息215在本文中也可以称为凭据(attestation)。凭证信息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文档210的指针以外,DID散列231、DID散列241和DID散列251还可以包括指定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所有者21拥有或以其他方式在DID所有者21控制之下的各种设备和计算系统。这些可以包括用户设备301。用户设备301可以是但不限于诸如智能电话等移动设备、诸如膝上型计算机等计算设备、或者诸如包括计算能力的汽车或电器等任何设备。设备301可以包括在设备上操作的Web浏览器302和操作设备的操作系统303。更广泛地说,虚线304表示这些设备中的所有设备都可以被DID所有者201拥有或以其他方式在DID所有者201控制之下。
环境300还包括DID生命周期管理模块320。应当注意,在操作中,DID生命周期管理模块320可以驻留在如线301a、302a和303a所示的用户设备301、Web浏览器302和操作系统303上并且由其执行。因此,为了便于解释,DID生命周期管理模块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创建模块还可以包括密钥生成模块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所有者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时,密钥生成模块可以生成附加的公钥208和公钥209。这些附加公钥可以与私钥206相关联,或者在一些情况下可以与新私钥配对。
在附加公钥208和209与不同设备相关联的实施例中,附加的公钥208和公钥209可以在DID文档210中被记录为与这些设备相关联。这在图3中示出。应当理解,除了图3所示的信息以外,DID文档210还可以包括先前关于图2描述的信息。如果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文档,并且将它们以先前所描述的方式记录在分布式账本220上。这样的实施例对于可以改变所有权的设备可能是有利的,因为通过在DID文档中向新所有者授予授权权限并且从旧所有者撤消这样的权限,将特定设备DID与设备的新所有者相关联是可能的。
如上所述,为了确保私钥完全在DID所有者201的控制之下,私钥在由执行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的选项。在一些实施例中,私钥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还可以包括用于从DID 205撤销或断开设备的撤销模块370。在操作中,撤销模块可以使用UI元素335,UI元素335可以允许DID所有者201指示对将设备与DID 205的关联移除的期望。在一个实施例中,撤销模块可以访问DID文档210并且可以使对设备的所有引用从DID文档被移除。备选地,针对设备的公钥可以被移除。DID文档210中的这种改变然后可以被反映为分布式账本220上的已更新事务,如前所述。
图4示出了可以在其中利用诸如DID 205等DID的环境400的实施例。具体地,环境400将用于描述与一个或多个去中心化存储设备或身份中枢相关的DID 205的使用。应当注意,图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,设置421允许数据被公开暴露,但不包括对DID所有者201的任何认证。这种类型的数据可以用于相对不重要的数据,诸如配颜色方案等。数据的第二子集可以具有设置421,设置421允许数据被公开暴露并且包括对DID所有者201的认证。数据的第三子集可以具有设置421,设置421使用与DID所有者201相关联的私钥206和公钥207对(或某个其他密钥对)来加密数据的该子集。这种类型的数据将要求一方能够访问公钥207或某个其他相关联的公钥,以便将数据解密。该过程还可以包括对DID所有者201的认证。数据的第四子集可以具有将该数据限制到第三方的子集的设置421。这可能要求使用与第三方的子集相关联的公钥来解密数据。例如,DID所有者201可以使设置421指定只有与DID所有者201的朋友相关联的公钥可以解密该数据。
在一些实施例中,身份中枢411可以具有许可模块430,许可模块430允许DID所有者201针对诸如第三方401和第三方402等第三方设置用于访问身份中枢的特定授权或许可。例如,DID所有者201可以向他或她的配偶提供对所有数据420的访问许可。备选地,DID所有者201可以允许他或她的医生的访问以获取任何医疗记录。应当理解,DID所有者201可以允许任何数目的第三方访问数据420的子集。这将在下面更详细地解释。
身份中枢411还可以具有消息收发模块440。在操作中,消息收发模块允许身份中枢接收消息,诸如接收来自各方(诸如第三方401和第三方402)的访问身份中枢的数据和服务的请求。另外,消息收发模块440允许身份中枢411响应来自第三方的消息并且还与DID解析器450通信。这将在下面更详细地解释。省略号416表示身份中枢411可以根据情况而具有附加服务。
在一个实施例中,DID所有者201可能希望以先前所描述的方式来向已经与DID205相关联的身份中枢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中的其余身份中枢的数据和服务。
将注意,该验证新用户设备301的过程被执行,而不需要DID所有者201在身份中枢411可以被访问之前向身份中枢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是指向身份中枢411的地址或指针。然后第三方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所有者完全控制该过程。
如图4所示,第三方402还可以使用DID 205和DID文档210来请求访问身份中枢411的许可。因此,本文中所公开的实施例允许任何数目的第三方访问身份中枢210。
已经描述了用于创建DID的示例环境和用于各种DID生命周期管理操作和服务的示例环境,我们将关于图5进行“集中式”数据系统与(实现DID的)“去中心化”数据系统之间的简化比较。
图5的左侧示出了一个或多个集中式数据系统501。本文所指的“集中式数据系统”是由集中式组织存储和维护的数据库或数据系统。该数据库或数据系统可以作为真正的“集中式”数据系统而位于单个位置,或者其也可以是包括位于不同位置的多个数据库文件的分布式数据库。但是,无论数据系统位于单个位置还是多个位置,只要数据系统由集中式组织存储和维护,这样的数据系统在本文中就称为“集中式数据系统”。
大多数现有数据系统都是集中式的。例如,如图5所示,医疗数据库510是示例集中式数据库。医疗数据库510可以由医院、诊所办公室和/或数据服务提供方存储和维护。医疗数据库510包括Alice的数据511和Bob的数据512。省略号513表示可以有任何数目的患者的记录被存储在医疗数据库510中。目前,即使法律可能要求健康服务提供方使医疗数据对相应患者可用,每个患者通常也无法持续访问他/她自己的医疗数据。如果患者想回顾他/她的完整病史,他/她通常需要提交书面请求或亲自请求。
另外,社交媒体数据库520和电子邮件数据库530也是集中式数据系统的示例。例如,社交媒体公司(例如,脸书)维护其自己的数据库520,数据库520可以包括每个用户的个人信息、对应用户所生成的内容、对应用户与其他用户之间的通信等。如图5所示,社交媒体数据库520可以包括Alice的记录(即,Alice数据521)和Bob的记录(即,Bob数据522)。Alice521的记录可以包括Alice在设置中录入的个人信息、她朋友的ID、Alice发布的消息、Alice点击的广告等。类似地,Bob的记录522可以包括与Bob的社交媒体帐户相关联的类似类型的信息。省略号523表示可以有任何数目的用户记录被存储在社交媒体数据库520中,这些用户记录由社交媒体服务提供方控制和维护。即使在这种情况下,每个社交媒体账户持有人通常都可以访问他/她自己的账户信息,但是社交媒体服务提供方具有对所有数据的真正控制。例如,如果社交媒体服务提供方的服务器关机或硬盘崩溃,则用户可能丢失连接或者甚至丢失数据。另一示例,如果社交媒体服务的服务器被黑客入侵,即使用户不知情,用户的信息也可能丢失。
同样类似地,电子邮件数据库530是集中式数据系统的另一示例。电子邮件数据库530由电子邮件服务提供方(例如,outlook.com、gmail.com等)控制和维护。大多数现有服务提供方维护其自己的电子邮件服务器,并且每个用户必须向电子邮件服务器注册帐户以获取电子邮件帐户。一旦电子邮件帐户被注册,该账户就被存储在由服务提供方维护的服务器上。例如,如图5所示,由电子邮件服务器托管的电子邮件数据库530可以包括Alice的电子邮件帐户数据531和Bob的电子邮件帐户数据532。省略号533表示可以有任何数目的电子邮件帐户记录被存储在电子邮件数据库530中。Alice的电子邮件帐户数据531可以包括她在注册电子邮件帐户时录入的她的个人信息。Alice的电子邮件数据531还可以包括她使用电子邮件帐户所接收和所发送的所有电子邮件。类似地,Bob的电子邮件帐户数据432可以包括与Bob的电子邮件帐户相关的类似信息。如果电子邮件服务器关机,则用户将无法接收或发送电子邮件,并且也无法检索他/她的电子邮件历史记录,除非本地副本被存储在用户自己的设备上。电子邮件服务器也可能容易受到网络攻击。当发生这样的攻击时,用户通常也不会意识到他们的信息已经被破解。
图5的右侧示出了在ID中枢服务550中为每个DID所有者提供个人存储装置的简化的去中心化系统502。ID中枢服务550中的个人存储装置由DID所有者控制,而不是由集中式组织控制。例如,如图5所示,ID中枢550包括Alice的ID中枢560(即,Alice的个人存储装置)和Bob的ID中枢570(即,Bob的个人存储装置)。省略号580表示可以有任何数目的个人存储装置,其中每个个人存储装置与一个DID(或DID所有者)相关联。
Alice的个人存储装置560包括Alice的医疗数据561、Alice的社交媒体数据562和Alice的电子邮件数据563。省略号564表示ID中枢服务550中的Alice的个人存储装置560中可以存储有Alice的其他类型的个人数据。类似地,Bob的个人存储装置570存储Bob的医疗数据571、Bob的社交媒体数据572和Bob的电子邮件数据573。省略号574表示ID中枢服务550中的Bob的个人存储装置570中可以存储有Bob的其他类型的个人数据。
在去中心化系统502中,每个DID所有者经由他/她的DID对他/她自己的个人数据具有很大的控制。例如,Alice 566经由她的DID 565具有对个人存储装置560的访问;并且Bob 576经由他的DID 575具有对他的个人存储装置570的访问。没有每个用户的同意,没有一个集中式实体能够访问所有用户的信息和数据。理论上,只要用户安全地存储他/她的DID(或他/她的DID的私钥),其他人就无法破解被存储在ID中枢中的数据。与左边的集中式系统501相比,很清楚,与其中集中式组织中的每个集中式组织维护和控制每个用户的数据的集中式系统501不同,去中心化系统502允许用户中的每个用户(例如,DID所有者)单独地存储和控制他/她自己的数据。用户(例如,DID所有者)可以决定数据是否应当被公开和/或谁能够访问数据;并且用户还可以决定他/她是否想要删除数据的任何部分还是对其做出任何改变。
如上所述,去中心化系统通常给予用户(例如,DID所有者)对其数据的很大控制;并且在这样的去中心化系统中,集中式组织通常不再具有对每个用户的数据的控制。然而,政府和组织通常具有法律和/或规则来规范某些类型的数据。本文中描述的原则将允许这样的法律和/或规则在去中心化系统中被实现,使得即使用户(例如,DID所有者)仍然对其自己的数据具有很大控制,法律和规则仍然可以被强制执行。
图6示出了用于强制执行适用于一种数据类型的一个或多个策略规则的去中心化环境600中的示例实施例。如图6所示,ID中枢服务640可以类似于图5的ID中枢服务550。ID中枢服务640可以是为多个DID所有者(例如,Alice和Bob)提供个人存储装置的云服务。省略号680表示ID中枢服务640可以存储任何数目的DID所有者的个人数据。Alice的个人数据被存储在ID中枢服务640中的Alice的ID中枢660(即,Alice的个人存储装置)中。Bob的个人数据被存储在ID中枢服务640中的Bob的ID中枢670(即,Bob的个人存储装置)中。
Alice的个人存储装置660可以存储很多不同类型的个人数据,诸如Alice的医疗数据661、社交媒体数据662、电子邮件数据663等。省略号667表示Alice的个人存储装置660中可以存储有Alice的其他类型的个人数据。类似于图3、4和5所示的系统,Alice 630经由DID管理模块631对她的个人数据661-663具有很大控制。DID管理模块631可以类似于如图3所示的DID管理模块320。例如,DID管理模块631可以在Alice的移动设备(例如,手机)和/或个人计算机上被实现。
当实体610请求访问ID中枢服务640中的Alice的个人存储装置660以对被存储或将被存储在存储装置660中的数据进行操作时,ID中枢服务640和/或Alice的ID中枢660可以直接从实体610的设备(例如,计算系统)接收该请求。在一些实施例中,实体610可以直接向Alice的DID管理模块631发送该请求,并且响应于该请求,Alice的DID管理模块631然后可以向ID中枢服务640和/或Alice的ID中枢660发送通知。虚线箭头线611、612、632和636中的每个虚线箭头线表示模块和/或设备之间的通信信道。可以针对ID中枢服务640或DID所有者的ID中枢(例如,Alice的ID中枢660)实现这些通信信道(611、612、632和636)中的任何一个或多个通信信道,以从实体610接收数据请求的通知。
该请求应当包括足够的DID信息,使得基于该请求,ID中枢服务640可以标识与该DID和被请求的数据相关联的ID中枢(即,存储装置)。例如,当实体610请求访问Alice的医疗数据611时,该请求应当包括与Alice的DID相关的信息,并且还包括与所请求的特定数据相关的信息。基于与Alice的DID相关的信息,ID中枢服务640可以标识该请求是针对Alice的ID中枢660。基于与所请求的特定数据相关的信息,ID中枢服务640然后可以标识所请求的具体数据。在一些实施例和/或一些请求中,与特定数据相关的信息可以指示什么类型的数据正在被请求。在一些实施例和/或一些请求中,与特定数据相关的信息可以包括被请求的具体数据片的地址。
基于该请求,ID中枢服务640可以确定什么类型的数据正在被请求。如果请求包括指示什么类型的数据正在被请求的信息,则ID中枢服务640可以使用所接收的数据类型信息。如果请求不包括指示什么类型的数据正在被请求的信息,则ID中枢服务640可以标识存储有被请求的数据的特定位置,并且分析被请求的数据以确定什么类型的数据被请求。被存储在DID所有者的ID中枢中的数据可能被加密,因此,数据的完整信息可能无法被ID中枢服务640获取。然而,被请求的数据的元数据不一定被加密。在一些实施例中,可以分析被请求的数据的元数据以确定数据的类型。
如前所简要提及的,可以存在规范不同类型个人数据的政府和/或组织规则。为了确保这些政府和/或组织规则被适当地执行,规则强制执行模块650和/或664可以在ID中枢服务640和/或DID所有者的个人存储装置(例如,Alice的ID中枢660)中被实现。规则强制执行模块650和/或664能够访问政府和/或组织规则中的很多或所有规则,并且它们的功能是确保即使DID所有者希望某些数据操作被执行,也不会准许这样的数据操作。
在确定数据类型之后,规则强制执行模块650和/或664可以访问一个或多个适用的策略规则。策略规则可以被存储在策略规则库620中。策略规则库620可以是存储很多可用策略规则621-623的基于云的服务。省略号623表示策略规则库中可以存储有任何数目的策略规则。策略规则库620可以包括很多第三方规则621,诸如适用于不同类型的个人数据的不同政府的规则。第三方规则621还可以包括适用于与相应组织相关的数据的不同组织的规则。策略规则库620还可以包括由DID所有者中的一些DID所有者设置的个人规则622。个人规则可以与指向DID所有者的个人存储装置660或指向DID管理模块631的地址(或链接)一起被存储,或者与可以追踪到DID的标识一起被存储。省略号623表示可以存在未落入第三方规则621或个人规则622的其他类型的规则。例如,由一个DID所有者设置的一些规则可能会影响另一DID所有者的数据访问。
备选地或附加地,策略规则中的至少一些策略规则可以被存储在DID管理模块631中。例如,Alice的DID管理模块631可以存储与Alice的个人数据相关的一些第三方规则633。Alice的DID管理模块631还可以存储Alice的个人规则634中的部分或全部个人规则。备选地或附加地,策略规则中的至少一些策略规则可以被存储在Alice的个人存储装置(即,Alice的ID中枢660)中和/或ID中枢服务640中的共同存储区域中,DID所有者或DID所有者的个人存储装置中的每个DID所有者或DID所有者的个人存储装置都可以访问该共同存储区域。
虚线表示不一定只有上述存储装置中的一个存储装置可以存储策略规则中的全部或部分策略规则。多于一个的存储装置可以同时存储策略规则。例如,在一些实施例中,策略规则库620可以存储由多个ID中枢或者由不同DID系统提供方提供的不同DID管理模块可访问的大的规则集合。在一些实施例中,策略规则库620可能根本不存储任何个人规则。在一些实施例中,完整的策略规则库690可以在ID中枢服务640中被实现。在一些实施例中,DID中枢服务640可以存储适用于在特定DID中枢服务640中所存储的DID所有者的数据的规则的子集。DID所有者的个人存储装置(例如,Alice的ID中枢660)和/或相应DID管理模块(例如,Alice的DID管理模块631)可以仅存储她的个人规则和/或仅存储适用于她自己的数据的第三方规则。
在一些实施例中,策略规则库620可以允许规则设置方(例如,政府实体和/或组织)中的每个规则设置方输入和更新其自己的规则。在一些实施例中,策略规则库620可以周期性地联系第三方规则设置方中的每个第三方规则设置方以问询现有规则是否已经改变。如果规则改变,则策略规则库620的服务提供方可以手动或自动更新规则。Alice的DID管理模块631、Alice的个人存储装置660和/或ID中枢服务640中所存储的第三方规则631也可以定期被更新。这些更新可以基于策略规则库620中的更新,或者由规则设置方的通知直接触发。
此外,第三方规则不必被存储在上述存储装置中的至少一个存储装置中。规则设置方(例如,政府实体或组织)中的每个规则设置方可以在其自己的网页或服务器上维护自己的规则。策略规则库620可以仅包括链接(例如,URL)的列表,其中每个链接(例如,URL)链接到相应政府或组织的规则服务器。备选地,链接的列表可以被存储在Alice的DID管理模块640、Alice的个人存储装置660和/或ID中枢服务640中。DID所有者的DID管理模块631、个人存储装置660和/或ID中枢服务640可以直接与规则设置方的服务器中的每个服务器通信以获取适用规则。
例如,在一些实施例中,规则强制执行模块650和/或664可以基本上同时访问多于一个的存储装置。在一些实施例中,规则强制执行模块650和/或664可以首先访问本地存储装置和/或Alice的个人存储装置,并且查看是否有针对医疗数据的任何适用的第三方规则或个人规则。在管理模块630中未存储适用规则的情况下,则规则强制执行模块650和/或664然后可以访问策略规则库620以查看是否存在可能适用的附加规则。
基于一个或多个适用的策略规则,在ID中枢服务640和/或Alice的ID中枢660中所实现的规则强制执行模块650和/或664然后可以确定对Alice的数据的操作是否将导致数据遵守一个或多个适用的策略规则。规则强制执行模块650可以在ID中枢服务640中被实现,以强制执行适用于被存储在很多DID所有者的ID中枢中的数据的规则。备选地或附加地,规则强制执行模块664可以在每个DID所有者的ID中枢中被实现,或者被配置为强制执行适用于被存储在对应DID所有者的ID中枢中的数据的规则。例如,Alice的ID中枢660可以具有指定的规则强制执行模块664,规则强制执行模块664用于强制执行适用于Alice的个人数据的规则,并且Bob的ID中枢670可以具有另一指定的规则强制执行模块(未示出),该另一指定的规则强制执行模块用于强制执行适用于Bob的个人数据的规则。虚线664表示规则强制执行模块664不一定被存储在Alice的ID中枢660中。它可以是规则强制执行模块650的子模块。规则强制执行模块650可以包括多个子模块,子模块中的每个子模块被指定以强制执行针对被存储在一个或多个DID所有者的个人存储装置(例如,Alice的ID中枢660、Bob的ID中枢670)中的数据的规则。
此外,除了数据类型以外,在确定是否存在任何适用规则时还可以考虑其他因素,诸如与请求实体610和/或DID所有者相关的信息、和/或各方的位置(例如,DID所有者的位置、ID中枢的位置、请求实体610的位置等)。例如,实体610可以是位于美国的医生。医生610可以请求将Alice的医疗数据661录入Alice的个人存储装置660。
当ID中枢服务640和/或Alice的个人存储装置660从实体610(例如,医生)接收到请求时,规则强制执行模块650和/或664确定适用于医疗数据的一组策略规则。但是,每个国家/地区可以有一组不同规则来规范医疗数据的处置。规则强制执行模块650和/或664可以进一步基于医生的位置和DID所有者的位置来过滤适用于医疗数据的所有策略规则。例如,如果医生和DID所有者两者都位于美国,则仅美国规则将适用。此外,基于医生610工作的医院或诊所,可以存在由医院或诊所设置的适用于这里的附加规则。
除了第三方规则,规则强制执行模块650和/或664还可以访问Alice的个人规则622、634、666和/或692。Alice 630可能已经设置了更多规则来限制对她的医疗数据661的访问。如果Alice的个人规则比适用于Alice的医疗数据的第三方规则(例如,政府规则或医院规则)严格,则规则强制执行模块650和/或664可以允许Alice的个人规则632覆写第三方规则。然而,如果Alice的个人规则不如第三方规则严格,则规则强制执行模块650和/或664可以决定忽略Alice的个人规则并且应用第三方规则。
当规则强制执行模块650和/或644确定是授予还是拒绝该请求时,通知可以被发送给请求实体610和/或Alice 630。在一些情况下,通知还可以被发送给与请求实体和/或DID所有者相关的第三方。
例如,实体610可以是Alice的潜在雇主。Alice的潜在雇主610可以请求访问Alice的个人存储装置660中所存储的Alice的社交媒体数据662。ID中枢服务640或Alice的个人存储装置660从Alice的雇主610接收请求并且向Alice的DID管理模块631发送通知。Alice的DID管理模块631然后将确定什么类型的数据被请求。在这种情况下,数据类型是社交媒体数据。基于该确定,Alice的DID管理模块631访问可以适用于社交媒体数据的一个或多个策略规则。
可以没有任何政府规则来规范对社交媒体数据的访问,但是社交媒体服务提供方可能已经设置了一些规则。社交媒体服务提供方可以要求账户所有者明确同意允许第三方访问用户的社交媒体内容。如果Alice 630未设置个人规则来同意潜在雇主的请求,则这样的请求可以被自动拒绝。在请求被拒绝之后,规则强制执行模块650和/或664然后可以向Alice发送通知以向她通知她的潜在雇主已经请求访问她的社交媒体数据662,但是该请求已经被拒绝。一旦请求被拒绝,规则强制执行模块650和/或664就可以向Alice的潜在雇主发送通知,使得雇主知道所请求的数据不可访问。规则强制执行模块650和/或664还可以向Alice自己发送通知,使得Alice知道她的潜在雇主已经尝试访问她的个人数据。
作为另一示例,Alice可以是未成年人。第三方已经请求访问Alice的医疗数据661,并且Alice可能已经向第三方授予访问她的医疗数据661的许可。然而,规则强制执行模块650和/或664可以检测与医疗数据相关的规则,该规则要求父母同意将未成年人的医疗记录透露给第三方。因此,即使Alice已经向第三方授予这样的许可,规则强制执行模块650和/或664也将忽略Alice的同意并且仍然拒绝该请求。一旦请求被拒绝,通知就可以被发送给请求Alice的医疗数据661的第三方610。通知可以包括为何请求被拒绝的特定原因,即,Alice是未成年人,因此,她没有资格同意。通知还可以被发送给Alice和她的父母。Alice的父母中的每人可以是另一DID所有者。在这样的情况下,通知可以被发送给Alice的父母中的每人的DID管理模块。备选地或附加地,通知可以作为电子邮件、短信、自动电话呼叫等被发送。
在一些实施例中,规则强制执行模块650和/或664可以仅在第一次请求录入或访问某种类型的数据时才需要访问策略规则库620。此后,规则强制执行模块650和/或664可以将所访问的相关规则存储在ID中枢服务640中、Alice的ID中枢660中和/或DID管理模块631中。适用于特定类型数据的规则可以与该特定类型数据一起被存储在DID所有者的个人存储装置(即,DID所有者的ID中枢)中。例如,适用于医疗数据的规则可以与Alice的医疗数据661一起被存储。当Alice的医疗数据第二次被访问时,规则强制执行模块650和/或664将能够快速检索和应用被存储在Alice的个人存储装置660中的规则。
策略规则库620可以由云服务提供方周期性地更新以维护当前政府和/或组织的规则。如上所简要提及的,云服务提供方也可以向政府或组织实体中的每个实体授予许可,使得这些实体可以自行更新规则。一旦策略规则库620中的规则被更新,策略规则库620就可以通知ID中枢服务640、至少一些DID所有者的ID中枢660和670、和/或至少一些DID所有者的DID管理模块631来更新被存储在这些存储装置中的每个存储装置中的规则。备选地,ID中枢服务640、至少一些DID所有者的ID中枢660和670、和/或至少一些DID所有者的DID管理模块631可以周期性地访问策略规则库620以检查规则是否已经被更新。
此外,在数据操作完成之后,ID中枢服务640和/或Alice的ID中枢660可以生成通知以示出数据操作是成功还是失败、或者被请求的数据发生了什么的概要。通知可以基于DID所有者的选择。通知可以被发送给DID所有者的DID管理模块631。通知也可以经由任何其他通信信道被发送,诸如电子邮件、SMS、自动电话呼叫等。DID所有者可以选择他/她想要接收通知的(多个)通知信道。
DID所有者可以选择不接收任何通知。备选地,DID所有者可以选择仅在某些情况下接收通知。例如,Alice可以选择仅在她的医疗数据661被更新时接收通知。在一些实施例中,DID所有者可以选择接收简单通知或复杂通知。例如,Alice可以选择接收用于指示她的数据中的某些数据已经被其他人访问的通知,但是选择她的社交媒体数据被某人访问时不接收任何通知。备选地,Alice可以选择接收包括更多信息的综合通知。例如,当Alice的家庭医生在Alice的医疗数据661中录入新记录时,通知可以示出新记录被录入的日期和时间、新记录的大小、甚至新记录的详细信息等。
另外,在一些实施例中,当对一个DID所有者的数据操作时,另一DID所有者可以被通知。例如,如果Alice是未成年人,则当Alice的社交媒体数据被访问时,即使这样的访问未违反任何规则,她的父母也可以从父母的DID管理模块和/或经由任何其他通信信道接收通知。
在一些实施例中,实体610还可以是DID的所有者。实体610的DID文档可以包括与DID所有者和/或DID所有者与Alice的关系相关的信息。例如,实体610的DID可以指示实体610是Alice的当前家庭医生。在这样的情况下,即使一个或多个规则适用于Alice的医疗数据,应用这些规则仍然可以允许实体610读取和更新Alice的医疗数据661。每次Alice拜访她的家庭医生610时,家庭医生610都将更新被存储在她的个人存储装置660中的她的医疗数据661。然后这些数据事务中的每个数据事务可以被记录在区块链中。用于医疗数据的区块链可以是私有区块链。备选地,不记录可以轻松追踪到特定个人的信息的公共区块链可以被实现。
另一示例,实体610甚至可以是Alice 630自己。当Alice 630请求访问她自己的医疗数据661时,也可以存在某些适用规则。例如,她可能不应当被允许修改医疗数据661,即使医疗数据661被存储在她的个人存储装置660中。如果Alice 630请求更新她的医疗数据661,则规则强制执行模块650和/或664可以应用禁止非医生的任何人修改任何医疗数据的规则并且拒绝她的修改自己的医疗数据661的请求。
下面的讨论现在涉及可以被执行的多种方法和方法动作。虽然方法动作可以按特定顺序讨论或在流程图中图示为按特定顺序发生,但是除非特别说明,或者因为一个动作依赖于在该动作被执行之前完成另一动作而被要求,否则不要求特定顺序。
图7示出了用于强制执行适用于一种数据类型的一个或多个策略规则的示例方法700的流程图。方法700将关于先前讨论的图2-图6中的一个或多个附图来描述。
方法700包括管理多个DID和多个存储装置,存储装置中的每个存储装置与多个DID中的至少一个DID相关联(701)。多个存储装置可以是由ID中枢服务640管理的ID中枢660和ID中枢670。方法700还包括从实体接收对于对被存储或将要被存储在与DID的所有者相关联的存储装置中的数据的操作的请求(702)。该实体可以是图6所示的实体610。被存储在与DID的所有者相关联的存储装置中的数据可以是被存储在Alice的个人存储装置660中的Alice的医疗数据661、社交媒体数据662、和/或电子邮件数据663,如图6所示。在实体请求对数据的操作之后,来自请求实体的请求可以由ID中枢服务640和/或Alice的ID中枢660直接接收(702)。备选地,请求可以被发送给Alice的DID管理模块631。此后,Alice的DID管理模块631向ID中枢服务640和/或Alice的ID中枢660发送请求的通知。
在接收到请求之后,被请求的数据的类型被确定(703)。基于所确定的数据类型,适用于数据的类型的一个或多个策略规则被访问(704)。此后,一个或多个适用规则将被应用于被请求的数据,使得可以做出操作是否将导致数据遵守一个或多个策略规则的决定(705)。如果操作将导致数据遵守一个或多个策略规则,则操作被允许(706)。如果操作不会导致数据遵守一个或多个策略规则,则操作被拒绝(707)。
图8示出了用于从实体接收对于对被存储或将要被存储在与特定DID相关联的存储装置中的数据的操作的请求的示例方法800的流程图,方法800可以对应于方法700的步骤702的实施例。方法800可以包括分析请求中所包含的信息(801)。该信息可以包括与特定DID相关的信息。基于与特定DID相关的信息,与特定DID相关联的存储装置(例如,Alice的ID中枢660)被标识(802)。该信息还可以包括与正在请求的特定数据相关的信息。基于与正在被请求的特定数据相关的信息,然后所标识的存储装置中的被请求数据(例如,被存储在她的ID中枢中的Alice的医疗数据661)被标识。
图9示出了用于确定被请求要被操作的数据的类型的示例方法900的流程图,方法900可以对应于方法700的步骤703的实施例。方法900可以包括扫描被请求数据的数据的元数据(901)。基于数据的被扫描的元数据,确定被请求的数据的类型(902)。由于被存储在DID所有者的个人存储装置(例如,DID所有者的ID中枢)中的数据可能被加密,因此可能无法确切地确定被请求的数据是什么。然而,元数据不一定被加密,并且元数据可以包括与数据的类型相关的信息。在一些实施例中,该系统可以实现一种文件格式,使得在新文件被生成时,要求在元数据中指定数据的至少一个类型。在一些实施例中,仅要求某些类型的数据在元数据中指定其类型,诸如医疗数据、政府ID相关数据、犯罪历史、信用历史等。
图10示出了用于访问适用于该数据的类型的一个或多个策略规则的示例方法1000的流程图,方法1000可以对应于方法700的步骤704的实施例。在数据的类型被确定之后,一个或多个策略规则(1001、1002、1003、1004和/或1005)可以被访问。在一些实施例中,策略规则可以被存储在策略规则库620中,因此,策略规则库被访问(1001)。在一些实施例中,策略规则可以被存储在ID中枢服务640中,DID所有者的存储装置中的每个存储装置都可以访问ID中枢服务640,因此,ID中枢服务640被访问(1002)。在一些实施例中,策略规则可以被存储在DID所有者的个人存储装置(例如,Alice的ID中枢660)中,因此,DID所有者的个人存储装置被访问(1003)。在一些实施例中,策略规则可以被存储在DID管理模块(例如,Alice的DID管理模块631)中,因此,DID管理模块被访问(1004)。策略规则不必只被存储在一处。例如,策略规则可以被存储在策略规则库620中并且也可以被存储在ID中枢服务640中,并且这两个存储装置中的一个存储装置或这两个存储装置中的两个存储装置都可以被访问。
存储装置中的每个存储装置可以基本上同时或按顺序依次被访问。例如,在一些实施例中,被本地存储在Alice的ID中枢660中的策略规则可以首先被访问(1004)。如果在Alice的ID中枢660中未找到适用规则,则被存储在ID中枢服务640中的策略规则可以被访问(1002)。如果在ID中枢服务640中仍然未找到适用规则,则策略规则库620可以被访问(1001)。在一些实施例中,个人规则622、634、666和/或692可以首先被访问,然后第三方规则621、633、665和/或691可以被访问,或者反之亦然。
省略号1005表示策略规则也可能被存储在一些其他存储装置中。例如,策略规则中的一些策略规则可以被存储在政府或组织的网站或服务器中,并且只有策略规则的地址或链接可以被存储在策略规则库、ID Hub、DID所有者的存储装置、和/或DID管理模块中。在这样的实施例中,除非策略规则的链接已经改变,否则不太需要更新策略规则库。然而,每次策略规则被访问时,该系统可能需要访问远程服务器,这可能花费附加网络带宽、其他资源和/或时间来完成该过程。
另外,方法1000包括确定一个或多个策略规则是否适用于所确定的数据类型(1006)。方法1000还可以包括基于附加信息来过滤适用规则,附加信息包括但不限于与DID所有者、数据请求实体和/或数据生成实体相关的信息(1007)。
在步骤1002中所访问的策略规则库旨在包括适用于不同数据类型的策略规则的大型集。当策略规则库被访问时,大量策略规则可以首先基于数据类型来被过滤,并且仅适用于该数据类型的规则被发送给规则强制执行模块650和/或664。然而,在一些情况下,适用于该数据类型的策略规则可能仍然包括过多规则。例如,每个国家和/或州关于医疗数据可能具有略有不同的规定。在这样的情况下,将与医疗数据相关的所有规则应用于特定DID所有者的医疗数据将是不必要的。因此,适用于该数据类型的策略规则可以基于附加信息而进一步被过滤,以适合特定DID所有者的数据。例如,可以基于DID所有者的地理位置、数据的地理位置、请求实体的地理位置、和/或生成数据的实体的地理位置(例如,医生的位置)来进一步过滤适用于医疗数据的规则。
在一些实施例中,还可以基于DID所有者的其他信息、生成或更新数据的实体的信息、和/或请求实体的信息来过滤策略规则。例如,请求数据的实体可以是DID所有者的政府雇主。被请求的数据可以是政府雇主下令进行的随机药物测试的结果。在这样的情况下,可以有特殊策略规则允许政府雇主访问随机药物测试结果,即使药物测试结果通常属于雇主通常无法访问的医疗数据类型。
图11示出了用于确定操作是否将导致数据遵守一个或多个策略规则的示例方法1100的流程图,方法1100可以对应于方法700的步骤705的实施例。方法1100可以包括分析一个或多个适用规则的关系,并且基于该分析,确定一个规则是否应覆写另一规则(1101)。
一个或多个适用规则可以与彼此重叠和/或互补。一个或多个适用规则也可以与彼此冲突。特别地,某些第三方规则可能与某些个人规则冲突。例如,政府法规可以要求某些数据被保留阈值年限,某些数据一旦被录入就不得更改,即使DID所有者同意(例如,DID所有者是未成年人)某些数据也不应当被第三方访问,等等。
例如,政府可以要求税务记录至少被保留3年。在这种情况下,即使DID所有者想要删除他/她的税务记录,或者授予另一方删除这样的记录的许可,适用规则也可以禁止这样的操作。同样,如果DID所有者想要更改他/她的犯罪记录,政府规则可以禁止这样的请求。因此,即使DID所有者的犯罪记录可以被存储在他/她的个人存储装置中,他/她也可以不被允许更改其犯罪记录。另一示例,DID所有者可以是已经同意向第三方披露他/她的个人记录中的一些个人记录的未成年人。尽管这样的同意通常允许第三方访问成年人的个人数据,但是当DID所有者是未成年人时,同意可以被默认拒绝覆写。
基于对至少一个规则是否应覆写另一规则的确定1101,对请求是应被批准还是被拒绝的最终确定被做出(1102)。然后,最终确定可以被发送给一方(1103、1104、1105)和/或被记录在存储装置中(1106)。该确定可以被同时或依次发送给一方或多方,包括但不限于DID所有者(例如,DID所有者的管理模块630、DID所有者的个人存储装置660、DID所有者的电子邮件地址、经由SMS的DID所有者的电话号码等)、第二DID所有者(例如,未成年人的父母)、和/或请求实体610。
在规则强制执行模块650和/或664做出确定之后,规则强制执行模块650和/或664可以进一步确定是否应当将确定发送给DID所有者、一些其他DID所有者和/或请求实体。在一些实施例中,确定可以被发送给DID所有者(1103)。例如,规则强制执行模块650和/或664可以在DID所有者的DID管理模块上生成通知,并且通知DID所有者请求已经被批准或者被拒绝。在一些实施例中,确定还可以被发送给第二DID所有者(1004)。例如,当DID所有者是未成年人时,可以向他/她的父母或监护人通知该确定。另一示例,一个用户可以具有多个DID,或者同一用户的设备中的每个设备具有单独的DID,并且用户希望在他/她的设备中的每个设备上接收通知。在一些实施例中,确定还可以被发送给请求实体(1105)。特别地,当请求被拒绝时,请求实体610应当被告知拒绝。这样的通知可以是简单拒绝,也可以包括附加信息,例如拒绝的原因等。
在一些实施例中,该确定可以被记录在ID中枢服务中(1107)、在DID所有者的个人存储装置中(1108)、在第二DID所有者的个人存储装置中(1109)、和/或在DID管理模块中(1110)。所记录的确定可以与规则一起被存储作为规则应用历史的一部分。当类似请求被接收时,类似请求的确定一般应当与过去请求的确定类似。如果新请求的确定与记录中的确定不同,则附加通知或警报可以被生成并且被发送给DID所有者,或者请求可以暂时被暂停,以等待DID所有者的批准或确认。
图12示出了用于允许(或拒绝)请求的示例方法1200的流程图,方法1200可以对应于方法700的步骤706和/或707的实施例。在对操作将导致数据遵守或不遵守一个或多个策略规则的确定被做出之后,规则强制执行模块650和/或644将允许或拒绝数据操作(1201)。如果没有规则适用,则规则强制执行模块650和/或644可以具有默认操作,诸如在没有规则适用时拒绝请求,或者在没有规则适用时允许请求,或者即时向DID所有者请求许可。在操作被拒绝或允许(1201)之后,操作结果可以被存储在存储装置中(1202)。用于存储用户指示和/或操作结果的存储装置可以是图6和图8所示的一个或多个存储装置,包括但不限于DID所有者的DID管理模块631、DID所有者的个人存储装置660、ID中枢服务640和策略规则库620。备选地或附加地,操作结果也可以被存储在区块链中。
在一些实施例中,通知可以被生成(1203)。通知可以包括关于规则是否适用(1204)、(多个)适用规则是什么、规则是被遵守(1205)还是未被遵守(1206)的信息。如果没有适用规则,则可以向DID所有者通知默认情况下所请求的操作被拒绝或被允许。例如,当Alice的医生更新Alice的病史时,Alice可以接收到通知,该通知用于向她示出适用于医疗数据的某些规则被应用(1204)并且医生对她的医疗数据661的操作遵守这些规则(1205)。该通知还可以包括附加信息,诸如Alice的医疗数据661是否已经被修改,或者她的医疗数据661是否仅被她的医生读取。
在一些实施例中,当没有规则适用时,请求可以暂时被暂停,并且通知可以被生成以提示DID所有者即时生成规则。如果DID所有者在预定时间内对通知进行响应,则基于DID所有者的响应,请求可以被允许或被拒绝;如果DID所有者在预定时间内未响应,则请求可以被拒绝。
此外,通知不仅可以被发送给DID所有者1208,还可以被发送给请求实体(1209)和/或第三方(1210),诸如未成年人的父母。在一些实施例中,一方是否要接收通知或通知中包括多少信息可以由DID所有者和/或请求实体设置。例如,Alice可以决定她是否希望在她的数据被访问时接收通知。当她的社交媒体数据662被访问时她可能不想要接收任何通知,但是当她的医疗数据被访问时她可能想要接收详细通知。
如图2-图4中讨论的,在去中心化系统中,很多用户将使用去中心化标识符来标识自己。在这样的环境中,请求访问DID所有者的数据的实体可以是另一DID所有者或DID所有者他/她自己。图13示出了用于在DID所有者请求访问另一DID所有者的数据或数据存储装置时强制执行一个或多个策略规则的示例方法1300的流程图。在某些情况下,两个DID所有者可以相同。
方法1300包括管理多个DID和多个存储装置(1301)。存储装置中的每个存储装置与多个DID中的至少一个DID相关联。方法1300还包括从第一DID所有者接收对于对被存储或将要被存储在与第二DID所有者相关联的存储装置中的数据的操作的请求(1302)。如上所述,第一DID所有者和第二DID所有者可以具有相同DID,即,是相同的DID所有者。备选地,第一DID所有者和第二DID所有者可以具有不同的DID,即,是不同的DID所有者。
在接收到请求之后,被请求的数据的类型然后被确定(1303)。基于所确定的数据的类型,适用于数据的类型的一个或多个策略规则被访问(1304)。与第一和/或第二DID(或DID所有者)相关的信息(1305)可以被访问。此后,基于第一和/或第二DID(或DID所有者)的信息,一个或多个适用规则可以进一步被过滤以生成一个或多个策略规则的子集(1306)。例如,第一DID所有者和/或第二DID所有者的地理位置可以用于确定特定国家的规则是否适用。
基于一个或多个策略规则的子集,对操作是否将导致数据遵守一个或多个策略规则的子集的确定被做出(1307)。如果确定是允许对数据的操作,则第一DID所有者被授予访问数据的权限(1308);并且如果确定是拒绝对数据的操作,则第一DID所有者访问数据的权限将被拒绝(1309)。然后,已完成操作的记录可以被记录在存储装置中或在区块链上(1310)。如果已完成操作的记录被记录在区块链上,则对同一片数据的操作链可以方便地从区块链中被检索。
例如,被请求的数据可以是Alice的医疗数据。第一DID所有者可以是Alice的家庭医生。基于数据的类型(例如,医疗数据),适用于医疗数据的一个或多个策略规则被访问。与Alice的DID和家庭医生的DID相关的信息也可以被访问。基于与Alice的DID和/或家庭医生的DID相关的信息,一个或多个策略规则然后可以被过滤。与Alice和/或家庭医生的DID相关的信息可以包括他们的医患关系、Alice的位置和/或家庭医生的位置。基于第一DID所有者和第二DID所有者的附加信息,适用于Alice的医疗数据的一个或多个策略规则的子集可以被过滤掉。如果Alice和她的医生都在美国,则美国规则(例如,HIPAA隐私规则可以是其中之一)适用。策略规则的子集中的每个策略规则然后被应用于Alice的医疗数据。在这种情况下,操作可能会导致数据遵守一个或多个策略规则的子集。因此,Alice的家庭医生很可能被授予更新Alice医疗数据的权限。
在Alice的医疗数据被她的家庭医生更新之后,与事务相关的一些信息可以被记录在区块链中。例如,数据录入的时间、医生的DID信息、Alice的DID信息都可以被记录在区块链中。这样的区块链可以是私有区块链,因为记录与个人医疗数据相关,除非被存储在区块链中的信息无法轻易追踪到Alice的个人身份。确切地什么类型的数据将被记录在区块链中将基于数据类型、数据操作类型、适用规则和去中心化服务类型来确定。敏感信息可以始终被存储在Alice的个人存储装置660和/或她的DID管理模块631中。
对于本文中公开的过程和方法,在过程和方法中执行的操作可以以不同顺序实现。此外,所概述的操作仅作为示例提供,在不偏离所公开的实施例的本质的情况下,其中一些操作可以是可选的、组合成更少步骤和操作、补充有另外的操作、或者扩展为附加操作。
本发明可以在不脱离其精神或特性的情况下以其他特定形式体现。所描述的实施例在所有方面都应当被视为说明性的而非限制性的。因此,本发明的范围由所附权利要求而不是由前述说明指示。落入权利要求的等效物的含义和范围内的所有变化都应当被包含在其范围内。

Claims (10)

1.一种计算系统,包括:
一个或多个处理器;以及
一个或多个计算机可读介质,其上具有计算机可执行指令,所述计算机可执行指令被构造为使得在由所述一个或多个处理器执行时使所述计算系统:
管理多个去中心化标识符(DID)和多个存储装置,所述多个存储装置中的每个存储装置与所述多个DID中的至少一个DID相关联;
从实体接收对于对被存储或将要被存储在所述多个存储装置中的、与DID相关联的一个存储装置中的数据进行操作的请求;
确定被请求要被操作的所述数据的类型;
访问适用于所述数据的所述类型的一个或多个策略规则;
基于所述一个或多个策略规则,确定要对所述数据所执行的所述操作是否将导致所述数据遵守所述一个或多个策略规则;以及
基于所述确定,当所述操作将导致所述数据遵守所述一个或多个策略规则时,允许所述请求。
2.根据权利要求1所述的计算系统,其中所述方法还包括:
访问与所述特定DID相关的信息;
基于与所述特定DID相关的所述信息,过滤所述一个或多个策略规则,以确定适用于被请求的所述特定DID的所述数据的一个或多个策略规则的子集,
其中所述确定要对所述数据所执行的所述操作是否将导致所述数据遵守所述一个或多个策略规则是基于一个或多个策略规则的所述子集而被确定的。
3.根据权利要求1所述的计算系统,其中来自实体的对于对数据进行操作的请求是如下请求:所述请求是将由所述实体生成的数据存储在与所述特定DID相关联的所述存储装置中的请求、或者是读取被存储在与所述特定DID相关联的所述存储装置中的数据的请求。
4.根据权利要求3所述的计算系统,其中所述确定要对所述数据所执行的所述操作是否将导致所述数据遵守所述一个或多个策略规则包括:
分析适用的所述一个或多个规则的关系,以及
基于所述分析,确定至少一个规则是否应覆写另一规则。
5.根据权利要求1所述的计算系统,其中所述确定所述数据的所述类型包括:
扫描所述数据的元数据,以及
基于所扫描的所述元数据,确定所述数据的至少一个类型。
6.根据权利要求1所述的计算系统,其中所述一个或多个策略规则包括由所述特定DID的所有者确定的个人规则,
当所述个人规则比第三方规则严格时,所述个人规则应覆写所述第三方规则,以及
当第三方规则比个人规则严格时,所述第三方规则应覆写所述个人规则。
7.根据权利要求1所述的计算系统,其中:
所述一个或多个策略规则中的至少一个策略规则被存储在与所述特定DID相关联的所述存储装置中,
所述一个或多个策略规则中的至少一个策略规则被存储在所述多个存储装置中的至少一个存储装置处;
所述一个或多个策略规则中的至少一个策略规则被存储在远程服务器处,和/或
所述一个或多个策略规则中的至少一个策略规则被存储在DID的所有者的DID管理模块中。
8.根据权利要求1所述的计算系统,还被配置为:
基于所述实体的信息,过滤所述一个或多个策略规则以确定适用于被请求的所述数据的一个或多个策略规则的子集,
其中所述确定要对所述数据所执行的所述操作是否将导致所述数据遵守所述一个或多个策略规则是基于一个或多个策略规则的所述子集而被确定的。
9.根据权利要求1所述的计算系统,其中所述允许所述请求包括:
当要对所述数据所执行的所述操作将导致所述数据不遵守所述一个或多个策略规则时,生成对所述特定DID的所有者、所述实体和/或第三方的通知。
10.一种用于在计算系统中强制执行适用于数据的类型的一个或多个策略规则的方法,所述计算系统在实现分布式账本的去中心化网络中被实现,所述分布式账本被配置为支持所述计算系统的一个或多个用户的一个或多个去中心化身份(DID),所述方法包括:
管理多个去中心化标识符(DID)和多个存储装置,所述多个存储装置中的每个存储装置与所述多个DID中的至少一个DID相关联;
从实体接收对于对被存储或者将要被存储在所述多个存储装置中的、与特定DID相关联的一个存储装置中的数据进行操作的请求;
确定被请求要被操作的所述数据的类型;
访问适用于所述数据的所述类型的一个或多个策略规则;
基于所述一个或多个策略规则,确定要对所述数据所执行的所述操作是否将导致所述数据遵守所述一个或多个策略规则;以及
基于所述确定,当所述操作将导致所述数据遵守所述一个或多个策略规则时,允许所述请求。
CN202080021143.4A 2019-03-15 2020-01-30 用于提供针对did数据的遵守策略的存储的计算系统和方法 Active CN113574528B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/355,417 US11412002B2 (en) 2019-03-15 2019-03-15 Provision of policy compliant storage for DID data
US16/355,417 2019-03-15
PCT/US2020/015752 WO2020190386A1 (en) 2019-03-15 2020-01-30 Provision of policy compliant storage for did data

Publications (2)

Publication Number Publication Date
CN113574528A true CN113574528A (zh) 2021-10-29
CN113574528B CN113574528B (zh) 2024-06-11

Family

ID=69726816

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080021143.4A Active CN113574528B (zh) 2019-03-15 2020-01-30 用于提供针对did数据的遵守策略的存储的计算系统和方法

Country Status (4)

Country Link
US (1) US11412002B2 (zh)
EP (1) EP3938940B1 (zh)
CN (1) CN113574528B (zh)
WO (1) WO2020190386A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11411955B2 (en) 2019-03-15 2022-08-09 Microsoft Technology Licensing, Llc User choice in data location and policy adherence
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
US11481513B2 (en) * 2020-08-14 2022-10-25 Sap, Se Decentralized storage of personal data
CN113012008B (zh) * 2020-09-15 2022-06-03 支付宝(杭州)信息技术有限公司 一种基于可信硬件的身份管理方法、装置及设备
CN112580102A (zh) * 2020-12-29 2021-03-30 郑州大学 基于区块链的多维度数字身份鉴别系统
US11790334B1 (en) * 2022-06-03 2023-10-17 Block, Inc. Blockchain supported resource transfer communication protocol
US20240154808A1 (en) * 2022-11-03 2024-05-09 Change Healthcare Holdings, Llc Systems and methods of trace id validation and trust
US11869105B1 (en) * 2022-11-12 2024-01-09 Mike McCarthy Systems and methods for bypassing intermediation using living arrangements

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101316273A (zh) * 2008-05-12 2008-12-03 华中科技大学 一种分布式安全存储系统
CN101719842A (zh) * 2009-11-20 2010-06-02 中国科学院软件研究所 一种基于云计算环境的分布式网络安全预警方法
US20180020001A1 (en) * 2016-07-14 2018-01-18 Sap Se Private data access controls in mobile applications

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256600B2 (en) 2012-04-13 2016-02-09 D2L Corporation Method and system for electronic content locking
EP2993606A1 (en) 2014-09-05 2016-03-09 Axiomatics AB Provisioning system-level permissions using attribute-based access control policies
US10389754B2 (en) * 2015-09-04 2019-08-20 Quest Software Governance policy framework for cloud resources
US11587096B2 (en) * 2015-10-14 2023-02-21 Accreditrust Technologies, LLC Systems and methods for interdependent identity based credential collection validation
CN108701276B (zh) * 2015-10-14 2022-04-12 剑桥区块链有限责任公司 用于管理数字身份的系统和方法
US10469450B2 (en) * 2015-12-18 2019-11-05 Nicira, Inc. Creating and distributing template based service rules
US20170195336A1 (en) * 2016-01-05 2017-07-06 Sensormatic Electronics, LLC Method and System for Non-Authoritative Identity and Identity Permissions Broker and Use Thereof
EP3424177B1 (en) 2016-02-29 2021-10-13 SecureKey Technologies Inc. Systems and methods for distributed identity verification
US20180285595A1 (en) * 2017-04-04 2018-10-04 Ip Street Holdings Llc Virtual agent for the retrieval and analysis of information
US11025626B1 (en) * 2017-07-26 2021-06-01 EMC IP Holding Company LLC Decentralized identities for access to multiple computing resource systems
US10587413B1 (en) * 2017-07-26 2020-03-10 EMC IP Holding Company LLC Decentralized identities for cross-enterprise authentication and/or authorization
WO2019033116A1 (en) 2017-08-11 2019-02-14 Verimatrix, Inc. SYSTEMS AND METHODS FOR RIGHTS CONTROL OF NETWORK CONNECTED DEVICES OR IOT DEVICES USING INFORMATION STORED IN A DISTRIBUTED REGISTER
US10903996B2 (en) * 2018-01-22 2021-01-26 Microsoft Technology Licensing, Llc Persona selection using trust scoring
US10812254B2 (en) * 2018-07-30 2020-10-20 International Business Machines Corporation Identity confidence score based on blockchain based attributes
US11061716B2 (en) * 2018-08-20 2021-07-13 Salesforce.Com, Inc. Attribute-based access control using a dynamic expression engine
US10841094B2 (en) * 2018-09-14 2020-11-17 Microsoft Technology Licensing, Llc Private and public media data in a decentralized system
US11171783B2 (en) * 2018-09-28 2021-11-09 Infosys Limited System and method for decentralized identity management, authentication and authorization of applications
US11038891B2 (en) * 2018-10-29 2021-06-15 EMC IP Holding Company LLC Decentralized identity management system
US11178151B2 (en) * 2018-12-19 2021-11-16 International Business Machines Corporation Decentralized database identity management system
EP3909198B1 (en) * 2019-02-08 2024-09-18 Keyless Technologies Ltd Authentication processing service
US20210049586A1 (en) * 2019-02-26 2021-02-18 Shtar Llc Automated transaction processing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101316273A (zh) * 2008-05-12 2008-12-03 华中科技大学 一种分布式安全存储系统
CN101719842A (zh) * 2009-11-20 2010-06-02 中国科学院软件研究所 一种基于云计算环境的分布式网络安全预警方法
US20180020001A1 (en) * 2016-07-14 2018-01-18 Sap Se Private data access controls in mobile applications

Also Published As

Publication number Publication date
EP3938940B1 (en) 2024-03-06
US20200296140A1 (en) 2020-09-17
CN113574528B (zh) 2024-06-11
US11412002B2 (en) 2022-08-09
EP3938940A1 (en) 2022-01-19
WO2020190386A1 (en) 2020-09-24

Similar Documents

Publication Publication Date Title
EP3743839B1 (en) Attestation management
US11222137B2 (en) Storing and executing an application in a user's personal storage with user granted permission
US11381567B2 (en) Execution of an application within a scope of user-granted permission
CN113574528B (zh) 用于提供针对did数据的遵守策略的存储的计算系统和方法
EP3938941B1 (en) User choice in data location and policy adherence
US11411959B2 (en) Execution of application in a container within a scope of user-granted permission
US11190512B2 (en) Integrity attestation of attestation component
US11238170B2 (en) Delegation using pairwise decentralized identifier
WO2020251693A1 (en) Channeling data with decentralized identity stores
US11411736B2 (en) Automatic renewal of a verifiable claim
US11587084B2 (en) Decentralized identification anchored by decentralized identifiers
CN114391148A (zh) 基于事件的did委托权限转移
US20210058400A1 (en) Did delegation/revocation to another did
CN115176246A (zh) 皮肤上去集中化的身份技术
LU101758B1 (en) Digital wallet as a relying party in a decentralized network

Legal Events

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