CN107667515A - 相关设备中的同步组和验证组 - Google Patents
相关设备中的同步组和验证组 Download PDFInfo
- Publication number
- CN107667515A CN107667515A CN201680031832.7A CN201680031832A CN107667515A CN 107667515 A CN107667515 A CN 107667515A CN 201680031832 A CN201680031832 A CN 201680031832A CN 107667515 A CN107667515 A CN 107667515A
- Authority
- CN
- China
- Prior art keywords
- equipment
- subgroup
- synchronous
- ring
- checking
- 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
Links
- 238000010200 validation analysis Methods 0.000 title claims description 16
- 238000000034 method Methods 0.000 claims description 122
- 230000001360 synchronised effect Effects 0.000 claims description 113
- 230000008569 process Effects 0.000 claims description 91
- 238000003860 storage Methods 0.000 claims description 61
- 238000012545 processing Methods 0.000 claims description 28
- 230000001052 transient effect Effects 0.000 claims description 6
- 238000012360 testing method Methods 0.000 claims description 3
- 230000015654 memory Effects 0.000 abstract description 50
- 230000006870 function Effects 0.000 abstract description 24
- 238000005516 engineering process Methods 0.000 abstract description 8
- 230000008859 change Effects 0.000 description 24
- 238000004891 communication Methods 0.000 description 15
- 238000009434 installation Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000000717 retained effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 230000001737 promoting effect Effects 0.000 description 2
- 238000012797 qualification Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- TVZRAEYQIKYCPH-UHFFFAOYSA-N 3-(trimethylsilyl)propane-1-sulfonic acid Chemical compound C[Si](C)(C)CCCS(O)(=O)=O TVZRAEYQIKYCPH-UHFFFAOYSA-N 0.000 description 1
- 241000394635 Acetomicrobium mobile Species 0.000 description 1
- 241000208340 Araliaceae Species 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 101100127285 Drosophila melanogaster unc-104 gene Proteins 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 239000000853 adhesive Substances 0.000 description 1
- 230000001070 adhesive effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000011469 building brick Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 229910052738 indium Inorganic materials 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q90/00—Systems or methods specially adapted for administrative, commercial, financial, managerial or supervisory purposes, not involving significant data processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3255—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/06—Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
- H04W4/08—User group management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Resources & Organizations (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Multimedia (AREA)
- Game Theory and Decision Science (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Transfer Between Computers (AREA)
- Mobile Radio Communication Systems (AREA)
- User Interface Of Digital Computer (AREA)
- Medical Treatment And Welfare Office Work (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Telephonic Communication Services (AREA)
- Storage Device Security (AREA)
- Telephone Function (AREA)
Abstract
现在,拥有多个具有重叠功能的设备的用户越来越多。智能电话、平板电脑和计算机都可以访问网络,允许用户处理照片等,并且用户往往拥有多个此类设备。因此,希望在其设备之间共享数据并且能够访问多个设备上的数据的用户也越来越多。用户通常可使用各种不同的技术在设备之间传输数据,诸如闪存棒、电子邮件等。期望用于在用户设备之间自动共享数据的更高效技术。
Description
背景技术
现在,拥有多个具有重叠功设备的用户越来越多。智能电话、平板电脑和计算机都可以访问网络,允许用户处理照片等,并且用户往往拥有多个此类设备。因此,希望在其设备之间共享数据并且能够访问多个设备上数据的用户也越来越多。用户通常可使用各种不同的技术在设备之间传输数据,诸如闪存棒、电子邮件等。期望用于在用户设备之间自动共享数据的更高效技术。
发明内容
一些实施方案提供了一种用于在一组相关电子设备之间同步数据项的方法。具体地讲,一些实施方案定义了在设备满足验证子组的成员身份要求的情况下设备可加入的验证子组,并且使用该验证子组定义设备参与的同步子组。在一些实施方案中,不同的同步子组定义参与同步子组的设备经由同步过程彼此共享的不同类型的数据项。
在一些实施方案中,该相关电子设备组包括用户与第三方服务(例如,与用户的特定云服务账户)相关联的所有设备。对云服务账户密码的知晓用作一些实施方案的至少一个验证子组中的成员身份要求,而一些实施方案定义了各种设备可加入的附加验证子组。不同的实施方案定义了用于加入此类附加验证子组的不同要求集合,包括有关设备具有特定操作系统、具有特定级别的密码强度、具有安全处理器或其他设备配置属性的要求。一些实施方案要求设备证明拥有特定加密秘密以便加入特定验证子组(例如,拥有提供有企业配置文件的密钥以便加入由企业定义的验证子组),或者用户在已建立在验证子组中的设备上验证新设备的成员身份。此外,一些验证子组可要求新设备经由带外过程(例如,通过使用第三方进行验证)向已建立的设备验证其自身的属性。
对于加入验证子组的设备,一些实施方案要求该设备签署加入该子组的请求,并且使已在验证子组中的设备中的一个设备批准该请求。例如,在一些实施方案中,当设备满足验证子组的需要拥有加密秘密的要求时,设备(i)使用从加密秘密生成的私有密钥签署其公共密钥(该公共密钥已与其他设备共享)和应用于子组的日期/时间,(ii)将该签名与其用于加入验证子组的身份一起封装,以及(iii)使用其自己的私有密钥签署该身份。然后将该签名作为加入验证子组的请求发送到该子组中的其他设备。当其他设备中的一个设备验证请求设备是否满足加入子组的所有要求时,已建立的设备将通知验证子组中的其他设备,包括所添加的新设备。在一些实施方案中,该通知包括验证子组的成员列表,该成员列表包括新设备。
在一些实施方案中,设备可以是多个验证子组的成员。此外,设备可随着设备属性的改变而动态地移进和移出此类验证子组,使得设备重新满足各种验证子组的要求或不再满足要求。当设备的属性改变(例如,在设备上安装了包含特定加密秘密的配置文件,用户更改设备密码长度等)使得设备变得有资格加入验证子组时,该设备会生成并发送对验证子组的成员身份的请求,如上所述。另一方面,当设备的属性改变使得设备不再满足设备当前已成为成员的验证子组的成员身份要求时,该设备检测到其不应再是该子组的成员,并将此通知传输到作为该子组的成员的其他设备。
在一些实施方案中,验证子组用于将设备组织成同步子组,以便确定应将存储在设备上的哪些数据项与其他设备同步。在一些实施方案中,同步子组由以下项定义:(i)对于参与同步子组的设备的一组要求,以及(ii)在参与同步子组的设备之间同步的一类数据项。在一些实施方案中,同步子组的该组要求是一个或多个验证子组中的成员身份。例如,对于参与第一同步子组的要求可以是第一验证子组中的成员身份,而对于参与第二同步子组的要求可以是第二验证子组和第三验证子组两者中的成员身份。
同步子组用于使相关设备组能够将数据项彼此同步。在各种实施方案中,这些同步数据项包括用于在线账户(例如,金融服务网站、在线论坛网站、媒体内容提供商、在线零售网站等)的用户名和密码、加密密钥和/或秘密(即,可生成密钥的数据)、网络(例如,Wi-Fi网络)密码、注释、照片、文档和其他文件等。当设备中的一个设备接收到添加到同步数据项组的新数据项(例如,来自新密码的用户输入、新照片的导入或下载等)时,一些实施方案的设备将该数据动态地标记为属于一个或多个同步子组。例如,可能会基于创建数据(例如,Wi-Fi网络/密码与在线账户用户名/密码)的应用程序、用户名/账户可访问的网站类型(例如,金融网站与非金融网站)、数据是否与企业有关等来标记数据。
属于特定同步子组的数据项在参与该特定同步子组的设备之间同步。在一些实施方案中,每对设备在它们本身之间创建用于发送数据项的安全信道(例如,非正式(OTR)即时消息协议)。在不同实施方案中,该安全信道可穿过即使在接收设备解锁时也允许临时存储的集中式服务(例如,用于两个设备所登录的云服务账户的存储器)。然而,在一些实施方案中,安全信道的使用保护这些通信免受中间人攻击。其他实施方案使用直接对等连接(例如,经由蓝牙连接)。
当第一设备确定它应当将其数据项同步到第二设备时,第一设备识别第一设备和第二设备均参与的同步子组。对于每个此类子组,第一设备识别其存储的下列所有同步数据项:(i)尚未被传输到第二设备,以及(ii)属于第二设备所参与的同步子组。只要同步子组不对安全信道施加任何附加要求,第一设备就会经由安全信道将所识别的同步数据项传输到第二设备。当同步子组对安全信道施加附加要求(例如,使用获得验证子组的成员身份所需的加密密钥加密数据项)时,第一设备可使用多个不同的安全信道将该组数据项与第二设备同步。第二设备也执行一组类似的操作以将其数据项同步到第一设备。
当设备动态地加入并离开验证子组时,这可能会导致设备加入并离开同步子组。例如,当特定同步子组要求设备成为第一验证子组和第二验证子组的成员时,如果设备丢失其在第一验证子组中的成员身份,则设备即使保留在第二验证子组中的成员身份,也将不再能够参与该特定同步子组。在一些实施方案中,当设备不再有资格参与特定同步子组时,设备将移除属于该特定同步子组的所有数据项(或提示用户决定设备是否应移除这些数据项),属于设备仍参与的其他同步子组的数据项除外。
上述发明内容旨在用作对本发明的一些实施方案的简单介绍。其并非意味着对在本文档中公开的所有发明主题的介绍或概述。随后的具体实施方式以及在具体实施方式中所参照的附图进一步描述发明内容中所述的实施方案以及其他实施方案。因此,为了理解该文档所描述的所有实施方案,需要全面审阅发明内容、具体实施方式和附图。此外,受权利要求书保护的主题不被发明内容、具体实施方式及附图中的示例性细节所限定,而是被所附权利要求书所限定,这是因为受权利要求书保护的主题在不脱离本主题的实质的情况下能够以其他特定形式来体现。
附图说明
在所附的权利要求中阐述了本发明的新型特征。然而,出于说明的目的,在以下附图中阐释了本发明的若干实施方案。
图1示出了单个用户可能拥有的六个电子设备的示例。
图2示出了仅具有单个标准的第一环,所述单个标准为设备知道用户的云服务账户密码。
图3示出了需要如下成员身份的第二环:(i)设备运行iOS操作系统,以及(ii)用户批准设备进入环。
图4示出了需要如下成员身份的第三环:(i)设备具有至少12个字符的密码/口令(用作密码/口令强度的代理),以及(ii)用户批准设备进入环。
图5示出了需要如下成员身份的第四环:设备(i)已安装企业配置文件配置,以及(ii)知道云服务密码。
图6示出了需要如下成员身份的第五环:(i)设备具有密码,以及(ii)使用带外进程将设备验证为可信的Apple设备。
图7至图9示出了图1的设备组的不同视图的示例,每个视图基于图2至图6的一个或多个环中的成员身份进行定义。
图10概念性地示出了用于使设备分组成验证子组(环)和同步子组(视图)的一些实施方案的设备1000的软件架构。
图11概念性地示出了用于请求环中的成员身份的一些实施方案的过程1100。
图12概念性地示出了用于确定是否允许设备进入环的一些实施方案的过程1200。
图13概念性地示出了请求加入环并被第二设备批准的第一设备。
图14概念性地示出了加入环的设备,这要求通过中央管理机构验证设备属性以及拥有秘密加密密钥。
图15概念性地示出了用于将密钥链数据从第一设备同步到第二设备的一些实施方案的过程1500。
图16示出了通过第一设备接收用于同步的新数据项。
图17示出了图16的新数据项从第一设备同步到第二设备。
图18和图19示出了数据保护结构,其中特定于应用的私有密钥用于访问存储在密钥和数据字段树中的数据,最终允许访问应用数据本身。
图20概念性地示出了用于动态修改设备的环成员身份以及随后的视图参与的一些实施方案的过程。
图21A至图21B示出了当设备中一个设备的密码已更改使得其从环中移除时的图16和图17的设备。
图22示出了实现一些实施方案所利用的移动计算设备的架构的一个示例。
图23概念性地示出了实现本发明的一些实施方案所利用的电子系统的另一个示例。
具体实施方式
在本发明的以下具体实施方式中,提出并描述了本发明的许多细节、示例和实施方案。然而,对于本领域的技术人员来说将清楚和显而易见的是,本发明并不限于所陈述的实施方案,并且本发明可在没有使用所讨论的一些具体细节和示例的情况下被实施。
一些实施方案提供了一种用于在一组相关电子设备之间同步数据项的方法。具体地讲,一些实施方案定义了在设备满足验证子组的成员身份要求的情况下设备可加入的验证子组,并且使用该验证子组定义设备参与的同步子组。在一些实施方案中,不同的同步子组定义参与同步子组的设备经由同步过程彼此共享的不同类型的数据项。
在一些实施方案中,该相关电子设备组包括用户与第三方服务(例如,与用户的特定云服务账户)相关联的所有设备。对云服务账户密码的知晓用作一些实施方案的至少一个验证子组(在本文中也称为环)中的成员身份要求,而一些实施方案定义了各种设备可加入的附加环。在某些情况下,用户可能拥有或使用多个智能电话、智能手表、平板电脑、膝上型计算机、台式计算机、媒体播放器等,所有这些都登录到用户的云服务账户并且具有不同的属性。
不同的实施方案定义了用于加入此类附加环的不同要求集合,包括有关设备具有特定操作系统、具有特定级别的密码强度、具有特定硬件(例如,安全处理单元,如Apple安全区域处理器)或其他设备配置属性的要求。一些实施方案要求设备证明拥有特定加密秘密以便加入特定环(例如,拥有提供有企业配置文件的密钥以便加入由企业定义的环),或者用户在已建立在环中的设备上验证新设备的成员身份。此外,一些环可要求新设备经由带外过程(例如,通过使用第三方进行验证)向已建立的设备验证其自身的属性,其中环用作设备加入环的特定时间时的属性的持久性证明。
对于加入环的设备,一些实施方案要求该设备签署加入该环的请求,并且使已在环中的设备中的一个设备批准该请求。例如,在一些实施方案中,当设备满足环的需要拥有加密秘密的要求时,设备(i)使用从加密秘密生成的私有密钥签署其公共密钥(该公共密钥已与其他设备共享)和应用于环的日期/时间,(ii)将该签名与其用于加入环的身份一起封装,并且(iii)使用其自己的私有密钥签署该身份。然后将该签名作为加入环的请求发送到该环中的其他设备。当其他设备中的一个设备验证请求设备是否满足加入环的所有要求时,已建立的设备将通知环中的其他设备,包括所添加的新设备。在一些实施方案中,该通知包括环的成员列表,该成员列表当前包括新设备。
在一些实施方案中,设备可以是多个环的成员。此外,设备可随着设备属性的改变而动态地移进和移出此类环,使得设备重新满足各种环的要求或不再满足要求。当设备的属性改变(例如,在设备上安装了包含特定加密秘密的配置文件,用户更改设备密码长度等)使得设备变得有资格加入环时,该设备会生成并发送对环的成员身份的请求,如上所述。另一方面,当设备的属性改变使得设备不再满足设备当前已成为成员的环中的成员身份要求时,该设备检测到其不应再是该环的成员,并将此通知传输到作为该环的成员的其他设备。
在一些实施方案中,环用于将设备组织成同步子组(在本文中也称为视图),以便确定应将存储在设备上的哪些数据项与其他设备同步。在一些实施方案中,视图由以下项定义:(i)对于参与该视图的设备的一组要求,以及(ii)在参与该视图的设备之间同步的一类数据项。在一些实施方案中,视图的该组要求是一个或多个环中的成员身份。例如,对于参与第一视图的要求可以是第一环中的成员身份,而对于参与第二视图的要求可以是第二环和第三环两者中的成员身份。
视图用于使相关设备组能够将数据项彼此同步。在各种实施方案中,这些同步数据项包括用于在线账户(例如,金融服务网站、在线论坛网站、媒体内容提供商、在线零售网站等)的用户名和密码、加密密钥和/或秘密(即,可生成密钥的数据)、网络(例如,Wi-Fi网络)密码、注释、照片、文档和其他文件等。当设备中的一个设备接收到添加到同步数据项组的新数据项(例如,来自新密码的用户输入、新照片的导入或下载等)时,一些实施方案的设备将该数据动态地标记为属于一个或多个视图。例如,可能会基于创建数据(例如,Wi-Fi网络/密码与在线账户用户名/密码)的应用程序、用户名/账户可访问的网站类型(例如,金融网站与非金融网站)、数据是否与企业有关等来标记数据。
属于特定视图的数据项在参与该特定视图的设备之间同步。在一些实施方案中,每对设备在它们本身之间创建用于发送数据项的安全信道(例如,非正式(OTR)即时消息协议)。在不同实施方案中,该安全信道可穿过即使在接收设备被解锁时也允许临时存储的集中式服务(例如,用于两个设备所登录的云服务账户的存储器)。然而,在一些实施方案中,安全信道的使用保护这些通信免受中间人攻击。其他实施方案使用直接对等连接(例如,经由蓝牙连接)。用于密钥链的数据项的同步在美国专利公布2014/0281540中进行了更详细地描述。
当第一设备确定它应将其数据项同步到第二设备时(例如,基于用户输入、经过的特定时间段等),第一设备识别第一设备和第二设备均参与的视图。对于每个此类视图,第一设备识别其存储的下列所有同步数据项:(i)尚未被传输到第二设备,以及(ii)属于第二设备所参与的视图。只要视图不对安全信道施加任何附加要求,第一设备就会经由安全信道将所识别的同步数据项传输到第二设备。当视图对安全信道施加附加要求(例如,使用获得验证子组的成员身份所需的加密密钥加密数据项)时,第一设备可使用多个不同的安全信道将该组数据项与第二设备同步。第二设备也执行一组类似的操作以将其数据项同步到第一设备。
当设备动态地加入并离开环时,这可能会导致设备加入并离开视图。例如,当特定视图要求设备成为第一环和第二环的成员时,如果设备丢失其在第一环中的成员身份,则设备即使保留在第二环中的成员身份,也将不再能够参与该特定视图。在一些实施方案中,当设备不再有资格参与特定视图时,设备将移除属于该特定视图的所有数据项(或提示用户决定设备是否应移除这些数据项),属于设备仍参与的其他视图的数据项除外。
上文描述了一些实施方案的数据同步系统的示例。若干更详细的示例将在下文进行描述。第I节描述了一组设备,以及可对设备定义的环和视图的示例。接下来,第II节描述了用于启用环和视图的一些实施方案的设备架构。然后,第III节描述了一些实施方案的环加入过程,而第IV节描述了不同视图的数据的同步。接着,第V节描述了在一些实施方案中动态地评估环状态以及视图参与的后果。最后,第VI节描述了实现本发明的一些实施方案所利用的电子系统。
I.环和视图示例
如上所述,一些实施方案基于设备的静态或动态属性来定义设备可加入的设备组的环。在各种实施方案中,这些环可由设备的制造商、第三方开发人员或用户本身定义。例如,销售各种不同类型的用户设备(单个用户可拥有任何数量的用户设备)的制造商可将环定义集成到设备操作系统中。另一方面,第三方开发人员或用户可能会提出他们认为有用的附加环,并为一些或全部设备设计这些环。在一些实施方案中,制造商为设备提供允许用户为其个人设备任意定义环的框架,其中框架具有将任意定义的环转换成功能环定义的能力。
设备制造商、第三方开发人员或用户也可基于环成员身份将设备组织到视图中,如上所述。也就是说,特定视图中设备的参与可根据设备是否是一个或多个环的成员来定义。在一些实施方案中,视图还可通过参考除环成员身份之外的设备属性来定义,而其他实施方案将视图限制为基于环成员身份的定义。在一些实施方案中,除定义环成员身份标准之外,用户还具有定义为特定视图共享哪些数据以及设备必须属于哪些环以便参与该特定视图(即,以将指定数据与其他设备同步)的能力。
图1示出了单个用户可能拥有的六个电子设备105-130的示例。如图所示,这六个电子设备包括第一智能电话105、第二智能电话110、平板电脑115、膝上型计算机120、流式视频机顶盒125和台式计算机130。在这种情况下,第一电话105和膝上型计算机120是用户的工作设备,而其他四个设备110、115、125和130是用户的个人所有设备。这些设备中的每一者具有不同的属性,其中一些示于附图中。
具体地讲,第一智能电话105(其可以是例如iPhone 6)(i)知道用户的云服务账户密码(因为用户已登录到该设备上的云服务账户),(ii)具有内置指纹扫描器,(iii)运行iOS操作系统,(iv)已启用远程擦除功能,以允许在电话丢失的情况下用户远程指导手机擦除其存储器,(v)具有用于解锁设备的至少12个字符长的密码,并且(vi)已安装企业配置。因此,指纹扫描器、长解锁密码和远程擦除功能均指示该设备是安全设备。此外,一些实施方案的企业配置的安装为设备提供了特定加密秘密,从而能够生成公共/私有密钥对。
第二智能电话110(其可以是例如较早的iPhone)(i)知道用户的云服务账户密码,(ii)运行iOS操作系统,(iii)已启用远程擦除功能,并且(iv)具有用于解锁设备的4个字符的密码。具有较短密码和无指纹扫描器的智能电话110不及第一智能电话105安全,但仍然相当安全。
平板电脑115(例如,iPad)(i)知道用户的云服务账户密码,(ii)运行iOS操作系统,并且(iii)具有用于解锁设备的4个字符的密码。膝上型计算机120(例如,MacBook)(i)知道用户的云服务账户密码,(ii)运行Mac OS X操作系统,(iii)具有用于解锁设备的12个字符的密码,并且(iv)已安装企业配置。流式视频机顶盒125(例如,Apple TV)仅知道用户的云服务账户密码。最后,家用台式计算机130(例如,iMac)(i)知道用户的云服务账户密码,(ii)运行Mac OS X操作系统,并且(iii)具有用于解锁的12个字符的密码。
针对各种设备105-130列出的这些属性表示环成员身份标准的几个示例(例如,用户是否已登录到云服务账户,设备的操作系统,密码强度,其他安全功能,经由企业配置提供加密秘密等)。本领域的普通技术人员将认识到,可使用许多其他标准来确定环的成员身份资格。如将示出的那样,这些标准中的一些标准不是设备的属性。例如,一些实施方案使用在设备上运行的应用程序的属性作为环成员身份标准(例如,是否安装应用程序,应用程序在设备上如何设置等)。此外,一些实施方案需要某些用户动作以便加入环,诸如用户在已建立在环中的设备上批准另一设备,用户在请求设备上输入由已建立设备提供的代码等。此外,一些环成员身份要求第三方验证。例如,一些实施方案要求第三方证明设备是有效的iOS设备。另一方面,一些环成员身份标准必须由请求成员身份的设备简单地声明(例如,设备密码至少是一定长度)。
图2至图6提供了设备105-130的一些实施方案的各种环的示例。图2示出了仅具有单个标准的第一环200,所述单个标准为设备知道用户的云服务账户密码。一些实施方案使用该环以允许用户拥有的所有设备一起加入环,只要用户将该设备登录到云服务账户上即可。在一些实施方案中,新设备可通过使用确定性公共/专有密钥生成算法基于账户密码生成私有密钥,并使用该私有密钥签署应用程序(可由已在环中的任一个设备验证),从而应用于环。这样,所有设备105-130都是第一环200的成员。
图3示出了需要如下成员身份的第二环300:(i)设备运行iOS操作系统,以及(ii)用户批准设备进入环。因此,并非任一个iOS设备(即,随机用户的智能电话)均可加入环;相反,已建立设备的用户必须批准将设备加入到环中。虽然用户批准提供了防止非用户设备加入的安全机制的示例,但一些实施方案需要知道所有环的云服务账户密码(或另一加密秘密),以防止用户意外地允许另一个用户与她的实际设备一起加入环。在一些实施方案中,作为环加入过程的一部分,设备声明其是iOS设备;然后向用户呈现提示,不仅批准该设备属于用户,而且该设备是在环成员身份申请中声称的iOS(例如,“iPhone希望加入您的iOS设备环;请验证这是您的iPhone”或类似信息的提示)。在其他实施方案中,要求设备使用第三方(例如,设备制造商)验证该设备是否是所声称的iOS设备。该验证可以在批准设备进入环之前在带外执行。第二环300具有三个成员,即两个智能电话105和110以及平板电脑115,因为其他三个设备不是iOS设备。
图4示出了需要如下成员身份的第三环400:(i)设备具有至少12个字符的密码/口令(用作密码/口令强度的代理),以及(ii)用户批准设备进入环。与先前的环300一样,一旦具有足够长的密码,用户批准要求就防止任一个随机用户设备加入环。此外,如针对环300所述,在一些实施方案中,有关用户将设备批准为具有安全密码/口令的提示显示在用户的已建立设备上。该环400具有三个成员,即第一智能电话105、膝上型计算机120和家用台式计算机130。
图5示出了需要如下成员身份的第四环500:设备(i)已安装企业配置文件配置,以及(ii)知道云服务密码。在一些实施方案中,设备可通过使用作为企业配置文件的一部分提供的私有密钥签署加入环的成员身份请求来证明拥有企业配置文件配置,该过程在下文参考图13更详细地描述。当新设备通过发送已签署的成员身份请求来请求环成员身份时,已建立设备中的一个设备使用企业配置文件公共密钥验证该请求。云服务密码将成员身份限制为仅由特定用户拥有的设备,而不是企业的任一个成员。这用作验证机制以确保用户批准设备加入环(通过输入云服务密码)。由于用户设备中仅两个安装了该企业配置文件,因此环500仅包括智能电话105和膝上型计算机120。
最后,图6示出了需要如下成员身份的第五环600:(i)设备具有密码,以及(ii)使用带外进程将设备验证为可信的Apple设备。一些实施方案要求不同环成员身份的各种带外证明,要求第三方证明请求设备声明的一些方面,以使已建立设备允许请求设备进入环。例如,这样的第三方验证可用于证明设备的有效性、设备上的安全处理器的存在等,其中任一个可以是环成员身份要求。虽然成员身份标准的带外验证仅验证成员身份标准在特定时间是否为真,但环的存在实现了所声明的标准的持久性证明,而不需要定期进行第三方验证。对于该环,由于所有设备105-130都是Apple设备,因此所有具有密码的设备(智能电话105和110、平板电脑115、膝上型计算机120和台式计算机130)都能够加入环600。
在上述实施方案中,请求设备在任一环中的成员身份以一种方式或另一方式取决于已在环中建立的设备对成员身份标准的验证。一些实施方案实现三个不同层次的环:(1)自声明环,任一个设备可简单地通过声明成员身份加入该环,(2)应用环,其要求设备声明成员身份以及证明知道加密秘密,以及(3)一致性环,其要求自声明(并且在某些情况下,知道加密秘密)以及已建立在环中的设备的批准。
在一些实施方案中,自声明环通常不提供大量安全性,因此通常不用于开发视图要求(即,简单地声明关于自身的事实的设备不能使该设备访问任何附加的同步数据)。相反,未经验证的这些事实的声明可以是在应用环和一致性环的成员身份请求中使用的设备身份的一部分。自声明环的示例是其唯一成员身份标准是设备声明它存在或者它具有密码的环,一旦设备进行这种声明,该设备就自动添加到环中。
在一些实施方案中,应用环的示例是需要企业密钥但不进行另外验证的环。因此,为了加入环,设备必须证明其具有企业密钥(例如,通过使用私有密钥签署应用)。然而,这样的环不需要另外级别的验证。例如,用户不必批准此类设备,因此任一个拥有加密秘密(并因此可生成所需密钥)的设备可加入环。
最后,一致性环是最常用于定义视图的环类型(即,同步特定类型的数据的设备组)。如上所述,一致性环要求设备请求环成员身份,并且在已建立在环中的设备上(例如,通过提示用户批准)明确地验证应用。一致性环还可要求证明特定加密秘密(例如,基于用户的云服务密码、企业密钥等生成的密钥),但一旦由该密钥生成的签名得到已建立设备的验证,该已建立设备将提示设备的用户验证请求设备是否应加入环。
此外,一些实施方案可使用各种带外用户交互技术来验证设备是否应在环中(例如,加密秘密的带外证明)。例如,一些实施方案允许已建立设备生成加密秘密,并且依靠于用户将该秘密携带到请求设备,以便已建立设备信任请求设备。作为示例,已建立的设备可生成随机数,从该随机数可生成公共/私有密钥对。当用户在请求设备上输入该随机数时,请求设备可生成私有密钥并使用所生成的私有密钥签署环成员身份请求。类似地,已建立的设备可生成音频或图像数据(例如,快速响应(QR)代码)并要求请求设备捕获该数据,并且从数据以确定性的方式生成公共/私有密钥对。普通技术人员将认识到,根据所涉及的两种类型的设备,可使用多种此类技术(例如,智能手表拍摄在电话上生成的QR代码的图片,以特定方式将一个设备移动到另一设备附近等)。
环允许设备验证其他设备是否具有特定属性,并存留这些属性的证明,使得设备不需定期验证属性。使用环,一些实施方案使得设备能够形成允许设备与已验证过某些属性的设备共享特定数据项的一个或多个同步子组或者视图。因此,在一些实施方案中,基于一个或多个环中的成员身份来定义每个视图中的参与;也就是说,只有满足视图要求的设备(通过在一个或多个指定环中被接受为成员)才能共享与视图相关联的同步数据。
视图使得能够在用户的设备之间同步的不同类型的数据进行分层。作为示例,用户可能希望在她的所有设备之间共享某些数据(例如,大多数照片、非敏感文档、不能访问金融信息的密码或信用卡号等)。另一方面,用户可能希望其他数据(例如,敏感照片、加密文档、金融网站的密码或保存用户信用卡信息的电子商务网站)远离较不安全的设备(例如,不受密码保护的流式视频机顶盒)。此外,某些数据可能在某些类型的设备上无法使用(移动应用的密码在不支持此类应用的膝上型计算机或台式计算机设备上可能无用)。
图7至图9示出了图1的设备组的不同视图的示例。在这些图中,每个视图基于一个或多个环200-600中的成员身份来定义。一些实施方案仅允许视图要求基于环成员身份,而其他实施方案还允许对于设备参与视图的其他类型的要求(例如,设备属性,如上文作为环成员身份要求所述的那些)。从这个意义上来讲(基于环成员身份定义视图要求),环类似于证书管理机构,因为其用于证明设备的某些属性,然后设备可使用这些属性信任其他设备以实现同步目的。
如图7所示,参与第一视图700由第一环200中的成员身份定义。因此,所有六个设备105-130参与第一视图。该图示出了六个设备105-130以全网格框架连接,其中每个设备能够与其他所有设备同步。如美国专利公布2014/0281540所述(该专利以引用方式并入上文),一些实施方案使用全网格连接在用户设备之间进行同步,而其他实施方案使用其他网络配置(例如,星形网络,其中一个设备作为中心集线器)。
该图指示三个数据项705-715属于第一视图700。在一些实施方案中,如图7所示,存储在设备上的每个数据项标记有视图信息,该视图信息指定数据项属于哪个视图(对于每个数据项,其是与设备同步的类型;不具有同步资格的数据项不会这样标记)。当设备中的一个设备(例如,通过用户输入新密码、从相机导入新照片或创建新文档等)接收到要添加到这组同步数据项的新数据项时,该设备动态地将该数据标记为属于一个或多个视图。例如,可能会基于创建数据(例如,Wi-Fi网络/密码与在线账户用户名/密码)的应用程序、用户名/账户可访问的网站类型(例如,金融网站与非金融网站)、数据是否与企业有关等来标记数据,具体取决于如何针对设备组定义视图。
在一些实施方案中,三个数据项705-715存储在三个设备中的每一者上。一旦设备中的一个设备接收到这些数据项中的一者,则该设备经由单独的加密信道(即,每对设备之间的独立信道)与其他设备共享数据项。因此,如果用户首先在台式计算机130上输入密码项715,则台式计算机经由独立的信道与其他设备105-125中的每个设备共享该项。在一些实施方案中,这些信道使用由密码验证的密钥交换(PAKE)来加密,例如非正式(OTR)即时消息,如下文以及美国专利公布2014/0281540中更详细地描述。
也如美国专利公布2014/0281540所述,在一些实施方案中,点对点连接使用云服务中间体。也就是说,对于要将数据项705共享到第二设备(例如,平板电脑115)中的一个设备(例如,智能电话105),发送设备将数据项发送到云服务的中间存储器(用两个设备之间的连接的公共密钥进行加密)。然后,第二设备从中间存储器检索数据项并对数据项进行解密。使用PAKE可使设备以这种方式共享同步数据项,而使云服务所有者不易受到中间人攻击。
而第一视图700包括所有设备,图8示出了要求第三环400和第四环500两者中的成员身份参与的第二视图。该视图本质上要求将设备验证为企业设备(即,已安装企业配置文件)并具有高度安全的密码(至少12个字符,且长度用作安全性代理)。只有智能电话105和膝上型计算机120这两个设备参与此视图。如图所示,视图包括三个数据项805-815,每个数据项被标记为属于该第二视图(V2)。例如,如果数据项与某些企业应用相关或者是被用户表示为与工作相关的文件,则该数据项可能被标记为属于第二视图800。在这种情况下,在第三环400中成员身份的添加确保用户不将其密码中的一个密码更改为更短、更不安全的密码,因为这样做将会导致其从第三环400中被踢出并因此从视图800中被踢出。此外,数据项815中的一个数据项被标记为属于第二视图V2和第三视图V3两者。在一些实施方案中,数据项可属于多个视图,并且被共享到属于这些视图中的任一视图的设备。
最后,图9示出了要求在第二环300和第五环600两者中的成员身份的第三视图900(即,要求该设备是具有密码的已被验证为可信Apple设备的iOS设备)。三个设备105-115参与第三视图900,并且两个数据项815和905在这些设备中的每两个设备之间共享。即使这些设备不参与第二视图800,数据项815也将被同步到设备110和115。在其他实施方案中,这要求设备成为数据项所属于的每个视图的成员,智能电话105将不被允许与任一个其他设备共享数据项815。
一些实施方案允许由第三方开发人员或设备本身的用户自定义同步数据项的分层。例如,一些实施方案为开发人员提供了用于为与特定应用相关联的数据设计环和/或视图的工具包。例如,企业应用的开发人员可以设计对于将共享与企业应用相关联的数据项的设备的要求(即,可指定特定密码强度或其他设备要求)。在一些实施方案中,设备包括用于使用户能够自定义其设备如何同步数据的用户界面。也就是说,用户可基于一组可能的要求为其数据项设计不同视图,并且设备将通过将环分组成视图来实现用户选择。然而,在其他实施方案中,环和视图的设计由设计该组用户设备的设备制造商进行。
II.设备架构
图10概念性地示出了用于使设备分组成验证子组(环)和同步子组(视图)的一些实施方案的设备1000的软件架构。在这种情况下设备1000是与云服务账户相关联的若干(N)设备中的一者。对于本节和后续章节中的讨论,将假设通过视图加入环并共享数据项的各种设备都与单个用户相关联(例如,经由云服务账户或其他用户验证机制)。因此,除设备1000之外,图10还示出了一组附加设备(D2-DN)1005。设备1000和其他设备1005可以是能够存储数据并且与网络通信的任何不同类型的电子设备。例如,这些设备可包括智能电话、平板电脑、膝上型计算机和/或台式计算机、智能手表、机顶盒(独立于电视或集成到电视中)、在另一设备上操作的虚拟设备(例如,虚拟机)等。
如图所示,设备1000包括同步引擎1010、环评估器1015、视图评估器1020、数据标记器1025和一组应用程序1030。此外,该设备包括用于密钥链数据项存储器1035、设备和环签署密钥1040以及视图和环要求和描述1045。这些存储器都可以是同一物理存储器的一部分(例如,硬盘、固态存储器、随机存取存储器等)或独立的物理存储器(例如,密钥可存储在比视图和环要求/描述更安全的存储器中)。此外,一些数据可嵌入到模块的代码中。例如,如果视图描述和要求是固定的,则此信息可能是视图评估器和数据标记器的一部分,而不是通过这些模块从存储器拉取的单独数据。
在一些实施方案中,密钥链数据存储器1035存储作为在设备1000和另一设备1005之间同步的数据项的密钥链数据项。在一些实施方案中,这些数据项被存储在用与设备1000相关联的公共密钥加密的所述设备上(并且存储在用其他设备的公共密钥加密的所述其他设备上)。在一些实施方案中,该公共密钥是当设备被初始格式化时由设备以安全的方式生成的特定于设备的密钥。此外,在一些实施方案中,存储在设备上的每个数据项被标记为属于一个或多个视图。
在一些实施方案中,设备和环签署密钥存储器1040存储设备用于数据存储、数据同步和环成员身份加入/验证的各种密钥。例如,一些实施方案使用设备密钥来加密数据项以存储在设备1000上,并且还用于复原由设备1000或1005中的一者备份的数据,如美国临时专利申请62/168,894和62/172,128,以及标题为“Backup System with MultipleRecovery Keys”的美国专利申请14/871,498中更详细地描述。如下文进一步详细描述,密钥存储器1040还可存储环签署密钥(例如,从共享用户凭据生成的密钥(例如,云服务账户密码)、用于加入各种不同环的企业或其他密钥)以及用于在设备间传输期间保护同步数据项的密钥(即,用于设备1000与设备1005中的每个设备之间的PAKE保护信道的密钥)。在一些实施方案中,这些密钥可存储在设备1000上的各种不同位置中,而不是在单个存储器中。例如,一些密钥可存储在与设备1000的标准操作分开的安全处理器中。
视图和环要求及描述存储器1045概念性地存储由第三方开发人员、设备制造商或用户定义的不同环的要求。如上一节所示,这些要求可包括拥有各种凭据和/或加密密钥(例如,共享用户密码或其他凭据、企业密钥等)、各种设备和/或应用属性(例如,密码长度、操作系统、应用配置等)的声明、各种属性(例如,操作系统、设备有效性等)的带外验证或各种用户动作(例如,在一个设备上输入另一设备上示出的代码、在一个设备附近移动另一设备、使用一个设备拍摄另一设备的图片等)。存储器1045还存储视图要求,其在一些实施方案中识别特定设备(即,设备1000或其他设备1005中的一者)必须是哪些环的成员以便参与每个不同视图。此外,存储器1045包括视图描述,其针对每个视图识别哪些类型的数据项属于该视图。该视图描述可基于各种特征识别视图的数据项,包括从哪个应用程序接收数据项(例如,第一视图的来自Wi-Fi应用程序的密码、第二视图的来自web浏览器应用程序的密码)、密码与哪个万维网域相关联(例如,来自被分配到特定视图的金融网站域综合列表的密码)。在一些实施方案中,视图描述简单地指定被标记为属于特定视图的数据项,并且用户在首次输入数据项时从视图列表中进行选择。
在一些实施方案中,设备1000的用户可通过应用程序1030输入密钥链数据。应用程序1030可包括第三方应用程序(例如,银行应用程序、游戏应用程序、流式视频应用程序等)以及与设备操作系统集成并来自设备制造商的应用程序(例如,内置浏览器或邮件应用程序、Wi-Fi应用程序等)。用户通过这些应用程序1030输入用户名和密码或其他密钥链数据。此外,应用程序可以其他方式(例如,通过生成加密密钥、捕获照片等)接收密钥链数据。在一些实施方案中,由应用程序1030捕获的密钥链数据1050被发送到数据标记器1025。
数据标记器1025处理对从应用程序1030接收到的密钥链数据1050(以及当数据项目尚未标记视图信息时,来自任何其他源的密钥链数据项)的标记。在一些实施方案中,如图所示,数据标记器1025从视图描述和要求存储器1045中拉取视图描述信息1055,并使用该信息确定密钥链数据项1050中的每一者属于哪个视图。在其他实施方案中,如上所述,视图描述是数据标记器代码的一部分,并且不需要从存储器检索。
数据标记器1025将该视图信息附加到密钥链数据。在一些实施方案中,数据标记器将视图标记的密钥链数据1060发送到同步引擎1010(如图所示),该同步引擎使用加密密钥和函数来加密数据项并将其存储在密钥链数据存储器1035中。在其他实施方案中,数据标记器使用加密函数来加密视图标记的密钥链数据1060,并将该数据直接存储到存储器1035,而不涉及同步引擎1010。在任一情况下,一些实施方案加密数据项,但不加密视图标记,使得可在不解密数据的情况下识别数据项所属于的视图(例如,通过同步引擎1010)。
环评估器1015(i)为设备1000生成加入环的请求,并且(ii)评估来自其他设备1005的加入设备1000已成为其成员的环的请求。为生成请求,一些实施方案的环评估器1015包括自评估器模块1016。该模块使用环要求1065来确定设备1000何时满足环的成员身份标准。环要求1065可以是环评估器代码的一部分(例如,如果由设备制造商硬编码)或从存储器1045检索(例如,如果由设备的用户或由第三方开发人员定义)。在一些实施方案中,自评估器1016周期性地进行检查以确定设备1000是否已以一定方式改变,使得它满足其尚未成为成员的环的要求,或者不再满足其已成为成员的环的要求。在其他实施方案中,自评估器1016以事件驱动的方式操作。也就是说,当设备属性(或影响环成员身份的其他标准)改变时,通知自评估器1016以确定设备的环状态是否应当改变。
当自评估器1016识别出设备满足加入新环的标准(而不是任何请求驱动的动作,例如用户批准环成员身份或从设备1005中的一者携带代码到设备1000(或反之亦然))时,环评估器1015使用环请求所需的任何密钥1067生成并签署环加入请求1070(例如,用作设备身份的一部分的设备公共密钥、设备私有密钥和/或用于签署请求的任何特定于环的密钥)。这种请求的细节在下文参考图13进行了描述,该图示出了环加入请求的生成和发送。虽然未在图中示出,但是当自评估器1016确定设备不应再是特定环的成员时,环评估器1015还可向其他设备发送通知。
环评估器1015还包括用于验证从其他设备1005接收的环加入请求1075的凭据检查器模块1017。与设备1000一样,当其他设备中的一个设备确定其满足加入环的标准时,该设备生成环加入请求并将其发送到环中的其他设备(在一些实施方案中,每个设备存储每个环中的设备的列表,包括其未成为成员的环)。当设备1000接收到此类请求时,凭据检查器1017验证是否应允许请求设备进入其要求加入的环。这可能需要验证请求是否已使用一个或多个适当的密钥进行签署,验证是否已满足任何带外标准或执行带外检查(例如,检查请求设备是否为有效设备、设备1000上生成的代码是否已正确输入到请求设备上等)、设备是否已正确声明其加入环的标准、设备1000的用户是否已批准请求设备等。当环加入请求得到验证时,环评估器1015将环状态消息(未示出)发送到环中的其他设备1005。在一些实施方案中,环状态消息是环中的设备的列表,包括最近添加的设备。这用于通知请求设备它已成功加入环,并通知其他设备,设备1000已批准请求设备的成员身份(因此它们不需要单独处理成员身份请求)。在一些实施方案中,该通知消息用特定于环的密钥对的私有密钥(例如,用于签署成员身份请求的密钥)来签署。
环评估器1015还使视图评估器1020定期知悉设备1000以及其他设备1005的当前环状态1080。在一些实施方案中,视图评估器1020根据需要从环评估器1015(或从环评估器存储该信息的存储器)请求该信息。视图评估器1020负责确定哪些设备(包括设备1000和其他设备1005)参与为该组设备定义的每个不同视图。具体地讲,在一些实施方案中,视图评估器确定(在任何给定的时间点,基于所有设备的当前环成员身份状态)视图和设备之间的映射(即,对于每个设备,设备参与哪些视图;或对于每个视图,哪个设备参与)。视图评估器1020基于视图要求1085进行该确定,该视图要求再次可由设备制造商编码到视图评估器中或者是在各种不同实施方案中由第三方开发人员和/或用户生成的可变信息。
除了定义设备必须成为哪些环的成员以便参与视图之外,一些实施方案的视图要求可指定用于在设备之间同步视图的数据的信道的任何要求(对于一些或全部视图)。如上所述,在一些实施方案中,设备使用例如PAKE(其依赖于共享密钥,在同步期间对哪些数据项进行加密)形成对等加密的信道。此外,一些视图要求设备成为环的成员,该环本身要求拥有公共/私有密钥对。一些此类视图要求两个设备之间的信道除了PAKE的共享密钥之外还使用该密钥。例如,对于要求拥有企业环的成员身份(这要求拥有企业私有密钥)的企业视图,一些实施方案使用企业私有密钥来加密为该视图同步的数据项。因此,视图评估器1020向同步引擎1010提供(i)视图与设备之间的映射1090,以及(ii)每个视图的同步信道的要求1095。
在一些实施方案中,同步引擎1010负责将视图标记的密钥链数据项与其他设备1005进行同步。在一些实施方案中,同步引擎1010确定它应当将数据项与另一设备同步,并且从视图评估器1020接收特定的其他设备参与的视图的列表1090以及每个视图的任何特殊信道要求。在一些实施方案中,同步引擎1010一次仅同步一个信道,并且因此其仅从视图评估器1020请求在设备1000与另一设备之间使用特定信道的视图的列表(如果没有特殊信道要求,那么这将是其他设备和设备1000都参与的所有视图)。同步引擎1010从密钥链数据存储器1035检索属于正确视图的视图标记的密钥链数据项1097,并经由安全信道将这些数据项同步到另一设备。在一些实施方案中,这需要移除在设备上存储期间使用的密钥链数据项上的加密,并使用用于安全信道的共享密钥重新加密密钥链数据项。
本领域的普通技术人员将认识到,该图所示的模块组是设备的软件架构的子组,其将包括多种模块以用于任何数量的目的。此外,如图所示的模块中的许多模块本身将包括若干模块,并且未示出可被若干所示模块重新利用的各种模块。例如,当与其他设备(如下文通过参考图16和图17所示)和环评估器(用于签署环应用和/或验证其他设备的环应用,如下面的图13所示)同步数据时,同步引擎可使用加密和/或解密函数。
III.加入环
对于加入环的设备,一些实施方案要求该设备签署加入该环的请求,并且使已在环中的设备中的一个设备批准该请求。例如,在一些实施方案中,当设备满足环的需要拥有加密秘密的要求时,设备(i)使用从加密秘密生成的私有密钥签署其公共密钥(该公共密钥已与其他设备共享)和应用于环的日期/时间,(ii)将该签名与其用于加入环的身份一起封装,并且(iii)使用其自己的私有密钥签署该身份。然后将该签名作为加入环的请求发送到该环中的其他设备。当其他设备中的一个设备验证请求设备是否满足加入环的所有要求时,已建立的设备将通知环中的其他设备,包括所添加的新设备。在一些实施方案中,该通知包括环的成员列表,该成员列表当前包括新设备。
图11概念性地示出了用于请求环中的成员身份的一些实施方案的过程1100。在一些实施方案中,当设备确定其满足连接环的所有要求时,该设备(例如,设备的环评估器)执行过程1100。在一些实施方案中,当设备属性改变(例如,用户添加密码以保护对设备的访问,在设备上安装包含加密密钥的配置,用户在设备上输入云服务账户密码等)使得设备现在可以加入其不是其成员的环时,该设备执行过程1100(或类似过程)。
如图所示,过程1100开始于检索(在1105处)设备签署密钥对。在一些实施方案中,当设备操作系统最初由设备的用户启动并配置时,由设备随机生成公共/私有密钥对(并存储在设备上)。也就是说,当用户首次购买设备并配置设备以供其使用(或重置和重新配置设备的操作系统)时,设备基于随机化种子数据生成公共/私有密钥对。在一些实施方案中,密钥对的种子数据不与任何设备硬件相关联,使得如果为设备生成新的密钥对(如果用户重新格式化设备),则新密钥对将不承载任何与旧密钥对的加密关系。在一些实施方案中,设备使用与属于用户的其他设备(即,与其一起加入环的设备)共享的设备公共密钥作为其身份的一部分。该设备使用其私有密钥来加密其存储的数据项以及进行备份复原(如美国临时专利申请62/168,894和62/172,128以及标题为“Backup System with MultipleRecovery Keys”的美国专利申请14/871,498所述)。此外,在一些实施方案中,设备使用其私有密钥签署环成员身份请求。
接着,过程1100确定(在1110处)在其中请求成员身份的环是否使用秘密密钥的证明来进行验证。也就是说,一些环需要请求成员身份的设备指出该环拥有已建立设备具有公共密钥的特定私有密钥(通过例如签署成员身份请求)。
当需要此类密钥时,该过程基于环要求数据生成(在1115处)(或者如果密钥已生成,则检索)环签署密钥对。例如,一些实施方案要求用户输入特定的密码/口令以便加入环。然后,该设备以确定性的方式从该密码生成密钥对,该密钥对用于环成员身份请求中。在一些实施方案中,为设备提供用于生成密钥对的种子数据作为出于特定目的配置设备的一部分。例如,如果设备由企业拥有并由企业的员工使用,则企业可在设备上安装特定于其企业的配置,该配置包括用于生成公共/私有密钥对的种子数据,该设备可使用该公共/私有密钥对加入特定于企业的环。类似地,可使用能够利用应用程序下载获得加密数据来加入特定于应用程序的环。
此外,该过程执行(在1120处)任何附加的环凭据验证。这可涉及自验证获得环成员身份所需但不需要外部验证的设备的特定属性。例如,一些实施方案要求设备以任何加密或带外方式声明但不证明其运行特定的操作系统、是特定类型的设备(其中设备类型可以是一个广泛类别诸如智能电话、特定品牌(例如,Apple、Nokia、HTC等)的智能电话、特定版本(例如,iPhone 5、iPhone 6等)的设备等)、具有至少特定长度的密码等。
另外的环凭据验证还可能需要带外验证(在一些实施方案中,其在环成员身份请求发送之后而不是在之前执行)。带外验证要求设备证明而不是简单声明获得环成员身份所需的属性。例如,设备可能需要经由第三方证明它具有来自特定制造商的有效设备、它运行特定的操作系统、其密码为至少特定长度、或其他属性。
接着,该过程使用设备专有密钥以及任何专有环签署密钥(即,在操作1115处生成的任何密钥)签署(在1125处)环成员身份申请。这使得设备能够经由其环成员身份申请证明(i)该设备是所声称的设备,因为只有该设备具有与其共享公共密钥配对的私有密钥,并且(ii)该设备拥有加入环所需的加密秘密。在一些实施方案中,已签署的环成员身份申请还包括其他设备识别信息,包括其公共密钥以及申请的时间。一些实施方案的已签署环请求在下文参考图13更详细地描述。
最后,该过程将已签署环成员身份申请发送(在1130处)到已在环中的其他设备。在一些实施方案中,与用户相关联(例如,通过登录到用户账户,通过加入需要用户密码的环等)的每个设备存储作为每个可能环的成员的设备的列表,并使用该列表将环成员身份请求发送到环中的其他设备。只要这些设备中的一个设备批准成员身份请求(例如,使用诸如图12所示的过程,如下所述),就将设备添加到环。
图12概念性地示出了用于确定是否允许设备进入环的一些实施方案的过程1200。在一些实施方案中,第一设备执行过程1100(或类似过程)以生成环成员身份的已签署请求,并将该请求发送到已作为环成员建立的设备。然后,这些已建立设备中的一个(或多个)设备执行过程1200(或类似过程)以允许设备进入环(假设成员身份请求是适当的)或拒绝加入环的请求。
如图所示,过程1200开始于接收(在1205处)来自另一设备的加入本地设备(过程1200正在该本地设备上运行)已经所属的环的请求。在一些实施方案中,通过点对点连接从希望加入该环的另一设备接收该请求。可以通过直接连接(例如,设备之间的蓝牙连接等)或通过中央储存库来发送该点对点连接。例如,在一些实施方案中,请求设备向存储在中央储存库中的多个已建立的设备发送消息,并且这些已建立的设备中的每一者在活动时检索这些请求。也就是说,锁定或关闭的设备可能在被解锁、开机等之前无法接收请求。
在接收到请求时,该过程确定(在1210处)请求是否已经被另一设备批准。在一些实施方案中,随着请求设备将成员身份请求发送到环中的每个已建立的设备,在某些情况下,这些已建立的设备中的一者将开始处理该请求,以仅确定其他已建立的设备中的一个已经将请求设备添加到该环。在一些实施方案中,当请求设备被添加到环时,已建立的设备向其他已建立的设备和新设备发送通知。在这种情况下,过程1200结束。
假设请求设备尚未被添加到环,则过程1200确定(在1215处)该请求是否正确地识别该环。为了加入该环,一些实施方案要求请求设备生成识别该环的成员和/或该环的其他方面的请求。如果该请求没有正确识别该环,则该过程结束。
接下来,该过程确定(在1220处)请求设备是否满足该环的成员身份的所有标准。如上所述,这可以包括通过使用密钥来签署请求、声明请求设备的属性(其操作系统、设备类型等)、或带外验证环成员身份的要求来证明拥有特定的加密密钥。因此,确定请求设备是否满足所有标准的操作可以包括启动带外过程或确定是否已经执行了带外过程来验证请求设备的特定标准。如果请求设备不满足标准,则该过程结束(并且请求设备不会被添加到环)。
最后,如果请求设备另外被批准获得环成员身份,则该过程确定(在1225处)环是否需要用户批准。这是一种特定类型的环标准,因为它需要用户对批准设备进行操作,以使请求设备被允许进入环。当不需要用户批准时,该过程前进至下文描述的1240,以将请求设备添加到环。
当请求设备需要经过用户批准才能获得环成员身份时,该过程会在本地设备(执行过程1200的设备)上显示(在1230处)批准提示。该提示可以简单地声明设备正在请求获得成员身份以加入环,或者可以提供附加的上下文。例如,该提示可能会声明设备的名称(例如,John的iPhone)、设备类型、环名称,或在评估请求是否有效时对用户有帮助的其他信息。然后,该过程等待(未示出)用户指示是否允许请求设备进入环。
一旦用户应答该提示,则过程1200确定(在1235处)用户是否已经批准了请求设备。如果用户未批准请求设备,则该过程结束。然而,如果用户批准请求设备,该过程会将请求设备添加(在1240处)到环。在一些实施方案中,已建立的设备(执行过程1200处)通过向环的所有成员(包括请求设备)发送含有该环所有成员列表的消息来将请求设备添加到该环。一些实施方案用发送设备的私有密钥来签署该消息。
图13概念性地示出通过四个阶段1305至1320请求加入环并被第二设备1325批准的第一设备1300。第一设备1300可以是可加入环的任何类型的电子设备,诸如智能电话、智能手表、平板电脑、膝上型计算机或台式计算机等。对于第一设备1300,该图示出第一设备1300包括第一存储装置1330,该存储装置存储关于一组设备(包括第一设备(D1)1300)参与的各种环的信息。如第一阶段1305所示,这些环包括具有D2和D3作为成员的第一环、具有所有三个设备作为成员的第二环和具有D2作为其唯一成员的第三环。第一设备1300还包括第二存储装置1335,该存储装置存储与其他设备和/或环相关的各种密钥。这些密钥包括设备1300本身的公共密钥/私有密钥对,以及用于D2和D3的公共密钥。
在第一阶段1305,企业配置文件1340安装在第一设备1300上。如第二阶段1310所示,企业配置文件1340包括存储在密钥存储装置1335中的企业密钥对(或用来生成企业密钥对的种子数据)。企业配置文件1340还可以包括设备1300上应用程序安装、各种安全措施等。
在第三阶段1315,设备1300的环评估器1345确定该设备现在拥有加入第一环所需的证书(即企业私有密钥)。因此,该环评估器使用请求签名器1350生成请求。在一些实施方案中,请求签名器是密码数字签名生成函数,其使用私有密钥签署消息或其他数据。第一设备D1 1300然后将请求1355发送到第二设备D2 1325。虽然未示出,但是在一些实施方案中,第一设备1300还将该请求发送到D3。
在一些实施方案中,请求1355由第一设备1300使用过程诸如图11所示的过程来生成。具体地讲,在一些实施方案中,设备1300(i)使用从密码秘密生成的私有密钥来签署其公共密钥(已经与其他设备共享)和对环的申请的日期/时间,(ii)将此签名与用于加入该环的身份一起封装,以及(iii)使用自己的私有密钥来签署该身份。如图所示,请求1355的最内部分包括设备的公共密钥以及第一设备对环的申请的时间。然后使用环特定的私有密钥(即,由设备1300接收的作为企业配置文件的一部分的企业密钥)来签署这组数据(公共密钥+申请时间)。设备身份(也称为对等信息)包括该签名以及关于设备的其他数据(例如,其名称、硬件特定的标识符和/或其他数据)。然后使用设备1300的私有密钥来签署该设备身份,从而证实该请求实际上来自第一设备。
在第四阶段1320,第二设备1325接收请求1355并验证该请求。第二设备1325使用签名验证器1360,该签名验证器使用第一设备(先前共享)的公共密钥以及企业公共密钥(该设备已经在企业环中,因此存储企业密钥对)。如果签名验证器1360验证该请求被第一设备正确地签署,则第二设备1325上的环评估器1365将第一设备1300添加到第一环。尽管在该图中未示出,但是第二设备1325向D1和D3两者发送消息,指示所有三个设备都是第一环的成员。在一些实施方案中,该消息由第二设备1325签署。
由图13中的第一设备加入的环只需要证明拥有企业环密钥请求上的签名。然而,如上所述,在某些情况下,环也可能需要附加的要求。图14概念性地示出了通过五个阶段1405至1425加入第三环的相同设备1300,这要求通过中央管理机构验证设备属性以及拥有秘密加密密钥。在第一阶段1405,设备1300接收(例如,经由用户输入、下载等)用于第三环的加密秘密1430。因此,第二阶段1410示出第一设备1300上的密钥存储装置包括从加密秘密1430生成的公共密钥/私有密钥对。
在第三阶段,第一设备1300发送将第一环连接到第二设备1325的已签署请求1435。在这种情况下,第一设备仅将该请求发送到第二设备,因为第二设备是当前作为该环成员的唯一设备。在一些实施方案中,请求1435采用与上一张图中所示的请求1355相同的方式签署。也就是说,请求包括向第一环提出申请的时间以及第一设备的公共密钥,并使用从加密秘密1430生成的私有密钥来签署。然后将该信息与设备身份一起封装,然后使用设备1300的私有密钥对其进行签署。
在第四阶段,在接受第一设备进入第一环之前,第二设备1325接收对第一设备1300的属性的验证1440。在这种情况下,设备使用中央管理机构1445,经由可由任一设备启动的过程来验证设备属性。中央管理机构1445可以是验证设备是可信的或者设备具有特定操作系统的设备制造商。如上所述,在各种实施方案中,带外过程可以涉及用户动作而不是中央管理机构,或涉及在两个设备之间直接交换信息。最后,在第五阶段1425,第二设备1325验证该请求并将第一设备1300添加到第一环,如上一张图所示。
IV.同步过程
在设备已在环中建立的情况下(用于验证的子组),可以将它们布置到视图中(用于同步的子组)。如所提及的,在一些实施方案中,环用于将设备组织到视图中,视图用于确定存储在设备上的哪些数据项应与其他设备同步。在一些实施方案中,视图由以下项定义:(i)对于参与该视图的设备的一组要求,以及(ii)在参与该视图的设备之间同步的一类数据项。在一些实施方案中,对于视图的一组要求是一个或多个环中的成员身份(如上文参考图7-图9所示)。
视图用于使相关设备组能够将数据项彼此同步。在各种实施方案中,这些同步数据项包括用于在线账户(例如,金融服务网站、在线论坛网站、媒体内容提供商、在线零售网站等)的用户名和密码、加密密钥和/或秘密(即,可以用来生成密钥的数据)、允许访问存储在中央服务器、网络(例如,Wi-Fi网络)密码、笔记、照片、文档和其他文件等上的应用相关数据的应用特定的服务密钥。
图15概念性地示出了用于将密钥链数据从第一设备同步到第二设备的一些实施方案的过程1500。在这种情况下,该过程对第一设备和第二设备之间的特定安全信道执行同步过程,该安全信道可以是设备之间的唯一安全信道或设备之间的若干安全信道中的一个安全信道。虽然该过程通过特定安全信道对所有视图执行同步,但是其他实施方案可以使用为特定视图或特定设备的所有视图(不论是何信道)(同时)执行所有设备的同步的过程。
如图所示,过程1500开始于接收(在1505处)用于通过特定信道同步特定远程设备的数据的命令。在一些实施方案中,该过程在与第二远程设备一起参与至少一个视图的第一设备上执行。第一设备可以与第二设备周期性地同步数据项,可以基于用户命令来同步数据项,或者可以在每当第一设备接收到新数据项并(基于数据项所属的一组视图)确定该数据项应与第二设备同步时同步数据项。
在一些实施方案中,整个设备组中的每对设备在它们本身之间创建用于同步数据项的安全信道(例如,使用非正式(OTR)即时消息协议)。在一些实施方案中,只要视图不对安全信道施加任何附加要求,第一设备就会经由安全信道将用于这两个设备参与的所有视图的已识别同步数据项传输到第二设备。当视图对安全信道施加附加要求(例如,使用获得验证子组的成员身份所需的加密密钥加密数据项)时,第一设备可使用多个不同的安全信道将该组数据项与第二设备同步。在这种情况下,在一些实施方案中,对每个信道分别执行过程1500。
该过程接下来识别(在1510处)这两个设备(执行同步的本地设备和数据被同步的设备)参与的一组视图。在一些实施方案中,设备中的视图评估器模块基于远程设备作为其成员的环来生成远程设备参与的一组视图。如上所述,每个设备记录组中的每个其他设备是其成员的环,使得该数据可以用于确定视图。类似地,该设备基于其自己的环成员身份知道它参与哪些视图。
过程1500识别(在1515处)新同步数据项,该新同步数据项被所识别的组中的任何视图(两个设备参与的视图)标记并且之前没有同步到远程设备。该设备仅将作为其密钥链的一部分的数据(即,属于其作为成员的视图的数据)以及属于远程设备参与的至少一个视图的数据同步。当第一设备(例如,从用户输入新密码、导入或下载新照片等)接收到要添加到这组同步数据项的新数据项时,一些实施方案的设备动态地将该数据标记为属于一个或多个视图。例如,可能会基于在其内创建该数据的应用程序(例如,Wi-Fi网络/密码与在线账户用户名/密码)、用户名/账户可访问的网站类型(例如,金融网站与非金融网站)、数据是否与企业有关等来标记该数据。当与远程设备同步数据项时,第一设备识别其存储的所有尚未传输到第二设备(以及属于第二设备参与的视图)的同步数据项。
在识别出数据项的情况下,过程1500在这些新数据项存储在本地设备上时将其解密(在1520处)。在一些实施方案中,解密过程使用本地设备的私有密钥,只有该设备才知道该私有密钥。在一些实施方案中,数据项以使用设备公共密钥加密的加密形式存储在设备上。一些实施方案还使用一个或多个附加密钥对数据项进行加密以便存储在设备上,所述附加密钥诸如用于加入环的密钥对(例如,基于用户密码的密钥对、企业密钥对等)中的公共密钥。对于用于对数据项进行加密以便存储在设备上的每个公共密钥,该过程使用相应的私有密钥对数据项进行解密。
接下来,该过程根据通过其传输数据项的安全信道的要求加密(在1525处)用于传输到远程设备的数据项。如所提及的,一些实施方案使用经密码认证的密钥交换(PAKE),其依赖于用于加密设备之间的消息的共享密钥。在某些情况下,对于特定视图的视图要求可以对用于将属于该特定视图的数据项同步的安全信道施加另外的限制,诸如使用附加密钥(例如,需要拥有某个密钥才能加入环,特定视图要求的成员身份)。因此,一些实施方案使用至少该共享密钥并且有可能使用附加密钥来加密数据项。
最后,该过程通过设备之间的安全信道将视图的已加密项目发送(在1530处)到远程设备。在不同实施方案中,该安全信道可穿过即使在接收设备解锁时也允许临时存储的集中式服务(例如,用于两个设备所登录的云服务账户的存储器)。然而,在一些实施方案中,安全信道的使用保护这些通信免受中间人攻击。其他实施方案使用直接对等连接(例如,经由蓝牙连接)。在接收到已加密的项目时,在一些实施方案中,远程设备将这些项目解密(如同在信道上加密那样)并且使用其自己的公共密钥对这些项目进行重新加密以便于本地存储。在一些实施方案中,远程设备还执行与过程1500类似的过程,来将其新数据项中的任何一个与本地设备同步。
图16和图是17概念性地示出了将数据彼此同步的一对设备1600和1650。具体地讲,图16示出了通过两个阶段1605和1610接受用于由第一设备1600同步的新数据项。第一阶段1605示出了由两个设备1600和1650中的每一者存储的项目。在该示例中,第一设备1600参与视图V1和V2,而第二设备1650参与视图V1和V3。如图所示,第一设备存储项目11615、项目2 1620和项目3 1625。前两个项目即1615和1620属于第一视图V1,而第三个项目1625属于第二视图V3,并且这些数据项照此被标记。第二设备存储项目1 1615、项目21620和项目4 1630。第四个项目1630属于V3,这就是为什么这个项目仅存储在第二设备1650上的原因。最后,这个阶段示出了一个图例,它指出在该图和后面的图中使用的表示,其表示使用不同的密钥对数据项进行加密。存储在第一设备1600上的项目用第一设备的密钥加密,而存储在第二设备1650上的项目用第二设备的密钥加密。
在第二阶段,第一设备1600的用户(也是第二设备1650的用户,并且因此这些设备彼此同步数据)通过应用程序1640为该设备提供数据项51635。该应用程序可能是用户通过其输入密码的Web浏览器应用程序、使用密码的第三方应用程序、用户通过其创建新文件(例如,经由文字处理应用程序的文档、通过相机应用程序捕获的图像等)的应用程序,或者设备1600通过其接收数据的其他应用程序。
该第五数据项1635被发送到第一设备1600上的数据标记器1645,该数据标记器将数据项识别为属于第一视图V1,并且照此标记该项目。这可能归因于通过其接收到该项目的应用程序1640或识别该数据项的其他数据(其文件类型、与其关联的Web域等)。该项目还被发送到加密函数1655(例如,该函数执行非对称加密诸如RSA、DSS、椭圆曲线加密等)。加密函数1655使用第一设备的公共密钥(未示出)对数据项1635进行加密以便存储。在一些实施方案中,如该图所示,视图信息未被加密,因为该信息不敏感,并且不需要解密以使设备访问视图数据。
图17示出了通过三个阶段1705至1715将新数据项1635从第一设备1600同步到第二设备1650。如第一阶段1705所示,第一设备1600上的视图评估器模块1720通知同步引擎1725将数据与第二设备同步。设备到视图的映射指出V1是这两个设备都参与的唯一视图,因此只有标记为属于V1的数据项才应在设备之间同步。
因此,在第二阶段1710,第一设备1600将新数据项1635发送到第二设备1650。如图中新数据项1635的表示上变化的虚线和点线所示,第一设备使用其自己的私有密钥(并且有可能使用需要的任何其他密钥)对存储的数据项进行解密,然后使用用于设备之间的安全信道的共享密钥来加密该数据项的明文版本。第一设备1600上的同步引擎1725然后通过该安全信道发送经加密的数据项1635,在该安全信道上,该数据项由第二设备1650上的同步引擎1730接收。在一些实施方案中,作为安全信道的一个要求,数据项1635上的视图标签也使用该共享密钥进行加密。如所提及的,尽管被显示为两个设备1600和1650之间的直接连接,但是在一些实施方案中,数据项1635由第一设备1600发送到中央储存库(例如,云存储装置),并且随由过第二设备1650从该储存库取走。
第三阶段1715示出存储数据项1635的第二设备1650。在接收到数据项之后,设备1650使用安全信道的共享密钥(以及所必需的任何其他密钥,具体取决于对V1的信道要求)来解密该项目,然后使用其自己的公共密钥(以及可能地附加加密密钥)来加密密钥以便存储。
如所提及的,同步数据项可以包括不同实施方案中的各种不同类型的项目,包括密码/用户名组合、Wi-Fi网络和相应的密码、加密密钥、文件等。在一些实施方案中,数据项包括特定于应用程序的密钥,其使得能够经由嵌套密钥的层次结构访问存储在云服务中的应用程序相关数据。也就是说,对于设备上的每个应用程序(或设备上的应用程序子组中的每一者),同步数据包括特定于应用程序的私有密钥(例如,照片应用程序密钥)。
特定于应用程序的私有密钥用于访问存储在密钥和数据字段树中的数据,其最终允许访问应用程序数据本身。该保护结构在图18和图19中示出。图18示出了存储在中央储存库(例如,云存储装置)中并且在一些实施方案中可供设备下载的容器结构1800。容器结构1800包括使用特定于应用程序的公共密钥加密的其自己的私有密钥1805(或用于生成该私有密钥的种子数据)。因此,访问此容器私有密钥需要拥有作为密钥链数据项同步的特定于应用程序的私有密钥。表示应用程序的高级概览的容器结构1800包括不需要访问任何密钥的一组未加密字段1810(字段_1至字段_M),以及其中每一个都使用容器公共密钥1805加密(因此需要拥有容器私有密钥才能访问)的一组字段1815(字段_M+1至字段_N)。
此外,容器公共密钥用于加密作为区域结构1900的一部分的区域私有密钥1905。因此,访问该区域结构需要访问容器私有密钥1805,后者又要求访问特定于应用程序的服务密钥。与容器结构1800一样,区域结构1900包括若干未加密字段1910(字段_1至字段_Q)和使用区域密钥加密的若干字段1915(字段_Q+1至字段_R)。虽然该容器表示应用程序的高级概览,但是在一些实施方案中,区域表示该容器内的特定数据库或表。例如,区域可以表示与应用程序相关联的一组照片,每张照片由记录(和区域所指向的记录)表示。
在一些实施方案中,区域引用的每个记录可以包括访问特定应用程序数据(例如,特定照片)所需的密钥。在一些实施方案中,每个记录具有用其区域公共密钥加密的密钥,因此需要该区域私有密钥来访问。记录的结构类似于容器和区域,具有未加密字段和加密字段。例如,用于照片记录的字段可以存储照片的标题、位置、时间戳等,以及实际上将照片解锁的密钥。在一些实施方案中,由区域密钥解锁的记录密钥是对称密钥,而不是公共密钥/私有密钥对中的私有密钥。
除了经由同步过程共享之外,在一些实施方案中,特定于应用程序的密钥链数据项可经由安全托管系统恢复,如在美国临时专利申请62/168,894和62/172,128以及美国专利申请14/871,498和美国专利公布2014/0093084中所述。
V.组成员身份的动态改变
如图2-6所示,在一些实施方案中,设备可以是多个环的成员。此外,设备可随着设备属性的改变而动态地移进和移出这些环,使得设备满足各种环的要求或不再满足要求。当设备的属性改变(例如,在设备上安装了包含特定加密秘密的配置文件,用户更改设备密码长度或向设备添加密码等)使得设备变得有资格加入环时,该设备会生成并发送对环的成员身份的请求,如上所述。另一方面,当设备的属性改变使得设备不再满足设备当前已成为其成员的环中的成员身份要求时,该设备检测到其不应再是该环的成员,并将此通知传输到作为该环成员的其他设备。
加入或离开环的设备也可以影响设备对一个或多个视图的参与。例如,当设备加入环时,该设备现在可以能够参与新视图,并因此应(经由同步过程)接收属于该新视图的数据。另一方面,当设备离开环时,该设备可能不再被允许参与需要该设备不再是其成员的特定环的成员身份的一个或多个视图。这将被与该特定设备相关联的其他设备识别,这些设备将不再与该特定设备共享属于这些受影响视图的数据。此外,在一些实施方案中,该特定设备将删除其不再被授权访问的所有数据项。在其他实施方案中,在即使该设备将不再接收到该视图的新数据,用户也想要将数据保留在设备上的情况下,该设备会在删除任何数据之前询问用户。
图20概念性地示出了用于动态修改设备的环成员身份以及随后的视图参与的一些实施方案的过程2000。在一些实施方案中,过程2000由设备执行以评估其自身的环成员身份,然后评估其视图参与情况。如上所述,该设备可以是智能电话、智能手表、平板电脑、膝上型计算机、台式计算机,或参与相关设备之间的同步系统的任何其他设备。
如图所示,过程2000开始于识别(在2005处)(运行该过程的设备的)设备配置的改变。设备配置的这种改变可能是用户改变设备密码(例如,从四位密码更改为长密码,反之亦然;删除在设备上使用密码;添加密码设备等),在设备上安装应用程序,升级设备的操作系统,修改应用程序或设备设置,学习新的加密秘密等的结果。一些实施方案定期检查与枚举的一组环要求有关的改变,而在一些实施方案中,过程2000是事件驱动的,因为对设备的某些改变将导致执行过程2000的某些操作。
该过程确定(在2010处)所述改变是否导致环成员的任何增加。参考上述图2-图6中的环200、300、400、500和600,此类改变的示例将是用户是否将智能电话110或表115上的密码改变为具有至少十二个字符而不是四个字符,在这些设备或家用台式计算机130上是否安装了企业配置,设备密码是否被添加到流式视频机顶盒125等。如上所述,许多其他类型的改变也可能导致设备变得有资格获得环的成员身份。
当对设备配置的改变导致有资格获得至少一个环的成员身份时,该过程生成(在2015处)加入环的请求,并将该已签署的请求发送到环中的其他设备。在一些实施方案中,设备执行图11的过程1100以在2015处生成并发送已签署的环。一旦设备已成功加入环(假设成员身份请求有效),则如果环成员身份导致设备参与一个或多个附加视图,则可以由其他设备中的一个设备执行过程1500或类似过程来将属于这些附加视图的数据项与该设备同步。
该过程还确定(在2020处)所述改变是否导致设备从任何环中移除。再次参考图2-图7的环,此类改变的示例将是从智能电话105或膝上型计算机120移除企业配置,从设备105至120或130中的任何一者移除密码,缩短智能电话105、膝上型计算机120或台式计算机130上的密码等。许多其他类型的改变(例如,从设备撤销密码或加密密钥)也可能导致设备丧失环成员身份。
如果没有任何设备配置改变导致设备从任何环中移除,则过程2000结束。否则,该过程通知(在2025处)环中的其他设备关于该设备从环中移除。一些实施方案向外发送使用设备的私有密钥签署的消息以指示该改变。除了通知环中的其他设备之外,一些实施方案还通知不在该特定环中的任何其他相关设备(例如,同一用户的其他设备)。例如,如果智能电话105从环500中移除(因为企业配置从设备中移除),则在一些实施方案中它将通知所有设备110至130。
除了确定设备改变是否影响设备的环状态之外,如果设备离开环,则过程2000还处理设备的潜在视图参与改变。因此,该过程确定(在2030处)环成员身份移除是否导致从任何视图中的移除。由于对任何特定视图的参与是基于一个或多个环的成员身份确定的,因此从用于确定视图参与的环中的一个环移除将会导致该设备不再有资格参与该视图。例如,使用上一段的示例,智能电话105从环500中移除随后将导致智能电话不再有资格参与第二视图800。
当设备从视图中移除时,不需要通知参与视图的其他设备,因为其他设备将基于设备从其中一个所需环中的移除而得出相同的结论。然而,在一些实施方案中,过程2000删除(在2035处)不再属于设备参与的任何视图的任何同步数据项。如上所述,一些实施方案不会自动删除该数据,而是提示用户询问是否应删除数据(使得用户不会丢失他们不想丢失的任何数据)。在一些实施方案中,是否提示用户取决于视图。例如,如果企业视图需要一定程度的安全性,那么如果设备不再满足安全性约束,则企业可能不希望为用户提供保留数据的选项。但是,此类视图可能会给用户提供一个选项以用于将导致从视图中移除的改变反转(例如,将改变反转到较短的密码)。
图21A至图21B示出了图16和图17的设备1600和1650中的一者的密码已改变,使得其通过四个阶段2105至2120从环中移除时的这两个设备。如第一阶段2105所示,第二设备1650存储属于视图V1的同步数据项1615、1620和1635以及属于视图V3的数据项1630。在这个阶段,设备1650的用户将其密码从12位密码(“012345678910”)修改为4位密码“1234”。
因此,在第二阶段2110,第二设备1650的环评估器2125识别出该设备应不再是环(环3)的成员,因为其密码不再足够长。因此,第二设备1650向第一设备1600发送消息2130,通知第一设备第二设备不再是环3的成员。在一些实施方案中,如图所示,该消息指示环状态改变的原因,尽管其他实施方案只向外发送通知而没有附加数据。
在第三阶段,第一设备1600和第二设备1650都处理从环3移除第二设备。第一设备上的环评估器2135注意到第二设备从该环中移除,并且还向视图评估器1720通知环状态的该改变,使得视图评估器可以为将来的同步操作确定第二设备的视图状态已经完全改变。在第二设备上,环评估器2125向视图评估器2140通知该相同的改变,并且视图评估器由此识别出第二设备1650不再参与视图V1(即,因为环3成员身份是对视图V1的一个要求)。
因此,视图评估器2140从第二设备中移除数据项1615、1620和1635,因为它们属于设备不再参与的视图V1。第四阶段2140示出该结果,其中第二设备1650仅存储项目1630(它属于视图V3)。
VI.电子系统
上文所述的特征和应用程序中的许多可被实施为被指定为在计算机可读存储介质(还称为计算机可读介质)上记录的一组指令的软件过程。在这些指令由一个或多个计算或处理单元(例如,一个或多个处理器、处理器的内核或者其它处理单元)执行时,这些指令使得一个或多个处理单元能够执行指令中所指示的动作。计算机可读介质的示例包括但不限于CD-ROM、闪存驱动器、随机存取存储器(RAM)芯片、硬盘驱动器、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)等。计算机可读介质不包括无线地传送或通过有线连接的载波和电信号。
在本说明书中,术语“软件”意在包括驻留在只读存储器中的固件或者存储在磁性存储设备中的应用程序,所述固件或应用程序可被读取到存储器中以用于由处理器进行处理。另外,在一些实施方案中,可在保留不同的软件发明的同时,将多个软件发明实现为更大程序的子部分。在一些实施方案中,还可将多个软件发明实施为独立程序。最后,共同实施本文所述的软件发明的单独程序的任何组合均在本发明的范围内。在一些实施方案中,当被安装以在一个或多个电子系统上运行时,软件程序定义执行和施行软件程序操作的一个或多个特定机器具体实施。
A.移动设备
一些实施方案的用户数据共享在移动设备例如智能电话(例如,)和平板电脑(例如,)上发生。图22是此类移动计算设备的架构2200的示例。如图所示,移动计算设备2200包括一个或多个处理单元2205、存储器接口2210和外围设备接口2215。
外围设备接口2215耦接到各种传感器和子系统,所述子系统包括照相机子系统2220、一个或多个有线通信子系统2223、一个或多个无线通信子系统2225、音频子系统2230、I/O子系统2235等。外围设备接口2215能够实现处理单元2205与各种外围设备之间的通信。例如,取向传感器2245(例如,陀螺仪)和加速度传感器2250(例如,加速度计)耦接到外围设备接口2215,以有利于促进取向和加速功能。
摄像机子系统2220耦接到一个或多个光学传感器2240(例如,电荷耦合设备(CCD)光学传感器、互补金属氧化物半导体(CMOS)光学传感器等)。与光学传感器2240耦接的相机子系统2220促进相机功能,诸如图像和/或视频数据捕获。有线通信子系统2223和无线通信子系统2225用于促进通信功能。
在一些实施方案中,无线通信子系统2225包括射频接收器和发射器,以及光学接收器和发射器(图22中未示出)。一些实施方案的这些接收器和发射器被实现为工作于一个或多个通信网络上,所述通信网络诸如是GSM网络、Wi-Fi网络、蓝牙网络等。音频子系统2230耦接到扬声器以输出音频(例如以输出语音导航指令)。另外,在一些实施方案中,音频子系统2230耦接到麦克风以有利于支持语音的功能。
I/O子系统2235涉及输入/输出外围设备(诸如显示器、触摸屏等)与处理单元2205的数据总线之间通过外围设备接口2215的传输。I/O子系统2235包括触摸屏控制器2255和其它输入控制器2260以有利于输入/输出外围设备和处理单元2205的数据总线之间的传输。如图所示,触摸屏控制器2255耦接至触摸屏2265。触摸屏控制器2255使用多种触敏技术中的任一种来检测触摸屏2265上的接触和移动。其它输入控制器2260耦接至其它输入/控制设备,诸如一个或多个按钮。一些实施方案包括旁近触感屏和对应控制器,该对应控制器可检测替代触摸交互或除触摸交互之外的接近触摸交互。
存储器接口2210耦合至存储器2270。在一些实施方案中,存储器2270包括易失性存储器(例如,高速随机存取存储器)、非易失性存储器(例如,闪存存储器)、易失性存储器和非易失性存储器的组合和/或任何其他类型的存储器。如图22中所示,存储器2270存储操作系统(OS)2271。OS 2271包括用于处理基础系统服务以及用于执行硬件相关任务的指令。
存储器2270还包括:促进与一个或多个附加设备通信的通信指令2274(例如,用于对等数据共享,或用以通过互联网连接到服务器以进行基于云端的数据共享);促进图形用户界面处理的图形用户界面指令2276;促进图像相关的处理和功能的图像处理指令2278;促进输入相关(例如,触摸输入)的过程和功能的输入处理指令2280;促进音频相关的过程和功能的音频处理指令2282;以及促进相机相关的过程和功能的相机指令2284。上述指令仅是示例性的,并且在一些实施方案中,存储器2270包括附加的和/或其他指令。例如,用于智能电话的存储器可包括促进与电话相关的处理和功能的电话指令。以上所识别的指令不需要作为独立的软件程序或模块来实施。可在硬件和/或软件中,包括在一个或多个信号处理和/或专用集成电路中来实现移动计算设备的各种功能。
虽然图22中例示的组件被示出为独立的组件,但是本领域的普通技术人员将认识到,可将两个或更多个组件集成到一个或多个集成电路中。另外,两个或更多个组件可由一条或多条通信总线或信号线来耦接在一起。另外,虽然已将许多功能描述为由一个组件执行,但是本领域的技术人员将认识到,可将相对于图22所述的功能拆分到两个或更多个集成电路中。
B.计算机系统
图23概念性地示出了实现本发明的一些实施方案所利用的电子系统2300的另一个示例。电子系统2300可为计算机(例如,台式计算机、个人计算机、平板电脑等)、电话、PDA或任何其它种类的电子或计算设备。此类电子系统包括各种类型的计算机可读介质以及用于各种其它类型的计算机可读介质的接口。电子系统2300包括总线2305、一个或多个处理单元2310、图形处理单元(GPU)2315、系统存储器2320、网络2325、只读存储器2330、永久性存储设备2335、输入设备2340以及输出设备2345。
总线2305总体表示在通信上连接电子系统2300的许多内部设备的所有系统、外围设备、以及芯片组总线。例如,总线2305可通信地将一个或多个处理单元2310与只读存储器2330、GPU 2315、系统存储器2320以及永久性存储设备2335连接。
处理单元2310从这些各种存储器单元检索要执行的指令和要处理的数据,以便执行本发明的过程。在不同实施方案中,一个或多个处理单元可为单个处理器或者多核处理器。一些指令被传送至GPU 2315并且由该GPU执行。GPU 2315可卸载各种计算指令,或补充由一个或多个处理单元2310提供的图像处理。在一些实施方案中,可使用CoreImage的内核着色语言来提供此类功能性。
只读存储器(ROM)2330存储一个或多个处理单元2310以及电子系统的其他模块所需的静态数据和指令。另一方面,永久性存储设备2335是读写存储器设备。该设备是即使在电子系统2300关闭时也存储指令和数据的非易失性存储器单元。本发明的一些实施方案将海量存储设备(诸如磁盘或光盘及其相应硬盘驱动器、集成式闪存存储器)用作永久性存储设备2335。
其它实施方案将可移动的存储设备(诸如软盘、闪存存储器设备等,及其对应的驱动器)用作永久性存储设备。与永久性存储设备2335一样,系统存储器2320也是读写存储器设备。但是,与存储设备2335不同的是,系统存储器2320是易失性读写存储器,诸如随机存取存储器。系统存储器2320存储处理器运行时所需的指令和数据中的一些。在一些实施方案中,本发明的过程存储在系统存储器2320、永久性存储设备2335和/或只读存储器2330中。例如,各种存储器单元包括用于根据一些实施方案处理多媒体片段的指令。一个或多个处理单元2310从这些各种存储器单元检索将要执行的指令以及将要处理的数据,以便执行一些实施方案的过程。
总线2305还连接至输入设备2340和输出设备2345。输入设备2340使得用户能够将信息传达至电子系统并且选择至电子系统的命令。输入设备2340包括字母数字键盘和指示设备(也称为“光标控制设备”)、摄像机(例如,网络摄像机)、麦克风或用于接收语音命令的类似设备等。输出设备2345显示由电子系统生成的图像或者其他输出数据。输出设备2345包括打印机以及诸如阴极射线管(CRT)或液晶显示器(LCD)的显示设备,以及扬声器或类似的音频输出设备。一些实施方案包括充当输入设备和输出设备两者的设备诸如触摸屏。
最后,如图23中所示,总线2305还通过网络适配器(未示出)将电子系统2300耦接到网络2325。以此方式,计算机可以是计算机的网络(诸如局域网(“LAN”)、广域网(“WAN”)或内联网)的一部分,或者可以是网络的网络(诸如互联网)的一部分。电子系统2300的任何或所有部件均可与本发明一起使用。
一些实施方案包括将计算机程序指令存储在机器可读或计算机可读介质(或者称为计算机可读存储介质、机器可读介质或机器可读存储介质)中的电子组件,例如微处理器、存储装置以及存储器。此类计算机可读介质的一些示例包括RAM、ROM、只读光盘(CD-ROM)、可刻录光盘(CD-R)、可重写光盘(CD-RW)、只读数字通用光盘(例如,DVD-ROM、双层DVD-ROM)、各种可刻录/可重写DVD(例如,DVD-RAM、DVD-RW、DVD+RW等)、闪存存储器(例如,SD卡,迷你-SD卡、微型-SD卡等)、磁性和/或固态硬盘驱动器、只读和可刻录盘、超密度光盘、任何其他光学或磁性介质以及软盘。计算机可读介质可存储计算机程序,该计算机程序可由至少一个处理单元来执行并且包括用于执行各种操作的指令集。计算机程序或者计算机代码的示例包括机器代码,例如由编译器所产生的机器代码,以及包括可由计算机、电子部件或微处理器使用解译器来执行的更高级别代码的文件。
虽然上述讨论主要涉及执行软件的微处理器或多核处理器,但一些实施方案由一个或多个集成电路来执行,该一个或多个集成电路例如专用集成电路(ASIC)或现场可编程门阵列(FPGA)。在一些实施方案中,此类集成电路执行存储在电路自身上的指令。此外,一些实施方案执行存储在可编程逻辑设备(PLD)、ROM或RAM设备中的软件。
如本说明书以及本专利申请的任何权利要求所用,术语“计算机”、“服务器”、“处理器”及“存储器”均是指电子或其它技术设备。这些术语排除人或者人的群组。出于本说明书的目的,术语显示或正在显示意指正在电子设备上显示。如在本专利申请的本说明书以及任何权利要求中所使用的,术语“计算机可读介质”以及“机器可读介质”完全限于以可由计算机读取的形式存储信息的可触摸的物理对象。这些术语不包括任何无线信号、有线下载信号以及任何其它短暂信号。
虽然已参考许多特定细节描述了本发明,但本领域的普通技术人员将认识到,可在不脱离本发明的实质的情况下以其它特定形式来体现本发明。例如,多个附图(包括图11、图12、图15和图20)概念性地示出了过程。这些过程的特定操作可不以所示出和所描述的确切次序执行。可不在一个连续的操作系列中执行该特定操作,并且可在不同实施方案中执行不同的特定操作。此外,该过程可使用若干子过程来实施,或者作为更大宏过程来实施。因此,本领域的普通技术人员将理解,本发明不受前述示例性细节限制,而是将由所附的权利要求所限定。
Claims (25)
1.对于第一设备,一种用于与第二设备同步数据项集合的方法,所述方法包括:
接收将存储在所述第一设备上的所述数据项集合与所述第二设备同步的请求;
确定存储在所述第一设备上的同步数据项的子集属于所述第二设备所参与的至少一个同步子组,其中参与所述同步子组中的至少一个同步子组是基于至少一个验证子组的成员身份定义的,其中所述第一设备和所述第二设备是具有多个不同验证子组的一组相关设备的一部分;
使用安全信道仅将属于所述第二设备所参与的至少一个同步子组的所述同步数据项的所述子集发送到所述第二设备。
2.根据权利要求1所述的方法,其中每个同步数据项存储在所述设备上,其中一组标记指示所述数据项所属的同步子组。
3.根据权利要求2所述的方法,还包括:
从用户输入接收新数据项;以及
将所述新数据项标记为属于至少一个同步子组。
4.根据权利要求1所述的方法,其中所述相关设备组包括用户关联到同一云服务账户的多个设备,其中所述验证子组中的一个验证子组包括与所述云服务账户相关联的所有设备。
5.根据权利要求1所述的方法,还包括:
从所述第二设备接收加入特定验证子组的请求;
确定所述第二设备是否满足加入所述特定验证子组的所有标准;以及
当所述第二设备满足所有标准时,向所述特定验证子组中包括所述第二设备的所有设备通知所述第二设备是所述特定验证子组的成员。
6.根据权利要求5所述的方法,还包括:
确定所述特定验证子组中所述第二设备的成员身份是否影响所述第二设备参与任何同步子组;以及
当所述特定验证子组中所述第二设备的成员身份导致所述第二设备成为特定同步子组的成员时,向所述第二设备发送属于所述特定同步子组的同步数据项的子集。
7.根据权利要求1所述的方法,其中所述多个不同验证子组中一个验证子组的成员身份需要下列项中的至少一者:(i)设备具有特定操作系统,(ii)设备具有特定级别的密码强度,(iii)设备证明拥有特定加密秘密,(iv)用户在作为所述验证子组成员建立的设备上验证新设备的成员身份,以及(v)作为所述验证子组成员建立的设备通过带外过程来验证新设备的属性。
8.根据权利要求1所述的方法,其中存储在所述第一设备上的特定数据项不与所述第二设备同步,因为所述特定数据项仅被标记为属于所述第二设备不是其成员的同步子组,其中所述特定数据项与所述相关设备组中的第三设备同步。
9.根据权利要求8所述的方法,其中所述特定数据项是金融机构的账户的用户名和密码,其中所述第二设备不是具有严格安全要求的验证子组的成员。
10.根据权利要求1所述的方法,其中特定同步子组要求设备是至少第一验证子组和第二验证子组的成员以用于参与所述特定同步子组,其中所述第二设备是所述第一验证子组的成员但不是所述第二验证子组的成员,其中被标记为仅属于所述特定同步子组的数据项不被发送到所述第二设备。
11.根据权利要求1所述的方法,其中所述数据项子集中的至少一者属于第一同步子组和第二同步子组。
12.根据权利要求11所述的方法,其中所述第二设备参与所述第一同步子组,但不参与所述第二同步子组。
13.根据权利要求1所述的方法,其中所述数据项集合包括网站的用户名和密码、Wi-Fi网络的密码、加密秘密、安全注释和电子文件中的至少一者。
14.根据权利要求1所述的方法,其中每个同步子组由以下项定义:(i)对于参与所述同步子组的设备的一组要求,以及(ii)属于所述同步子组的数据的类型,其中每个验证子组由对于要成为所述验证子组的成员的设备的一组要求来定义。
15.根据权利要求1所述的方法,其中所述同步数据项的所述子集是第一子集,并且所述安全信道是第一安全信道,其中所述相关设备组包括第三设备,所述方法还包括:
接收将存储在所述第一设备上的所述数据项集合与所述第三设备同步的请求;
确定存储在所述第一设备上的所述同步数据项的第二子集属于所述第三设备所参与的至少一个同步子组;
使用第二安全信道仅将所述同步数据项的所述第二子集发送到所述第三设备,其中所述第二子集包括不在所述第一子集中的至少一个数据项。
16.根据权利要求1所述的方法,还包括:
通过所述安全信道从所述第二设备接收属于所述第一设备和所述第二设备所参与的至少一个同步组的数据项;以及
将所接收到的数据项添加到所述数据项集合。
17.根据权利要求1所述的方法,其中属于至少两个不同的同步组的数据项通过安全信道在所述第一设备和所述第二设备之间同步,其中属于所述第一设备和所述第二设备均参与的特定同步组的数据项的第二子集通过不同的第二安全信道同步,其中所述第二安全信道上的消息使用与所述第一安全信道上的消息不同的密钥来保护。
18.一种存储程序的非暂态机器可读介质,所述程序在由第一设备的至少一个处理单元执行时与第二设备同步数据项集合,所述程序包括用于以下操作的指令集:
接收将存储在所述第一设备上的所述数据项集合与所述第二设备同步的请求;
确定存储在所述第一设备上的同步数据项的子集属于所述第二设备所参与的至少一个同步子组,其中参与所述同步子组中的至少一个同步子组是基于至少一个验证子组的成员身份定义的,其中所述第一设备和所述第二设备是具有多个不同验证子组的一组相关设备的一部分;
使用安全信道仅将属于所述第二设备所参与的至少一个同步子组的所述同步数据项的所述子集发送到所述第二设备。
19.根据权利要求18所述的非暂态机器可读介质,其中所述相关设备组包括用户同步到同一云服务账户的多个设备,其中所述验证子组中的一个验证子组包括与所述云服务账户相关联的所有设备。
20.根据权利要求18所述的非暂态机器可读介质,其中所述程序还包括用于以下操作的指令集:
从所述第二设备接收加入特定验证子组的请求;
确定所述第二设备是否满足加入所述特定验证子组的所有标准;以及
当所述第二设备满足所有标准时,向所述特定验证子组中包括所述第二设备在内的所有设备通知所述第二设备是所述特定验证子组的成员。
21.根据权利要求21所述的非暂态机器可读介质,其中所述程序还包括用于以下操作的指令集:
确定所述特定验证子组中所述第二设备的成员身份是否影响所述第二设备参与任何同步子组;以及
当所述特定验证子组中所述第二设备的成员身份导致所述第二设备成为特定同步子组的成员时,向所述第二设备发送属于所述特定同步子组的同步数据项的子集。
22.一种第一电子设备,包括:
一组处理单元;和
存储程序的非暂态机器可读介质,所述程序在由所述处理单元中的至少一个处理单元执行时与第二设备同步数据项集合,所述程序包括用于以下操作的指令集:
接收将存储在所述第一设备上的所述数据项集合与所述第二设备同步的请求;
确定存储在所述第一设备上的同步数据项的子集属于所述第二设备所参与的至少一个同步子组,其中参与所述同步子组中的至少一个同步子组是基于至少一个验证子组的成员身份定义的,其中所述第一设备和所述第二设备是具有多个不同验证子组的一组相关设备的一部分;
使用安全信道仅将属于所述第二设备所参与的至少一个同步子组的所述同步数据项的所述子集发送到所述第二设备。
23.根据权利要求22所述的第一电子设备,其中存储在所述第一设备上的特定数据项不与所述第二设备同步,因为所述特定数据项仅被标记为属于所述第二设备不是其成员的同步子组,其中所述特定数据项与所述相关设备组中的第三设备同步。
24.根据权利要求22所述的第一电子设备,其中每个同步子组由以下项定义:(i)对于参与所述同步子组的设备的一组要求,以及(ii)属于所述同步子组的数据的类型,其中每个验证子组由对于要成为所述验证子组的成员的设备的一组要求来定义。
25.根据权利要求22所述的第一电子设备,其中属于至少两个不同的同步组的数据项通过安全信道在所述第一设备和所述第二设备之间同步,其中属于所述第一设备和所述第二设备均参与的特定同步组的数据项的第二子集通过不同的第二安全信道同步,其中所述第二安全信道上的消息使用与所述第一安全信道上的消息不同的密钥来保护。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562168893P | 2015-05-31 | 2015-05-31 | |
US62/168,893 | 2015-05-31 | ||
US201562172127P | 2015-06-07 | 2015-06-07 | |
US62/172,127 | 2015-06-07 | ||
US14/872,013 US10198182B2 (en) | 2015-05-31 | 2015-09-30 | Synchronization and verification groups among related devices |
US14/872,013 | 2015-09-30 | ||
PCT/US2016/025431 WO2016195798A1 (en) | 2015-05-31 | 2016-03-31 | Synchronization and verification groups among related devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107667515A true CN107667515A (zh) | 2018-02-06 |
CN107667515B CN107667515B (zh) | 2021-07-09 |
Family
ID=57397217
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211112949.1A Pending CN115484275A (zh) | 2015-05-31 | 2016-03-31 | 设备的动态组成员身份 |
CN201680031832.7A Active CN107667515B (zh) | 2015-05-31 | 2016-03-31 | 相关设备中的同步组和验证组 |
CN201680031639.3A Pending CN107736001A (zh) | 2015-05-31 | 2016-03-31 | 设备的动态组成员身份 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211112949.1A Pending CN115484275A (zh) | 2015-05-31 | 2016-03-31 | 设备的动态组成员身份 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680031639.3A Pending CN107736001A (zh) | 2015-05-31 | 2016-03-31 | 设备的动态组成员身份 |
Country Status (6)
Country | Link |
---|---|
US (5) | US10198182B2 (zh) |
EP (1) | EP3304947A1 (zh) |
KR (7) | KR102221123B1 (zh) |
CN (3) | CN115484275A (zh) |
AU (4) | AU2016271071B2 (zh) |
WO (2) | WO2016195798A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109922440A (zh) * | 2019-01-31 | 2019-06-21 | 维沃移动通信有限公司 | 数据同步方法、设备、移动终端和存储介质 |
CN112166591A (zh) * | 2018-06-03 | 2021-01-01 | 苹果公司 | 跨多个设备的数据同步 |
TWI727604B (zh) * | 2019-01-09 | 2021-05-11 | 聯發科技股份有限公司 | 裝置識別方法、識別裝置以及裝置配對方法 |
US11057776B2 (en) | 2018-01-11 | 2021-07-06 | Mediatek Inc. | Device identifying method, identifying device, and device pairing method |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9531174B2 (en) | 2012-02-28 | 2016-12-27 | Centurylink Intellectual Property Llc | Apical conduit and methods of using same |
US9407443B2 (en) | 2012-06-05 | 2016-08-02 | Lookout, Inc. | Component analysis of software applications on computing devices |
US9786997B2 (en) | 2013-08-01 | 2017-10-10 | Centurylink Intellectual Property Llc | Wireless access point in pedestal or hand hole |
US10276921B2 (en) | 2013-09-06 | 2019-04-30 | Centurylink Intellectual Property Llc | Radiating closures |
US10154325B2 (en) | 2014-02-12 | 2018-12-11 | Centurylink Intellectual Property Llc | Point-to-point fiber insertion |
US9780433B2 (en) | 2013-09-06 | 2017-10-03 | Centurylink Intellectual Property Llc | Wireless distribution using cabinets, pedestals, and hand holes |
JP6826360B2 (ja) * | 2015-02-27 | 2021-02-03 | インフォサイエンス株式会社 | メンバー情報管理システム及びメンバー情報管理プログラム |
US10198182B2 (en) | 2015-05-31 | 2019-02-05 | Apple Inc. | Synchronization and verification groups among related devices |
US10623162B2 (en) | 2015-07-23 | 2020-04-14 | Centurylink Intellectual Property Llc | Customer based internet of things (IoT) |
US10375172B2 (en) | 2015-07-23 | 2019-08-06 | Centurylink Intellectual Property Llc | Customer based internet of things (IOT)—transparent privacy functionality |
WO2017059290A1 (en) | 2015-10-02 | 2017-04-06 | Google Inc. | Peer-to-peer syncable storage system |
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 |
US20170288866A1 (en) * | 2016-03-30 | 2017-10-05 | AVAST Software s.r.o. | Systems and methods of creating a distributed ring of trust |
US10601595B2 (en) * | 2016-05-04 | 2020-03-24 | Avaya Inc. | Secure application attachment |
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 |
US10637683B2 (en) | 2016-12-23 | 2020-04-28 | Centurylink Intellectual Property Llc | Smart city 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 |
US10193981B2 (en) | 2016-12-23 | 2019-01-29 | Centurylink Intellectual Property Llc | Internet of things (IoT) self-organizing network |
US10735220B2 (en) | 2016-12-23 | 2020-08-04 | Centurylink Intellectual Property Llc | Shared devices with private and public instances |
US10150471B2 (en) | 2016-12-23 | 2018-12-11 | Centurylink Intellectual Property Llc | Smart vehicle apparatus, system, and method |
US10146024B2 (en) | 2017-01-10 | 2018-12-04 | Centurylink Intellectual Property Llc | Apical conduit method and system |
EP3352492A1 (en) * | 2017-01-19 | 2018-07-25 | Giesecke+Devrient Mobile Security GmbH | Authentication method |
US10218697B2 (en) * | 2017-06-09 | 2019-02-26 | Lookout, Inc. | Use of device risk evaluation to manage access to services |
SG10201706070TA (en) * | 2017-07-25 | 2019-02-27 | Mastercard International Inc | Offline Payment Using Virtual Card Account Number |
US10862831B2 (en) | 2017-08-03 | 2020-12-08 | Digital 14 Llc | System, method, and computer program product providing end-to-end security of centrally accessible group membership information |
US10627794B2 (en) | 2017-12-19 | 2020-04-21 | Centurylink Intellectual Property Llc | Controlling IOT devices via public safety answering point |
US10866963B2 (en) | 2017-12-28 | 2020-12-15 | Dropbox, Inc. | File system authentication |
US11765046B1 (en) * | 2018-01-11 | 2023-09-19 | Cisco Technology, Inc. | Endpoint cluster assignment and query generation |
US10812435B2 (en) * | 2018-02-28 | 2020-10-20 | Ringcentral, Inc. | Systems and methods for suppressing repetitive notifications about messages in messaging groups |
US10867033B2 (en) * | 2018-03-22 | 2020-12-15 | Microsoft Technology Licensing, Llc | Load distribution enabling detection of first appearance of a new property value in pipeline data processing |
US11604443B2 (en) * | 2018-08-23 | 2023-03-14 | Johnson Controls Tyco IP Holdings LLP | System and method for distributed device configuration and authorization |
GB2578864B (en) * | 2018-09-24 | 2022-09-21 | Metrarc Ltd | Trusted ring |
CN109616145B (zh) * | 2018-12-12 | 2020-12-11 | 广州酷狗计算机科技有限公司 | 生成铃声文件的方法、装置及计算机可读存储介质 |
CA3058240C (en) | 2019-03-29 | 2021-12-07 | Alibaba Group Holding Limited | Cryptographic key management based on identity information |
AU2019204710C1 (en) * | 2019-03-29 | 2021-07-08 | Advanced New Technologies Co., Ltd. | Managing cryptographic keys based on identity information |
SG11201908938PA (en) | 2019-03-29 | 2019-10-30 | Alibaba Group Holding Ltd | Cryptography chip with identity verification |
CN110999254B (zh) | 2019-03-29 | 2023-02-28 | 创新先进技术有限公司 | 安全地执行加密操作 |
US11677554B2 (en) * | 2019-06-01 | 2023-06-13 | Apple Inc. | Key registration transparency for secure messaging |
CN110535657B (zh) * | 2019-08-21 | 2022-03-04 | 上海唯链信息科技有限公司 | 一种多个私钥管理设备相互身份认证的方法及装置 |
SE544340C2 (en) * | 2019-11-19 | 2022-04-12 | Assa Abloy Ab | Secure configuration of a target device performed by a user device |
US10819522B1 (en) * | 2020-01-03 | 2020-10-27 | BlockGen Corp. | Systems and methods of authentication using entropic threshold |
DE102022106864A1 (de) | 2022-03-23 | 2023-09-28 | Dr. Ing. H.C. F. Porsche Aktiengesellschaft | Verfahren zum Feststellen einer Zugehörigkeit eines tragbaren Gerätes zu einer assoziierten Gruppe von tragbaren Geräten auf Basis einer Blockchain |
US20240031136A1 (en) * | 2022-07-21 | 2024-01-25 | Dell Products, L.P. | System and method for bluetooth group pairing and connectivity |
US11863617B1 (en) * | 2022-11-18 | 2024-01-02 | Accenture Global Solutions Limited | Dynamic decentralized hierarchical Holon network system |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050198132A1 (en) * | 2005-02-08 | 2005-09-08 | Domenico Vellante | Systems and methods for sharing information between a user group and associated document |
CN1682174A (zh) * | 2002-09-05 | 2005-10-12 | 松下电器产业株式会社 | 组形成/管理系统,组管理装置,以及成员装置 |
US20090262674A1 (en) * | 2006-09-27 | 2009-10-22 | Shinji Suzuki | Communication system, terminal, communication method, and communication processing program |
CN101594574A (zh) * | 2008-05-30 | 2009-12-02 | 三星电子株式会社 | 移动终端的组群信息管理的实现方法 |
CN102036181A (zh) * | 2010-12-15 | 2011-04-27 | 东莞宇龙通信科技有限公司 | 与联系人的群组通讯方法及装置 |
CN102083008A (zh) * | 2009-11-27 | 2011-06-01 | 中兴通讯股份有限公司 | 一种集群终端自建组成员动态管理的方法和系统 |
CN102449616A (zh) * | 2009-05-29 | 2012-05-09 | 微软公司 | 对象存储库在网络上的基于群的同步 |
US20130036211A1 (en) * | 2011-08-01 | 2013-02-07 | Samsung Electronics Co., Ltd. | Coordinated service to multiple mobile devices |
US8458462B1 (en) * | 2008-08-14 | 2013-06-04 | Juniper Networks, Inc. | Verifying integrity of network devices for secure multicast communications |
US20130332607A1 (en) * | 2012-06-08 | 2013-12-12 | Apple Inc. | Synchronizing Handles For User Accounts Across Multiple Electronic Devices |
CN103916457A (zh) * | 2013-01-04 | 2014-07-09 | 三星电子株式会社 | 利用个人云设备共享内容的方法及电子设备和个人云系统 |
US20140208404A1 (en) * | 2013-01-18 | 2014-07-24 | Apple Inc. | Conflict resolution for keychain syncing |
US20140281540A1 (en) * | 2013-01-18 | 2014-09-18 | Apple Inc. | Keychain syncing |
CN104106062A (zh) * | 2011-03-23 | 2014-10-15 | 邻客音公司 | 在多个设备之间共享内容 |
CN104662577A (zh) * | 2012-08-23 | 2015-05-27 | 三星电子株式会社 | 用于上传内容的装置、用于下载内容的用户终端装置、服务器、内容分享系统及其内容分享方法 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3963417B2 (ja) | 1999-11-19 | 2007-08-22 | 株式会社東芝 | データ同期処理のための通信方法および電子機器 |
WO2002057917A2 (en) * | 2001-01-22 | 2002-07-25 | Sun Microsystems, Inc. | Peer-to-peer network computing platform |
US6671695B2 (en) | 2001-06-18 | 2003-12-30 | The Procter & Gamble Company | Dynamic group generation and management |
US7346705B2 (en) * | 2002-08-28 | 2008-03-18 | Apple Inc. | Method of synchronising three or more electronic devices and a computer system for implementing that method |
US8037202B2 (en) * | 2002-10-31 | 2011-10-11 | Oracle America, Inc. | Presence detection using mobile agents in peer-to-peer networks |
US7526649B2 (en) * | 2003-12-30 | 2009-04-28 | Intel Corporation | Session key exchange |
US20070019616A1 (en) | 2005-06-29 | 2007-01-25 | Olli Rantapuska | Group formation using mobile computing devices |
CN101098267B (zh) * | 2006-06-28 | 2011-07-20 | 华为技术有限公司 | 一种建立群组会话的方法和系统 |
KR100959074B1 (ko) | 2007-12-12 | 2010-05-20 | 한국전자통신연구원 | P2p 네트워크 상에서의 보안 그룹 생성 방법, 생성장치, 인증 방법, 인증 장치 |
US8019900B1 (en) * | 2008-03-25 | 2011-09-13 | SugarSync, Inc. | Opportunistic peer-to-peer synchronization in a synchronization system |
KR101172793B1 (ko) * | 2008-12-19 | 2012-08-10 | 주식회사 디지캡 | 사적 이용 범위 내에 속하는 단말을 등록 및 관리하는 마스터 단말과 그를 이용한 사적 이용 관리 방법 및 시스템 |
JP5556207B2 (ja) * | 2010-02-04 | 2014-07-23 | ソニー株式会社 | 無線通信装置、無線通信方法、およびプログラム |
US8495420B2 (en) * | 2010-07-16 | 2013-07-23 | Commvault Systems, Inc. | Registry key federation systems and methods |
US9077644B2 (en) | 2010-12-08 | 2015-07-07 | At&T Intellectual Property I, L.P. | Methods and apparatus for communicating with groups of devices sharing an attribute |
US8850191B2 (en) * | 2011-04-28 | 2014-09-30 | Netapp, Inc. | Scalable groups of authenticated entities |
US9424439B2 (en) * | 2011-09-12 | 2016-08-23 | Microsoft Technology Licensing, Llc | Secure data synchronization |
US9661073B2 (en) * | 2011-11-18 | 2017-05-23 | Google Inc. | Web browser synchronization with multiple simultaneous profiles |
US9832258B2 (en) * | 2012-01-06 | 2017-11-28 | Google Llc | Mode indicators for applications, web applications, and browser extensions |
US9054919B2 (en) * | 2012-04-05 | 2015-06-09 | Box, Inc. | Device pinning capability for enterprise cloud service and storage accounts |
US8984582B2 (en) | 2012-08-14 | 2015-03-17 | Confidela Ltd. | System and method for secure synchronization of data across multiple computing devices |
US9106411B2 (en) | 2012-09-30 | 2015-08-11 | Apple Inc. | Secure escrow service |
US8782766B1 (en) * | 2012-12-27 | 2014-07-15 | Motorola Solutions, Inc. | Method and apparatus for single sign-on collaboration among mobile devices |
US10270748B2 (en) * | 2013-03-22 | 2019-04-23 | Nok Nok Labs, Inc. | Advanced authentication techniques and applications |
US9396320B2 (en) * | 2013-03-22 | 2016-07-19 | Nok Nok Labs, Inc. | System and method for non-intrusive, privacy-preserving authentication |
US10313264B2 (en) * | 2014-05-28 | 2019-06-04 | Apple Inc. | Sharing account data between different interfaces to a service |
US9424021B2 (en) * | 2014-12-09 | 2016-08-23 | Vmware, Inc. | Capturing updates to applications and operating systems |
US10198182B2 (en) | 2015-05-31 | 2019-02-05 | Apple Inc. | Synchronization and verification groups among related devices |
US10079880B2 (en) * | 2015-06-07 | 2018-09-18 | Apple Inc. | Automatic identification of invalid participants in a secure synchronization system |
-
2015
- 2015-09-30 US US14/872,013 patent/US10198182B2/en active Active
- 2015-09-30 US US14/872,022 patent/US10318154B2/en active Active
-
2016
- 2016-03-31 KR KR1020207003179A patent/KR102221123B1/ko active IP Right Grant
- 2016-03-31 CN CN202211112949.1A patent/CN115484275A/zh active Pending
- 2016-03-31 CN CN201680031832.7A patent/CN107667515B/zh active Active
- 2016-03-31 EP EP16718754.1A patent/EP3304947A1/en active Pending
- 2016-03-31 AU AU2016271071A patent/AU2016271071B2/en active Active
- 2016-03-31 CN CN201680031639.3A patent/CN107736001A/zh active Pending
- 2016-03-31 KR KR1020227008901A patent/KR102631750B1/ko active IP Right Grant
- 2016-03-31 WO PCT/US2016/025431 patent/WO2016195798A1/en active Application Filing
- 2016-03-31 KR KR1020177034263A patent/KR102012579B1/ko active IP Right Grant
- 2016-03-31 KR KR1020217005075A patent/KR102377249B1/ko active IP Right Grant
- 2016-03-31 KR KR1020197023625A patent/KR102113440B1/ko active IP Right Grant
- 2016-03-31 KR KR1020177034699A patent/KR102075829B1/ko active IP Right Grant
- 2016-03-31 KR KR1020247003196A patent/KR20240017980A/ko active Application Filing
- 2016-03-31 WO PCT/US2016/025440 patent/WO2016195799A1/en active Application Filing
-
2019
- 2019-01-17 US US16/250,890 patent/US10747435B2/en active Active
- 2019-02-27 AU AU2019201374A patent/AU2019201374B2/en active Active
- 2019-05-30 US US16/427,235 patent/US11669244B2/en active Active
-
2020
- 2020-05-22 AU AU2020203360A patent/AU2020203360B2/en active Active
-
2021
- 2021-01-21 AU AU2021200403A patent/AU2021200403B2/en active Active
-
2023
- 2023-04-20 US US18/304,309 patent/US20230259276A1/en active Pending
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1682174A (zh) * | 2002-09-05 | 2005-10-12 | 松下电器产业株式会社 | 组形成/管理系统,组管理装置,以及成员装置 |
US20050198132A1 (en) * | 2005-02-08 | 2005-09-08 | Domenico Vellante | Systems and methods for sharing information between a user group and associated document |
US20090262674A1 (en) * | 2006-09-27 | 2009-10-22 | Shinji Suzuki | Communication system, terminal, communication method, and communication processing program |
CN101594574A (zh) * | 2008-05-30 | 2009-12-02 | 三星电子株式会社 | 移动终端的组群信息管理的实现方法 |
US8458462B1 (en) * | 2008-08-14 | 2013-06-04 | Juniper Networks, Inc. | Verifying integrity of network devices for secure multicast communications |
CN102449616A (zh) * | 2009-05-29 | 2012-05-09 | 微软公司 | 对象存储库在网络上的基于群的同步 |
CN102083008A (zh) * | 2009-11-27 | 2011-06-01 | 中兴通讯股份有限公司 | 一种集群终端自建组成员动态管理的方法和系统 |
CN102036181A (zh) * | 2010-12-15 | 2011-04-27 | 东莞宇龙通信科技有限公司 | 与联系人的群组通讯方法及装置 |
CN104106062A (zh) * | 2011-03-23 | 2014-10-15 | 邻客音公司 | 在多个设备之间共享内容 |
US20130036211A1 (en) * | 2011-08-01 | 2013-02-07 | Samsung Electronics Co., Ltd. | Coordinated service to multiple mobile devices |
US20130332607A1 (en) * | 2012-06-08 | 2013-12-12 | Apple Inc. | Synchronizing Handles For User Accounts Across Multiple Electronic Devices |
CN104662577A (zh) * | 2012-08-23 | 2015-05-27 | 三星电子株式会社 | 用于上传内容的装置、用于下载内容的用户终端装置、服务器、内容分享系统及其内容分享方法 |
CN103916457A (zh) * | 2013-01-04 | 2014-07-09 | 三星电子株式会社 | 利用个人云设备共享内容的方法及电子设备和个人云系统 |
US20140208404A1 (en) * | 2013-01-18 | 2014-07-24 | Apple Inc. | Conflict resolution for keychain syncing |
US20140208434A1 (en) * | 2013-01-18 | 2014-07-24 | Apple Inc. | Data protection for keychain syncing |
US20140281540A1 (en) * | 2013-01-18 | 2014-09-18 | Apple Inc. | Keychain syncing |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11057776B2 (en) | 2018-01-11 | 2021-07-06 | Mediatek Inc. | Device identifying method, identifying device, and device pairing method |
CN112166591A (zh) * | 2018-06-03 | 2021-01-01 | 苹果公司 | 跨多个设备的数据同步 |
US11799955B2 (en) | 2018-06-03 | 2023-10-24 | Apple Inc. | Data synchronization across multiple devices |
CN112166591B (zh) * | 2018-06-03 | 2024-01-05 | 苹果公司 | 跨多个设备的数据同步 |
TWI727604B (zh) * | 2019-01-09 | 2021-05-11 | 聯發科技股份有限公司 | 裝置識別方法、識別裝置以及裝置配對方法 |
CN109922440A (zh) * | 2019-01-31 | 2019-06-21 | 维沃移动通信有限公司 | 数据同步方法、设备、移动终端和存储介质 |
CN109922440B (zh) * | 2019-01-31 | 2021-11-23 | 维沃移动通信有限公司 | 数据同步方法、设备、移动终端和存储介质 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107667515A (zh) | 相关设备中的同步组和验证组 | |
CN104919775B (zh) | 用于密钥链同步的系统和方法 | |
CN107690798A (zh) | 在安全同步系统中自动识别无效参与者 | |
US20190340352A1 (en) | Method for producing dynamic password identification for users such as machines | |
CN106575427A (zh) | 基于零知识环境的社交网络引擎 | |
CN107113286A (zh) | 跨设备的漫游内容擦除操作 | |
CN104335214B (zh) | 电子设备以及用于认证电子设备的系统和服务器 | |
CN104715187A (zh) | 用于认证电子通信系统中的节点的方法和装置 | |
US10460117B2 (en) | System and method for removing internet attack surface from internet connected devices | |
CN102868676A (zh) | 发布/订阅网络中事件的安全分发 | |
US9432344B2 (en) | Secure storage and sharing of user objects | |
CN104954132A (zh) | 信息处理装置、信息处理方法、和记录介质 | |
Wazid et al. | Generic Quantum Blockchain-Envisioned Security Framework for IoT Environment: Architecture, Security Benefits and Future Research | |
US20240022403A1 (en) | Delivering random number keys securely for one-time pad symmetric key encryption | |
Cherry | The basics of digital privacy: simple tools to protect your personal information and your identity online |
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 |