一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

将分散式标识符与一个或多个设备相关联的制作方法

2022-09-08 07:26:12 来源:中国专利 TAG:

将分散式标识符与一个或多个设备相关联


背景技术:

1.目前使用的大多数证明身份的文档或记录是由诸如政府、学校、雇主或其他服务中心或监管组织之类的中央组织发布的。这些组织常常在集中式身份管理系统中维护每个成员的身份。集中式身份管理系统是被组织用来管理已发布的身份、身份认证、授权、角色和权限的集中式信息系统。集中式身份管理系统被认为是安全的,因为它们常常使用专业维护的硬件和软件。通常,身份发布组织设置针对在组织中注册人员的条款和要求。最后,当一方需要验证另一方的身份时,验证方常常需要通过集中式身份管理系统来获得验证和/或认证对方身份的信息。
2.分散式标识符(did)是一种新型的标识符,它独立于任何集中式注册表、身份提供方或证书颁发机构。分布式分类账技术(诸如区块链)为使用完全分散式标识符提供了机会。分布式分类账技术使用全球分布式分类账来以可验证的方式记录两方或更多方之间的事务。一旦事务被记录,分类账的某部分中的数据就不能在不更改分类账的所有后续部分的情况下追溯性更改,这提供了一个相当安全的平台。在这样分散式环境中,每个did的所有者通常都可以使用他/她的did来控制他/她自己的数据。did所有者经由did管理模块访问被存储在与did相关联的个人存储中的数据,该did管理模块是移动应用、个人计算机、浏览器等。
3.本文要求保护的主题不限于解决任何缺点或仅在诸如上述环境之类的各环境中操作的实施例。相反,提供该技术背景仅是为了说明一个实践本文描述的一些实施例的示例性技术领域。


技术实现要素:

4.本发明内容被提供来以简化的形式介绍一系列概念,这将在下面的详细描述中进一步描述。本发明内容并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在被用作帮助以确定所要求保护的主题的范围。
5.现有技术常常将分散式标识符与用户或个人可标识信息相关联。例如,did常常与用户的驾照相关联。用户可以使用did(当did与他或她的驾照相关联时)来证明他/她被授权驾驶。人们希望保持人们的did的公钥安全和私密。因此,此类did的公钥一般不会被传播到公共区块链上,并且此类did的潜在使用范围受到很大限制。
6.在本文描述的各种示例中,存在用于将did与设备和/或设备的组相关联,而不是个人可标识信息的技术,使得did(即,设备组did和设备did)本身不被视为包含任何个人可标识信息,并且设备组did或设备did的公钥也不被视为个人可标识信息。如此,设备组did和设备did的公钥可以被使用在许多服务中,并被传播到可公开访问的分类账上。将did与设备和/或设备的组相关联并不直接简单,本文描述了实现这一点的技术示例。
7.特别地,本文描述的原理不仅允许用户使用可公开访问的分类账来将多个设备作为组来进行管理,而且还允许用户使用这些可公开访问的分类账来经由组内的一个设备来管理另一设备而无需公开暴露用户的个人可标识信息。允许用户使用公开可用的分类账以
分散式方式管理设备是有利的,因为用户将不依赖于特定的集中式服务来对设备的组或特定设备执行各种管理功能。用户的个人可标识信息不仅受到保护以防公众,而且受到保护以防中心化服务提供方。
8.此外,当公钥被视为个人可标识信息(pii)时,公开可用的分类账的使用受到很大限制,因为可以使用包含pii的公钥经由分散式系统提供的许多服务必须经由私有实体可用和维护的私有分类账来实现。本文描述的原则从公钥中移除个人可标识信息,从而扩展了可公开访问的分类账可以实现的服务类型,同时仍保护用户的隐私。
9.本文公开的实施例涉及为一个或多个相关的设备的组生成和关联分散式标识符(did)。首先,生成设备组did。设备组did与一个或多个相关的设备的组相关联。此后,对于一个或多个相关的设备的组中的每一个,生成设备did,并与对应设备相关联。将许可范围授予设备组did。响应于将许可范围授予设备组did,许可范围的子集被授予组内的每个设备did。以这种方式,给出了一种用于生成did并将其与一个或多个相关的设备的组相关联的有效过程。即使涉及设备的组,也会以增强安全性和隐私的方式仔细控制许可范围。
10.在一些实施例中,将新设备添加到组或从组中移除现有设备的许可是向设备组did授予的许可范围的子集。设备did中的至少一个被授予将新设备添加到设备组或从设备组中移除现有设备的许可。
11.在一些实施例中,将新设备添加到一个或多个设备的现有组。当接收到将新设备添加到一个或多个设备的组的指示时,利用一个或多个设备的组中的至少一个被许可的现有设备来验证新设备。响应于利用至少一个被许可的现有设备的验证,新设备被添加到一个或多个设备的组中。将新设备添加到一个或多个设备的组中的动作包括得出新设备did,以及将新设备did与新设备相关联。
12.在一些实施例中,一个或多个设备的现有组中的设备被移除。当指示移除设备的组中的特定设备时,利用不是设备的组中的该特定设备的至少一个被许可的现有设备来验证该特定设备的移除。响应于利用至少一个被许可的现有设备的验证,从设备的组中移除该特定设备。从设备的组中移除该特定设备的动作包括撤销已被授予设备did的所有许可范围,以及停用与该特定设备相关联的设备did。
13.在一些实施例中,添加或移除特定设备的动作被记录在分布式分类账中。
14.在一些实施例中,许可范围包括对访问身份中心(hub)处的存储装置的许可。身份中心是在did持有方控制下的包括密钥和元数据在内的属性存储装置。许可包括执行以下至少一项的许可:(1)读取被存储在存储装置处的数据集,(2)将数据集写入到存储装置中,(3)复制被存储在存储装置处的数据集,以及(4)删除被存储在存储装置处的数据集。
15.在一些实施例中,当设备的组中的特定设备请求访问被存储在id中心处的数据集时,对应于特定设备的设备did和对应于设备的组的设备组did二者都被验证。
16.附加的特征和优点将在随后的描述中阐述,并且部分地将从描述中显而易见,或者通过本文教导的实践而获知。本发明的特征和优点通过所附权利要求中特别指出的工具和组合来实现和获得。本发明的特征将通过以下描述和所附权利要求而变得更加明显,或者通过下文阐述的本发明的实践而获知。
附图说明
17.为了描述能够获得上述和其他优点和特征的方式,将参考附图中图示的具体实施例来对上文简要描述的主题进行更具体的描述。应当理解,这些附图仅描绘了典型实施例并且因此不应被视为限制范围,将通过使用附图以附加的具体性和细节来描述和解释实施例,其中:
18.图1图示了在其中采用了本文描述的原理的示例计算系统;
19.图2图示了用于创建分散式标识或标识符(did)的示例环境;
20.图3图示了在其中did与设备或设备的组相关联的示例环境;
21.图4图示了在其中执行各种did管理操作和服务的示例环境;
22.图5a图示了显示与设备相关联的组列表的示例用户界面;
23.图5b图示了显示特定组内的设备列表的示例用户界面;
24.图6图示了用于使用种子和硬件标识符来生成设备组did的示例实施例;
25.图7图示了用于生成被用来生成图6的设备组did的种子的示例实施例;
26.图8图示了用于为每个设备生成设备did的示例实施例;
27.图9图示了在其中利用设备组did和设备did的示例环境;
28.图10图示了用于生成did并将其与相关的设备的组相关联的示例方法的流程图;
29.图11图示了用于将设备添加到组的示例方法1100的流程图;以及
30.图12图示了用于从组中移除设备did的示例方法1200的流程图。
具体实施方式
31.本文公开的实施例涉及为一个或多个相关的设备的组生成和关联分散式标识符(did)。首先,生成设备组did。设备组did与一个或多个相关的设备的组相关联。此后,对于一个或多个相关的设备的组中的每一个,生成设备did,并将其与对应设备相关联。将许可范围授予设备组did。响应于将许可范围授予设备组did,将许可范围的子集授予组内的每个设备did。
32.在一些情况下,将新设备添加到组或从组中移除现有设备的许可是被授予设备组did的许可范围的子集。设备did中的至少一个被授予将新设备添加到设备组或从设备组中移除现有设备的许可。
33.在一些实施例中,将新设备添加到一个或多个设备的现有组。当接收到将新设备添加到一个或多个设备的组中的指示时,利用一个或多个设备的组中的至少一个被许可的现有设备来验证新设备。响应于利用至少一个被许可的现有设备的验证,新设备被添加到一个或多个设备的组中。将新设备添加到一个或多个设备的组中的动作包括得出新设备did,以及将新设备did与新设备相关联。
34.在一些实施例中,一个或多个设备的现有组中的设备被移除。当指示移除设备的组中的特定设备时,利用不是设备的组中的该特定设备的至少一个被许可的现有设备来验证该特定设备的移除。响应于利用至少一个被许可的现有设备的验证,从设备的组中移除该特定设备。从设备的组中移除该特定设备的动作包括撤销已授予设备did的所有许可范围,以及停用与该特定设备相关联的设备did。
35.在一些实施例中,添加或移除特定设备的动作被记录在分布式分类账中。
36.在一些实施例中,许可范围包括访问身份中心处的存储装置的许可。身份中心是在did持有方控制下的包括密钥和元数据在内的属性存储装置。在一些情况下,许可包括执行以下至少一项的许可:(1)读取被存储在存储器库处的数据集,(2)将数据集写入到存储装置中,(3)复制被存储在存储装置处的数据集,以及(4)删除被存储在存储装置处的数据集。
37.在一些实施例中,当设备的组中的特定设备请求访问被存储在id中心处的数据集时,对应于特定设备的设备did和对应于设备的组的设备组did二者都被验证。
38.现有实施例常常将分散式标识符与用户或个人可标识信息相关联。例如,did常常与用户的驾照相关联。用户可以使用did来证明他/她被授权驾驶。希望将此类did的公钥保持私密。因此,此类did的公钥一般不会被传播到公共区块链上,并且此类did的潜在使用范围受到很大限制。本文描述的原则包括将did与设备和/或设备的组相关联,而不是与个人可标识信息相关联,使得did(即设备组did和设备did)本身不被视为包含任何个人可标识信息,并且设备组did或设备did的公钥也不被视为个人可标识信息。如此,设备组did和设备did的公钥可以被使用在许多服务中,并被传播到公共区块链上。
39.同时,个人可标识信息仍可被存储在身份中心中和/或与设备did或设备组did一起作为可验证声明而被呈现。例如,向一个或多个验证实体的预定列表发出成对(pairwise)声明。如此,由于个人可标识信息仅被包含在可验证声明中,而不是did,因此很难使用设备did的公钥来追溯任何特定用户。
40.此外,为了向did用户提供附加的隐私,一些现有实施例允许用户生成和使用不同的did来应对不同的实体,如此,每个did仅在一对用户之间使用。这种类型的did有时被称为“成对”did。在一些其他现有实施例中,利用不同角色来生成单独的did。尽管成对的did和用于不同角色的did改善了对用户的隐私保护,但是随着时间的推移,这样的实施例需要用户或用户的设备来管理和维护非常大量的did。本文描述的原理还减轻了每个用户必须管理大量did所导致的复杂性,因为将did与设备的组和设备相关联减少了频繁生成新did以应对第三方实体的需求。此外,这些成对did中包含的信息被包装在声明中,并且声明经由安全通信而在两个设备之间传输,因此除了两个设备和/或设备所有者之外,声明中包含的信息不需要被传播到公共区块链上。
41.因为本文描述的原理是在计算系统的上下文中执行的,所以将关于图1描述计算系统的一些介绍性讨论。然后,这个描述将返回到关于剩余附图的did平台的原理。
42.计算系统现在越来越多地采取多种形式。计算系统包括例如手持设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统、数据中心、或者甚至传统上不被视为计算系统的设备诸如可穿戴设备(例如眼镜)。在本说明书和权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),其包括至少一个物理和有形处理器以及能够在其上具有可由处理器执行的计算机可执行指令的物理和有形存储器。存储器可以采取任何形式并且可以取决于计算系统的性质和形式。计算系统可以分布在网络环境中并且可以包括多个组成计算系统。
43.如图1中所图示,在其最基本的配置中,计算系统100通常包括至少一个硬件处理单元102和存储器104。处理单元102包括通用处理器、现场可编程门阵列(fpga)、专用集成电路(asic)和/或任何其他专用电路。在一些情况下,存储器104是物理系统存储器,其是易
失性、非易失性或两者的某种组合。术语“存储器”在本文中还被用来指代非易失性大容量存储设备,诸如物理存储介质。如果计算系统是分布式的,则处理、存储器和/或存储能力也可能是分布式的。
44.计算系统100在其上还具有常常被称为“可执行组件”的多个结构。例如,计算系统100的存储器104被图示为包括可执行组件106。术语“可执行组件”是计算领域的本领域普通技术人员很好理解的结构的名称,其是可以是软件、硬件或它们的组合的结构。例如,当以软件实现时,本领域普通技术人员将理解可执行组件的结构包括在计算系统上执行的软件对象、例程、方法等,而不管这种可执行组件是否存在于计算系统的堆中,或者可执行组件是否存在于计算机可读存储介质上。
45.在这种情况下,本领域普通技术人员将认识到可执行组件的结构存在于计算机可读介质上,以使得当由计算系统的一个或多个处理器(例如,由处理器线程)解释时,使计算系统执行功能。这种结构很可能是处理器直接在计算机上可读的(就像可执行组件是二进制的情况一样)。备选地,该结构被构造为可解释和/或编译(无论是在单个阶段还是在多个阶段中),以便生成处理器可直接解释的这种二进制文件。当使用术语“可执行组件”时,对可执行组件的示例结构的这种理解完全在计算领域的普通技术人员的理解范围内。
46.术语“可执行组件”也被普通技术人员很好地理解为包括诸如硬编码或硬连线逻辑门之类的结构,其仅在硬件中实现或几乎完全在硬件中实现,诸如在现场可编程门阵列(fpga)、专用集成电路(asic)或任何其他专用电路中。因此,术语“可执行组件”是计算领域的普通技术人员很好理解的结构的术语,无论以软件、硬件或组合实现。在本说明书中,还可以使用术语“组件”、“代理”、“管理器”、“服务”、“引擎”、“模块”、“虚拟机”等。如在本说明书中和案例中使用的,这些术语(无论是否带有修改条款)也旨在与术语“可执行组件”同义,并且因此也具有计算机领域的普通技术人员可以很好理解的结构。
47.在下面的描述中,参考由一个或多个计算系统执行的动作来描述实施例。如果这些动作以软件实现,则(执行该动作的相关计算系统的)一个或多个处理器响应于已执行构成可执行组件的计算机可执行指令来引导计算系统的操作。例如,这样的计算机可执行指令可以被体现在形成计算机程序产品的一个或多个计算机可读介质中。这种操作的一个示例涉及数据的操纵。如果此类动作仅在硬件中实现或几乎完全在硬件中实现,诸如在fpga或asic内,则计算机可执行指令包括硬编码或硬连线逻辑门。计算机可执行指令(和经操纵的数据)被存储在计算系统100的存储器104中。计算系统100还包含允许计算系统100通过例如网络110来与其他计算系统通信的通信信道108。
48.虽然并非所有计算系统都需要用户界面,但是在一些实施例中,计算系统100包括用于在与用户交互中使用的用户界面系统112。用户界面系统112包括输出机构112a以及输入机构112b。本文描述的原理不限于精确输出机构112a或输入机构112b,因为这样将取决于设备的性质。然而,输出机构112a可以包括例如扬声器、显示器、触觉输出、全息图等等。输入机构112b的示例可以包括例如麦克风、触摸屏、全息图、相机、键盘、鼠标或其他指针输入、任何类型的传感器等等。
49.本文描述的实施例包括或利用包括计算机硬件的专用或通用计算系统,诸如例如一个或多个处理器和系统存储器,如下文更详细讨论的。本文描述的实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机
可读介质可以是可由通用或专用计算系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本发明的实施例可以包括至少两种截然不同的计算机可读介质:存储介质和传输介质。
50.计算机可读存储介质包括ram、rom、eeprom、cd-rom或其他光盘存储设备、磁盘存储设备或其他磁存储设备、或者任何其他可以被用来存储计算机可执行指令或数据结构形式的并且可由通用或专用计算系统访问的期望程序代码的物理和有形存储介质。
[0051]“网络”被定义为使得能够在计算系统和/或模块和/或其他电子设备之间传送电子数据的一个或多个数据链路。当通过网络或其他通信连接(硬连线、无线或硬连线或无线的组合)将信息传送或提供给计算系统时,计算系统将连接正确地视为传输介质。传输介质可以包括网络和/或数据链路,其可以被用来承载计算机可执行指令或数据结构形式的并且可由通用或专用计算系统访问的期望程序代码装置。上述的组合也应被包括在计算机可读介质的范围内。
[0052]
此外,在到达各种计算系统组件时,计算机可执行指令或数据结构形式的程序代码装置可以自动地从传输介质传送到存储介质(或反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以被缓存在网络接口模块(例如,“nic”)内的ram中,然后最终被传送到计算系统ram和/或计算系统中的不太易失性的存储介质。因此,应当理解,存储介质可以被包括在也(或者甚至主要)利用传输介质的计算系统组件中。
[0053]
计算机可执行指令包括指令和数据,指令和数据例如当在处理器处被执行时,使通用计算系统、专用计算系统或专用处理设备执行特定功能或功能组。备选地或附加地,计算机可执行指令将计算系统配置为执行特定功能或功能组。计算机可执行指令包括例如二进制文件或者甚至在由处理器直接执行之前经过一些转换(诸如编译)的指令,例如诸如汇编语言之类的中间格式指令,或者甚至源代码。
[0054]
尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,在所附权利要求中定义的主题不一定限于上述描述的特征或动作。相反,所描述的特征和动作作为实现权利要求的示例形式而被公开。
[0055]
本领域技术人员将了解,本发明在具有多种类型的计算系统配置的网络计算环境中被实践,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器或可编程的消费电子产品、网络pc、小型计算机、大型计算机、移动电话、pda、寻呼机、路由器、交换机、数据中心、可穿戴设备(诸如眼镜)等等。本发明还可以在分布式系统环境中被实践,其中通过网络进行链接(通过硬连线数据链路、无线数据链路、或者通过硬连线和无线数据链路的组合)的本地和远程计算系统都执行任务。在分布式系统环境中,程序模块位于本地和远程存储器存储设备中。
[0056]
本领域技术人员还将了解,本发明在云计算环境中被实践。云计算环境是分布式的,尽管这不是必需的。当分布式时,云计算环境在一个组织内国际分布和/或具有跨多个组织所拥有的组件。在本描述和以下权利要求中,“云计算”被定义为用于实现对可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池的按需网络访问的模型。“云计算”的定义不限于正确部署时可以从此类模型中获得的其他众多优点中的任何一个。
[0057]
其余附图讨论了对应于先前描述的计算系统100的各种计算系统。其余附图的计
算系统包括实现本文公开的各种实施例的各种组件或功能块,如将解释的。各种组件或功能块在本地计算系统上被实现或在分布式计算系统上被实现,该分布式计算系统包括驻留在云中的元件或实现云计算的各方面。各种组件或功能块被实现为软件、硬件、或者软件和硬件的组合。其余附图中的计算系统包括多于或少于图中所图示的组件,并且一些组件在情况允许时进行组合。尽管未必被图示,但是计算系统的各种组件根据需要访问和/或利用诸如处理器102和存储器104之类的处理器和存储器,以执行它们的各种功能。
[0058]
现在将关于图2给出关于分散式标识或标识符(did)以及它们被创建和驻留在其中的环境的一些介绍性讨论。如图2中所图示,设备或设备的组201与did 205相关联,did 205表示设备或设备的组201的身份(以下也称为did设备)。did设备201被配置为使用创建和注册服务来注册did,这将在下面更详细地解释。
[0059]
did设备201包括可以受益于did的任何实体。例如,did设备201包括机器、系统或设备、或者(多个)机器、(多个)设备和/或(多个)系统的集合。在其他实施例中,did设备201是机器、系统或设备的子部分。例如,设备可以是印刷电路板,其中该电路板的子部分是电路板的个体组件。在这样的实施例中,机器或设备具有did并且每个子部分也具有did。did设备201也可以是软件组件,诸如上面关于图1描述的可执行组件106。复杂的可执行组件106的示例可以是人工智能。在一些实施例中,人工智能也与did相关联。
[0060]
此外,尽管did设备201被示为具有单个did 205,但是这不必是这种情况,因为在情况允许时可以存在与did设备201相关联的任何数目的did。
[0061]
did设备201由人类或人类组织使用。此类组织可能包括公司、部门、政府、机构或任何其他组织或组织群组。在下文中,这样的人类用户和/或组织用户被称为用户。在一些实施例中,每个个人人类用户具有did,而每个人所属的组织可能同样具有did。
[0062]
如所提及,did设备201被配置为创建和注册did 205。did 205是与did设备201相关联的标识符。优选地,该标识符对于该did设备201是唯一的,至少在预计did将在其中使用的范围内是唯一的。在一些情况下,标识符是本地唯一的,并且可能更希望是针对预计在全球运行的身份系统的全球唯一标识符。在一些实施例中,did 205是统一资源标识符(uri)(诸如统一资源定位符(url))或将did设备201与参与同did设备201的可信任交互的机制相关联的另一指针。
[0063]
did 205是“分散式的”,因为它不需要集中式的第三方管理系统来生成、管理或使用。因此,did 205仍然在did设备201的控制之下。这不同于基于对集中式机构的信任并且仍然在公司目录服务、证书机构、域名注册机构或其他集中式机构(在本文中被统称为“集中式机构”)的控制之下的传统的集中式id。因此,did 205是在did设备201的控制下并且独立于任何集中式机构的任何标识符。
[0064]
在一些实施例中,did 205的结构与设备名称或一些其他人类可理解的术语一样简单。然而,在其他实施例中,did 205优选地是数字和字母的随机串以提高安全性。在一个实施例中,did 205是一串128个字母和数字。因此,本文所公开的实施例不依赖于did 205的任何具体实现。在一个非常简单的示例中,did 205被示为“123abc”。
[0065]
同样如图2中所示,did设备201控制与did 205相关联的私钥206和公钥207对。因为did 205独立于任何集中式机构,所以私钥206应该在任何时候都完全在did设备201的控制中。也就是说,应该以分散式的方式来生成私钥和公钥,以确保它们保持在did设备201的
控制之下。
[0066]
如以下将更详细描述的,私钥206和公钥207对在由did设备201控制的设备上生成。私钥206和公钥207对不应在由任何集中式机构控制的服务器上生成,因为这导致私钥206和公钥207对不总是完全在did设备201的控制之下。尽管图2和该描述已经描述了私钥和公钥对,但是还应注意,其他类型的合理密码学信息和/或机制也可以在情况允许时被使用。
[0067]
图2还图示了与did 205相关联的did文档210。如下面将更详细解释的,did文档210有时是在创建did 205时生成的。在其最简单的形式中,did文档210描述了如何使用did 205。因此,did文档210包括对did 205的引用,它是由did文档210描述的did。在一些实施例中,根据由分布式分类账220所指定的方法来实现did文档210,分布式分类账220将被用来存储did 205的表示,如将在下面更详细解释的。因此,取决于具体的分布式分类账,did文档210常常具有不同的方法。
[0068]
did文档210还包括由did设备201创建的公钥207或一些其他等效密码学信息。公钥207被第三方实体使用,该第三方实体被did设备201给予许可以访问did设备201所拥有的信息和数据。在一些情况下,通过验证did设备201实际上与did 205相关联或控制did 205来使用公钥207。
[0069]
在一些情况下,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相关联。
[0070]
在一些情况下,did文档210还包括授权信息212。授权信息212允许did设备201授权第三方实体修改did文档210或文档的某些部分的权利,而不给第三方证明did 205的所有权和/或关联的权利。例如,授权信息212允许第三方使用任何指明的更新机制来更新did文档210中的任何指明的一个或多个字段的集合。备选地,授权信息212允许第三方设备限制did设备201在指定时间段内对did 205的使用。这在did设备201是未成年孩子的设备并且第三方设备是孩子的父母或监护人的设备时很有用。授权信息212允许父母或监护人的设备限制did 201的使用,直到孩子不再是未成年人那时为止。
[0071]
在一些情况下,授权信息212还指定第三方将需要遵循以证明他们被授权修改did文档210的一个或多个机制。在一些实施例中,这些机制类似于之前关于认证信息211讨论的那些机制。
[0072]
在一些情况下,did文档210还包括一个或多个服务端点213。服务端点包括服务于代表did设备201进行操作的网络地址。特定服务的示例包括发现服务、社交网络、文件存储服务诸如身份服务器或中心、以及可验证的声明储存库服务。因此,服务端点213作为针对代表did设备201进行操作的服务的指针而操作。在一些情况下,这些指针被did设备201或第三方实体的设备用来访问代表did设备201进行操作的服务。服务端点213的具体示例将在后面更详细地解释。
313的用户和设备d 321的用户中的每一个都是用户组334的团队成员。
[0089]
环境300中的每个设备(例如,设备a 311、设备b 312、设备c 313、设备d 321、和设备e 322)对应于图2的did设备201,并且每个设备did(例如,设备did 314、315、316、324、325)对应于图2的did 205。
[0090]
已经参照图2和图3描述了设备did以及它们通常如何与设备相关联,现在将解释与设备did相关联的设备的特定实施例。转向图4,现在将解释被用来执行各种did生命周期管理操作和服务的环境400。应当了解,为了便于解释,图4的环境根据需要参考图2和图3中的元素。
[0091]
如图4中所示,环境400包括由各种用户拥有或以其他方式在各种用户控制之下的各种设备和计算系统。这些包括设备401。设备401对应于图2的设备201和/或图3的设备311、312、313、321、322中的任何一个。设备401包括但不限于诸如智能手机之类的移动设备、诸如膝上型计算机之类的计算设备、或诸如汽车或包括计算能力的电器之类的任何设备。设备401还包括在设备上运行的网络浏览器和在设备上运行的操作系统。更广泛地说,设备401或设备401的任何部分(包括但不限于网络浏览器、操作系统和任何特定应用)被视为did设备201并与did 205相关联。
[0092]
设备401包括did生命周期管理模块420。应注意,在操作中,did生命周期管理模块420驻留在设备401的操作系统和/或安装在设备401处的特定应用上并由其执行。在一些实施例中,did生命周期管理模块420被托管在远程服务或云服务处。安装在设备401处的网络浏览器或在设备401处实现网络应用以允许用户与远程服务交互。因此,为了便于解释,did生命周期管理模块420被示为是独立的。
[0093]
如图4中所示,did生命周期管理模块420包括did创建模块430。由设备401使用did创建模块430来创建设备组did 517和设备did 516或任何数目的附加的组did或设备did。
[0094]
例如,设备401对应于图3的设备c 313。当第一次生成设备组时,生成该设备组的设备很可能是要被包括在该组中的第一设备。作为示例,设备c 313是生成设备组310的设备。为了生成设备组310,did生命周期管理模块420首先生成设备组did 317,然后将设备did 317与组相关联。在生成设备组310之后,did生命周期管理模块420然后生成设备did 416并将设备did 416与设备相关联。
[0095]
稍后,用户有时还想要将设备c 313加入到另一组(例如,工作组)。例如,组330是包括若干同事设备的工作组。组330由设备d321创建,并且设备组did 333已经由设备d 321的管理模块生成。为了加入组330,设备d 321需要批准来自设备c 313的加入请求。一旦设备d 321批准来自设备c 313的请求,设备d 321将设备组did 333发送给设备c 313,并且设备c 313的did创建模块430然后使用接收到的设备组did 333来生成新设备did 316。然后设备did 316与设备c相关联并被用来访问与组330相关联的数据或服务。
[0096]
在一个实施例中,did创建模块430还包括或以其他方式可以访问用户界面(ui)元素435,其指导设备401创建设备组did 417和/或设备did 416。did创建模块did 430具有一个或多个驱动程序,其被配置为与特定分布式分类账(诸如分布式分类账220)一起工作,以使得did 417和/或416符合该分布式分类账220的底层方法。
[0097]
did创建模块430还包括密钥生成模块450。密钥生成模块生成先前描述的私钥206和公钥207对。did创建模块430然后使用组did 417和/或设备did 516以及对应的私钥和公
钥对来生成did文档480(在一些情况下,其对应于图2的did文档210)。
[0098]
在操作中,did创建模块430访问注册器410,其被被配置为将记录与did 417和/或did 416相关的事务的特定分布式分类账。did创建模块430使用注册器410来以前述方式将did散列记录在分布式分类账中,并以前述方式存储did文档480。
[0099]
在一些实施例中,did生命周期管理模块420包括所有权模块440。所有权模块440提供确保设备401感知设备401在did 417和/或did 416的单独控制中的机制。以这种方式,did生命周期管理模块420的提供方能够确保提供方不控制did 417和/或416,而只是提供管理服务。
[0100]
如先前所讨论的,密钥生成模块450为设备组did 417生成私钥和公钥408对。设备组did 408的公钥被记录在did文档480中。类似地,密钥生成模块450还为设备did 416生成私钥和公钥409对。设备did 409的公钥也被记录在did文档480中。
[0101]
当设备401希望加入新组或创建新组时,设备401再次执行did创建模块430以生成新组did和与该组相关联的新设备did。did创建模块430然后使用注册器410来更新相同的did文档480或不同的did文档(未示出)以反映新组did和新设备did与设备401相关联,并且这也被反映在分布式分类账220上的更新事务中,如前所述。
[0102]
在一些实施例中,有利的是仅具有一个组did并且一个设备did与特定设备相关联。一个组did被用来标识特定用户的个人设备,以使得用户完全控制他/她的每个个人设备。在一些实施例中,有利的是为各种目的生成多个组did和多个设备did。例如,用户将其设备加入到各种组,诸如个人设备组和工作设备组。在工作设备组中,同事的团队可以彼此协作。在每个组中,组did被授予许可范围。一旦组did被授予许可范围,组内的每个设备did就将被授予许可范围的子集。
[0103]
在其他实施例中,did生命周期管理模块420包括被用来恢复丢失的私钥206的恢复模块460。在操作中,恢复模块460允许设备401在did 417或416被创建时选择一个或多个恢复机制,其稍后被用来恢复丢失的私钥。did生命周期管理模块420还包括撤销模块470,其被用来从组did 417或设备did 416中撤销或切断设备。
[0104]
如上面简述,did生命周期管理模块420还包括用户界面(ui)435,并且不同模块的功能通过与ui 435进行接口来执行。例如,ui 435允许设备401提供实现恢复机制时一个或多个恢复机制需要的所需信息。然后运行恢复模块460以恢复由did创建模块430生成的did中的任何一个did。
[0105]
在操作中,撤销模块还使用ui元素435,其允许设备401指示希望从与did 417或416相关联的中移除设备。在一个实施例中,撤销模块访问did文档480并导致从did文档480中移除对设备的所有引用。备选地,移除针对设备的公钥408和409。然后将did文档580中的这种变化反映为分布式分类账220上的更新事务,如前所述。
[0106]
现在将描述ui 435的一些示例实施例。例如,ui 435向用户提供提示以输入用户名或一些其他人类可辨识名称。此名称被用作将要被生成的组did 417和/或设备did 416的显示名称。如前所述,组did 417和/或设备did 416是一长串随机数字和字母,并且因此具有用于显示名称的人类可辨识名称是有利的。在一些实施例中,ui 435能够将每个组did或设备did的公钥呈现为编码图像,例如条形码或qr码。在一些实施例中,ui 435在身份(例如,设备身份)列表中呈现组did 417或设备did 416,并且与人类可辨识名称(例如,用户的
名字或工作组名称)相关联。
[0107]
图5a图示了向用户显示的示例设备组列表用户界面500a。参考图5a,用户界面500a包括显示用户界面500a的主题标题的标题栏510。例如,标题栏510简单地显示“组列表”。
[0108]
用户界面500a的工作空间包括列出设备所属的所有组的表格或列表。设备对应于图4的设备401。在一些实施例中,列表与仅列出组名称511的名称一样简单。在一些实施例中,列出了每个组的附加属性和细节。例如,组的简短描述被包括为一列(例如,组描述列512),属于该组的设备列表也被包括在表中(例如,设备列513),以及每个组的公钥也被包括在表中(例如,公钥列514)。每个组的完整did(包括私钥)也被包括在表中。然而,由于私钥通常需要保密,所以最好不在设备上存储私钥或在用户界面500a上显示私钥。
[0109]
图5a图示了设备所属的组的示例表520a。例如,设备(其运行did生命周期管理模块420)属于组i 515和组ii 519。组i 515包括用户拥有的多个个人设备(例如,设备a、设备b和设备c 517),并且组i的公钥是123abc 518。组ii 519是用户所属的工作组520。工作组520包括设备c、设备d和设备e 521,并且组ii的公钥是456def 522。省略号523表示用户所属的任意数目的组。在一些情况下,设备仅属于一个组(例如,个人设备组516)。在一些情况下,设备属于许多不同的组,具体取决于设备的用途。
[0110]
在设备组ui 500a的底部,有一个或多个按钮或链接,用户可以点击这些按钮或链接来启动由did生命周期管理模块420提供的附加功能。例如,“生成新组
””
按钮524允许用户生成新组。当用户点击按钮524时,为用户生成弹出窗口(未示出),或者生成一些其他ui元素以提示用户输入新组名称和组描述。在一些实施例中,当第一次生成组时,默认情况下只有生成该组的设备被包括在该组中。在一些实施例中,弹出窗口还询问用户输入要被添加到组中的设备。用户输入每个设备的物理标识符(例如mac地址)以将设备添加到组中。此后,密钥生成模块450为新生成的组自动生成公钥和私钥对。
[0111]
此外,用户还点击“加入组”按钮525以加入现有组。当用户单击按钮525时,为用户生成另一弹出窗口以输入现有组的信息。例如,用户输入组的公钥、组名称或已经属于该组的设备的物理标识符(例如设备的mac地址)。
[0112]
附加地,“离开组”按钮526允许设备离开组。当用户点击按钮526时,为用户生成弹出窗口以选择用户想要离开的一个或多个组。在用户确认离开组的操作之后,撤销模块470更新did文档480以移除对应的设备公钥408和设备组公钥409。撤销事务也被记录到分布式分类账220或注册器410.
[0113]
最后,“恢复组did”按钮527允许用户恢复组did 527。在一些实施例中,出于一些其他目的或者将要加入组的另一设备需要组did。当用户点击按钮527时,提示用户选择要恢复其did的组。
[0114]
在一些实施例中,每个组名称515、519也是可点击的链接。当用户点击特定组名称515或519时,显示设备组用户界面。设备组用户界面包括有关特定组的其他详细信息。
[0115]
图5b图示了示例设备组用户界面500b,其显示特定组的信息。如图5b中所图示,设备组ui 500b包括显示组名称530的标题栏。用户界面500b的工作空间显示组中包括的设备的表格或列表530a。在一些实施例中,工作空间与设备名称531的列表一样简单。在一些实施例中,附加信息被显示。例如,每个设备的简短描述被显示在表530a上(例如,设备描述列
532)。每个设备的物理标识符533也被显示在表格上。设备的物理标识符包括(但不限于)mac地址537或序列号541。每个设备的公钥534也被显示。
[0116]
例如,如图5b中所图示,所选择的组包括设备a 535和设备b539。省略号543表示在组530中存在任意数目的附加设备。设备a是移动电话536,并且设备b是膝上型计算机540。设备a的mac地址537被列出为硬件标识符,并且设备b的序列号541被列出为硬件标识符。另外,设备a的公钥是789ghi,并且设备b的公钥是abc321,其也在表中被列出。
[0117]
此外,附加信息被包括并记录在表530a中。例如,每个设备的某些活动也被记录和显示。当该组是个人设备组时,同一用户正在使用该组中包含的每个设备。在这种情况下,用户查看每个设备的活动将是有利的。如果有任何异常活动,用户可以看到它,或者系统允许从组中自动移除或暂停活动异常的设备。
[0118]
在用户界面500b的底部,还有许多按钮或可点击的链接,其允许用户执行由did管理模块430提供的各种功能。例如,“添加设备”按钮544允许用户将设备添加到组。当用户点击按钮544时,提示用户输入新设备的信息(例如,物理标识符)。一旦用户确认将新设备添加到组中,新设备就接收到加入该组的邀请。
[0119]“移除设备”按钮545允许用户移除设备。例如,当用户点击按钮545时,提示用户选择列表中要被移除的一个或多个设备。一旦用户确认设备被移除,撤销模块470执行某些操作,包括从did文档480中移除对应的设备公钥,和/或在分布式分类账220或注册器410处记录移除事务。此外,在一些情况下,被移除的设备还接收一条关于它已从组中被移除的通知。安装在被移除设备上的管理模块也执行移除操作,不仅移除与设备did相关的信息,还移除与组did相关的信息。当设备丢失或以其他方式受到损害时,移除操作是非常有用的。
[0120]
此外,在一些情况下,组内的一个设备也被允许恢复另一设备的设备did。“恢复设备did”按钮546允许设备选择组中的另一设备并在需要时恢复该另一设备的did。
[0121]
在一些实施例中,为了附加的安全性,需要多于一个的设备来完成某些操作。例如,当要将新设备添加到组中时,用户将要求设置为要求来自组内两个不同的现有设备或组内任意数目的设备的确认。一个设备启动将新设备添加到组中。一旦启动添加操作,组内的每个其他设备或另一特定设备会接收到通知。接收到通知的至少一个其他设备必须确认并批准添加操作,才能最终将新设备添加到组中。
[0122]
用户界面500a和500b仅仅是在did生命周期管理模块420处实现的ui 435的示例。附加的用户界面元素或用户界面的布局被实现以执行相同或附加的功能。
[0123]
返回参考图4,did生命周期管理模块420包括did创建模块430。did创建模块430的示例实施例将在下面关于图6-图8进一步讨论。理论上,每个组或设备did都可以被随机生成,并且两个设备did之间不必存在任何关系。然而,由于组内的设备常常由同一用户拥有或由同一组用户使用,因此系统地生成和管理同一组内的所有相关的设备的did将是有利的。如此,由一个设备生成的did由另一设备恢复。
[0124]
图6图示了用于生成设备组did的示例实施例600。实施例600对应于图4的did生成模块430。如图6中所图示,种子601和硬件标识符602被用作函数604的两个输入605、606,以生成输出608。然后输出608被用作设备组did的私钥610。设备组did的私钥610然后被用来生成设备组did的公钥611。组did的私钥610和组did的公钥611然后被用作设备组did 609的密钥对。
[0125]
函数604是任何确定性函数,该函数可以在接收到不同输入时生成不同结果,或者仅在非常罕见的情况下不同输入导致相同结果。当根据不同输入生成相同结果的可能性非常小时,这种可能性被忽略,因为如果没有正确的两个输入605、606,某人几乎不可能重新生成设备组did 609。此外,希望函数604是单向函数,以使得使用结果来反推两个输入在计算上是困难的。例如,函数604是被配置为生成固定大小代码的散列函数。
[0126]
硬件标识符602是与硬件设备相关联的任何常数值。该常数值是多于一个常数值的组合。例如,设备501具有其制造商指派的序列号,其被用作硬件标识符602。备选地,硬件标识符602是设备的组有权访问的服务提供方(例如,身份中心911)处的硬件的标识符。备选地或附加地,硬件标识符602是服务提供方的标识符(例如,服务提供方的名称、数字标识符等)和设备501的标识符的组合。作为另一示例,硬件标识符602是身份中心911(设备的组有权访问)的标识符和设备501的标识符的组合。硬件标识符602的常数值是(但不限于)bois序列号、主板序列号、网络适配器的mac地址和设备501、和/或服务提供方的机器安全标识符(sid)。
[0127]
在一些实施例中,输入(多个)附加值作为函数604的输入。例如,在一些实施例中,组索引号被用作函数604的输入之一。当新组did被生成时,索引号加一,以使得即使使用相同的函数604来生成每个组did,但是由于使用不同的组索引作为输入之一而生成了不同的组did。
[0128]
种子601由用户输入,如密码短语。备选地,种子601是基于用户输入的密码短语来生成的代码。下面将关于图7描述用于生成种子601的示例实施例的进一步细节。
[0129]
图7图示了用于生成种子707的示例实施例700,其对应于图6中的种子601。参考图7,密码短语701和硬件标识符702被用作函数703的两个输入以生成输出706。然后将输出706用作种子707。密码短语701是来自用户的输入。在一些实施例中,此处的硬件标识符702是相同的硬件标识符602。备选地,硬件标识符702是使用与相同硬件块或不同硬件块相关的不同机制或不同常数值而被生成的;因此,它们不一定是相同的值。例如,硬件标识符702使用设备501的bois序列号,并且硬件标识符602使用设备501的主板序列号。
[0130]
函数703是任何确定性函数,该函数可以在接收到不同输入704和705时生成不同结果并且在输入相同输入704和705时生成相同结果。备选地,仅在非常罕见的情况下,不同输入704和705导致相同结果。只要使用不同输入生成相同结果的机会非常少,这种潜在的风险就常常被忽略。此外,希望函数703是单向函数,以使得使用输出706来反推两个输入701和702在计算上是困难的。例如,函数703是被配置为生成固定大小代码的散列函数。所生成的固定大小代码然后被用作种子707。
[0131]
然后,种子707被用作图6的函数604中的输入之一以生成组did 609。因此,即使组did 609长且复杂(例如,4096位),用户或与did关联的设备不必记住或记录它。相反,用户或设备只需要记住他/她最初输入的密码短语。每次,当接收到密码短语时,系统将能够重新生成种子707、601。基于重新生成的种子707、601和检索到的(多个)硬件标识符602、702,设备501可以在任何时候重新生成设备组did 609。
[0132]
可以实现用于生成设备did的不同实施例。使用如图6和图7中所图示的类似实现来生成设备did。例如,提示用户使用不同的密码短语来生成设备did。备选地或附加地,设备did指示符被用作函数604和/或703中的附加输入以生成设备did。
[0133]
图8图示了用于生成设备did 809的示例实施例800。如图8中所图示,种子801、硬件标识符802和设备did指示符803被用作函数804的三个输入805、806、807。然后输出808被用作设备did的私钥810。设备did的私钥810随后被用来生成设备did的公钥811。设备did的私钥810和设备did的公钥810随后被用作设备did 809的密钥对。函数804是任何确定性函数,该函数可以在接收到不同输入时生成不同结果,或者仅在非常罕见的情况下不同输入导致相同结果。当根据不同输入生成相同结果的可能性非常小时,这种可能性被忽略,因为如果没有正确的三个输入805、806、807,某人几乎不可能重新生成设备did 809。此外,希望函数804是单向函数,以使得使用结果来反推两个输入在计算上是困难的。例如,函数804是被配置为生成固定大小代码的散列函数。
[0134]
与硬件标识符602类似,硬件标识符802是与硬件设备相关联的任何常数值。类似于种子601,种子801是经由任何确定性单向函数703来生成的。设备did指示符803是指示did是设备did而不是组did或任何其他类型的did的任何值。例如,特定的自然数被用来指示所生成的did是设备did。作为示例,“1”被用作设备did指示符,以指示所生成的did是设备did;“0”被用作设备组did指示符,以指示所生成的did是组did。
[0135]
将硬件标识符802作为输入的一部分包括在内以生成设备did是有利的,因为可以容易地验证设备did在被使用时是否与对应设备匹配。例如,如果另一用户获得了设备did,并尝试使用该设备did经由另一设备访问数据,则系统能够检测到该另一设备不是该组的一部分,因为无法使用该另一设备的标识符重新生成设备did。
[0136]
在一些实施例中,附加输入作为输入而被添加到函数805。例如,添加索引号作为函数805的附加输入。每次将新设备添加到组中时,索引增加一。在一些实施例中,硬件标识符803被另一输入代替。例如,使用索引号代替硬件标识符作为函数805的输入。
[0137]
因此,图6至图8提供了用于使用各种确定性函数生成did的示例实施例。只要用户记住他/她的密码短语,设备组did和/或每个设备did就由安装在组中包含的任何设备处的任何设备管理模块420恢复。此外,由于设备did是使用与设备相关联的常数值生成的,因此可验证试图访问某些数据的设备是否真正与呈现给id中心911的设备did相关联。
[0138]
此外,如上面简要描述的,通过在诸如环境300之类的分散式环境中利用设备did来提供各种服务。例如,组设备did被授予访问id中心处的个人存储装置的许可范围。一旦组设备did被授予许可范围,则组内的每个设备did都被授予许可范围的子集。许可包括执行以下至少一项的许可:(1)读取被存储在存储装置处的数据集,(2)将数据集写入到存储装置中,(3)复制被存储在存储装置处的数据集,以及(4)删除被存储在存储装置处的数据集。
[0139]
图9图示了在其中使用设备组did和设备did的示例环境900。具体地,环境900将被用来描述使用设备组did 317和设备did 314至did316与一个或多个分散式个人存储装置或身份中心相关。应当注意,图9包括对首先关于图2或图3讨论的元素的参考,并且因此为了便于解释使用相同的附图标记。
[0140]
在一个实施例中,身份中心910是同一身份中心的多个实例。这由线910a表示。因此,各个身份中心910包括相同数据和服务中的至少一些。因此,如果对身份中心910之一进行任何改变,则该改变被反映在剩余的身份中心中。例如,第一身份中心911和第二身份中心912被实现在云存储装置中,并且因此能够保存大量数据。因此,完整的数据集被存储在
这些身份中心中。然而,在一些情况下,身份中心913具有较少的存储器空间。因此,在该身份中心中,被存储在第一和第二身份中心中的数据的描述符被包括。备选地,对其他身份中心中的数据所做的改变的记录被包括。因此,身份中心910之一中的改变或者在其他身份中心中被完全复制,或者该数据的至少一个记录或描述符被记录在其他身份中心中。
[0141]
因为身份中心是同一身份中心的多个实例,所以将仅提供第一身份中心911的完整描述,因为该描述也适用于身份中心912至身份中心913。如所图示,身份中心911包括数据存储装置920。数据存储装置920被用来存储与设备组did 317相关联的任何类型的数据。
[0142]
在一个实施例中,数据是对应于特定协议的特定类型的数据的集合922。例如,集合922是对应于特定医疗数据方案的医疗记录数据。集合922是任何其他类型的数据。
[0143]
在一个实施例中,所存储的数据具有与所存储的数据相关联的不同的认证和隐私设置921。例如,数据的第一子集具有允许数据被公开暴露的设置921,但是不包括对设备组did 317的任何认证。这种类型的数据用于相对不重要的数据,诸如配色方案等等。数据的第二子集具有设置921,该设置允许数据被公开暴露并包括对设备组did 317的认证。
[0144]
数据的第三子集具有设置921,该设置利用与设备组did 317相关联的私钥206和公钥207对(或一些其他密钥对)来加密数据子集。这种类型的数据将需要设备具有私钥207或一些其他关联的私钥以便解密数据。在一些实施例中,该过程还包括对设备组did 317的认证。
[0145]
由于组did 317与包括设备a 311、设备b 312和设备c 313的设备组310相关联,所以与设备a 311、设备b 312或设备c 313相关联的每个对应的did 314、315或316被授予对许可范围的子集的访问,如许可组did 317访问数据存储装置920。在一些实施例中,身份中心911具有许可模块930,其允许设备组did 317设置其他设备访问身份中心的特定授权或许可。例如,设备组did 317向组310中包含的所有设备提供访问所有数据920的访问许可。
[0146]
在一些实施例中,身份中心911还具有消息传递模块940。在操作中,消息传递模块允许身份中心911接收用于访问身份中心911的数据和服务的诸如来自诸如设备a 311、设备b 312和设备c 313之类的其他设备的请求之类的消息。此外,消息传递模块940允许身份中心911响应来自设备的消息并且还与did解析器950通信。这随后将更详细地解释。省略号916表示身份中心911在情况允许时具有任意数目的附加服务。
[0147]
在一个实施例中,设备a 311希望将新设备917添加到组310中。如关于图4所述,用户与安装在设备a 311处的did生命周期管理模块420交互,以启动添加新设备到组310中。在设备a 311启动添加操作之后,安装在新设备917上的did管理模块接收到通知并生成新did 918。然后将新did 918与新设备917相关联,并且将其添加到组310。一旦新设备917被包括在组310中,新did 918就被授予与组did 317相同的许可。当与新did 918相关联的新设备917被添加到组310并被授予访问数据存储装置920的许可范围时,添加与新did 918相关联的新设备917的事务被记录在分布式分类账220中。
[0148]
然而,身份中心911最初并未将新设备917识别为与组310相关联。因此,身份中心911使用消息传递模块940联系did解析器950。发送到did解析器950的消息包括与新设备917相关联的did918。
[0149]
did解析器950是在操作中被配置为搜索分布式分类账220以寻找与did相关联的did文档的服务、应用或模块。在这种情况下,did解析器950使用新设备did 918搜索分布式
分类账220,这导致did解析器950找到对应于新did 918的did文档。did文档对应于图2的did文档210。did文档然后被提供给身份中心911。
[0150]
如先前所讨论的,did文档210包括与对应的did相关联的公钥。为了验证该组授权了新设备did 317,身份中心911使用消息传递模块940向新设备提供密码学质询。该密码学质询被构造成使得只有设备有权访问密钥(例如,私钥或公钥)的设备将能够成功回答质询。
[0151]
应当注意,在可以访问身份中心911之前不需要新设备的用户将任何用户名、密码等提供给身份中心911的提供方(即云存储提供方)的情况下执行此认证新设备的过程。相反,访问是基于did918、did文档以及关联的公钥和私钥以分散式的方式来确定的。由于这些始终在新设备918的控制之下,身份中心911的提供方没有参与,并且因此不知道事务或设备918的用户的任何个人信息。
[0152]
一旦新设备被包括在组310中,新设备就访问did解析器950以访问did文档210。如先前所讨论的,did文档210包括端点213,端点213是指向身份中心911的地址或指针。然后新设备918使用地址或指针来访问身份中心911。
[0153]
有利地,上述过程允许身份中心911和多个设备进行通信并共享数据,而无需用户以常规方式访问身份中心911。相反,使用did314、315、316和918以及did文档以分散式的方式提供通信。这有利地允许用户完全控制过程,并完全控制每个个体设备,同时保护每个用户的个人可标识信息。
[0154]
此外,本文描述的原理还不同于id中心的一些现有实施例,id中心将许可范围授予与特定用户相关联的did。然后,每个用户在多个设备上使用相同的did来访问数据。此外,此类现有的id中心允许一个用户的did将许可范围或子范围授予第二个用户的did。然后,第二个用户的did将许可范围或子范围授予第三个用户的did。在此类现有的id中心中,当用户的设备之一被放错地方或被盗时,需要撤销did。一旦did被撤销,所有用户的设备都会失去对与该did相关联的数据的控制。与此类现有实施例不同,本文描述的原理为每个设备提供了一个did。如果一个设备丢失,则无需撤销授予用户所拥有的设备的组的许可范围,因为许可范围是逐个设备授予的,而不是逐个用户授予的。
[0155]
下面的讨论现在涉及许多方法和执行的方法动作。尽管方法动作在流程图中以特定顺序停止使用或被图示为以特定顺序发生,但是除非特别说明,或者是因为一个动作依赖于在执行该动作之前完成另一动作而是需要特定顺序的,否则不需要特定顺序。
[0156]
图10图示了用于生成did并将其与相关的设备组相关联的示例方法1000的流程图。在一些实施例中,方法1000在设备的管理模块处被实现。在其他实施例中,该方法在设备有权访问的远程服务器处被实现。在另外的实施例中,该方法在id中心处被实现。方法1000包括生成设备组did(动作1001)。然后将设备组did与设备的组相关联(动作1002)。图6和图7图示了用于生成设备组did的示例实施例。
[0157]
对于设备的组中的每一个,生成设备did(动作1003)。在生成设备did之后,然后将设备did与对应设备相关联(动作1004)。图8图示了用于为组中的设备中的每个设备生成设备did的示例实施例。任何其他实施例或算法被实现以生成设备did,只要所生成的设备did通常是唯一的。
[0158]
方法1000还包括向设备组did授予许可范围(动作1005)。响应于向设备组did授予
许可范围,许可范围的子集被授予与组内的对应设备相关联的每个设备did(动作1006)。以上关于图9描述了向设备组did和设备did授予许可范围的示例实施例。
[0159]
在一些实施例中,方法1000还包括将设备添加到组(动作1007)。在一些实施例中,方法1000还包括从组中移除设备(动作1008)。参考图4、图5a和图5b描述了从组中添加和撤销设备的示例实施例。
[0160]
图11图示了用于将设备添加到组的示例方法1100的流程图,其对应于图10的动作1007。在一些实施例中,方法1100在被安装在组内的每个设备处的did生命周期管理模块420处被实现。在其他实施例中,方法1100在被安装在被请求添加的新设备处的did生命周期管理模块420处被实现。在另外的实施例中,方法1100在组内的每个设备可访问的远程服务处被实现。在又一些实施例中,方法1100在组内的每个设备可访问的服务提供方的平台(例如,id中心)处被实现。
[0161]
方法1100包括接收用于将新设备添加到组的请求(动作1101)。然后将该请求发送到组内的至少一个设备(动作1102)。例如,云服务提供方或id中心接收请求,并将请求传递给组内的每个设备。备选地,组内的设备之一上的用户发起请求,然后请求从组内的设备之一被传递到组内的每个其他设备。备选地,用户使用新设备发起请求,并且新设备将请求通知发送到组内的至少另一设备。
[0162]
组内的至少一个设备批准该请求。一旦该至少一个设备批准该请求,该一个设备就向请求设备发送通知。因此,请求设备从至少一个设备接收指示请求被批准的通知(动作1103)。
[0163]
接下来,生成新设备did(1105)。各种实施例被实现以生成新设备did。上面关于图8讨论了得出新设备did的示例实施例。
[0164]
最后,新设备did然后与新设备相关联(1106)并且被授予设备组did所具有的许可范围的子集(在1107)。在一些实施例中,添加新设备did的事务也被记录在分布式分类账中(动作1108),以使得当新设备尝试访问被存储在id中心911处的组数据时,解析器950可以检索和验证被记录在分布式分类账处的新设备did。
[0165]
图12图示了用于从组中移除设备did的示例方法1200的流程图,其对应于图10的动作1008。类似于方法1100,在一些实施例中,方法1200在被安装在组内的每个设备处的did生命周期管理模块420处被实现。在其他实施例中,方法1200在组内的每个设备可访问的远程服务处被实现。在另外的实施例中,方法1200在组内的每个设备可访问的服务提供方的平台(例如,id中心)处被实现。
[0166]
方法1200包括接收从组中移除现有设备的请求(动作1201)。该请求由待移除设备自身发起,或者由组内的其他设备发起。一旦请求被发起,就将请求发送到组内的至少一个其他设备(动作1202)。例如,当设备本身发起请求时,组中的另一设备被通知。当组内的设备请求移除群组内的另一设备时,待移除设备被通知。
[0167]
一旦组内的至少一个其他设备接收到该请求,该至少一个其他设备批准该请求。一旦请求被批准,请求设备从批准设备接收指示请求被批准的通知(动作1203)。响应于批准的接收,撤销先前被授予与待移除设备相关联的设备did的许可范围(动作1204)。与待移除设备相关联的设备did也从组中被移除(动作1205)。例如,did文档被更新以移除与被移除设备相关联的设备did。在一些实施例中,移除事务也被记录在分布式分类账中(动作
1207),以使得当被移除设备再次尝试访问被存储在id中心911中的组数据时,did解析器950将从分布式分类账中检索到移除事务并防止被移除设备访问组数据。
[0168]
对于本文公开的过程和方法,在过程和方法中执行的操作以不同的顺序来实现。此外,所概述的操作仅作为示例而被提供,其中一些操作是可选的,可以被组合成更少的步骤和操作,可以补充另外的操作,或者可以被扩展到附加的操作,而没有偏离所公开的实施例的本质。
[0169]
本发明在不背离其精神或特性的情况下以其他特定形式来体现。所描述的实施例在所有方面都被认为仅是说明性的而不是限制性的。因此,本发明的范围由所附权利要求而不是由前述描述来指示。所有在权利要求的等效含义和范围内的变化都应被包含在其范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献