CN107690798B - 在安全同步系统中自动识别无效参与者 - Google Patents

在安全同步系统中自动识别无效参与者 Download PDF

Info

Publication number
CN107690798B
CN107690798B CN201680033170.7A CN201680033170A CN107690798B CN 107690798 B CN107690798 B CN 107690798B CN 201680033170 A CN201680033170 A CN 201680033170A CN 107690798 B CN107690798 B CN 107690798B
Authority
CN
China
Prior art keywords
synchronization group
identifier
group
peer
devices
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.)
Active
Application number
CN201680033170.7A
Other languages
English (en)
Other versions
CN107690798A (zh
Inventor
R·F·墨菲
Y·L·西艾拉
A·R·威利
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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of CN107690798A publication Critical patent/CN107690798A/zh
Application granted granted Critical
Publication of CN107690798B publication Critical patent/CN107690798B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/065Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/104Grouping of entities
    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明提供了一种识别同步组中的无效参与者的方法。该方法从第一设备的特定于设备的密钥生成第一设备的设备同步组标识符(DSGI)。该方法通过使用第一设备的DSGI将第一设备加入同步组中。在加入所述第一设备之前,该同步组存储已加入同步组的一组设备的一组DSGI。该方法确定存储在同步组中的特定DSGI与第一设备的DSGI相同。该方法将存储在同步组中的特定DSGI识别为同步组的无效参与者的DSGI。

Description

在安全同步系统中自动识别无效参与者
背景技术
同步系统允许在多个设备之间的数据项的安全同步,而无需中央机构能够访问数据项。设备在同步系统中区别于他人识别自身的常用方式是使用公共/私有密钥对,其私有密钥仅保存在设备上。
随时间推移,参与同步的设备组可具有多个“鬼影”或非参与者成员。这些设备是同步系统的有效成员,它们丢失了私有密钥,使得他们无法再次参与。一类非参与者成员由作为同步系统成员的设备引起,并且被擦除并重新引入到同步系统中。这可能是因为所有者选择擦除设备上的所有内容和设置(例如,以将设备临时借给家庭成员),或更换设备的硬盘驱动器并决定重新启动,而不是从备份还原。
非参与者引起性能和电力问题,因为同步系统中的其他设备继续尝试与其同步数据项。非参与者也可能会使管理用户界面杂乱,甚至导致安全问题。例如,设备的所有者可能会被用来查看与活动设备一起显示的不再使用的旧设备。如果有人进入同步系统,所有者可能不那么容易发现攻击者的设备。
发明内容
一些实施方案提供了一种从同步组中移除非参与者成员而不向同步组中的其他设备或同步组外的实体显示出各个设备的身份的新型方法。每个设备都有一个公共密钥和私有密钥对,并使用公共密钥加入同步组。设备的公共密钥存储在与同步组相关联的存储装置中,并用于区别于该组的其他成员识别设备。
当重新配置设备时,从设备存储装置中擦除公共密钥和私有密钥,并且设备不再能够参与同步组。然而,设备的公共密钥保留在与同步组相关联的存储装置中,并且同步组的其他成员仍将尝试将其数据项与设备同步。
在一些实施方案中,同步组中的每个设备使用附加标识符将设备识别为该组的成员。在一些实施方案中,设备同步组标识符是诸如消息认证代码(或消息摘要)的对称签名。在一些实施方案中,密钥推导函数用于从特定于设备的标识符生成加密密钥。然后,加密函数接收加密密钥作为输入并生成设备同步组标识符。由于标识符是从特定于设备的标识符生成的,因此其对于每个设备是唯一的。标识符在每个设备中也是持久性的,并且不被擦除或可以从相同的特定于设备的标识符重新生成。
由于标识符被加密,因此同步组的其他成员和组外的实体不能跟踪任何特定物理设备的标识符。以一定方式生成设备同步组标识符,使得仅能够凭借硬件秘密信息或从硬件确定性推导的秘密来解密、验证或推导标识符,这些硬件在擦除和复原操作期间是持续性的。该要求是针对无法与随机数区分的标识符的(即使当设备标识符密钥已知时),使得该标识符在设备公共标识符改变的情况下不能用于跟踪设备。
当重新配置设备时,将为设备创建一个新的公共密钥和私有密钥对。设备通过使用设备的新公共密钥和与设备加入同步组所使用的先前加密的标识符相同的设备加密标识符重新加入同步组。一旦设备加入同步组,设备将同步组的其他成员的加密标识符与其自己的加密标识符进行比较。如果存在匹配,则确定匹配的加密标识符和相关联的公共密钥是其自己的加密标识符和公共密钥的设备形成该组中的先前成员身份。由于设备已擦除与旧公共密钥相关联的私有密钥,因此设备会从同步组中移除旧公共密钥和与旧密钥相关联的任何信息。当设备的公共密钥在不使用唯一加密标识符的情况下被改变时,设备将不能识别其自己的旧公共密钥并将其从同步组中移除。
上述发明内容旨在用作对本发明的一些实施方案的简单介绍。其并非意味着对在本文档中公开的所有发明主题的介绍或概述。随后的具体实施方式以及在具体实施方式中所参照的附图将进一步描述发明内容中所述的实施方案以及其他实施方案。因此,为了理解该文档所描述的所有实施方案,需要全面审阅发明内容、具体实施方式和附图。此外,要求保护的主题不限于发明内容、具体实施方式以及附图中的示例性的细节,而是由所附权利要求限定,这是因为要求保护的主题能够以其他特定形式实施而不脱离本主题的精神。
附图说明
在所附的权利要求中阐述了本发明的新型特征。然而,出于说明的目的,在以下附图中阐释了本发明的若干实施方案。
图1概念性地示出了根据本发明的一些实施方案的启动同步组并将设备添加到同步组中的示例。
图2概念性地示出了丢失设备的同步组的示例。
图3概念性地示出了同步组,其中随时间推移,所有参与设备已丢失与用于使其加入同步组中的公共密钥相关联的私有密钥。
图4概念性地示出了在本发明的一些实施方案中使用公共密钥和设备同步组标识符将设备加入同步组中。
图5概念性地示出了在本发明的一些实施方案中存储在同步组中的数据(例如,存储在云存储服务的存储设备中和/或每个同步组成员的存储中)。
图6概念性地示出了使用嵌入在设备中的安全处理器生成设备同步组标识符的另选实施方案。
图7概念性地示出了同步组,其中新成员检测与非参与者成员相关联的先前公共密钥作为其自己的密钥,并且从组中去除公共密钥和相关联的非参与者成员。
图8概念性地示出了在本发明的一些实施方案中将设备加入到同步组中并移除同步组中的非参与者成员的过程。
图9概念性地示出了支持具有多个验证和同步子组的系统的一些实施方案的设备的密钥链管理器的软件架构。
图10概念性地示出了根据本发明的一些实施方案的直接P2P网络的网络架构。
图11概念性地示出了由一些实施方案的密钥链管理器存储的密钥链的数据结构。
图12概念性地示出了根据本发明的一些实施方案的间接P2P网络的网络架构。
图13概念性地示出了实现本发明的一些实施方案所利用的电子系统的另一个示例。
具体实施方式
在本发明的以下具体实施方式中,提出并描述了本发明的许多细节、示例和实施方案。然而,对于本领域的技术人员来说将清楚和显而易见的是,本发明并不限于所陈述的实施方案,并且本发明可在没有使用所讨论的一些具体细节和示例的情况下被实施。例如,出于简单和/或说明的目的,相对于特定数量的设备描述了本申请中的多个附图。本领域的普通技术人员将认识到,本发明不限于这些附图中所示的设备数量,并且本发明可用任何数量的不同设备来实践。
一些实施方案提供了识别同步组(也称为同步(synchronization/sync)圆)中的无效参与者的方法。在一些实施方案中,同步组中的每个设备使用标识符将设备识别为该组的成员。在一些实施方案中,设备同步组标识符是诸如消息认证代码的对称签名。在一些实施方案中,密钥推导函数用于从特定于设备的标识符生成加密密钥。然后,加密函数接收加密密钥作为输入并生成设备同步组标识符。由于标识符是从特定于设备的标识符生成的,因此其对于每个设备是唯一的。标识符在每个设备中也是持久性的,并且不被擦除或可以从相同的特定于设备的标识符重新生成。
例如,在一些实施方案中,从特定于设备的标识符(诸如,媒体访问控制(MAC)地址或唯一设备标识符(UDID))推导加密密钥。然后将推导出的加密密钥用作计算用于使设备加入同步组标识符的加密标识符(或密钥)的密钥。该“设备同步组标识符”用于识别设备并被存储在同步系统中(例如,存储在所有成员设备可访问的存储装置中和/或各个成员设备的存储装置中),而不会有直接使用设备的硬件标识符所导致的任何隐私问题(例如,因为用单向函数计算加密的标识符)。此外,在一些实施方案中,设备同步组标识符用于对设备加入同步组所使用的公共密钥(或设备的当前实例化的任何其他短暂属性)进行签名。
当具有新创建的公共/私有密钥对的设备加入同步系统时,设备将其他成员的设备同步组标识符与其自己的设备同步组标识符进行比较。如果设备同步组标识符匹配,则确定匹配的设备同步组标识符和相关联的公共密钥是其自己的设备同步组标识符和公共密钥的新设备形成该组中的先前成员身份。然后设备去除旧公共密钥(例如,设备从与同步组相关联的存储装置中删除旧公共密钥,或者告知其他组成员从其他设备保持同步组所使用的存储装置中删除旧公共密钥)。
图1概念性地示出了根据本发明的一些实施方案的启动同步组并将设备添加到同步组中的示例。该图示出了将两个设备注册到同步组105中的三个阶段101-103。阶段101-103中的每一个阶段示出了同步组105和存储同步组105的数据的存储装置150的概念性描述。在一些实施方案中,存储装置150在云存储服务中实现,如下文更详细地描述。在一些实施方案中,作为同步组105的成员的每个设备(替代或补充云存储服务)将数据的副本本地存储在设备的存储装置150中。为简单起见,图1和下文所述的若干其他示例性附图将存储装置105示出为单个存储装置,但也可在每个组成员设备上单独保持存储装置。
第一阶段101示出了未将设备注册到同步组105中的同步组105。如图所示,同步组105为空,并且存储装置150不包含关于同步组成员的数据。在一些实施方案中,同步组105被链接到云存储服务账户,并且与云存储服务账户相关联的设备(例如,具有用于访问与账户相关联的云存储的应用程序或程序的设备)是用于注册到同步组105中的候选者。在一些此类实施方案中,存储装置150存储用于描述与账户相关联的设备的元数据。
在一些实施方案中,当同步组105为空时,同步组105实际上不存在。在一些这样的实施方案中,当第一设备注册到同步组105中时,创建同步组105。当与云存储服务账户相关联的设备中的一个设备启用设备上的密钥链同步特征时,设备创建同步组105并将其自身注册到同步组105中。
第二阶段102示出了在设备110已注册到同步组中之后的同步组105。如第二阶段102所示,设备A 110被注册到同步组105中,并且存储装置150存储用于将设备A识别为同步组105的成员的数据。为了注册到同步组中,设备A将加密的设备同步组标识符125存储在存储装置150中,以将设备A唯一地识别为同步组105的成员,而不显示出设备的实际身份。设备还将加密密钥(诸如,设备的公共密钥120)存储在存储装置150中。
在一些实施方案中,在同步组105中的或可能潜在地加入同步组105的每个设备使用公共密钥加密算法(例如,RSA算法、椭圆曲线加密(ECC)算法等)生成设备公共/私有密钥对。当设备要区别于其他设备识别自身时,设备使用其自己的私有密钥对发送到其他设备的消息进行签名。其他设备使用设备的公共密钥对消息进行解密,以验证设备的身份。在一些实施方案中,每个设备随机生成设备签署公共/私有密钥对。如此,每个设备会生成一个唯一的设备签署公共/私有密钥对,该公共/私有密钥对不同于任何其他设备生成的设备签署公共/私有密钥对。
在一些实施方案中,当设备意图向同步组中的另一设备发送安全消息以同步数据时,这两个设备使用基于消息的通信协议(例如,非正式(OTR)即时消息)建立安全通信信道。其他实施方案使用基于流的通信协议(例如,安全套接层(SSL))在每对设备之间建立安全通信信道。下文描述了在同步组中的每对设备之间建立安全通信信道的进一步细节。
设备同步组标识符125对于每个设备也是唯一的。每个设备使用对应的加密设备同步组标识符来识别同步组中的设备。应当理解,设备同步组标识符只能由生成标识符的设备验证,因为它是具有所需密钥(由硬件秘密推导)的唯一设备。换句话讲,每个设备可使用对应的设备同步组标识符来仅识别自身。
使用永久性且不可更改的硬件标识符(诸如,媒体访问控制(MAC)地址或唯一设备标识符(UDID))会导致隐私问题。此类硬件标识符可用于跨多个账户和多个所有者跟踪设备。如下文进一步详细描述,一些实施方案使用硬件唯一标识符推导加密密钥。加密密钥可以从特定于设备的标识符(诸如,UDID)或从另一硬件标识符经由密钥推导函数推导出。然后将推导出的密钥用作计算设备的唯一加密标识符(诸如,设备同步组标识符125)的密钥。加密的标识符在设备中是持久性的,并且不被擦除或可以从相同的特定于设备的标识符重新生成。
该设备同步组标识符被存储在同步组中,而不会有直接使用硬件标识符所导致的任何隐私问题。由于设备A 110是注册到同步组105中的第一设备,因此设备A将设备110的公共密钥120和设备同步组标识符125存储在存储装置150中。例如,公共密钥120和设备同步组标识符125被存储在存储装置150的表140中。
第三阶段103示出了注册到同步组105中的另一设备。如图所示,设备B 115已加入同步组105。存储装置150存储设备115的公共密钥130和设备同步组标识符135。一旦设备A和设备B成为同步组105的成员,这两个设备的数据(诸如,密钥链数据)就会被同步。
为了使设备B注册到同步组105中,一些实施方案要求(1)设备B通过将请求存储在存储装置150中来提交加入同步组105的请求,以及(2)设备A批准该请求。不同的实施方案定义了批准加入同步组的请求的不同要求。例如,一些实施方案仅要求一个作为同步组成员的设备批准请求,而其他实施方案要求作为同步组成员的每个设备批准该请求。
在下面的章节中描述了本发明的若干更详细的实施方案。第I节描述了识别和移除同步组的非参与者成员。接下来,第II节描述了使用多个验证子组和同步子组的设备组,而第III节概念性地描述了根据本发明的一些实施方案的示例性P2P网络架构的细节。最后,第VI节描述了实现本发明的一些实施方案的电子系统。
I.从同步组移除非参与者
如所提及的,当设备加入同步组并在该同步组中识别自身所使用的密钥被擦除时,同步组仍然认为该设备是该组的有效成员,非参与者可能是一个问题。即使设备已使用一组新密钥重新加入组后,也可能会发生这种情况。图2概念性地示出了丢失设备的同步组205的示例。该图以三个阶段201-203示出。在阶段201中,三个设备210-220是同步组205的成员。在阶段202中,设备A 210的公共/私有密钥对被擦除。例如,设备A的硬盘驱动器被替换而未复原备份,或者公共/私有密钥被故意擦除。
如图所示,虽然设备A 210已丢失与公共密钥相关联的私有密钥并且不能使用公共密钥访问同步组205,但公共密钥的副本仍然存储在同步组中(例如,存储在所有成员设备可访问的存储装置中和/或各个成员设备的存储装置中)。这被概念性地示出为虚线框230,以指示同步组的其他成员仍将设备A视为成员,并尝试将数据项与设备A同步。
在阶段203中,设备A重新加入同步组。例如,设备A创建新的公共/私有密钥对,并使用新公共密钥加入同步组205。如图所示,虽然设备A 210已重新加入同步组,但包括设备A 210在内的所有组成员仍将尝试与设备A的“鬼影”230同步,因为设备A的旧公共密钥仍存储在同步组中。
图3概念性地示出了同步组,其中随时间推移,所有参与设备已丢失与用于使其加入同步组中的公共密钥相关联的私有密钥。该图以四个阶段301-304示出。阶段301类似于图2中的阶段201,其中三个设备210-220是同步组205的成员。在阶段302中,设备210加入组所使用的公共/私有密钥对被擦除。例如,设备的硬盘驱动器被替换,而未从备份复原。结果,虽然设备A 210已丢失与其公共密钥相关联的私有密钥并且不能使用公共密钥访问同步组205,但公共密钥的副本仍然存储在同步组中(例如,存储在所有成员设备可访问的存储装置中和/或各个成员设备的存储装置中)。这被概念性地示出为虚线框310,以指示同步组的其他成员仍将设备A视为成员,并尝试将数据项与其同步。
在阶段303中,设备215成为非参与者。例如,设备215丢失或被去除。结果,阶段303中的同步组205只有一个有效参与者220。该组的其他成员310和315是非参与者(或无效)成员。
在阶段304中,设备C 210也成为非参与者。例如,一些系统要求设备保持一定的安全级别(例如,密码中的一定数量的字符等),以便成为同步组的成员。符合安全级别标准的设备可以加入同步组。如果之后设备不再符合安全标准(例如,设备将密码更改为包含少于所需的字符数),则设备将自动从同步组中被排除。结果,阶段304中的同步组仅包括非参与者310-320。由于没有成员设备可以访问同步组并批准新设备加入组,因此没有设备可加入组。同步组205必须被删除(或保持不可访问),并且必须启动新的同步组。
如上所述,作为同步组成员的设备使用公共密钥以及设备同步组标识符来加入同步组。图4概念性地示出了在本发明的一些实施方案中使用公共密钥和设备同步组标识符将设备加入同步组中。如图所示,设备420使用诸如RSA算法、椭圆曲线加密(ECC)算法等的公共/私有密钥生成函数415来生成公共密钥405和私有密钥410。在一些实施方案中,在设备静止时、在现有的公共/私有密钥对被故意擦除时或者在设备硬盘驱动器被替换而未从备份复原内容时,生成新的公共/私有密钥对。
设备还生成唯一标识符,该唯一标识符用于将设备识别为同步组的成员,但不能用于区别于同步组中的其他设备或同步组外的实体识别特定设备。例如,标识符可用于将设备识别为具有标识符“abc”的识别或识别为同步组的成员编号5,但不识别为Joe的移动电话或具有媒体访问控制(MAC)地址“03:0b:96:7d:68:12”的设备或具有特定唯一设备标识符(UDID)的设备。换句话讲,标识符只能用于识别同步组中的设备,但不能映射到可被跟踪和识别的实际物理设备。使用未加密的持久性且不可更改的硬件标识符会导致隐私问题,因为这种标识符可用于跨多个账户和多个所有者跟踪设备。
在图4的示例中,密钥推导函数425用于从特定于设备的标识符435(诸如,MAC地址或UDID)生成加密密钥430。由于MAC地址通过互联网流量被暴露,因此它不能单独履行特定于设备的硬件密钥的要求。然而,MAC地址可用于推导UUID(其对于设备是唯一的)或组标识符(GID)(其在一类产品之间共享)。
在一些实施方案中,特定于设备的标识符435是在计算上禁止通过试错法找到的高熵密钥种子。使用加密函数440(诸如,基于散列值的加密函数)生成设备同步组标识符。在一些实施方案中,设备同步组标识符是消息认证代码(或消息摘要)。在一些实施方案中,加密函数440是基于散列值的加密函数,诸如安全散列算法1(SHA-1),其接收加密密钥430作为输入(该输入有时被称为消息)并以一定方式生成输出(称为散列值或消息摘要),使得几乎不可能由散列值重新创建输入数据。一些实施方案使用其他技术来为加密函数440提供输入。例如,一些实施方案不利用密钥推导函数425,并且直接提供特定于设备的标识符435作为对加密函数440的输入。
然后,设备420发送(例如,通过密钥链管理器450)将同步组加入同步组460的请求。密钥链管理器的进一步细节在下面的第II节和第III节中提供。加入请求包括设备的公共密钥405和设备同步组标识符445。在一些实施方案中,已存在于同步组460中的设备470-475中的任一设备可授权设备420加入同步组460。在其他实施方案中,所有成员设备必须授权新设备加入组。在一些实施方案中,设备同步组标识符445用于对设备的公共密钥405进行签名。
图5概念性地示出了在本发明的一些实施方案中存储在同步组中的数据(例如,存储在云存储服务的存储设备中和/或每个同步组成员的存储中)。如图所示,存储器550包括诸如表555的结构,该结构存储同步组460的成员的公共密钥508、515和405以及设备同步组标识符510、520和445。
图6概念性地示出了使用嵌入在设备中的安全处理器生成设备同步组标识符的另选实施方案。如图所示,设备620包括嵌入式安全处理器605。此类安全处理器的示例是用于保护设备的保密数据的安全区域处理器(SEP)。在一些实施方案中,SEP包括处理器和一个或多个安全外围设备。在一些实施方案中,SEP与设备的其余部分(例如,与设备中的一个或多个中央处理单元(CPU)或应用处理器(AP))隔离开。在一些实施方案中,对SEP的访问由硬件严格控制。例如,一些实施方案提供了一种机制,其中CPU/AP只能访问SEP中的邮箱位置。CPU/AP向邮箱写入消息,其中SEP读取该消息并作出响应。在一些实施方案中,SEP包括下列中的一者或多者:安全密钥管理、引导和/或电力管理的SEP控制以及存储器中的单独信任区域。
类似于图4中的设备420,设备620使用诸如RSA算法、椭圆曲线加密(ECC)算法等的公共/私有密钥生成函数415来生成公共密钥405和私有密钥410。在一些实施方案中,在现有的公共/私有密钥对被故意擦除时或者在设备硬盘驱动器被替换而未从备份复原内容时,生成新的公共/私有密钥对。
安全嵌入式处理器620包括在设备静止、重新配置设备或设备的硬盘驱动器被擦除之后存留的安全密钥635。安全嵌入式处理器620使用密钥推导函数625从安全密钥635生成加密密钥630。使用加密函数640(诸如,基于散列值的加密函数)由加密密钥630生成设备同步组标识符645。在一些实施方案中,SEP使用其他技术为加密函数640提供输入。例如,一些实施方案不利用密钥推导函数625,并且直接提供特定于设备的标识符635作为对加密函数640的输入。
当设备将要加入同步组时,密钥链管理器650从安全处理器605发出请求并接收设备同步组标识符645。然后,密钥链管理器650发出将同步组加入同步组460的请求。加入请求包括设备的公共密钥405和设备的同步组标识符代码645。在一些实施方案中,已存在于同步组460中的设备470-475中的任一设备可授权设备620加入同步组460。在其他实施方案中,所有成员设备必须授权新设备加入组。在一些实施方案中,设备同步组标识符645用于对设备的公共密钥405进行签名。
如上文参考图2所述,一旦作为同步组成员的设备丢失用于加入同步组的公共密钥,设备就必须通过使用新的公共密钥重新加入同步组。在现有技术中,设备的先前公共密钥保留在同步组存储装置中,并且同步组成员仍然将具有先前公共密钥的非参与者(或无效成员)设备视为同步组的成员,并尝试将数据项与非参与者成员同步。
图7概念性地示出了同步组,其中新成员检测与非参与者成员相关联的先前公共密钥作为其自己的密钥,并且从组中去除公共密钥和相关联的非参与者成员。该图以三个阶段701-703示出。在阶段701中,设备710-720是同步组705的成员。成员设备710-720的公共密钥730-740和设备同步组标识符745-750被存储在存储装置770中。
在阶段702中,设备A 710的公共密钥从设备的存储装置中被擦除。例如,重新配置设备而不从备份复原,或者明确地从设备中删除公共密钥。结果,设备710不能使用旧公共密钥参与同步组。然而,设备710的公共密钥的副本730和设备同步组标识符的副本735仍被存储在存储装置770中。同步组705的其他成员715-720仍然通过公共密钥730和设备同步组标识符745识别组中的成员790。然而,该成员730是非参与者或无效成员,因为实际设备710不再能够访问公共密钥730。
在阶段703中,设备710使用新公共密钥760重新加入同步组。由于设备使用(如上文参考图4至图6所述)每次重新配置设备、更换硬盘驱动器和/或擦除设备的公共密钥时都不会改变的特定于设备的标识符,因此设备的设备同步组标识符745不会更改。新公共密钥760和设备同步组标识符745作为用于识别同步组705的新成员的信息存储在存储装置770中。
如阶段703中的箭头780和785概念性地示出,设备A 710确定另一个组成员的设备同步组标识符与设备的同步组标识符匹配。设备从同步组中的先前成员身份将其他组成员确定为其本身。由于设备A 710不再具有与公共密钥730相关联的私有密钥,因此设备通过从存储装置770中移除信息(例如,公共密钥730)(或通过告知其他成员从其存储装置中移除旧公共密钥)来从同步组中去除非参与者成员730。
图8概念性地示出了在本发明的一些实施方案中将设备加入到同步组中并移除同步组中的非参与者成员的过程800。如图所示,该过程(在805处)创建设备的公共密钥和私有密钥对。然后,该过程(在810处)从设备相关密钥创建设备同步组标识符。例如,设备使用上文参考图4和图6所述方法中的任一方法。
然后,该过程(在815处)使用公共密钥和设备同步组标识符加入同步组。接着,该过程(在820处)确定同步组中的任何其他成员是否使用相同的设备同步组标识符。如果不是,该过程结束。否则,该过程(在825处)确定其他成员是同步组的非参与者(或无效)成员。由于设备同步组标识符由特定于设备的标识符生成,并且对于每个设备是唯一的,因此该过程确定该其他成员实际上是先前已使用已被擦除的公共密钥加入同步组的相同设备。
然后,该过程(在830处)通过从同步组存储装置中去除与非参与者设备相关联的所有信息(包括旧公共密钥),从而移除非参与者成员。随后,该过程结束。
II.多个同步组
在上述示例中,用户设备均参与单个同步组。然而,一些实施方案定义了若干同步子组来同步不同的多组密钥链数据,只有当设备满足子组的要求时,设备才能加入特定子组。具体地讲,一些实施方案定义了如果设备满足验证子组的成员身份要求则设备可以加入的验证子组,并使用验证子组定义设备参与的同步子组。在一些实施方案中,不同的同步子组定义了参与同步子组的设备经由同步过程彼此共享的不同类型的数据项。
在一些实施方案中,该组相关电子设备包括用户与第三方服务(例如,与用户的特定云服务账户)相关联的所有设备。有关云服务账户密码的信息用作一些实施方案的至少一个验证子组中的成员身份的要求,而一些实施方案定义了各种设备可加入的附加验证子组。不同的实施方案定义了用于连接此类附加验证子组的不同的多组要求,包括有关设备具有特定操作系统、具有特定级别的密码强度、具有安全处理器或其他设备配置属性的要求。一些实施方案要求设备证明拥有特定加密秘密以便加入特定验证子组(例如,拥有提供有企业简介的密钥以便加入由企业定义的验证子组),或者用户在已建立在验证子组中的设备上验证新设备的成员身份。此外,一些验证子组可要求新设备经由带外过程(例如,通过使用第三方进行验证)来将自身的属性验证到已建立的设备。
图9概念性地示出了支持具有多个验证和同步子组的此类系统的一些实施方案的设备900的密钥链管理器950的软件架构。在一些实施方案中,密钥链管理器950执行上述密钥链管理器450或650的功能。这些验证子组也被称为环,并且同步子组也被称为视图。设备900是与云服务账户相关联的若干设备之一。对于本节中的讨论,将假设通过视图加入环并共享数据项的各种设备都与单个用户相关联(例如,经由云服务账户或其他用户验证机制)。因此,除设备900之外,图9还示出了一组附加设备(D2-DN)905。这些设备可以是能够存储数据并且与网络通信的任何不同类型的电子设备。例如,这些设备可包括智能电话、平板电脑、膝上型电脑和/或台式计算机、智能手表、机顶盒(独立于电视或集成到电视中)、在另一设备上操作的虚拟设备(例如,虚拟机)等。
如图所示,密钥链管理器950包括同步引擎910、环评估器915和视图评估器920。此外,密钥链管理器900包括视图和环要求945。在一些实施方案中,视图和环要求可以是存储在物理存储装置(例如,硬盘、固态存储器、随机存取存储器等)中或嵌入到模块的代码中的可修改数据。例如,如果视图要求是固定的,则此信息可能是视图评估器的部分,而不是通过这些模块从存储装置拉取的单独数据。
此外,设备900包括密钥链数据存储装置935以及密钥和设备ID存储装置940。在一些实施方案中,密钥链数据存储装置935存储作为在设备900和另一设备905之间同步的数据项的密钥链数据项。在一些实施方案中,这些数据项被存储在用与设备相关联的公共密钥加密的设备上(并且存储在用其他设备的公共密钥加密的那些其他设备上)。此外,在一些实施方案中,存储在设备上的每个数据项被标记为属于一个或多个视图(根据定义数据项属于哪些视图的一组视图要求)。
在一些实施方案中,密钥和设备同步组ID存储装置940存储设备用于数据存储、数据同步和环成员身份加入/验证的各种密钥。例如,在一些实施方案中,该存储装置包括公共和私有密钥405和410以及设备同步组标识符445。在一些实施方案中,密钥存储装置940还可存储环签署密钥(例如,从共享用户凭据生成的密钥(诸如,云服务账户密码)、用于加入各种不同环的企业或其他密钥)以及用于在设备之间传输期间保护同步数据项的密钥。在一些实施方案中,这些密钥可存储在设备900上的各种不同位置中,而不是在单个存储装置中。例如,一些密钥可存储在与设备900的标准操作分开的安全处理器中。
视图和环要求存储装置945概念性地存储由第三方开发人员、设备制造商或用户定义的不同环的要求。这些要求可包括拥有各种凭据和/或加密密钥(例如,共享用户密码或其他凭据、企业密钥等)、各种设备和/或应用属性(例如,密码长度、操作系统、拥有安全处理器、应用配置等)的生效、各种属性(例如,操作系统、设备有效性等)的带外验证或各种用户动作(例如,输入另一设备上的一个设备上示出的代码、在另一设备附近移动一个设备、使用另一设备拍摄一个设备的图片等)。存储装置945还存储视图要求,其在一些实施方案中识别特定设备(即,设备900或其他设备905之一)必须是哪个环的成员才能参与每个不同视图。此外,一些实施方案的存储装置945包括视图描述,其针对每个视图,识别哪些类型的数据项属于该视图。该视图描述可基于各种特征识别视图的数据项,包括从哪个应用程序接收数据项(例如,第一视图的来自Wi-Fi应用程序的密码、第二视图的来自web浏览器应用程序的密码)、密码与哪个万维网域相关联(例如,来自被分配到特定视图的金融网站域综合列表的密码)。在一些实施方案中,视图描述简单地指定被标记为属于特定视图的数据项,并且用户在首次输入数据项时从视图列表中进行选择。
环评估器915(i)为设备900生成加入环的请求,并且(ii)评估来自其他设备905的加入设备900已成为其成员的环的请求。为了生成请求,一些实施方案的环评估器915使用环要求来确定设备900何时满足环的成员身份标准。环要求可以是环评估器代码的部分(例如,如果由设备制造商硬编码)或从存储装置945检索(例如,如果由设备的用户或由第三方开发人员定义)。在一些实施方案中,环评估器915周期性地进行检查以确定设备900是否已以一定方式改变,使得它满足其尚未成为成员的环的要求,或者不再满足其已成为成员的环的要求。在其他实施方案中,环评估器915以事件驱动的方式操作。也就是说,当设备属性(或影响环成员身份的其他标准)改变时,通知环评估器915以确定设备的环状态是否应当改变。
当环评估器915识别出设备满足加入新环的标准(而不是任何请求驱动的动作,诸如用户批准环成员身份或从设备905中的一个设备携带代码到设备900(或反之亦然))时,环评估器915使用环要求所需的任何密钥生成并签署环加入请求970(例如,用作环的设备身份的部分的设备公共密钥和设备同步组标识符、设备私有密钥和/或用于签署请求的任何特定于环的密钥等)。此外,当确定设备不应再是特定环的成员时,环评估器915还可向其他设备发送通知。
环评估器915还验证从其他设备905接收的环加入请求。与设备900一样,当其他设备中的一个设备确定其满足加入环的标准时,该设备生成环加入请求并发送到环中的其他设备(在一些实施方案中,每个设备存储每个环中的设备的列表,包括其未成为成员的环)。当设备900接收到这样的请求时,环评估器915验证是否应允许请求设备进入其要求加入的环。这可能需要验证请求已使用适当的密钥进行签署,验证是否已满足任何带外标准或执行带外检查(例如,检查请求设备是否为有效设备、设备900上生成的代码是否已正确输入到请求设备上等)、设备是否已正确认定其加入环的标准、设备900的用户是否已批准请求设备等。当环加入请求被验证时,环评估器915将环状态消息(未示出)发送到环中的其他设备905。在一些实施方案中,环状态消息是环中的设备的列表,包括最近添加的设备。这用于通知请求设备它已成功加入环,并通知其他设备,设备900已批准请求设备的成员身份(因此它们不需要单独处理成员身份请求)。在一些实施方案中,该通知消息用特定于环的密钥对的私有密钥(例如,用于签署成员身份请求的密钥)进行签名。
环评估器915还使视图评估器920定期知悉设备900以及其他设备905的当前环状态980。在一些实施方案中,视图评估器920根据需要从环评估器915(或从环评估器存储该信息的存储装置)请求该信息。视图评估器920负责确定哪些设备(包括设备900和其他设备905)参与为该组设备定义的每个不同视图。具体地讲,在一些实施方案中,视图评估器确定(在任何给定的时间点,基于所有设备的当前环成员身份状态)视图和设备之间的映射(即,对于每个设备,设备参与哪个视图;或对于每个视图,哪个设备参与)。视图评估器920基于视图要求进行该确定,该视图要求再次可由设备制造商编码到视图评估器中或者是在各种不同实施方案中由第三方开发人员和/或用户生成的可变信息。
在一些实施方案中,同步引擎910负责将视图标记的密钥链数据项与其他设备905同步,以及传达环加入请求和通知。在一些实施方案中,同步引擎910确定它应当使将数据项与另一设备同步,并且从视图评估器920接收特定的其他设备参与的视图的列表990以及每个视图的任何特殊信道要求。同步引擎910从密钥链数据存储装置935检索属于正确视图的视图标记的密钥链数据项960,并经由安全信道将这些数据项同步到另一设备。在一些实施方案中,这需要移除在设备上存储期间使用的密钥链数据项上的加密,并使用用于安全信道的共享密钥重新加密密钥链数据项。
因此,设备可属于多个环(验证子组),并参与多个视图(同步子组)的同步过程。在一些实施方案中,使用设备组标识符和公共密钥加入环,因此设备(例如,设备上的环评估器)监视环成员身份,以确定重复设备是否是成员(基于具有不同公共密钥的重复设备ID)。在这种情况下,设备会从环成员身份中删除旧的重复设备,这继而将该设备从需要该特定环的成员身份的视图中移除。一些实施方案的环和视图在2015年5月31日提交的美国临时专利申请62/168,893以及同时提交的标题为“Synchronization and VerificationGroups Among Related Devices”且代理人案卷号为APLE.P0655的美国申请14/872,013中更详细地描述,这两篇专利申请以引用方式并入本文。
III.对等网络架构
一些实施方案通过对等(P2P)网络在作为同步组成员的设备之间同步密钥链。不同实施方案的P2P网络使用不同的网络架构来实现,以便于促进同步组中的设备之间的通信。下图示出了P2P网络架构的不同具体实施的若干示例。
图10概念性地示出了根据本发明的一些实施方案的直接P2P网络的网络架构。在该示例中,设备A-C 1001-1003是同步组的成员。如图所示,设备A-C中的每个设备包括用于存储密码的存储装置1010和密钥链管理器1005。在一些实施方案中,密钥链管理器1005负责执行用于促进设备A-C之间的密钥链数据同步的功能。
在一些实施方案中,密钥链是定义的数据集合。密钥链中的数据项的示例包括下列中的一者或多者:私有密钥;证书;安全说明;用于访问网站、应用程序、网络、银行账户、信用卡的用户名、密码和/或帐号;其他类型的密码和机密信息;有关设备账户的信息,诸如电子邮件、联系人、日历和消息);以及期望在一组不同设备之间共享的任何其他信息。
在一些实施方案中,密钥链管理器生成并存储表示密钥链的数据结构。图11概念性地示出了由一些实施方案的密钥链管理器存储的密钥链的数据结构1105。如图所示,数据结构1105包括密钥链标识符(ID)1110、密钥链项1-N和访问数据1115。密钥链ID 1110是用于识别密钥链1105的唯一标识符。访问数据1115用于控制对密钥链1105本身的访问(例如,哪些应用程序可访问密钥链1105和/或哪些操作(例如,读取、写入、删除等)可在密钥链1105上执行等)并且在结构上与下文所述的访问数据1135相似。
如图11所示,密钥链项1120表示密钥链1105的密钥链项1。密钥链项1120包括密钥链项ID 1125、数据1130、属性1-M、访问数据1135(也称为访问对象)。密钥链项ID 1125是用于识别密钥链项1120的唯一标识符。
数据1130是实际数据值和/或密钥链项1120的值。例如,如果密钥链1120表示密码,则数据1130存储密码的值(例如,字母数字字符串)。在一些实施方案中,当密钥链管理器存储数据时,密钥链管理器加密某些类型的密钥链项(例如,密码、私有密钥等)的数据。对于其他类型的密钥链项(例如,证书)的数据,密钥链管理器仅存储数据而不加密数据。
密钥链项1120的属性1-M用于存储描述密钥链项1120的元数据。不同类型的密钥链项具有不同的属性集。例如,互联网密码具有包括诸如安全域、协议类型(例如,超文本传输协议(HTTP)、超文本传输安全协议(HTTPS)、文件传输协议(FTP)等)、路径(例如,互联网资源的统一资源定位符(URL))等的属性。
一些实施方案中的每个密钥链项包括指示对密钥链项的最近修改的时间和日期(也称为时间戳)的日期字段属性。在一些实施方案中,每个密钥链项还包括用于指定密钥链项是已被删除的密钥链项(也称为墓碑)的属性。当属性指定密钥链项是墓碑时,密钥链管理器保持密钥链项的日期字段,但密钥链管理器将密钥链项数据1130的值设置为空或空白。在一些实施方案中,由解决冲突密钥链项得到的密钥链项包括属性集,其包括(1)指示密钥链项是冲突解决结果的标记,(2)用于解决冲突的冲突解决程序的版本号,以及(3)密钥链项被解决的冲突密钥链项(也称为父密钥链项)。在一些实施方案中,该属性集被称为密钥链项的冲突解决元数据。
在一些实施方案中,将密钥链项的属性或属性子集用作用于唯一地识别密钥链项的主要密钥。也就是说,具有相同主要密钥的两个密钥链项被认为是相同的密钥链项(不管密钥链项的数据的值是否相同)。
访问数据1135用于控制对密钥链项1120的访问。如图所示,访问数据1135包括用于控制对密钥链项1120的访问的访问控制列表(ACL)条目1-K。图11示出了表示访问数据1135的ACL条目1的ACL条目1140。ACL条目1140包括授权标签1145,该授权标签指定可在密钥链项1120上执行的操作(例如,读取、写入、删除、解密、认证等)。在该示例中,授权标签1145包括授权标签1-H。
此外,ACL条目1140包括可信应用程序1150的列表。如图所示,可信应用程序1150的列表包括应用程序ID 1-J。每个应用程序ID是用于识别可在没有用户授权的情况下执行授权标签1145所指定的操作的特定应用程序的唯一标识符。
本领域的普通技术人员将认识到,密钥链数据结构1150仅为密钥链管理器可用于存储密钥链的必要信息的一种可能的数据结构。例如,不同实施方案可存储附加的或更少的信息、以不同顺序存储信息等等。
重新参照图10,在一些实施方案中,密钥链管理器1005处理设备向同步组中的注册,在组中的设备之间同步密码,解决冲突密码之间的冲突,并提供用于在设备A-C之间传输数据的安全通信信道等等。
如图10所示,设备A-C通过具有完全连接的网格拓扑的覆盖网络彼此通信。这样,设备A-C中的每个设备可与其他设备中的每个设备直接通信。也就是说,设备A可与设备B和C直接通信,设备B能够与设备A和C直接通信,设备C可与设备A和B直接通信。如图所示,使用P2P网络创建同步组1050,并且一些或所有设备1001-1003可以加入。在图10的示例中,设备1001和1002已加入同步组1050,并且保持类似于上述数据结构550和770的数据结构1010来存储同步组的成员的信息(例如,公共密钥和设备同步组标识符)。
一些实施方案提供安全传输层以保护设备彼此通信的数据。对于该示例,设备A-C通过在每对设备A-C之间建立的安全通信信道彼此通信。安全通信信道可使用任何数量的不同协议来实现,诸如基于消息的通信协议(例如,OTR即时消息)、基于流的通信协议(例如,SSL)等。
此外,每个单独的设备使用设备自己的公共密钥和设备的用户的公共密钥来加密存储在设备上的任何数据项。在一些实施方案中,同步组中的所有设备属于相同的用户,并且设备的用户的公共密钥在所有设备中是相同的。
图12概念性地示出了根据本发明的一些实施方案的间接P2P网络的网络架构。在该示例中,设备A-C 1001-1003是同步组的成员,并且设备A-C中的每个设备包括存储装置1010和密钥链管理器1005。
如图12所示,设备A-C通过具有星形拓扑的覆盖网络彼此通信。具体地讲,设备A-C通过云服务1205彼此通信,该云服务用作星形拓扑的中心并提供用于存储数据的云存储服务以及其他云服务(例如,云计算服务)。例如,当设备A希望将数据传送到设备B时,设备A将数据存储在云服务1205中,云服务1205通知(例如,经由推送通知服务)设备B关于数据,并且设备B从云服务1205检索数据。在一些实施方案中,云服务器组1235控制云服务的存储装置1210-1230并提供计算服务。
如图所示,云服务1205包括一组云存储服务器1235。云服务可包括一个或多个其他服务器,例如应用服务器、网络服务器等,为简单起见,未示出服务器。如图所示,云存储服务器1235包括一个或多个存储装置1210-1230。本领域的普通技术人员将认识到,图12所示的存储装置仅仅是由云服务提供的存储装置的示例。
如图所示,使用P2P网络创建同步组1280,并且一些或全部设备1001-1003可以加入。在图12的示例中,云服务存储关于同步组的信息。在其他实施方案中,作为补充或替代,作为同步组成员的每个单独设备存储关于同步组的信息。图12示出了其中云服务存储同步信息的实施方案。在每个成员设备中存储信息的实施方案在每个单独设备中保持类似的示例性信息。
如图所示,在一些实施方案中,云服务将用于指定作为同步组成员的设备的同步组名称和同步组设备列表存储在存储装置1210中。在一些实施方案中,通过唯一地识别设备的数据来指定设备。这样的数据的示例包括用于认证设备的身份、设备的设备类型(例如,台式计算机、平板电脑、智能电话等)、设备的名称等或任何数量的此类数据的组合的设备签署公共/私有密钥对的公共密钥。
云服务1205还将用户签名存储在存储装置1215中。一些实施方案中的用户签名是用于将用户的身份认证为消息、文档或任何其他类型的数据的签名者的数字签名。在一些实施方案中,同步组被链接到云服务账户,并且与云服务账户相关联的设备(例如,具有用于访问与账户相关联的云服务的应用程序或程序的设备)是用于注册到同步组中的候选者。在一些此类实施方案中,存储装置1215包括使用基于云服务账户的密码生成的用户签署公共密钥/私有密钥对的私有密钥签署的签名,以指示云服务账户的用户是签名者。存储在存储装置1215中的用户签名的示例包括使用用户签署公共/私有密钥对的私有密钥签署的同步组设备列表的签名、使用用户签署密钥对的私有密钥签署的注册请求的签名和/或用于验证云服务账户的用户的身份的任何其他签名。
图12还示出了云服务1205将设备签名存储在存储装置1220中。在一些实施方案中,设备签名是用于将同步组中的设备的身份认证为消息、文档或任何其他类型的数据的签名者的数字签名。例如,在一些实施方案中,存储装置1220包括使用属于作为同步组成员的设备的设备签署公共/私有密钥对的私有密钥签署的同步组设备列表的签名。此类签名指示签名设备将同步组设备列表中的设备的列表确认为同步组的成员。在一些实施方案中,当同步组处于稳定状态时(例如,没有注册请求待定或未被批准),对于作为同步组成员的每个设备,存储装置1220中的设备签名包括使用设备签署公共/私有密钥对的私有密钥签署的同步组设备列表的签名。也就是说,在这种情况下,签名总体表示同步组设备列表中列出的每个设备都同意同步组设备列表中列出的设备是同步组的成员。
在一些实施方案中,云服务1205将设备公共密钥和设备同步组标识符存储在类似于上述存储装置550和770的存储装置1240中。此外,云服务1205将密钥链数据存储在存储装置1225中以在同步组中的设备之间同步密钥链,并且将其他数据存储在存储装置1230中,该其他数据可包括用户签署公共/私有密钥对的公共密钥、在同步组的设备之间共享的用于生成用户签署密钥对的随机字符串(例如,256位串)以及待定注册请求列表。在一些实施方案中,云服务1205将存储装置1210-1240实现为密钥值存储装置。
尽管存储装置1210-1240在图12中被示出为单独的存储装置,但在一些实施方案中,存储装置1210-1240被实现为单个存储装置,而在其他实施方案中,存储装置1210-1240在多个存储器中实现。
在一些实施方案中,上文参考图10所述的安全传输层用于保护设备通过云服务1205彼此通信的数据。也就是说,当设备A-C通过在每对设备A-C之间建立的安全通信信道彼此通信时,设备A-C使用云服务1205作为用于传输通信的机制。一些实施方案的安全通信信道可以在一些实施方案中使用任何数量的不同协议(例如,基于消息的通信协议(例如,OTR即时消息)、基于流的通信协议(例如,SSL)等)来实现。
IV.电子系统
上文所述的特征和应用程序中的许多可被实现为被指定为在计算机可读存储介质(还称为计算机可读介质)上记录的指令集的软件过程。当这些指令由一个或多个计算或处理单元(例如,一个或多个处理器、处理器的内核或其他处理单元)执行时,这些指令使得一个或多个处理单元执行指令中所指示的动作。计算机可读介质的示例包括但不限于CD-ROM、闪存驱动器、随机存取存储器(RAM)芯片、硬盘驱动器、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)等。计算机可读介质不包括无线地传送或通过有线连接的载波和电信号。
在本说明书中,术语“软件”意在包括驻留在只读存储器中的固件或者存储在磁性存储设备中的应用程序,该固件或应用程序可被读取到存储器中以用于由处理器进行处理。另外,在一些实施方案中,可在保留不同的软件发明的同时,将多个软件发明实现为更大程序的子部分。在一些实施方案中,还可将多个软件发明实现为独立程序。最后,共同实施本文所述的软件发明的单独程序的任何组合均在本发明的范围内。在一些实施方案中,当被安装以在一个或多个电子系统上运行时,软件程序定义执行和施行软件程序的操作的一个或多个特定机器具体实施。
图13概念性地示出了实现本发明的一些实施方案所利用的电子系统1300的另一个示例。电子系统1300可为计算机(例如,台式计算机、个人计算机、平板电脑等)、电话、PDA或任何其他种类的电子或计算设备。此类电子系统包括各种类型的计算机可读介质以及用于各种其他类型的计算机可读介质的接口。电子系统1300包括总线1305、一个或多个处理单元1310、系统存储器1320、网络1325、只读存储器1330、永久性存储设备1335、输入设备1340和输出设备1345。
总线1305总体表示在通信上连接电子系统1300的许多内部设备的所有系统、外围设备和芯片组总线。例如,总线1305将一个或多个处理单元1310与只读存储器1330、系统存储器1320和永久性存储设备1335可通信地连接。
处理单元1310从这些各种存储器单元检索要执行的指令和要处理的数据,以便执行本发明的过程。在不同实施方案中,一个或多个处理单元可以是单个处理器或多核处理器。
只读存储器(ROM)1330存储一个或多个处理单元1310以及电子系统的其他模块所需的静态数据和指令。另一方面,永久性存储设备1335是读写存储器设备。该设备是即使在电子系统1300关闭时也存储指令和数据的非易失性存储器单元。本发明的一些实施方案将海量存储设备(诸如,磁盘或光盘及其对应硬盘驱动器、集成式闪存存储器)用作永久性存储设备1335。
其他实施方案将可移动的存储设备(诸如,软盘、闪存存储器设备等,及其对应驱动器)用作永久性存储设备。与永久性存储设备1335一样,系统存储器1320也是读写存储器设备。但是,与存储设备1335不同的是,系统存储器1320是易失性读写存储器,诸如随机存取存储器。系统存储器1320存储处理器运行时所需的指令和数据中的一些。在一些实施方案中,本发明的过程存储在系统存储器1320、永久性存储设备1335和/或只读存储器1330中。例如,各种存储器单元包括用于根据一些实施方案处理多媒体片段的指令。一个或多个处理单元1310从这些各种存储器单元检索将要执行的指令以及将要处理的数据,以便执行一些实施方案的过程。
总线1105还连接至输入和输出设备1340和1345。输入设备1340使得用户能够将信息传达至电子系统并且选择至电子系统的命令。输入设备1340包括字母数字键盘和指向设备(也被称为“光标控制设备”)、相机(例如,网络相机)、麦克风或用于接收语音命令的类似设备等。输出设备1345显示由电子系统生成的图像或者其他输出数据。输出设备1345包括打印机以及诸如阴极射线管(CRT)或液晶显示器(LCD)的显示设备,以及扬声器或类似的音频输出设备。一些实施方案包括充当输入和输出设备两者的设备诸如触摸屏。
最后,如图13所示,总线1305还通过网络适配器(未示出)将电子系统1300耦接到网络1325。以此方式,计算机可以是计算机网络(诸如,局域网(“LAN”)、广域网(“WAN”)或内联网)的部分,或者可以是网络的网络(诸如,互联网)的部分。电子系统1300的任何或所有部件均可与本发明一起使用。
一些实施方案包括将计算机程序指令存储在机器可读或计算机可读介质(或者称为计算机可读存储介质、机器可读介质或机器可读存储介质)中的电子部件,例如微处理器、存储装置和存储器。此类计算机可读介质的一些示例包括RAM、ROM、只读光盘(CD-ROM)、可刻录光盘(CD-R)、可重写光盘(CD-RW)、只读数字通用光盘(例如,DVD-ROM、双层DVD-ROM)、各种可刻录/可重写DVD(例如,DVD-RAM、DVD-RW、DVD+RW等)、闪存存储器(例如,SD卡,mini-SD卡、micro-SD卡等)、磁性和/或固态硬盘驱动器、只读和可刻录
Figure BDA0001497411720000231
盘、超密度光盘、任何其他光学或磁性介质以及软盘。计算机可读介质可存储计算机程序,该计算机程序可由至少一个处理单元来执行并且包括用于执行各种操作的指令集。计算机程序或者计算机代码的示例包括机器代码,诸如由编译器所产生的机器代码,以及包括可由计算机、电子部件或微处理器使用解译器来执行的更高级别代码的文件。
虽然上述讨论主要涉及执行软件的微处理器或多核处理器,但一些实施方案由一个或多个集成电路来执行,该一个或多个集成电路诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)。在一些实施方案中,此类集成电路执行存储在电路自身上的指令。此外,一些实施方案执行存储在可编程逻辑设备(PLD)、ROM或RAM设备中的软件。
如本说明书以及本专利申请的任何权利要求所用,术语“计算机”、“服务器”、“处理器”和“存储器”均是指电子或其他技术设备。这些术语排除人或者人的群组。出于本说明书的目的,术语显示或正在显示意指在电子设备上显示。如在本专利申请的本说明书以及任何权利要求中所使用的,术语“计算机可读介质”以及“机器可读介质”完全限于以可由计算机读取的形式存储信息的可触摸的物理对象。这些术语不包括任何无线信号、有线下载信号以及任何其他短暂信号。
虽然已参考许多具体细节描述了本发明,但本领域的普通技术人员将认识到,可在不脱离本发明的实质的情况下以其他具体形式来体现本发明。此外,诸如图8的多个附图概念性地示出了过程。这些过程的特定操作可不以所示出和所描述的确切次序执行。该特定操作可不在一个连续的操作系列中执行,并且不同的特定操作可在不同的实施方案中执行。此外,该过程可使用若干子过程来实施,或者作为更大宏过程来实施。因此,本领域的普通技术人员将理解,本发明不受前述示例性细节限制,而是将由所附的权利要求所限定。

Claims (20)

1.一种对于第一对等设备的识别同步组中的无效设备的方法,所述同步组包括彼此同步数据的一组对等设备,所述方法包括:
从所述第一对等设备的特定于设备的标识符生成第一同步组设备标识符;
使用所述第一同步组设备标识符将所述第一对等设备加入所述同步组中,其中所述同步组存储所述同步组的所述一组对等设备的一组同步组设备标识符;
确定所述一组同步组设备标识符中的第二同步组设备标识符与所述第一同步组设备标识符相同;以及
将与所述第二同步组设备标识符相关联的第二设备识别为所述同步组的非参与者成员。
2.根据权利要求1所述的方法,其中生成所述第一同步组设备标识符包括:
使用密钥推导函数从所述第一对等设备的所述特定于设备的标识符推导出加密密钥;以及
从推导出的加密密钥生成所述第一同步组设备标识符。
3.根据权利要求1所述的方法,其中所述特定于设备的标识符是所述第一对等设备的持久性硬件标识符;以及/或者
其中所述一组对等设备中的每个对等设备都能访问所存储的所述一组对等设备的同步组设备标识符。
4.根据权利要求1所述的方法,其中生成所述第一同步组设备标识符包括使用基于散列值的加密函数。
5.根据权利要求1所述的方法,还包括移除所述非参与者成员的存储在所述同步组中的信息。
6.根据权利要求5所述的方法,其中移除的信息包括所述非参与者成员的公共密钥。
7.根据权利要求6所述的方法,其中所述第一对等设备是与具有不同公共密钥的所述第二设备相同的物理设备。
8.根据权利要求1所述的方法,其中所述第一对等设备的所述特定于设备的标识符能够用于跟踪所述第一对等设备的所有者或与所述第一对等设备相关联的账户,其中所述第一同步组设备标识符不能用于跟踪所述第一对等设备的所有者或与所述第一对等设备相关联的账户。
9.根据权利要求1所述的方法,其中所述设备同步组标识符是消息认证代码。
10.根据权利要求1所述的方法,其中在所述一组对等设备之间同步的数据包括密钥链数据。
11.一种存储程序的机器可读介质,所述程序在由第一对等设备的至少一个处理单元执行时识别同步组中的无效设备,所述同步组包括彼此同步数据的一组对等设备,所述程序包括用于执行以下操作的指令集:
从所述第一对等设备的特定于设备的标识符生成第一同步组设备标识符;
使用所述第一同步组设备标识符将所述第一对等设备加入所述同步组中,其中所述同步组存储所述同步组中的所述一组对等设备的一组同步组设备标识符;
确定所述一组同步组设备标识符中的第二同步组设备标识符与所述第一同步组设备标识符相同;以及
将与所述第二同步组设备标识符相关联的第二设备识别为所述同步组的非参与者成员。
12.根据权利要求11所述的机器可读介质,其中用于生成所述第一同步组设备标识符的所述指令集包括用于执行以下操作的指令集:
使用密钥推导函数从所述第一对等设备的所述特定于设备的标识符推导出加密密钥;以及
从推导出的加密密钥生成所述第一同步组设备标识符。
13.根据权利要求11所述的机器可读介质,其中所述特定于设备的标识符是所述第一对等设备的持久性硬件标识符;以及/或者
其中所述一组对等设备中的每个对等设备都能访问所存储的所述一组对等设备的同步组设备标识符。
14.根据权利要求11所述的机器可读介质,其中用于生成所述第一同步组设备标识符的所述指令集包括用于使用基于散列值的加密函数的指令集。
15.根据权利要求11所述的机器可读介质,其中所述程序还包括用于移除所述非参与者成员的存储在所述同步组中的信息的指令集。
16.根据权利要求15所述的机器可读介质,其中移除的信息包括所述非参与者成员的公共密钥。
17.根据权利要求16所述的机器可读介质,其中所述第一对等设备是与具有不同公共密钥的所述第二设备相同的物理设备。
18.根据权利要求11所述的机器可读介质,其中所述第一对等设备的所述特定于设备的标识符能够用于跟踪所述第一对等设备的所有者或与所述第一对等设备相关联的账户,其中所述第一同步组设备标识符不能用于跟踪所述第一对等设备的所有者或与所述第一对等设备相关联的账户。
19.一种电子设备,包括:
一组处理单元;以及
存储程序的机器可读介质,所述程序在由所述处理单元中的至少一个处理单元执行时实现根据权利要求1至10中任一项所述的方法。
20.一种识别同步组中的无效设备的系统,所述同步组包括彼此同步数据的一组对等设备,所述系统包括用于实现根据权利要求1至10中任一项所述的方法的装置。
CN201680033170.7A 2015-06-07 2016-06-03 在安全同步系统中自动识别无效参与者 Active CN107690798B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562172124P 2015-06-07 2015-06-07
US62/172,124 2015-06-07
US14/871,210 2015-09-30
US14/871,210 US10079880B2 (en) 2015-06-07 2015-09-30 Automatic identification of invalid participants in a secure synchronization system
PCT/US2016/035925 WO2016200705A1 (en) 2015-06-07 2016-06-03 Automatic identification of invalid participants in a secure synchronization system

Publications (2)

Publication Number Publication Date
CN107690798A CN107690798A (zh) 2018-02-13
CN107690798B true CN107690798B (zh) 2021-08-03

Family

ID=57452428

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680033170.7A Active CN107690798B (zh) 2015-06-07 2016-06-03 在安全同步系统中自动识别无效参与者

Country Status (4)

Country Link
US (1) US10079880B2 (zh)
KR (1) KR102113910B1 (zh)
CN (1) CN107690798B (zh)
WO (1) WO2016200705A1 (zh)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10989977B2 (en) 2011-03-16 2021-04-27 View, Inc. Onboard controller for multistate windows
WO2013130644A1 (en) 2012-02-28 2013-09-06 Centurylink Intellectual Property Llc Apical conduit and methods of using same
US9786997B2 (en) 2013-08-01 2017-10-10 Centurylink Intellectual Property Llc Wireless access point in pedestal or hand hole
US9780433B2 (en) 2013-09-06 2017-10-03 Centurylink Intellectual Property Llc Wireless distribution using cabinets, pedestals, and hand holes
US10154325B2 (en) 2014-02-12 2018-12-11 Centurylink Intellectual Property Llc Point-to-point fiber insertion
US10276921B2 (en) 2013-09-06 2019-04-30 Centurylink Intellectual Property Llc Radiating closures
US10198182B2 (en) * 2015-05-31 2019-02-05 Apple Inc. Synchronization and verification groups among related devices
US10375172B2 (en) 2015-07-23 2019-08-06 Centurylink Intellectual Property Llc Customer based internet of things (IOT)—transparent privacy functionality
US10623162B2 (en) 2015-07-23 2020-04-14 Centurylink Intellectual Property Llc Customer based internet of things (IoT)
US10057261B2 (en) 2015-11-09 2018-08-21 Fotonation Limited Method for configuring access for a limited user interface (UI) device
US10412064B2 (en) * 2016-01-11 2019-09-10 Centurylink Intellectual Property Llc System and method for implementing secure communications for internet of things (IOT) devices
US10832665B2 (en) 2016-05-27 2020-11-10 Centurylink Intellectual Property Llc Internet of things (IoT) human interface apparatus, system, and method
US10249103B2 (en) 2016-08-02 2019-04-02 Centurylink Intellectual Property Llc System and method for implementing added services for OBD2 smart vehicle connection
US10110272B2 (en) 2016-08-24 2018-10-23 Centurylink Intellectual Property Llc Wearable gesture control device and method
US10687377B2 (en) 2016-09-20 2020-06-16 Centurylink Intellectual Property Llc Universal wireless station for multiple simultaneous wireless services
US9867112B1 (en) 2016-11-23 2018-01-09 Centurylink Intellectual Property Llc System and method for implementing combined broadband and wireless self-organizing network (SON)
US10426358B2 (en) 2016-12-20 2019-10-01 Centurylink Intellectual Property Llc Internet of things (IoT) personal tracking apparatus, system, and method
US10222773B2 (en) 2016-12-23 2019-03-05 Centurylink Intellectual Property Llc System, apparatus, and method for implementing one or more internet of things (IoT) capable devices embedded within a roadway structure for performing various tasks
US10637683B2 (en) 2016-12-23 2020-04-28 Centurylink Intellectual Property Llc Smart city apparatus, system, and method
US10193981B2 (en) 2016-12-23 2019-01-29 Centurylink Intellectual Property Llc Internet of things (IoT) self-organizing network
US10150471B2 (en) 2016-12-23 2018-12-11 Centurylink Intellectual Property Llc Smart vehicle apparatus, system, and method
US10735220B2 (en) 2016-12-23 2020-08-04 Centurylink Intellectual Property Llc Shared devices with private and public instances
US10146024B2 (en) 2017-01-10 2018-12-04 Centurylink Intellectual Property Llc Apical conduit method and system
US10627794B2 (en) 2017-12-19 2020-04-21 Centurylink Intellectual Property Llc Controlling IOT devices via public safety answering point
US10587463B2 (en) * 2017-12-20 2020-03-10 Hewlett Packard Enterprise Development Lp Distributed lifecycle management for cloud platforms
CN108282333B (zh) * 2018-03-02 2020-09-01 重庆邮电大学 工业云环境下多边缘节点协作模式下数据安全共享方法
US10944557B2 (en) * 2018-04-25 2021-03-09 Nxp B.V. Secure activation of functionality in a data processing system
CN112005230B (zh) 2018-04-30 2024-05-03 谷歌有限责任公司 通过统一的安全区接口管理安全区创建
US11509643B2 (en) * 2018-04-30 2022-11-22 Google Llc Enclave interactions
WO2019212581A1 (en) 2018-04-30 2019-11-07 Google Llc Secure collaboration between processors and processing accelerators in enclaves
US11036876B2 (en) * 2018-08-20 2021-06-15 Cisco Technology, Inc. Attribute-based encryption for microservices
JP6871411B2 (ja) 2019-03-29 2021-05-12 アドバンスド ニュー テクノロジーズ カンパニー リミテッド 暗号動作のセキュアな実行
EP3610607B1 (en) 2019-03-29 2021-08-25 Advanced New Technologies Co., Ltd. Cryptographic key management based on identity information
CN110431803B (zh) * 2019-03-29 2022-11-18 创新先进技术有限公司 基于身份信息管理加密密钥
SG11201908938PA (en) 2019-03-29 2019-10-30 Alibaba Group Holding Ltd Cryptography chip with identity verification
WO2020247981A1 (en) * 2019-06-07 2020-12-10 View, Inc. Secure building services network
LU101619B1 (en) * 2020-01-30 2021-07-30 Microsoft Technology Licensing Llc Associating decentralized identifiers with one or more devices
TW202206925A (zh) * 2020-03-26 2022-02-16 美商視野公司 多用戶端網路中之存取及傳訊
US11631493B2 (en) 2020-05-27 2023-04-18 View Operating Corporation Systems and methods for managing building wellness
US20230179605A1 (en) * 2021-12-03 2023-06-08 Whatsapp Llc Providing equal signing authority between multiple devices of a single user in an end-to-end encrypted messaging system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102122327A (zh) * 2009-12-31 2011-07-13 英特尔公司 使用多个认证代码模块进入安全计算环境
CN102739701A (zh) * 2011-04-06 2012-10-17 中国电信股份有限公司 媒体流访问控制方法与对等流媒体系统

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3963417B2 (ja) 1999-11-19 2007-08-22 株式会社東芝 データ同期処理のための通信方法および電子機器
US6671757B1 (en) 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US7231461B2 (en) 2001-09-14 2007-06-12 International Business Machines Corporation Synchronization of group state data when rejoining a member to a primary-backup group in a clustered computer system
US7225342B2 (en) * 2002-07-23 2007-05-29 Matsushita Electric Industrial Co., Ltd. Terminal apparatus, communication method, and communication system
EP1633079A1 (en) 2004-09-01 2006-03-08 Deutsche Thomson-Brandt Gmbh Method for managing elements of a peer-group
US7561694B1 (en) * 2005-04-18 2009-07-14 Sun Microsystems, Inc. Session mobility for wireless devices
US20070271234A1 (en) 2006-05-22 2007-11-22 Ravikiran Chickmangalore N Information Exchange Among Members of a Group of Communication Device Users
KR100959074B1 (ko) 2007-12-12 2010-05-20 한국전자통신연구원 P2p 네트워크 상에서의 보안 그룹 생성 방법, 생성장치, 인증 방법, 인증 장치
KR100957779B1 (ko) * 2007-12-18 2010-05-13 한국전자통신연구원 화상회의 시스템에서의 그룹 키 분배 방법 및 시스템
CN101442411A (zh) * 2008-12-23 2009-05-27 中国科学院计算技术研究所 一种p2p网络中对等用户结点间的身份认证方法
US8959353B2 (en) 2009-03-31 2015-02-17 Topaz Systems, Inc. Distributed system for multi-function secure verifiable signer authentication
US8788842B2 (en) 2010-04-07 2014-07-22 Apple Inc. System and method for content protection based on a combination of a user PIN and a device specific identifier
US20120109830A1 (en) * 2010-10-29 2012-05-03 Matt Vogel Apparatus, system and method for a decentralized social network system and decentralized payment network system
US8948382B2 (en) * 2010-12-16 2015-02-03 Microsoft Corporation Secure protocol for peer-to-peer network
US9762662B2 (en) 2011-05-12 2017-09-12 Microsoft Technology Licensing, Llc Mass re-formation of groups in a peer-to-peer network
CN103931220B (zh) * 2011-08-08 2018-06-05 马维尔国际贸易有限公司 用于网络通信的密钥推导函数
US10271293B2 (en) 2011-11-18 2019-04-23 Apple Inc. Group formation within a synchronized hierarchy of peer-to-peer devices
US9077759B2 (en) 2013-01-18 2015-07-07 Apple Inc. Conflict resolution for keychain syncing
US9197700B2 (en) 2013-01-18 2015-11-24 Apple Inc. Keychain syncing
WO2014160054A1 (en) 2013-03-13 2014-10-02 Breckman Andrew System and method of peer-to-peer, paired, and synchronized nodes
US10229181B2 (en) 2013-07-16 2019-03-12 Pankaj Sharma System and method for synchronizing data between communication devices in a networked environment without a central server
WO2015041658A1 (en) * 2013-09-19 2015-03-26 Intel Corporation Technologies for synchronizing and restoring reference templates
US10212143B2 (en) 2014-01-31 2019-02-19 Dropbox, Inc. Authorizing an untrusted client device for access on a content management system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102122327A (zh) * 2009-12-31 2011-07-13 英特尔公司 使用多个认证代码模块进入安全计算环境
CN102739701A (zh) * 2011-04-06 2012-10-17 中国电信股份有限公司 媒体流访问控制方法与对等流媒体系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种P2P网络中对等结点间的身份认证方法;李军等;《科学技术与工程》;20100118;全文 *

Also Published As

Publication number Publication date
KR20180002803A (ko) 2018-01-08
US10079880B2 (en) 2018-09-18
WO2016200705A1 (en) 2016-12-15
CN107690798A (zh) 2018-02-13
KR102113910B1 (ko) 2020-05-21
US20160359965A1 (en) 2016-12-08

Similar Documents

Publication Publication Date Title
CN107690798B (zh) 在安全同步系统中自动识别无效参与者
US10771545B2 (en) Keychain syncing
US20230259276A1 (en) Dynamic group membership for devices
US9710673B2 (en) Conflict resolution for keychain syncing
US11196573B2 (en) Secure de-centralized domain name system
JP2020527298A (ja) 高度に利用可能な信頼できる実行環境を使用してブロックチェーンネットワークに対するアクセスデータを取得すること

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