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

安全数据交换网络的制作方法

2022-06-18 22:13:16 来源:中国专利 TAG:

安全数据交换网络


背景技术:

1.本发明大体上涉及网络通信,并且具体地涉及数据跨网络的安全交换。
2.互联网协议在某些方面易受攻击,这些方面可以被大致归类为安全性、信任、隐私和认证。安全性与在线服务(例如web服务器)维护完整性、免遭黑客攻击、欺诈和其他盗窃相关。信任与节点如何彼此通信相关,包括协议、域名解析(dns)和消息交换服务。隐私与用户数据的安全性相关,包括遵守相关法律,诸如健康隐私要求(例如hipaa)和数据隐私要求(gdpr)。认证与用户(或设备)如何标识自己相关。这从简单的密码变化到复杂的方法(例如rest api),以启用对存储在服务器上的数据库的访问。总之,解决这些潜在的漏洞表示进一步网络技术的成功和有效发展的基石。
3.最初,当互联网(万维网)变得流行时,大多数是由信息的公开显示驱动的:考虑科学论文、百科全书和销售前沿。所有数据都被尽可能多的人看到,而这些漏洞很少得到解决。
4.随后,我们看到了社交网络的兴起以及更高级别的全球连通性,这导致互联网的上述四个基石成为主要问题。另外,加密(保护)和用户隐藏(vpn)已经变得更加普及,并且是辅助维护这四个基石的权宜之计。
5.我们将引入覆盖所有这四个基石的系统,同时实现免登录设备认证(一旦通过认证)、保证隐私和安全性,并且具有多个益处,包括私有数据搜索的选项。
6.当前技术在解决上面讨论的漏洞方面存在若干问题。一般来说,通过互联网访问的所有数据都是不安全的。这一点通过著名的数据库泄露、密码/配置文件黑客攻击、加密钱包盗窃等来证明。可以防止一些恶意软件和恶意服务器的法律在跟上快速发展的技术方面的速度很慢,并且互联网用户通常对谁可以访问和谁存储其数据副本持怀疑态度。
7.另外,互联网本身变得越来越不安全。过去几年,互联网主要由“知名公司”管理,而如今,恶意服务器和协议可以比往年更容易将自己添加到互联网。域名系统(dns)表格现在可以在不受信任的服务器上看到,并且可能被黑客不当使用。另外,域解析(即,服务如何将域名解析为网络地址)存在各种安全性和隐私/追踪缺陷。
8.另外,ipv6使互联网能够显著增加互联网连接设备(iot)池,但并未过多考虑固有所需的安全性。许多公司都在为服务器、用户和iot设备提供网络安全性解决方案。
9.在关于数据泄露和互联网黑客攻击频率增加的许多新闻报道的支持下,用户已经意识到隐私和安全性问题,并且曾经建立的信任正在减弱。在认证方面,曾经受信任的密码方法对于许多网站/协议来说已经不够用了,并且现在很多地方都采用了双因素认证(2fa),导致用户更加沮丧并且访问服务延迟。
10.大多数提出的解决方案难以理解,一些带来了自己的数据和用户隐私问题,另一些没有被广泛使用以达到临界质量,另一些则过于深奥和昂贵。例如,私有vpn、数据加密、隐身浏览器、ip隐藏都越来越受欢迎,但也面临着各种漏洞的风险,包括更多的ai驱动的智能。
11.诸如公钥基础设施等现有结构被用于保证(特定)互联网web门户服务器的完整
性。该基础设施包括显著的复杂性,并且包括各种组件,诸如凭证机构、注册机构、验证机构和时间戳机构。
12.尽管在这些领域中进行了所有活动,但需要更好的解决方案,以更好和更优雅的解决方案来处置互联网的这四个基石。
13.另外,在手持设备上运行的几乎所有应用都在与用户标识作斗争。它们在多个级别上挣扎:用户隐私、用户保护(安全标识)和安全备份/恢复。此外,它们通常基于中央服务器,它可能会成为黑客的目标。
14.我们将提出一种解决方案,该解决方案实际上保障了任何设备都可以在网络上进行认证,而没有任何设备被克隆、欺骗、监听或以其他方式受到损害的任何风险。
15.使唯一用户标识复杂化的另一问题是包括病毒和黑客驱动的许多应用滥用这种信息。而且,广告和其他数据挖掘应用需要这种信息,并且现在正在疯狂地寻找(提出)新的解决方案,并且现有的方法正在被一一禁用。


技术实现要素:

16.所提出的解决方案的一个关键方面是它远离以服务器(云)为中心的解决方案,并且将复杂的解决方案划分为许多(可恢复的)部分和以内聚方式一起工作的部分。这使得这是一种新的且新颖的方法。
17.所提出的解决方案的另一关键方面是,它以数据和/或安全漏洞可能无效的这种方式利用分布式分类账和加密,因为没有中央数据库或中心点“入侵”。这使得这是一种稳妥的并且安全的方法。
18.提出了一种软件系统,其能够在非安全(公共)网络上进行安全的数字数据交换。移动、pc、台式机和服务器应用可以被添加以提供利用嵌入式用户隐私和用户数据保护的其他功能性。该系统由在用户移动和台式设备上运行的应用和多个服务器集合组成(由我们作为管理员管理,只需以安全的方式注册设备)。这允许用户进行直接通信,而不会受到第3方对其每次通信的监测(和过滤),同时确保消息内容是不可破译的。
19.优选实施例使用分布式分类账记录保存方法将具有外部可见网络地址的设备彼此链接。所描述的方法可以被扩展到外部不可见的设备(例如使用“处置器”)和其他非分布式分类账、记录保存方法(例如本地、集中式或基于云的数据库)。
20.设备安全性可以使用多种类型的保护而被保护:网络地址加密、会话加密和消息加密。它们共同工作,以共同防止对用户数据的不期望的访问并且增强用户隐私。注意,实现我们的实施例并不需要所有三个,但是在我们的优选实施例中,所有三个都存在。
21.具体地,网络地址被存储在特定于网络上的每个设备的地址分类账中。只有持有由设备共享的公共分类账密钥的设备才能访问地址分类账。然后该设备可以更新其地址分类账以将该设备的位置通知其他设备。另外,分类账可能包括向不同的公共分类账密钥揭示不同信息的不同层,使得不同的设备和服务器可能会接收到关于设备地址的不同信息,例如给某些设备直接访问权限并且将其他设备引导到中继或转发服务器。
22.另外,设备维护配对设备的单独“地址簿”,包括用于与每个配对设备通信的消息传递密钥。消息传递密钥被安全地共享并且从设备接收,从而允许设备之间的有效消息加密。在一个实施例中,设备最初彼此共享被用于加密永久消息密钥的临时消息密钥。由于经
加密的永久消息密钥只能由发布临时公钥的设备解密,因此设备可以保证永久公钥仅由配对设备持有。因此,从该设备接收并且由永久私钥解密的消息可以被验证。
23.在优选实施例中,这种设备配对意味着唯一的密钥对要针对每个通信方向而被生成。这样做,密钥对也可以被用于认证,例如使用简单的查询,并且依赖于接收方的设备是可以在另一经加密的消息中解密和正确回答的唯一设备。在该方法中,配对成为认证的同义词,并且传统的认证、防火墙、密码、vpn和其他访问方式变得多余。
24.最后,数据可以在设备处利用不由其他设备存储的用户设备私钥而被加密,并且在一些实施例中不由设备本身存储。用户设备私钥可以部分地基于用户输入重新生成,允许设备在用户键入代码时解密数据,并且允许设备数据在用户键入适当的用户输入时备份和迁移到另一设备。存储的数据也可以被标记,并且具有允许跨不同设备的私有用户数据搜索的元数据。
25.另外,在一个实施例中,应用将不需要附加的登录密码或生物特征。因为设备是唯一配对的,所以当另一设备接收到消息时,它可以确信该设备是先前与之配对的同一设备。因此,认证可以被最小化,并且在一些实施例中,认证仅在三种情况下发生:加入网络、取回备份、迁移到新设备。即,使用该应用是自然而本能的,同时安全性以最高级别得到保证。
26.最后,该方法可以减少垃圾邮件和其他未经请求的消息。在该系统中,垃圾邮件只有在首先完成配对后才有可能。但这样做时,潜在的垃圾邮件发送方必须首先标识其存在,并且因此随后可以被阻止或从设备配对中移除。此外,配对需要用户主动接受,并且诸如用户配置文件等信息必须提前交换。如果用户被标识为垃圾邮件发送方,则用户可以取消配对这种用户,并且通知系统从所有配对记录中移除垃圾邮件用户。
附图说明
27.图1是根据一个实施例的用于网络跨网络安全地传输数据的示例环境。
28.图2图示了根据一个实施例的用于实施所公开的安全性特征的客户端设备100的示例组件软件模块和数据存储库。
29.图3图示了根据一个实施例的用于配对两个设备以进行安全通信的定时图。
30.图4示出了用于在设备之间发送媒体或流数据的实施例的示例定时图。
31.图5示出了用于结合连接管理服务器来配对设备的示例定时图。
32.图6图示了根据一个实施例的存储以用于管理与连接管理服务器的设备认证的示例数据表。
33.图7图示了设备可以包括用于间接消息传递的网络地址的环境。
34.图8示出了根据一个实施例的示例分层分类账。
35.附图仅出于图示的目的描绘本发明的各种实施例。本领域技术人员将从以下讨论容易地认识到,在不脱离本文描述的本发明的原理的情况下,本文图示的结构和方法的替代实施例可以被采用。
具体实施方式
36.概述
37.图1是根据一个实施例的用于网络跨网络安全地传输数据的示例环境。各种设备
在图1中示出,包括两个客户端设备100a、100b、连接管理服务器110和地址服务器120以及网络130。通常,客户端设备100a和100b经由网络130彼此建立和传递安全(即,加密)消息。
38.网络130是有线和/或无线通信信道,各种设备通过该通信信道彼此发送和接收消息。通常,网络130将消息递送给与网络上的每个设备相关联的网络地址,例如递送给与每个设备相关联的网际协议(ip)地址。通常,网络由各种网络设备和传输信道组成,这些设备和传输信道沿着网络路由和递送消息(例如分组)。因此,网络130通常包括由不受信任的实体操作的设备,并且对不安全的消息存在风险。
39.在各种实施例中,为了与另一设备100安全地通信,设备100与正在与之通信的设备100交换密钥。用于将消息加密到另一设备的密钥被称为“设备密钥”。每个设备可以交换特定于该设备与之通信的每个其他设备的设备密钥。在图1所示的示例中,客户端设备100a与客户端设备100b交换设备密钥。在该示例中,客户端设备100a具有来自客户端设备100b的设备公钥,用于加密要被发送给客户端设备100b的消息,并且客户端设备100b具有来自客户端设备100a的设备公钥,用于加密要被发送给客户端设备100a的消息。类似地,客户端设备100a和100b分别具有用于解密从另一个接收的消息的设备私钥。在该示例中,每个设备公钥-私钥对都特定于每对设备。例如,客户端设备100a具有用于与客户端设备100b通信的第一密钥集合、用于与另一客户端设备(未示出)通信的第二密钥集合以及用于与连接管理服务器110通信的第三密钥集合等。因此,设备可以使用特定的设备密钥集合,该设备密钥集合可以被用于与另一设备通信的每对一个设备。如本文使用的,“设备”包括任何讨论的计算系统,包括客户端设备100、连接管理服务器110和地址服务器120。
40.如本文通常使用的,公钥/私钥被用于利用非对称加密算法对消息进行加密或解密。非对称加密算法使用一个密钥加密消息,并且使用另一密钥解密消息。用于加密消息的密钥和解密经加密的消息的关联私钥被称为公钥/私钥对。示例非对称加密算法包括des、rsa、aes和twofish。在一些非对称加密算法中,任一密钥可以被用于加密消息,并且通常,密钥中的一个密钥被分发给另一设备(公钥),并且另一密钥被私有地保存在生成公钥/私钥对的设备处。为了与设备安全地共享信息,用于加密消息的密钥可以是公钥,并且用于加密发送给接收设备的安全消息。接收设备保留解密密钥作为私钥来解密利用公钥而被加密的消息。如本文讨论的,该方法允许公钥与其他设备交换,以安全地发送只能由持有私钥的设备解密的消息。
41.作为备选,加密密钥可以作为私钥保存,而解密密钥作为公钥与其他设备共享。在该示例中,私钥可以被用于认证发送设备或确保仅具有对应公钥(此处用于解密)的设备被允许读取经加密的消息。
42.因为下面讨论的消息密钥通常是指发送方和接收方的特定配对(即,密钥对用于特定发送设备发送给具体接收设备),所以作为本文使用的约定,接收方被首先指示,接着是发送方。例如,与从设备b接收消息的设备100a一起使用的消息密钥对被称为消息密钥对ab。该密钥对的私钥可以被称为消息私钥ab,而该密钥对的公钥可以被称为消息公钥ab。类似地,用于设备100b从设备100a接收消息的消息密钥对被称为消息私钥ba(b从a接收)。
43.如下面讨论的,每个设备100生成公钥/私钥对并且在设备处维护消息传递私钥。因为每个消息传递密钥集合在设备之间安全地交换,所以每个消息传递密钥集合可以被永久地存储在每个设备处。通过这种方式,每个设备都为与该设备建立了通信的设备维护了
密钥的“地址簿”。
44.连接管理服务器110维护用户记录数据存储库112,该用户记录数据存储库112维护关于每个客户端设备和每个客户端设备100的用户的信息。连接管理服务器110允许用户注册与用户相关联的设备并且查找和连接至其他设备。因此,连接管理服务器110用于为认证和配对网络中的设备提供控制。例如,为了与客户端设备100b连接,客户端设备100a向连接管理服务器110发送具有用户或设备的标识信息的消息。连接管理服务器110然后可以协调与客户端设备100b的通信以建立客户端设备之间的安全通信信道。另外,如下面进一步讨论的,连接管理服务器110可以管理用于管理客户端设备100a上的安全数据以及其他用途的用户标识符(uuid)和用户设备密钥。
45.最后,在一些实施例中,地址服务器120被用于维护网络上的设备的地址位置的地址分类账122。在这些实施例中,网络上的设备的地址可以在地址分类账122处被存储和更新。地址服务器120可以是使用分布式分类账技术(dlt)维护分布式地址分类账122的许多地址服务器120中的一个地址服务器120。地址分类账122可以是网络地址的密码安全记录,该网络地址可用适当的密钥访问和编辑。在一些实施例中,dlt是分布式区块链网络。每个设备都可以向与设备相关联的区块链请求写入,并且使用其私有分类账密钥来签署表示针对设备的新网络地址信息的块。在其他实施例中,地址服务器120是直接数据库(例如sql服务器)。当连接在设备之间进行时,每个设备可以与配对设备共享公共分类账密钥,该公共分类账密钥允许配对设备解密存储在分类账上的共享设备的网络地址。因为当设备被移动到不同位置时,许多设备具有动态网络地址或具有改变的网络地址,地址服务器120为设备提供可标识的、安全的位置以更新网络地址信息并且确定配对设备的网络地址。另外,设备可能具有多个访问级别来访问设备的位置信息,例如隐藏设备的网络地址或指定转发/中继服务器进行通信。网络地址服务器120的操作和附加特征(诸如中继服务器和/或转发服务器(未示出))在下面进一步讨论。
46.如下面更全面地讨论的,本公开引用了若干不同类型的密钥以被用于安全通信和设备安全性。
47.如下面进一步讨论的,在各种示例中,私钥或公钥可以被用于写入(加密)消息,并且对应的密钥(公钥或私钥)被用于读取/验证(解密)消息。利用私钥写入/加密消息(私钥写入)在本文中也可以被称为“认证方法”,因为然后公钥可以被用于验证发送设备的真实性。类似地,使用公钥写入/加密消息(公钥写入)在本文中也可以被称为“加密方法”,因为私钥可以被用于对消息进行解密,并且可以确保只有具有私钥的接收到消息的设备可以成功解密和读取消息。当消息(或分类账,或者甚至会话)密钥可以与许多设备共享时,例如在组消息交换中,私钥写入(认证方法)被使用。如果设置使得只有一个设备可以解密,诸如消息交换,则使用私钥读取(解密方法)。这保证了只有目标设备可以解密这种消息,并且允许访问消息的所有其他步骤(路由器、服务器等)根本不会损害消息的安全性(所以公共域基础设施可以被使用)。
48.为了方便起见,密钥的某些功能在此处简要概况,并且在整个本公开中进一步探索。
49.直接消息:设备之间的直接消息由消息密钥促进。在简单的方案中,每个设备创建公钥/私钥对,并且交换公钥以创建消息,然后设备可以利用对应的私钥读取该消息。由于
消息有两种方式,因此有两个这种密钥对,每个设备一个,总共产生4个密钥。在一个示例中,设备可以将相同的消息公钥用于多个发送设备(即,发送消息以供设备解密的设备)。
50.在其他实施例中,设备配对被用于设置消息传递密钥。本质上,消息密钥集合针对每个设备对而设置。在这种方法中,每个设备对将计算四个所需的密钥来设置特定于这些设备之间的通信的消息交换(2个私有,2个公共)。本质上,公钥并没有被广泛共享,并且只被发送给配对设备,然后配对设备是可以发送可以由对应私钥读取的消息的唯一设备。该方案通过防止具有公钥的其他设备欺骗其他所需信息来获得显著的益处。通过对每对设备使用配对密钥,消息只能在配对设备上创建,欺骗是不可行的。
51.组消息:组密钥对,其被设置在“反向”方向上——认证方法——令组信使利用私有组消息密钥加密消息,并且具有公共组消息密钥的所有成员可以解密这种消息。
52.设备数据加密:用户设备密钥对被用于使用用户设备密钥对加密设备上的本地数据。解密使用用户设备密钥对完成。这些密钥可以部分地基于用户的用户标识符、密码短语和下面讨论的其他因素来生成。
53.地址访问:分类账密钥对被用于加密设备的当前网络地址,以供其他设备(或服务器)定位它并且发送消息。在默认方案中,私有分类账密钥被用于写入,并且公共分类账密钥被用于从地址分类账读取信息。在一些实施例中,存在多个私有分类账密钥,与它们对应的公共分类账密钥配对以用于不同类型的设备和连接。
54.在备选实施方式中,私有和公共的分类账密钥可以被颠倒,在这种情况下,安全且受信任的服务器会生成公钥/私钥对,并且现在只有该服务器可以追踪设备的网络地址,因为设备将使用该密钥的公共变体写入其网络地址。
55.服务器会话:会话密钥对使得能够与管理用户数据的连接管理服务器110的安全组合,并且还被用于发起备份/恢复/迁移和连接管理服务器交互。维护该密钥对使得能够以安全方式在连接管理服务器110和设备之间进行安全交换,而无需登录和其他认证凭证。
56.图1所示的环境的各种组件因此提供了增加的网络安全性。首先,由于安全密钥可以在设备之间生成和交换,因此设备可以安全地彼此通信,而无需其他中间设备访问经加密的消息中的信息。重要的是,消息公钥本身是安全交换的,并且消息私钥不会在设备外部共享,从而防止了中间人攻击和对消息安全性的其他攻击。另外,虽然连接管理服务器110管理设备之间的连接,但连接管理服务器110不接收设备的密钥并且同样地无法访问设备之间发送的消息。最后,一旦连接被建立,设备可以通过在地址分类账中查找对应设备的地址来直接相互发送消息。其他未配对的设备通常也无法访问设备,因为这些设备不具有适用的分类账密钥来访问设备的更新位置。
57.图2图示了根据一个实施例的用于实施所公开的安全性特征的客户端设备100的示例组件软件模块和数据存储库。图1所示的组件实施本文讨论的安全通信。这些包括连接管理模块210、通信模块220、位置更新模块230、连接数据库240、数据存储模块250和加密数据存储库260。这些组件一起可以表示客户端设备的安全性子系统200。客户端设备100通常包括在客户端设备100上执行的附加组件和模块(诸如附加应用、操作系统等)。安全性子系统200的软件组件(即,计算模块)可以被实施为客户端设备100的操作系统的一部分,或可以作为由操作系统执行的应用来操作。通常,安全性子系统200接收来自在客户端设备上执行的其他应用或过程的请求,以跨网络与其他设备通信,与另一设备建立通信或安全地存
储数据。通过这种方式,安全性子系统200可以作为用于为客户端设备100中的其他应用和过程提供通信和数据存储服务的层来操作。在附加实施例中,安全性子系统可以包括其他特征和功能,并且可以被实施为提供其他功能的应用的一部分。例如,安全性子系统200可以是聊天应用、流媒体或媒体应用、社交网络应用、游戏应用、银行应用等的一部分。每个组件在此处简要讨论,并且附加特征和功能在下面的相应章节中讨论。
58.连接管理模块210跨网络与其他设备建立连接。连接管理模块210生成公私私钥对,并且协调与其他设备的相关密钥的交换。如下面进一步讨论的,密钥可以包括用户设备密钥、设备密钥、组密钥和分类账密钥。连接管理模块210生成并且在适当时存储用于加密和解密相关数据的密钥,如下面讨论的。关于其他设备的密钥和其他数据被存储在连接数据库240中。例如,连接数据库240可以存储与各个配对设备相关联的私钥和公钥以及用于标识用于与关联设备通信的网络地址的分类账密钥。
59.当连接管理模块210被发起时,连接管理模块210还可以获得或创建用于安全性子系统200的操作的相关密钥。例如,在一些实施例中,用户设备私钥被用于访问加密数据存储装置260,如下面进一步讨论的。在一些实施例中,用户设备私钥未被本地存储在客户端设备处,而是由连接管理模块210确定性地生成(或重新生成)并且提供给数据存储模块用于访问加密数据存储装置260。
60.通信模块220管理去往/来自网络上的其他设备的消息的传输和接收。当安全性子系统200接收到向另一设备发送消息的请求时,通信模块220从连接数据库240取回适当的密钥,获得目的地设备的网络地址,并且利用该设备的适当密钥对消息进行加密。这些特征将在下面进一步讨论。类似地,当消息被接收到时,通信模块220取回用于解密消息的私钥,并且应用私钥来解密消息。
61.位置更新模块230监视客户端设备100的网络位置。当设备的网络位置或其他寻址信息改变时(如下面讨论的),位置更新模块230更新地址服务器处的设备的更新网络位置的地址分类账122。
62.最后,本公开的各个方面可以在本公开的其他方面的各种组合中使用。例如,设备密钥可以在设备之间安全地交换,经由地址分类账确定设备网络位置,并且利用用户设备密钥加密和管理数据可以各自单独地使用或以各种组合使用。
63.安全连接
64.图3图示了根据一个实施例的用于配对两个设备以进行安全通信的定时图。在该示例实施例中,设备a正在发起与设备b的安全连接。在该示例中,设备a和设备b可能已经具有用于彼此通信的部件,例如通过已知地址或经由连接管理服务器110。如下面相对于图5讨论的,在一些实施例中,连接管理服务器110还可以促进建立连接(例如在设备彼此不具有已知网络地址的情况下)。
65.最初,设备a可以接收发起与设备b的安全配对的请求。例如,设备a的连接管理模块210可以接收建立与设备b的配对的请求。在图3所示的方法中,配对包括交换临时密钥,随后交换永久密钥。在其他实施例中,临时密钥可以被省略,并且永久密钥可以被直接交换。在确定配对(例如经过授权和/或批准)之后,每个设备生成300临时消息密钥对,用于设备之间的消息传递。由每个设备生成的消息密钥对对应于该设备读取/解密从其他设备发送的消息的密钥对。例如,设备a生成300a临时消息密钥对ab,该临时消息密钥对ab与由a接
收并且由b发送的消息相对应。类似地,设备b生成300b临时消息密钥对ba,该临时消息密钥对ba与由b接收并且由a发送的消息相对应。
66.临时公钥被交换310。类似地,永久密钥对被生成以用于设备之间的通信。在该示例中,被用于通信的实际公钥不是交换的初始临时密钥。这是因为中介(例如设备之间的通信路径之间)可能能够查看对应的公钥和看起来已由配对设备生成的欺骗消息。相反,所交换的临时公钥被用于在持有实际公钥的设备之间发送第二消息,以被用于在未来交换消息。因此,在这些实施例中,设备生成320对应于设备对的永久密钥对。例如,设备a生成320a设备a的永久消息密钥对以读取/解密从b接收的消息,并且设备b生成设备b的永久消息密钥对以读取/解密从设备a接收的消息。使用从其他设备接收到的临时消息公钥时,每个设备用接收到的临时消息公钥加密330a其永久消息公钥。因此,永久消息公钥ab(b可以使用它发送消息供a读取)利用临时消息公钥ba(只有b可以使用其临时消息私钥ba读取/解密)而被加密。经加密的永久公钥在设备之间交换340。然后每个设备使用其临时私钥解密/读取350配对设备的永久公钥。因此,设备a用临时消息私钥ab(供a从b读取消息)解密350a永久消息公钥ba(供b从a接收消息)。类似地,设备b用临时消息私钥ba(供b从a读取消息)解密350b永久消息公钥ab(供a从b接收消息)。然后每个设备可以存储对应于配对的密钥,例如在连接数据库240中。因此,在设备a上,与设备b建立的通信相关联,设备a存储永久消息私钥ab(a从b接收)、永久消息公钥ba(b从a接收),并且可以可选地存储永久消息公钥ab(例如在a需要恢复b的密钥的情况下)。
67.在一些实施例中,在配对步骤中还交换每个设备的公共分类账密钥。设备b发送其公共分类账密钥(以读取设备b的分类账),并且类似地,设备a将其公共分类账密钥发送给设备b。分类账密钥将在下面与地址管理相关的部分中进一步讨论。
68.因此,包含永久公钥的经加密的消息无法由其他设备读取,诸如中间路由器、服务器或(当适用时)连接管理服务器110。而这些其他设备(未配对的设备a或b)可能只持有原始临时(写入)消息公钥,它们没有对应的读取密钥来访问永久公钥。这保障了永久公钥和私钥将仅被存储在配对设备上,并且可能不需要随后被刷新。另外,因为永久消息公钥在设备之间安全传输(即,接收设备是可以解密和访问该接收设备的永久公钥以加密要被发送回发送设备的消息的唯一设备),每个配对通信都是安全的,并且当消息从设备接收到并且可以使用该对的私钥成功读取/解密时,可以保证事实上是发送消息的发送设备,从而提供对发送方标识的进一步验证。
69.在接收到对应的永久公钥之后,存储的密钥可以被用于加密和结束设备之间的消息。这种方法实现了点对点加密方法:发送设备对只能由接收设备解密的消息进行加密。更强的是,消息只能由持有所需消息私钥的接收设备解密。该密钥是在接收设备上本地创建的,并且从未发送到任何地方。当临时密钥对被用于交换永久密钥时,还可以保障只有发送设备具有与永久消息公钥相对应的适当的永久消息公钥。
70.该消息的益处是消息的认证可以是“轻量级的”,因为只有一个已知设备可以为所选的消息公钥/私钥对加密消息。
71.在更简单的方法中,如果所有设备都与同一设备配对,则基本上所有设备将共享同一消息公钥。在这种情况下,需要附加的信息来保证只有配对的设备可以发送消息。这是防止虚假消息传递所必需的。
72.为了彼此传达消息(例如设备a希望向设备b发送消息),设备确定对应设备的网络地址(图3中未示出)。例如,设备a确定设备b的网络地址。在一些实施例中,网络设备使用对应设备的公共分类账密钥来确定。例如,设备a可以访问地址分类账122,并且使用设备b的公共分类账密钥读取其“朋友”设备b的网络地址。设备a现在正确格式化ip路由消息以ping设备b以确认设备b是可用的。
73.设备a使用被存储在设备a处的永久消息公钥ba将消息加密360a到b。这使用消息公钥ba创建安全消息有效载荷,该消息公钥ba只能由设备b的对应消息私钥ba读取。设备a将消息370发送给设备b。然后设备b使用b的私钥解密380b经加密的消息:消息私钥ba。为了返回消息,设备b使用设备a的永久消息公钥ab将消息加密360b到设备a,并且将消息发送370给设备a。设备a使用永久消息私钥ab解密380a消息,并且访问未经加密的消息。
74.消息可能无法完成,并且响应可能会或可能不会到来。当配对设备没有响应时,消息随后可以被发送给中继服务器,如下面讨论的。中继服务器无法解密消息(因为它不拥有配对设备所持有的私钥),但它可以不断寻找配对设备,并且最终完成消息。服务器被假定为“始终在线,始终连接”,而设备可能不是。
75.在一个实施例中,附加的安全性检查可以被添加到消息传递方案。例如,设备可能:
76.●
验证网络地址,例如通过确认网络地址对应于独立于访问地址分类账122而确定的地址并且验证发送地址对应于译码地址。
77.●
设备已配对并且具有与设备处的名称相匹配的“昵称”。
78.●
确认从该设备接收到的消息的消息私钥成功解密消息。
79.●
通过确认来自接收方设备的确定网络地址的ping(或其他)响应,发送方可以在发送消息之前确认接收方设备在线。
80.图4示出了用于在设备之间发送媒体或流数据的实施例的示例定时图。通常,流数据已经是数字的并且被高度压缩。这种数据文件可以被容易地交换。然而,流数据通常也是受使用、复制和其他限制的专有信息。为了保护这种数据,流数据文件为最终设备(用户设备)保持加密,并且优选地安全保持在应用中。
81.然而,这种数据通常具有相对较高的带宽,而且使用非对称加密技术对该数据的解密对于服务器应用到媒体流并且接收设备应用以从经加密的消息恢复媒体流来说可能是过分慢的。在一个实施例中,消息传递公钥/私钥被用于传输对称密钥以解密利用对称密钥加密的媒体文件。针对对称密钥(例如对称密钥加密/解密),用于加密和解密的密钥是相同的。通常,用于执行对称加密算法的处理器上的加密和解密负载低于非对称加密。因此,根据本发明的实施例,为了有效且安全地传输和使用媒体文件,安全消息密钥对被用于传输对称密钥。对称密钥使用安全消息密钥对传输给设备。
82.图4示出了三个设备,包括发送媒体的设备a以及显示媒体的设备b和c。设备a例如可以是内容递送网络(cdn)或获得和发送媒体内容的其他系统。媒体可以是存储的音频或视频文件,或者可以是当前正在捕获和传输的实时或流媒体广播。播放设备b和c可以是其他计算设备,诸如移动设备、膝上型计算机、台式机等计算机,并且还可以包括具有集成处理和网络能力的机顶盒或“智能”tv。在一个实施例中,播放设备是使用本文的方法为媒体提供高带宽数字内容保护的播放设备。尽管两个播放设备在图4中示出,但在其他实施例
中,可以存在接收对称密钥和经加密的媒体文件的许多设备。查看设备中的每个查看设备(即,该示例中的设备b和c)在诸如流式解决方案之前与流式设备(此处为设备a)建立设备配对。
83.为了安全地发送媒体,设备a生成对称密钥并且将对称密钥发送给设备b和c。设备a与每个其他设备配对并且具有与每个其他设备相对应的消息公钥,例如消息公钥ba和消息公钥ca。为了向每个设备发送对称密钥,设备a使用与该设备相对应的永久消息传递公钥对对称密钥进行加密。因此,设备a使用b的永久消息公钥加密400对称密钥,并且将经加密的对称密钥发送410给设备b。然后设备b可以解密420消息以恢复对称密钥。类似地,设备a利用设备c的消息公钥加密430对称密钥,将经加密的对称密钥发送440给设备c,并且设备c用其对应的密钥解密450消息。
84.为了将媒体发送给设备,流式设备/服务用对称密钥加密460媒体。流式设备(即,设备a)然后可以将经加密的媒体发送470给设备b和设备c(以及流式传输媒体的任何其他设备),并且可以使用被安全传送给设备的对称密钥在相应设备处解密480媒体。
85.尽管此处称为单个“对称密钥”,但对称密钥可以是包括对称密钥序列的对称密钥链。每个密钥都有时间戳,该时间戳指定应用密钥的媒体部分,并且每个密钥都是对称的。每个密钥可以使用不同的密钥长度和不同的加密协议。时间戳可以是任何间隔,例如30秒或更小(每个消息可以有不同的密钥)。密钥链序列通常是随机选择的,改变密钥之间的每个和任何参数。
86.这种方法可以每30秒创建新密钥用于例如广播加密(实时广播或音乐频道)。或者,例如2小时的实时体育赛事将生成180*2=360个密钥。这种密钥是预先确定的,并且可以经由消息密钥对在一个或多个消息中发出。这种方法确保媒体(例如广播)无法被无法经由安全消息访问所创建的密钥链的任何设备解密。
87.针对点播媒体,媒体可以针对请求媒体的特定设备被一对一的加密,并且媒体针对每个接收方进行不同的加密。每个查看(收听)设备都将具有适当的密钥链,然后这对观众是透明的,因为在不同时间仅使用不同的(对称)密钥。
88.安全消息(公钥/私钥)交换发生在后台。如果流媒体设备检测到明显的时延,则媒体文件的第一片段可能是未经加密的,或者使用标准密钥,直到安全消息被解密,此后媒体可以使用对称密钥。因为对称密钥/密钥链是作为安全消息发送的,所以它对互联网不可见,并且无法由非目标接收方解密(没有公钥/私钥对交换)。
89.这种方法的益处是服务器上的经加密的消息必须针对所有接收方创建一次。这是针对每个观众一次点播的,但是针对成千上万的观众在线的直播,这种一对多的方法能够在服务器上实现更高的效率。
90.图5示出了用于结合连接管理服务器来配对设备的示例定时图。在该示例中,设备a不知道设备b在网络中的地址。连接管理服务器被用于协调设备之间的连接。因此,在用户a可以与用户b配对之前,必须建立一种方法来在网络中找到用户b。在一个示例中,设备a标识或接收500设备或用户b的标识信息。作为一个示例,这种标识信息可以是电话号码、电子邮件、用户名或其他信息。
91.设备a向连接管理服务器110发起连接请求以请求510与设备b的连接。在该示例中,设备a与连接管理服务器建立经加密的会话,例如利用会话公钥/私钥对。会话密钥在下
面进一步讨论,并且提供用连接管理服务器110认证的客户端设备之间的安全通信。使用从设备a接收的标识信息,连接管理服务器110匹配该信息并且在其连接管理服务器110用户记录数据存储库112中找到用户b。通常,当需要批准连接并且设备b不能立即可用时,设备a等待进一步的响应。
92.在一些实施例中,连接管理服务器110直接向设备b发送消息以请求520与设备a的连接。在另一实施例中,或者如果设备b当前不可用,则连接管理服务器110通过引发(raising)标志来执行请求,并且等待设备b联系连接管理服务器110。即,在一些实施例中,当设备(此处为设备b)上线时(或以某个其他间隔),设备联系连接管理服务器110以建立连接并且进行其他数据管理和备份,如下面进一步讨论的。在设备b连接至连接管理服务器110(例如利用使用其会话密钥的新https会话(如下面讨论的))后,连接管理服务器110请求520批准与设备a配对。设备2确定是否批准该连接,该连接可以被呈现给用户用于批准,或者可以基于设备的批准设置自动确定。该批准被发送540给连接管理服务器110。
93.类似于图3中讨论的配对,设备交换550消息公钥/私钥,其可以包括临时公钥和经加密的永久密钥。两个设备(设备a和设备b)现在将彼此的信息添加到其本地记录(例如连接管理模块210将密钥存储到连接数据库240。)。连接管理服务器110执行相同的操作——它更新用户记录数据存储库112中的设备a的记录以反映与设备b的连接,反之亦然。接下来,两个消息公钥/私钥对(ab和ba)必须被生成和交换。
94.如果两个设备都在与连接管理服务器110通话,则数据可以在实时会话中在设备之间交换。然而,我们假设这些设备不是同时在线的,在这种情况下,连接管理服务器110会延迟协调连接。另外,在一些实例中,消息密钥对可以在没有临时密钥对的情况下交换。因为发送给连接管理连接的数据受到相应会话密钥的保护,公钥(用于写入消息)可能会被保护免受中介的影响。在延迟序列中:
95.●
在该示例延迟序列中,设备b计算消息密钥对ba并且将公钥发送给连接管理服务器110。连接管理服务器110等待设备a再次“上线”并且连接至连接管理服务器110。当设备a开始其安全会话时,连接管理服务器110发送设备b的信息,包括公钥。设备a利用设备b的信息更新其本地记录。设备a将消息公钥ba添加到其本地记录。现在设备a计算其本地消息密钥对ab并且将公钥发送回连接管理服务器110。在相反的场景中,连接管理服务器110等待设备b再次“上线”。连接管理服务器110将消息公钥ab发送给设备b以存储在其本地记录中。现在建立连接,并且连接管理服务器110删除两个消息公钥ab和ba。在设备交换临时消息密钥并且然后交换永久消息密钥的实施例中,该过程被重复以使设备交换经加密的永久消息密钥。当临时和永久密钥被使用时,如上面利用图3讨论的,即使连接管理服务器110也无法访问永久消息密钥,因为它们只能利用由相应接收设备持有的临时消息私钥从经加密的永久消息中解密。
96.此时,在图5所示的实施例中,设备a和b已经通过连接管理服务器110进行通信。在一些实施例中,设备可以直接从连接管理服务器110接收配对设备的相应网络地址。在附加实施例中,作为密钥交换的一部分,设备还可以交换用于访问地址服务器处的网络地址(或网络地址分类账)的信息。在这些情况下,密钥交换550的一部分可以包括接收对应设备的相应分类账密钥。例如,设备a可以接收设备b的公共分类账密钥,并且设备b接收设备a的公共分类账密钥。另外,设备可以接收用于标识每个设备的相应公共分类账的信息(即,与设
备相对应的公共分类账的标识符)。
97.因此,为了向配对设备发送消息,诸如设备a向设备b发送消息,设备可以从地址服务器120请求560网络分类账,地址服务器120返回570对应设备(此处为设备b)的地址分类账570。使用设备b的公共分类账密钥,设备a通过认证/解密设备b的网络地址分类账来确定设备b的网络地址。网络地址解析过程的机制将在下面详细讨论。设备a现在已确定设备b的网络地址,并且现在可以使用相应的消息传递密钥直接向设备b发送安全消息。因为设备a从地址服务器接收网络分类账并且随后直接向设备b发送消息,所以设备a的直接消息传递活动不会被管理或透露给连接管理服务器或地址服务器,并且由于安全的消息密钥,设备a的直接消息传递活动也是在设备之间端到端地被加密的。
98.设备认证和用户设备id
99.图6图示了存储用于管理与连接管理服务器110的设备认证的示例数据表。设备认证被用于将设备与连接管理服务器110的用户相关联并且建立初始密钥和连接。连接管理服务器110维护用户和注册以使用连接管理服务器110的关联设备的记录。用户表610和设备表600被存储在用户记录数据存储库112中。用户表包括关于用户的信息,包括用户的登录凭证、标识信息(例如电话号码#)和可以被用于多因素认证或其他安全性措施的其他信息。设备表600将用户标识符(uuid)与各个设备相关联并且包括给定设备的分类账地址。设备表620图示了可以(例如由连接管理模块210)在本地设备100处维护的信息。附加信息可以根据需要进一步存储。
100.用户利用“私有通用唯一标识符”,也称为“puuid”标识。puuid是私有的,因为该设备不被其他设备用于标识用户,而是被用于生成用户设备密钥并且用于其他目的。puuid针对向系统注册(通过连接管理服务器110)的每个设备都是唯一的,并且当设备向连接管理服务器注册时,由连接管理服务器110使用安全会话发送给设备。然后puuid被存储在本地设备100上,而副本存在于连接管理服务器110中。我们将需要该副本用于未来的备份/恢复和迁移特征,正如我们将解释的那样。当用户向连接管理系统注册时,用户的puuid被分配给用户。为了基于puuid生成其他数据,基于散列算法(诸如单向密码散列函数)生成散列。散列函数可以基于:puuid、设备特定数据(唯一设备数据检查)、用户字、用户密码短语、多因素认证信息和其他元素。这样做使得散列表示许多元素:1)系统中的唯一性(puuid),2)设备特定的,3)用户认证,4)用户安全性(无法被复制),5)用户2fa/mfa认证,以及6)其他元素。
101.用户设备密钥对基于所生成的散列而被生成。用户设备密钥对包括用户设备私钥和用户设备公钥,并且可以被用于加密和解密存储在加密数据存储装置260处的数据。用户设备公钥可以被用于将数据写入加密数据存储装置260,并且用户设备私钥被用于读取存储到经加密的数据存储装置的数据。如下面进一步讨论的,这允许数据基于公钥写入和管理,允许远程数据管理并且使用密钥复制经加密的数据存储装置,而只有用户设备私钥的持有者可以访问底层数据。
102.当设备特定数据被包括在散列中时,用户设备私钥无法在其他设备上重新创建(除非它是精确副本)。在其他实施例中,设备特定信息被省略以允许基于可以在其他实例中重新创建的其他数据来重新创建用户设备密钥对。这是因为在备份场景中,我们希望能够在新的替换设备上重新生成用户设备私钥,在这种情况下,设备特定信息将不同。
103.这可以使用连接管理服务器110,使用用户认证和散列的其他组件来安全地完成。虽然散列可以包括puuid并且可以包括用于访问连接管理服务器的密码,但是散列还可以包括未被存储在连接管理服务器处并且在一些实施例中也未被存储在设备处的用户密码短语。
104.如所提到的,散列被用于计算用户设备密钥对。这是包括用户设备私钥和用户设备公钥的公钥/私钥对。用户设备公钥可以被用作设备标识符。然而,用户设备密钥可能不是唯一的,因此设备的分类账地址是单独确定和唯一标识的。分类账地址是指用户/设备的分类账在地址服务器120处记录的地址,因此可以是给定设备的适当地址分类账的标识符。设备的分类账地址可以从前缀编号中选择,可以在不同设备区域之间分段或分区。在一个实施例中,分类账地址是从用户设备公钥和一个其他设备标识符(诸如设备名称)中导出的。这可以允许用户的唯一设备具有单独的分类账地址。在一个实施例中,puuid和分类账地址使用不同的字符集。
105.在本地设备上,接收到的所有本地数据都可以以接收到的经加密的格式保存——设备具有用于解密接收到的消息数据的私钥。在设备上创建的所有其他本地数据都使用用户设备公钥作为写入公钥并且使用用户设备私钥作为读取私钥来存储。
106.用户设备私钥未被暴露给用户并且可以被部分地存储在文件中并且部分地存储在算法中,以使得即使数据或设备被获得,黑客也难以获得对本地数据的访问。而且,用户设备私钥永远不会离开设备-它仅在本地使用。在一些实施例中,用户设备私钥从未被存储在非易失性存储器中,并且仅在本地维护在当设备断电时丢失的短期存储器中。在散列包括用户密码短语的实施例中,可以要求用户周期性地(诸如在设备启动时)键入用户密码短语,以重新生成散列和用户设备密钥对并且启用对数据的访问。类似地,在替换设备上,用户设备私钥因此只能由用户重新生成。
107.在交替实施例中,设备可以被多次注册到网络。在每种情况下,新的puuid都会成为问题,因此设备可以携带超过单个puuid。这可以允许多个用户在一个设备上,或单个用户以不同的能力注册,例如作为安全的政府工作人员或私人。
108.为了与连接管理服务器安全地通信,客户端设备100a和连接管理服务器110建立会话密钥。每侧(设备和连接管理服务器110)都生成公钥/私钥对。服务器到设备的密钥对被称为会话密钥对sd,并且设备到服务器的密钥对被称为会话密钥对ds。然后,会话公钥被交换。所以,在设备上,我们现在有:
109.私有(会话)密钥sd
110.公共(会话)密钥ds
111.并且在连接管理服务器110上,我们有
112.私有(会话)密钥ds
113.公共(会话)密钥sd
114.从设备到服务器(ds)的消息使用(写入)公共(会话)密钥ds而被加密并且在连接管理服务器110上读取,该消息使用(读取)私有(会话)密钥ds解密。
115.针对反向消息传递,服务器到设备(sd),sd密钥被使用:公钥sd用于加密服务器上的消息,并且私钥sd用于解密设备上的消息。
116.客户端设备和连接管理服务器110因此具有安全通信,该安全通信由任一侧的私
钥保护,该私钥从不与任何其他设备交换。在其他实施例中,会话密钥可以包括上面讨论的临时和永久会话密钥。使用会话密钥,任何未来的会话都可以使用相同的加密密钥,并且安全消息可以在没有任何登录或其他协议的情况下交换。具有正确的密钥同样标识设备。
117.会话密钥可以与例如https/tls和hsts、web会话一起使用,并且可以有附加的检查以保证连接管理服务器110的真实性。因此,如果设备在网络上,则攻击者必须拦截的不是一个而是多个服务器,包括全局(ca)和私有的(我们的服务器)。这意味着知道dns路由表和若干(公共)服务器的私钥。即使知道其数据库和算法,人们也无法简单地“黑客攻击”连接管理服务器110并且对其进行欺骗(例如ip欺骗、dns欺骗、https欺骗、ssl劫持、电子邮件劫持、wi-fi窃听、窃取浏览器cookie等)。因此,中间人攻击和其他类似攻击可能是无效的。
118.另外,连接管理服务器110无法被用于对其他设备之间的消息进行消息解密,因为没有消息密钥被保存在连接管理服务器110处,因此即使服务器以某种方式被黑客攻击,也不会允许使用受到损害的服务器访问设备的内容。
119.既然我们在设备和连接管理服务器110之间建立了安全会话,我们将解释设备如何被添加到系统。本质上,会话密钥被建立,公钥被交换,并且公钥/私钥被永久地存储在任一侧,这是来/往连接管理服务器110的未来消息传递(无需登录)所需的。会话密钥专用于所有数据交换,浏览器或非浏览器相关,这可能除了由浏览器使用的任何ssl安全性之外。
120.在用户已经认证(例如,经由密码和/或多因素认证)并且安全通信已被建立之后,下一步骤是为设备生成puuid并且将其发送给设备。设备将其放入其本地记录中,并且计算用户设备密钥对。用户设备公钥被发送回连接管理服务器110。
121.用户记录被本地添加到客户端设备并且还被添加到连接管理服务器110。连接管理服务器110记录不包含用户设备私钥。接下来,连接管理服务器110计算分类账地址,并且在一些实施例中,在地址服务器120的分类账地址处创建第一数据记录,用于为地址记录创建地址分类账122。在地址分类账是区块链的实施例中,连接管理服务器110可以创建第一块。连接管理服务器110然后将该分类账地址发送给设备以将其也添加到本地设备记录中。
122.在该步骤结束后,三个新记录被创建:设备上的本地记录、连接管理服务器110上的服务器记录和地址服务器120上的地址分类账。
123.地址服务器可以与连接管理服务器110相同或者可以不同地实施。在我们的优选实施例中,分类账地址不足以访问(即,读取或解密)地址分类账,并且还需要用户设备公钥和其他信息,诸如设备昵称。
124.网络地址管理
125.如上面讨论的,本网络系统提供会话加密(例如利用用户认证服务器),并且可以包括消息加密(确保设备之间的设备-设备安全性)。另外,地址分类账使设备能够维护配对设备的“地址簿”,并且进一步提供多个可能的网络地址用于与设备通信。
126.图7图示了其中设备可以包括用于间接消息传递的网络地址的环境。在该示例环境中,设备可能有指向另一设备,而不是其自身的“网络地址”。在图7的示例中,客户端设备100a直接与中继服务器700通信,并且客户端设备100b与转发服务器710通信。如下面讨论的,特定设备的地址分类账可以包括该设备的多个地址和地址类别。这些类别可能会隐藏或以其他方式通过其他服务器或系统直接向设备发送消息。在该示例中,当设备100a从客户端设备100b的地址分类账122接收地址数据时,网络地址解析为转发服务器710的地址。
类似地,当客户端设备100b从客户端设备100a的地址分类账122接收地址数据时,网络地址解析为中继服务器700的地址。中继服务器700为设备中继消息,并且可以被用于隐藏设备的真实网络地址。类似地,转发服务器710可以在不同区域网络地址区域之间转发消息(例如重新映射区域之间的网络地址)。因此,设备100a和100b之间的数据路径通过中继服务器700和转发服务器710。这种方法允许用户和设备通过隐藏设备的实际网络地址来获得进一步的安全性和灵活性。
127.尽管图7中未示出,中继服务器700和转发服务器710中的每一个也可以在地址分类账122中维护地址,当这些服务器的网络地址改变时并且如果这些服务器的网络地址改变,则该地址被更新。另外,中继服务器700和转发服务器710(以及其他中间服务器)也可以与地址分类账通信以取回设备的网络地址信息。如下面进一步讨论的,在该示例中,多个加密密钥可以被用于每个客户端设备的地址分类账,使得不同的分类账密钥可以访问给定设备的不同网络地址信息。在该示例中,虽然客户端设备100b可从地址分类账122访问的地址数据指示客户端设备100a的地址是中继服务器700的地址,但当中继服务器700使用其分类账密钥访问地址分类账时(启用不同的可见性),中继服务器700将客户端设备100b的网络地址标识为客户端设备100b的实际地址。这在下面进一步讨论。
128.因此,客户端设备100a和100b之间的消息路径可以通过我们的网络中和我们的网络之外的许多服务器(和路由器)。消息有效载荷使用公钥/私钥对而被加密,并且能够仅由配对的设备理解。
129.在其最简单的形式中,地址分类账122简单地追踪每个设备的网络地址(例如ip和端口)。这使得任何人都可以在给定设备的分类账地址的情况下在互联网上“找到”设备。如上面讨论的,分类账可能只能由具有设备的公共分类账密钥的设备访问,并且分类账可以是使用设备的私有分类账密钥更新和签署的区块链。
130.在更复杂的形式中,地址分类账被分段以将网络地址分组,每个组具有最大数量的成员。例如,设备可能包括组,该组包括活动网络地址(例如当前的、最近的、最后知道的)和被过滤或阻止的网络地址。
131.在客户端设备处,当设备在不同于其最后一个“当前”网络地址的新网络地址处激活时,位置更新模块230标识该地址不再与地址分类账同步,并且它向地址服务器120发送消息以更新其地址分类账122作为分类账写入操作。
132.在其他实施例中,这在包括网络地址列表和多个加密密钥的两个附加方法(在后面的幻灯片中解释)中得到增强。网络地址列表可以被用于减少写入操作的数量。例如,“最近的”网络地址列表可能包括最近的5个网络地址被保存在列表中,如果设备在这些网络地址中的一个网络地址上激活,则如果对应配对设备尝试使用所有“最近的”网络地址(在这种情况下,它将找到该设备),则无需更新“当前的”网络地址。
133.多个加密密钥(即,不同的公共分类账密钥)可以被用于修改设备的可见性,并且控制到设备的其他服务器的消息流以及哪些设备可以看到客户端设备的哪些网络地址。作为一个实施例,设备配对可以是“可见的”或“不可见的”(中继/转发/中心等)。即,设备只能在配对级别更新ip组,而无法使其他ip列表保持最新:例如各个客户端设备的“配对”ip列表可能未被更新(即,没有当前网络地址),但“中继服务器”ip列表可以是当前的(即,中继服务器可访问的网络地址)。在这种情况下,由配对设备使用的网络地址可能会解析到中继
服务器,该中继服务器可以访问“中继服务器”网络地址列表,以完成到设备的消息路由。
134.在一个实施例中,我们假设两个设备(设备a和设备b)直接配对并且可以读取彼此的地址分类账记录。在其最简单的形式中,每个设备通过向地址服务器120提交写入请求以更新其地址分类账来保持其当前网络地址的更新。在该示例中,网络地址利用私有分类账密钥而被加密,而公共分类账密钥针对配对设备交换以能够读取分类账内容。
135.在区块链技术中,区块链是未经加密的。在我们的变型中,地址分类账122的某些有效载荷是经加密的。即,地址分类账节点可以更改和键入地址分类账中的数据,但它们不具有解码这种数据的能力。
136.地址分类账122可以具有若干三层:p2p(对等,对对等方可见)、隐藏(对对等方不可见,对中继可见)、可信(对对等方不可见,仅对具体的标识服务器可见)。每层可能有唯一的分类账密钥对来写入和读取相应的层信息。在一个实施例中,某些层(例如“可信”层)的数据,密钥加密的认证方法(例如利用私钥加密)被替换为加密方法(服务器上的私钥),以保证地址分类账有效载荷(设备的网络地址)的总安全性。
137.现在我们有能力以多种方式设置分类账,包括认证方法(共享公钥以供读取)与加密方法(只有私钥可以读取)被选择是否可能会影响谁拥有访问权限以及何时访问。
138.图8示出了根据一个实施例的示例分层分类账。在该示例中,分层分类账800有5个级别,它们都可以使用不同的分类账密钥,然后与指定目标组中的设备共享。图8的示例组包括直接列表、中继列表、备份列表、转发列表和轮辐(spoke)列表。
139.当网络地址对配对设备不可见时,必须存在备选的寻址方法,这允许中继或转发服务器找到到配对设备的路径。中继、转发和条幅列表标识三种不同的应用:中继是一个中心,服务器知道两个设备,并且可以在两者之间延迟消息,和/或它可以通过充当中介隐藏两个设备之间的网络地址。在转发服务器场景中,消息作为端点到达转发服务器,阻挡例如跟踪路由,并且这需要附加的路由信息(我们将在该方案中维护地址簿)。中心/轮辐服务器是转发服务器,允许第三方接管路由信息。这些可能允许不同的区域、国家、大公司、某些政府分支等。每个中心和轮辐服务器都可以维护自己的地址簿。
140.在各种实施例中,基于各种类型的服务器和地址分类账中列出的地址信息,消息可以被相应地路由。例如,设备可以指定转发服务器是消息应该被发送给的地址。为了将消息发送给转发服务器,消息可以取决于发送设备的位置路由通过附加服务器。
141.针对设备,例如设备a,要标识另一设备(例如设备b)的网络地址,首先,设备a必须利用公钥与设备b交换的私有分类账密钥更新其地址分类账网络地址。在写入操作已被完成后,地址分类账现在可以使用匹配的公共分类账密钥(例如由b持有的a的公共分类账密钥)读取。因此,只有配对的设备才能取回配对设备的网络地址,因为它需要交换的公共分类账密钥(用于读取)。对其他设备,经加密的地址分类账不持有任何有意义的信息。
142.类似地,设备b负责更新其分类账,并且设备a具有设备b的公共分类账密钥。类似地,设备a通过使用b的公共分类账密钥读取设备b的分类账地址来确定设备b的网络地址。设备更新其分类账。当网络地址被更新并且反映每个设备的当前地址时,这些设备可以直接彼此发送消息。
143.各个组由设备通过基于配对设置记录利用不同密钥而被加密的不同有效载荷来更新。例如,当设备键入新的网络地址位置时,它会利用新记录更新地址分类账,该记录由
(在这种情况下)5个子记录组成,每个子记录都利用不同的密钥而被加密。如果是这样,每个配对的设备和服务器都可以获得设备的网络地址并且与其通信。
144.在更复杂的设置中,设备可能只更新其转发服务器子记录,这意味着除了转发服务器之外,配对的设备和服务器都无法向设备发送消息,因为它们无法读取可通过转发设备持有的公共分类账密钥访问地址分类账有效载荷。
145.如果设备没有为对等消息传递配对,则地址分类账无法被配对的设备读取。相反,路由在我们的服务器中创建,这要求每个阶段都可以访问其连接对分类账。在第一阶段中,例如转发服务器,该转发服务器代替了p2p设备b,并且现在网络地址查找的结构可以与以前相同,除了现在是链的第一(或反向的最后一个)阶段之外。每个阶段重复相同的加密方法,直到最终目标设备b被找到为止。同样,查找到设备b的路由需要服务器维护的路由地址簿。
146.网络地址可访问性可以通过将地址标识为“可见”或不可见来管理。如果网络地址可见,则接收设备可能在线,并且直接通信可以在不干扰或不依赖任何服务器的情况下启动。如果接收设备不在线,则中继服务器可以充当中介,持有消息以供稍后递送。
147.如果网络地址不可见,则消息序列变得更加复杂。在可见方法中,消息的最终目的地是发送方已知的,因为它是接收设备的当前ip。但是在不可见的方法中,这个网络地址不是已知的。
148.然而,该设备在网络中是已知的,并且它已经与发送设备配对。在转发方法中,转发服务器与设备配对,并且该转发服务器将有权访问接收设备的网络地址。在与发送设备的配对中,转发服务器被列为接收设备的地址目的地。因此,从发送设备的角度来看,方法保持不变。
149.接下来,转发服务器接受来自发送设备的消息,剥离网络地址信息,并且将发送和接收都替换为转发数据;发送网络地址成为转发服务器的网络地址,并且接收网络地址成为接收设备的网络地址。转发服务器充当中继服务器:如果接收设备在线,则消息被立即发送,否则将保留该消息并且稍后重试。接收设备可以在唤醒时ping转发服务器以加快这种过程。
150.该模式可以被重复,使得转发服务器可以转发到另一转发服务器等。它们可以是菊花链式的。在所有这种情况下,我们的网络将能够通过找出哪个服务器被连接至设备来形成基础地图并且定位设备。
151.这种方法可以被进一步增强,使用“可信”、“备份”、“轮辐”和“中心”服务器。这种服务器有不同的目的:受信任的服务器将被使用来代替中继或转发服务器,以保证更高级别的保护。例如,这种服务器无法被共同托管,必须位于安全的场所等。类似地,“备份”服务器可以被用于备份设备数据。
152.另外,网络可以以各种方式进行划分,诸如地理划分、按分区、地区或国家代码、按大陆、按组织、按政府功能等。在这种情况下,接收方网络可以构造自己的设备连接服务器(轮辐)和自己的转发服务器(中心),以构建进出我们网络的路径。这保证了消息如何通过互联网路由的完全保密。
153.如前所述,消息内容被加密并且只能由接收设备解密。虽然网络信息是公开的,但这种架构、转发服务器等防止了对配对和位置数据的检测。
154.地址分类账记录还通过被加密并且不可见来增强这一点。加密可以被划分(例如经由不同的分类账密钥对)以允许若干提出的方案共存和重叠。
155.针对设备的优选方法:p2p、中继、转发等,可以由设备动态控制,并且基于配对期间消息交换的类型。例如,可见的网络地址优选地用于与媒体流实体耦合,例如针对家庭电影观看,但在旅行时,设备可能无法到达,除非经由转发服务器,使得其实际网络地址对配对设备不可见。
156.为了支持这一点,上述“静态”设置需要“动态”叠加——即,设备在加入网络时与中继和转发服务器配对,并且选择哪个路由取决于设备对其当前网络地址进行加密以对当时选择的路径可见。
157.尽管如此,附加信息必须被存储在配对设备中彼此的本地记录处,这些信息必须被提交给服务器。该信息可以使用与该服务器的会话配对密钥而被加密,并且该信息将保留数据(诸如最终服务器或者到其他设备的可用路由)。注意,这都是通过与设备服务器配对完成的,并且该信息可以在稍后更新,例如因为设备重新定位或离开组织。本质上,分布式地址簿被创建,实现设备到设备的消息传递,而无需交换网络地址。
158.因为设备可能具有代表其接收和传送消息的各种服务器,所以设备必须确定是否有针对它的消息。在p2p设置中,设备可以看到彼此的网络地址并且直接彼此ping以发送和接收消息。然而,并非所有设备都会在p2p的基础上进行配对,即使是p2p配对的设备有时也会离线,并且直接通信也会失败。
159.出于该目的,我们已经介绍了ip消息传递的类型和我们打算配置的服务器的类型。使用中的所有服务器都是安全服务器,并且具有专用的网络地址。要使服务器与设备一起工作,必须先配对。这是在初始设备配对设置期间完成的。在复杂的情况下,当转发和中心或轮辐服务器正在使用时,它们可能会经过其他服务器,直到它到达接收设备的配对服务器为止,此时接收设备的连接管理服务器110记录得到更新。这是简单方法的扩展——即,服务器取决于最终目的地在它们之间转发消息。在该示例中,服务器可以维护路由映射来配置服务器之间的路由。注意到,消息安全性没有改变,因为消息是针对最终目的地而被加密的。此处的服务器活动主要与ip和活动隐藏以及离线转发相关。
160.有两种基础的主要方法用于在没有直接连接的情况下发送消息:p2p和单个中继服务器。多跳中继在先前段落中提及,并且它们可以自主完成。
161.在第一通信示例中,设备b未能到达设备a,并且在超时之后它将消息存储在默认中继服务器上。设备b可以认为该消息已发送。尽管设备a尚未接收到它,但在唤醒时或在给定时间间隔之后,它在其正常协议中与连接管理服务器110通信,并且接收来自设备b的消息正在中继服务器上等待接收的通知。通信管理服务器110因此还可以管理设备之间的等待消息的协调。设备a然后可以联系默认中继服务器并且从设备b取回消息。消息现在被接收到。
162.如果两个设备无法看到彼此的网络地址,并且不可能进行直接通信,那么配对必须为每个设备提供相对于另一个的路由或最终服务器。例如,设备a可以为设备a指定中继服务器来接收其消息(来自设备b)。服务器可以基于从设备a提供给设备b的公共分类账密钥在地址分类账中可访问。设备b向指定的中继服务器发送消息,其通知连接管理服务器110,现在消息被发送。与先前的示例一样,设备a在唤醒时或在给定时间间隔之后与连接管
理服务器110通信,并且接收来自设备b的消息正在等待在指定中继服务器上接收的通知。设备a现在联系默认中继服务器并且从设备b取回消息。消息现在被接收到。
163.给定的时间间隔可以变化——例如当消息被接收到时,设备可能会响应消息并且在较短的时间间隔内再次ping。如果没有消息被接收到,则时间间隔可以被延长。这是为了为不是基于p2p配对的设备创建更快速的通信。
164.因此,连接管理服务器110可以持有设备的消息标志。持有消息的设备的分类账地址可能被包括在这种标志中。
165.代替使用连接管理服务器110,专用中继服务器也可以持有这种标志并且接管该功能。如果多个服务器被使用,那么设备必须对它们中的每一个执行ping操作以获取消息取回标志。
166.如果所有标志都在连接管理服务器110上,则一个ping将通知设备正在等待的所有消息以及在哪些服务器上。消息取回所需的活动因此被最小化。
167.在优选实施例中,如果接收设备a的消息的服务器有权访问设备a的地址分类账并且可以立即取回其网络地址,则它不必等待与连接管理服务器110的握手。它会这样做,然后格式化到设备a的ping。这样,消息会通过服务器中继,但转发会立即发生。当设备接收到消息时,连接管理服务器110中的标志可以被移除,因为消息现在已经到达设备。
168.因此,在实践中,如果设备在线,无论是直接p2p配对还是服务器中继配对,大多数消息都会被立即递送。只有(下一页)当设备ip可见性受到限制时,延迟消息才可能发挥作用。我们可以将其称为推拉消息传递中继。在推模式下,接收设备(设备a)在线,并且如果网络地址彼此可见,则可以从发送设备(设备b)ping,或者可以从访问地址分类账中更新的设备a的网络地址的中继(或其他)服务器ping。推模式导致即时消息转发无延迟。当设备a离线或由于其他安全性问题未更新其网络地址时,消息将被保存在相关服务器中,并且通过使用连接管理服务器110上的标志,拉模式被使用。
169.在设备侧,在具有移动os系统的实施例中,使得应用能够发现新数据已为它们准备好。它们将联系服务器并且在允许时(在wi-fi上,以特定间隔等)拉入数据。我们将这种交互方法(对服务器)称为“推”模式。在这种模式下,应用可以作为后台应用运行或激活并且准备数据。
170.在另一模式“拉”模式下,应用主动与另一“ping”设备进行交互。如果这种设备都在前台运行应用,则直接p2p通信可以被建立,例如就像在视频通话中一样。
171.用户还可以在电池寿命设置、数据设置和其他考虑方面限制推拉模式。在我们的优选实施例中,移动设备可以在后台响应“ping”,这将使分布式连接网络相当快。
172.重要的是要理解在该组织中用户可以选择以p2p方式直接通信,或者它们可以设置中继和更多服务器来路由其消息,以允许不同级别的网络地址隐藏。没有中央服务器可以看到网络中的所有消息,并且可能看到部分业务的各种服务器无法解密其内容,也无法看到总路由,除非两个设备使用相同的中继服务器,这可能很常见,也可能不常见。这与基于中央服务器架构的消息交换系统不同,其中用户必须非常信任中央服务器操作者,因为其所有活动都可能被记录,并且其消息可能被存档(加密不是p2p,但可以进行p2s和s2p,提供服务器可见性)。在我们的方案中,所有这种漏洞将被关闭。
173.服务器上的会话密钥可以被用于通过将附加信息添加到ip分组有效载荷中来使
ip路由更复杂,该ip分组有效载荷可以被用于向服务器提供可以被存储在本地设备记录中的附加信息。另一方法是依赖于连接管理服务器110来获取一些相同的信息,其中一些可以被分布到各个服务器。
174.与消息密钥一样,连接管理服务器110除了它自己的之外,无法访问(并且不存储)消息和分类账密钥。这确实为连接至它的设备存储会话密钥。这在连接被建立后消除了所有未来的登录协议,因为只有正确的设备将具有正确的公钥和私钥来标识设备的地址(经由分类账密钥)并且安全地向设备发送消息(经由消息密钥)。
175.vpn服务器也可以被用于所呈现的环境中。虽然不是转发或中继服务器,但vpn服务器可以被用于保护设备和网络之间的连接。客户端可以建立到vpn转发服务器的安全连接,该服务器从被转发到期望端点的消息中剥离域和用户信息。类似地,该方法可以使用浏览器转发服务器。在该模型中,用户实际上在我们的应用中启动了浏览器窗口,该窗口连接至浏览器转发服务器上的实际浏览器。这样启动的浏览器没有关于实际最终用户的信息——它只能看到浏览器转发服务器的网络地址和设置信息。浏览器历史可能会被移除,并且从用户的体验,浏览器的外观和感觉非常像是在本地运行一样,只是它们没有登录,没有cookie,没有凭据,并且可能将接收到更少的垃圾邮件和广告。在扩展设置中,我们可以让用户登录到我们的浏览器,并且维护用户环境(诸如cookie),这将增加更多益处和易用性,而不会损害用户的隐私。
176.组消息传递
177.设备还可以在彼此之间建立组消息。由于消息密钥通常在两个设备之间建立,其中消息利用设备的私钥解密,因此这种方法在消息发送给许多用户时会变得笨拙。为了发送组消息,每个组成员都被赋予公钥来解密由组发起者发出的消息。与简单的分类账密钥类似,加密是使用私钥(认证方法)完成的,并且解密可以使用对应的公钥完成。即,到组的消息利用私钥而被加密,然后可以利用公钥读取。然后,这允许使用私钥的单个加密由所有组成员利用公钥读取。组消息密钥可以通过到每个组成员的配对安全消息发送给组中的每个设备,确保只有组成员可以访问密钥来读取组消息。
178.密钥可以被赋予到期日期,在该到期日期之后它们必须被更新,以获得附加的安全性。这可能适用于任何类型的密钥,特别是针对组,以防公钥已受到损害。
179.除了对等安全消息交换之外,我们还希望启用消息、内容或其他访问的组分发。一个这种应用是受邀用户的私人论坛。论坛可以对互联网完全不可见,而访问论坛与在互联网上没有什么不同。
180.组可以是两种不同的类型:推或拉,并且我们区分只读、主持/参与或广播,此处概括如下:
[0181][0182]
类似于单个设备,组可以被添加到地址分类账。在一个示例中,组地址记录指定每个组成员的地址分类账。在另一示例中,地址分类账中的组地址记录可以指示组成员的网络地址为组管理员可访问的。即,组管理员可以登录网络,并且使用组中的每个设备的分类账密钥来确定该设备的位置,组装所得的网络地址列表,并且更新地址分类账以反映组接收方的当前地址列表。
[0183]
用户通常在公共搜索中保持不可见。然而,组可能希望让自己可见并且宣传其存在。为此,存在元数据字段,其中组可以添加可公开搜索的信息,诸如名称、目的、任务声明、管理员/主持人联系人、用于搜索的seo/元数据。
[0184]
每组都可以决定它们是否想要将这种字段保持为空(变为不可见),或者将它们中的一些或全部公开。不可见的组仍然可以维护元数据,但是利用标志来控制数据是否是公开(由非成员)可搜索的。
[0185]
另外,组可以创建公共(网络外)链接,这将允许人们点击并且加入。本质上,如果他们还没有应用程序,则它们将不得不安装该应用程序,然后积极寻求参与该组。
[0186]
当用户想要加入组时,在设备上,步骤顺序类似于其他地址管理。组消息密钥(公共组密钥)和公共组分类账密钥由加入组的设备接收。在设备配对中,相互密钥被交换,针对基础组设置,这不是必需的,尽管可以选择(参见只读、主持、参与和广播组构造)。
[0187]
所交换的密钥在二次加密消息中交换,即,在优选实施例中,组消息密钥和公共分类账密钥不通过连接管理服务器110交换,相反公钥(例如消息密钥)被用于加密第二交换消息集合以交换实际密钥。这样,连接管理服务器110不负责维护用于设备消息配对或组配对的公钥。
[0188]
在一个实施例中,关于什么成员连接至组的信息被存储在每个设备的本地记录和连接管理服务器110上的组记录上。在一个实施例中,这允许连接管理服务器110发出组消息,而本地设备使用组的成员列表来限定引入的(incoming)消息或请求,而不必与每个成
员配对也作为单独的p2p连接。
[0189]
以下过程可以被用于发送组消息:组设备(例如创建者/主持人/管理员的组消息创建组消息。组消息利用组消息私钥而被加密。该消息只能由组成员使用其公共组gmsg密钥读取。连接管理服务器110无法读取其内容。在一些实施例中,到组成员设备的网络地址路由最初可能是未知的:组设备和连接管理服务器110都无法访问这种信息(没有分类账密钥)。在接收到经加密的消息时,连接管理服务器110遍历组成员设备列表,并且针对每个设备,选择所标识的服务器以找到ip路由并且将经加密的消息发送到该路径中。所标识的服务器接收消息请求。所标识的服务器选择组成员的活动网络路由(如果可用的话),或者等待设备重新联机,并且它配置组消息以输送给该网络地址。当设备从所选的网络地址响应时,经加密的组消息作为消息向组成员设备发出。
[0190]
与其他消息一样,只有接收设备(在这种情况下为组成员设备)具有用于解密组消息的相关密钥(gmsg公钥)。所有服务器和其他中继设备(路由器、wi-fi等)都不具有解密组消息的能力。
[0191]
在该实例中,不需要分类账信息并且组通信可以由服务器执行。组创建者/管理员/主持人只需加密组消息(使用组私钥)并且将其提交给连接管理服务器110进行转发。连接管理服务器110将消息发送给指定的服务器,在每个设备的基础上进行标识。
[0192]
这有若干益处。发送设备在卸载发送时维持消息控制。组消息对接收方保持加密,路由设备无法解密消息。带宽、寻址和其他信息被移动到服务器,这自然会消耗更多的带宽,而不是组设备。
[0193]
基础架构被维护——仅ip路由被寻址为组功能。这能够重用必须被创建的大多数底层代码、协议和架构,以支持对等安全消息传递
[0194]
另外,接收设备未示出它们订阅了哪些组
[0195]
然而,在备选实施例中,分类账信息可以被保留,从而实现类似于直接设备配对的直接p2p连接。在这种情况下,组成员列表将在组设备上使用来发出组消息。这种方法的益处是连接管理服务器110看不到该消息传递。
[0196]
在另一实施例中,只要组成员列表可以从用户的设备、连接管理服务器110或地址分类账获得,就可以将所有消息传递活动委托给已知的(受信任的)选择的服务器集合。这样做也将简化组成员广播回组的能力。当组主持人持有私钥时,消息将经由组主持人的设备或者经由连接管理服务器110发送。将其委托给其他服务器可以具有益处。
[0197]
在所有这些方法中,消息创建(加密)由组主持人(通常也是管理员)完成,并且消息无法由任何服务器(如果使用)读取以进行分发。如果用户被允许向组发送消息,则加密仍然必须首先在组主持人的设备上进行——因为组mpsg私钥仅存在于该设备上。作为一种替代方案,组私钥可以被共享,例如类似于先前讨论的对称媒体密钥的共享。例如,这可以被用于提供多于一个管理员或主持人,或者可以被用于将主持人角色从一个设备转变到另一设备。
[0198]
另外,组可以完全私下操作,因为它们的消息不公开发布并且仅对合格的组成员可见。组管理员可以从组中添加和删除成员。
[0199]
在另一实施例中,组发送可以是成对的。在这种情况下,对等加密被再次使用(公共

私有),使得公钥加密由接收设备持有的私钥读取的消息,而不是组加密(私有


共)。在该设置中,每个组成员获得唯一的消息。
[0200]
数据备份、管理和恢复
[0201]
因为用户设备公钥被用于写入经加密的数据并且用户设备私钥被用于读取数据,所以经加密的数据可以被存储在备份服务器上并且可以根据需要成功地被转换到另一设备。如上面讨论的,数据存储模块250使用这些密钥来读取和写入数据到加密数据存储装置260。另外,用户设备私钥可以使用值来恢复,该值用于创建用户设备密钥对被生成的散列。通常,这允许数据被备份并且存储在其他位置,即使设备丢失,数据也可以利用重新生成的用户设备私钥来恢复和访问。另外,在各种实施例中,用户设备密钥对在每个设备上可以是相同的。即,形成散列的组成值可能在用户的每个设备上都是可用的。这也可以允许有效的数据存储和跨设备传送这种经加密的数据,并且仍然允许每个设备读取和写入数据。
[0202]
最初,安全子系统200通常可以作为“永远在线(always on)”的应用来操作,这提供了附加的安全性益处。作为示例,连接管理服务器110具有已知的网络地址,并且这可以针对某些校验和代码被ping以验证服务器。附加服务器可以被添加到该混合。由于我们有安全的端到端通信,我们可以使用会话公钥/私钥与已知服务器交换消息,并且验证设备是否被连接至未收到损害的互联网(无欺骗、中间人、假ip路由等)。时间(戳)检查也可以被添加。
[0203]
由设备存储和加密的数据可以包括用于安全性子系统200的数据(例如安全性子系统的配置数据、配对记录、消息密钥、分类账密钥等)。在一个实施例中,到本地存储设备(磁盘、闪存)的所有数据都利用用户设备公钥写入并且利用用户设备私钥取回。如上面讨论的,在一些实施例中,用户设备私钥未被存储,而是可以基于存储的信息、算法和(可选地)用户输入来生成(例如在应用启动时),例如以提供密码短语。
[0204]
消息和其他下载的数据可以以它到达的格式保存,即,来自发送设备的公共经加密的消息,或者如果优选,则可以在本地被重新加密。如果数据(发送方)允许,则数据可以保持未经加密的状态,并且如果os允许在应用空间之外访问,则数据可以被移动到用户的标准文件夹(诸如照片文件夹或媒体相册)。在该方案中,安全性系统记录数据集是已经被加密的,并且只能使用用户设备私钥取回,而下载和/或上传的数据集可能形成经加密的和经未加密的数据的大杂烩。
[0205]
出于备份目的,我们更喜欢重新加密所有未经加密的数据。无论经加密的数据是否应该不被加密,然后重新加密是一种设计选择。不需要重新加密,因为所有所需的解密密钥都存在于记录数据集中,并且也已备份。
[0206]
连接数据240可以与来自加密数据存储装置的附加数据一起存储到备份设备。在该实例中,当连接数据库240和加密数据存储装置260被备份时,用户设备私钥不会离开设备并且不会被备份到备份服务器。因此,备份服务器(或任何其他设备)没有访问备份数据的私钥。在需要重新生成用户设备密钥对的情况下,连接管理服务器110维护puuid和无法从用户或其他信息中确定并且用于生成用户设备密钥对被生成的散列的其他数据。
[0207]
为了从备份中取回数据,设备将备份记录复制回本地设备。这对于从本地加密集中获得数据或从本地记录恢复丢失的数据是有用的。然而,如果本地记录数据集本身在设备上以某种方式丢失,则通常会从备份中取回。如果发生这种情况,则应用将不再运行,并且用户必须先恢复设备。
[0208]
为了在新设备中使用,新设备必须被分配与先前设备相同的uuid,并且用户设备私钥必须被重新计算。连接管理服务器110保留了足够的信息来重新创建在第一本地设备上使用的原始条件,除了一件事:用户的密码短语。
[0209]
在一些实施例中,当新设备(备份被加载在其上)被激活时,它接收新的puuid。在这种情况下,该设备将具有新的用户设备密钥对。使用用户的密码短语和其他标识信息,其他设备的用户设备私钥可以被重新计算,本地记录可以从备份服务器取回和解码,然后利用新生成的密钥重新编码。如果先前的用户设备密钥对正在与其他设备一起使用,那么所有这种链接必须被更新,这也可能涉及对新密钥的本地重新加密。
[0210]
新设备还可以接收更新的分类账地址。在下一步骤中,网络必须传播来自设备的请求,以获得其所有链接设备分类账数据,以指向新的分类账地址。
[0211]
在一些情况下,数据可以在没有备份服务器的情况下迁移。在备选设置中,用户可能同时具有旧设备和新设备,并且这两个设备都被连接至互联网。在这种情况下,我们不需要去备份服务器,因为本地记录被保留在旧设备上,并且可以被转发到新设备。在该操作完成后,对所有链接设备的相同用户设备公钥更新必须作为新设备作为不同的分类账地址进行。
[0212]
由于用户设备密钥对和分类账配置,难以实现克隆设备。如果一个被克隆,则它会同时出现在网络上的两个地方,这将标记该设备以进行重新认证。具有真实的、未克隆的设备的用户将重新建立凭据,并且在这样做时将克隆的设备锁定在外。这种重新认证方法可以使用到期的基于时间的租约自动触发,并且一旦到期,它们将触发重新认证。
[0213]
如果先前设备在没有备份的情况下丢失,则新设备仍可以从连接管理服务器110中受益,因为它维护丢失设备的所有配对和组成员信息的副本。
[0214]
然后,用户现在经历与恢复新设备相同的步骤来取回用户设备密钥对。一旦新设备被添加到网络并且具有其新设置,服务器将发出请求以修复所有配对的设备和组。配对请求可以被自动授予(重新配对),或者可以手动生成。当配对被重新建立时,用户可以像使用旧设备一样发送和接收消息——他的所有配对都恢复了活力。因为没有备份,先前的数据可能会丢失。
[0215]
重要的是,这些备份和恢复方法不会损害系统的先前安全性和加密。具体地,因为用户的输入(例如密码短语)被用于重新创建用户设备密钥对,所以只有用户(具有该输入)可以成功访问备份数据。输入(例如密码短语)未被存储,因此取回它的唯一方式是从用户的存储器中取回。另外,多因素认证也可以被用于确认用户标识。
[0216]
存储在客户端设备上的数据也可以通过来自连接管理服务器110的指令进行操纵或搜索。来自连接管理服务器110的指示数据存储模块250执行动作的消息被称为动作消息,并且它们允许在具体规则内操纵设备上的数据。本质上,它们允许自动动作,否则将必须由用户完成。
[0217]
简单的示例是公司服务器文档控件,该控件更新本地存储在用户设备上的文档的版本。利用动作消息,企业(演示)文档的组创建者可以简单地向所有组成员发出更新命令,保证每个人都会接收到新的演示文稿。该命令可以包括诸如“overwrite-current-copy”或“make-local-copy-of-current”等选项。
[0218]
动作消息可以与标签和元数据以及实际数据一起工作。标签被用于在主机和设备
上被追踪的数据,而元数据被用于提供可以被用于在搜索和可见性参数内查找任何文档的搜索信息。在一个实施例中,动作消息
[0219]
动作消息可以处于主动模式或被动模式。在主动模式下,用户在源设备上配置并且发送消息。在被动模式下,数据无需用户确认即可从源设备取回。在一个实施例中,动作消息仅对共享数据进行操作——共享可以与另一个人或设备或者安全性级别(朋友、同事、家人)共享。由动作消息执行的示例动作包括搜索、传送、复制、删除、更新、推、拉等。动作消息位于消息的加密部分中,并且控制应用内的步骤,这不是os级别活动(但可以从指定文件夹读取/写入,例如照片、视频、流、文档)。任何传送活动总是经加密的,就像用户发送消息一样
[0220]
数据也可以利用元数据或标签来标记。用户可以查看和编辑元数据,而标签通常由数据源或所有者设置和控制。例如,利用标签可以追踪将文件从设备a复制或移动到设备b的用户。标签将反映这一点,并且源设备现在将获得关于该文件在设备b上位于何处的信息。
[0221]
远程文档管理是标记能力的主要目标。因为不仅数据是四处发送的,而且在每个阶段都维护着记录(标签),所以标签可以被用于在系统中的任何时候影响文档。
[0222]
同样,复制、重命名、移动、传送(到另一设备)都是可以由数据存储模块250对存储在加密数据存储装置260处的用户数据执行的所有用户命令。在一些实施例中,这些动作对用户看起来类似于作为操作系统功能。当这些动作被采取时,数据存储模块250附加地更新标签,报告回数据追踪服务,并且可以添加或删除元数据。如果数据源提供方允许,或者如果没有标记,则数据可以从经加密的应用数据空间复制到已获得应用访问权限的未经加密的os文件夹中。在这种情况下,标记可能会结束以防止在安全性生态系统之外进行追踪。但是在生态系统内,所有的数据位置、所有的数据迁移、所有的数据更新(总之所有的数据操作)都可以被追踪,并且这使得数据源提供方能够主动维护所有的分布式数据。
[0223]
文档可以被设置为例如如果其被更新则始终创建(修订)副本,并且禁止在应用(经加密的)数据空间之外复制,或禁止将数据作为消息发送给另一用户等。具体地,这种标签可以被用于追踪和维持对诸如数字媒体等文档的控制。
[0224]
关于存储信息的元数据可以被自动或手动添加。例如,图片集合可以在元数据中标记为“公园里的家庭”。自动元数据可以包括时间和位置信息。系统发送的任何数据都会自动添加元数据,类似于其他消息交换系统。由于消息是安全并且经加密的,因此这种数据是在创建的初始点生成的,因为否则它会因具有数据副本的系统而异。在目前的系统中,由于在线服务器通常不保留消息副本(并且在没有接收方的消息私钥的情况下无法访问它们),消息的行为自动与下载副本并且删除中间副本一致。
[0225]
在该生态系统中,消息实际上从源迁移到发送方,并且副本在消息被接收到(确认接收)时不会在任何地方保留。该消息也针对终端设备而被加密,并且无法在另一设备上被读取,因此副本将没有用,除非作为组消息发送。
[0226]
我们使用元数据和动作消息来解决这个问题。像这样的消息添加了使得能够再次查找消息的元数据:在该示例中,可以登录pc,启动我们的应用,并且搜索“在设备x上查找下午2点到4点之间来自joe的消息”。该搜索在设备x上执行(必须在线才能快速响应,否则这将成为中继搜索,类似于中继消息发送),然后生成“命中”列表。用户可以选择相关的“命
中”,并且选择“复制”或“传送”。如果原始消息是“开放的”,那么“复制”或“传送”不会产生任何影响。如果消息设置了安全性级别(不复制,只允许x、y、x、追踪、标签),则“复制”或“传送”可能会被阻止或可能涉及也会发生的附加动作(动作消息)。
[0227]
如果用户选择“传送”,则该消息将从设备x中删除并且现在在他的台式计算机设备上。如果它是已标记数据,则标记器将能够在新设备上找到该消息,因为它保留在我们的经加密的生态系统中。
[0228]
进入网络的任何数据都可以与元数据耦合:例如拍摄照片的位置、呈现给客户的所有数据的客户名称、销售追踪信息、家庭成员数据、简短和详细的描述。该元数据可以通过两种不同的方式迁移:1.超级节点,元数据的网络存储聚合以加速全局搜索——这主要应用于共享数据(例如办公室数据或提供方内容),2.本地节点:元数据的本地存储聚合以加速全局搜索——这主要适用于个人数据。搜索可以对关键字执行,类似于普通的web搜索,并且匹配将基于关键字匹配——结果可以指向用户可以访问的任何数据,在可访问的所有组和所有安全性级别中。
[0229]
当搜索产生匹配时,数据可以是:在本地设备上,立即可访问;在网络设备上,网络可取回的;在另一设备上,可通过直接或中继请求取回。搜索可以包括片段和/或缩略图、预览等,允许用户确认搜索结果。用户可以“点击”结果并且获得实际数据。数据呈现的响应时间将取决于它的存储位置和访问方式——大小和上传速度可能很重要。
[0230]
为了执行本地私有搜索,每个设备可以维护本地元数据数据库。设备可以用更新后的元数据来更新远程系统以存储信息。远程访问可以通过动作消息按需提供,并且在已建立的访问限制内。本地元数据可以被发送给配对设备。
[0231]
这提供了一种用于在配对设备之间迁移数据的方式。所需的“命中”列表受共享级别的保护——每个数据集都可以被限制为某些配对,例如工作和家庭可以共存,但永远看不到彼此。然而,问题是数据是经加密的而元数据可能是也可能不是。
[0232]
首先关于加密:在设备p上找到的消息必须使用设备p上的msg私钥p解密。如果消息要被传送到设备q,则首先必须解密,然后使用msg公钥q针对设备q重新加密(使得设备q可以使用其消息私钥q对其进行解密)。这需要设备p和q彼此配对。
[0233]
其次关于元数据:概念上,元数据文件位于远程设备上。在优选实施例中,所有元数据在本地设备上被加密,并且对其他设备不可见。然而,设备之间共享的元数据遵循更复杂的“推送”功能。
[0234]
在第一示例中,图像设备k和设备m被配对作为个人设备。两个设备都创建在它们之间共享的元数据。这针对一个用户拥有的两个个人设备(例如移动和台式计算机)来说是典型的,针对配对的不同用户来说则更少。在后一种情况下,元数据可以针对某些数据集共享——例如图片或家庭电子邮件,但不是一般的“收件箱”。这可以通过数据类型、数据源或连接组等来完成。
[0235]
元数据发生的情况是它在本地设备上不断更新。这是针对具有搜索能力的本地gui完成的。然而,该完全经加密的本地元数据文件与其他个人设备共享。因此,设备k上的元数据文件会随着数据活动的发生而不断更新。以预设的间隔,该元数据文件的增量改变被捕获,并且为设备m重新加密。随着时间的推移,设备m接收来自设备k的所有元数据(针对消息子集),并且能够执行与最初可以在设备k上做的相同的搜索。
[0236]
当设备m执行这种搜索时,“命中”存在,但“数据”不存在——它将示出数据驻留在设备k上,并且它甚至可以示出设备k是在线还是离线。在线意味着立即访问可以被启用,离线意味着必须等待另一设备唤醒。
[0237]
在更复杂的方案中,人们可以想象连接的设备集合将具有来自不同设备上的不同子集的元数据,所有这些元数据都在这种设备中的每个设备上连接。这些数据可以快速增长,因此我们预见到智能数据压缩和有限数量的元数据信息作为遏制这种情况的方式。主动管理也可以被进行,以及使用动作消息将一些搜索移动到“远程”搜索中。这种远程搜索可能会比较慢,但它们允许搜索必须更大的元数据集。我们期望我们的优选实施例将形成两种方法的混合体
[0238]
但是,因此创建的是数据集,有可能深入许多级别,以使用户能够在他的连接设备集合内找到元数据。用户的元数据只能在给定的权限内访问,并且规则必须被定义。
[0239]
这种搜索的示例(限于用于图示的图片文件夹)可以产生诸如“查找日期y的学校活动x的所有图片”等数据。如果例如父母已配对,则所得搜索将示出在任何配对设备上捕获的所有图像的缩略图。可以点击搜索结果并且索取副本(传送将不是选项)以收集图像用于相册。
[0240]
在我们的优选实施例中,存在许多附加的保护措施和检查到位,导致系统不包括安全性,同时使连接的人能够以受信任的方式操作。然而,这不是当前描述的一部分,我们认为本章节足以解释此处的基础概念。
[0241]
简而言之,本地私有搜索(使用本地元数据)、本地远程私有搜索(使用远程元数据的本地副本)和远程私有搜索(使用动作消息在远程设备上搜索)和远程所有私有搜索(使用动作消息来搜索该设备上元数据的所有本地副本)都是我们“无云”系统架构的重要组成部分,因为在某些场景中需要它们来实现快速数据访问和迁移。
[0242]
也可以在非配对设备之间传送数据,只要它们之间存在通过一系列配对设备的路径。自然地,这会产生安全性风险,在实施这种特征之前,这些风险很容易被理解和阻止。
[0243]
为了实施元数据,当新数据或新消息被接收到时,它对其他设备是不可见的。然而,在接收时,设备将消息元数据(包括时间戳等)添加到其可搜索的数据库。在另一设备上,该消息随后可以通过远程私有搜索找到并且打开(远程查看)或传送(复制或迁移)到其他设备。传送需要重新加密消息(从第一设备到第二设备。文档控制将让源设备知道消息已被复制或传送。未来的文档控制命令将通过链接转发并且“追踪数据”。内置文档限制可能会阻止复制或转发。实际上,消息可以在设备之间移动或复制,并且提供与当前基于云的消息传递系统类似的用户体验,同时显著增强消息保护。
[0244]
这些实施方式还可以包括用于为执法部门提供对数据或消息的访问的可见性的方式。在安全性方面,漏洞和后门仍然是永久的威胁。在我们的方案中,我们几乎消除了这种威胁,因为所有配对都是以分布式方式完成的,即,每个设备,并且黑客攻击任何设备都需要拥有该设备,这与当前的设备没有什么不同,例如手机访问。
[0245]
然而,fbi和其他政府机构经常发出权证(warrant)请求以追踪用户的信息。这是法律要求,合规性导致架构决策固有地在任何通信方案中造成弱点,并且可能导致可能的陷阱,例如中央服务器上的未经加密的数据。我们提出了一种架构,其中这种中央服务器数据无法产生权证请求规定的信息,并且我们证明我们可以基于我们的架构以新颖的方式遵
守权证。
[0246]
唯一的“中央”数据库是连接管理服务器110。然而,除了它使用会话密钥直接交换的消息之外,该数据库没有关于如何解密通过网络(或整个互联网)传输的任何消息的信息。
[0247]
动作消息可以被用于遵守政府对数据的要求,而不是主解密密钥或将私钥交给政府。在这种情况下,我们描绘了三种不同类型的政府制裁,例如基于权证的访问安全数据的需求。
[0248]
在第一种情况下,权证可以请求使两个设备之间的所有活动可见。给定命名对,系统将向每个设备发送动作消息,同时将消息的副本发送给存档服务器,该副本针对已配对的政府标识的权证设备加密。要注意,存档服务器是虚拟服务器,这不是已知的ip地址(可能会触发用户),并且这可以是网络中的任何服务器,该服务器成为将转发到权证设备的复制消息的端点。
[0249]
在第二种情况下,权证可以请求给定设备上的所有活动(接收和发送),并且所有这种信息将作为加密副本转发到权证设备。
[0250]
在第三种情况下,权证可以请求所有可用数据——其是设备上存储的消息数据以及可以在应用外部访问的数据(例如照片或常规电子邮件)。所有这种数据将被加密并且发送给权证设备。
[0251]
权证发行人应当意识到,这种权证引发的活动被用户检测到的机会随着每个级别的增加而增加。尤其是在第三种情况下,数据取回应该被限制,因为用户可能会对其设备突然性能下降、电池寿命下降或互联网活动频繁而感到震惊。
[0252]
因此,系统架构和“总安全性”方法不会受到政府制裁的权证的损害。
[0253]
结论
[0254]
已经描述了一种用于网络的安全通信系统,该系统能够实现任何两个成员之间以及组成员之间的安全通信。这种安全性是通过在设备级别上使用的私钥来实现的——在实施例中,私钥不被存储在云或服务器上。获得对任何一个密钥的访问权限的攻击者将损害单个设备-设备通信信道,但通常不会允许访问其他设备或损害其他设备通信。另外,数据交换可能在具有未经加密的ip报头的公共网络上进行,而所包括的消息有效载荷除了预期的接收方设备之外是不可破译的。
[0255]
地址服务器允许设备“安全地写入”设备活动(ip地址)和/或分组(组成员列表)。这些方法防止随机或未经请求的消息(例如阻止垃圾邮件消息传递),并且防止在已建立的密钥对之外读取消息。另外,由于设备是移动的并且可以在线和离线,寻址可以包括中继、备份和转发。
[0256]
另外,连接管理服务器110的安全漏洞仅暴露系统用户之间的连接;它不会以任何方式启用读取消息的方法。由于硬连线ip路径(到服务器)被使用以及连接管理服务器110可以在非交互式会话中发送的消息传递的有限功能性,尝试使用私有会话来冒充连接管理服务器的攻击者将失败。所提出的方法还允许远程用户搜索和远程数据管理。
[0257]
总的来说,这些方法使用户能够在不可见、不可见其消息传递活动、不可破译其消息并且不必每次都认证自己的情况下使用互联网,从而在各种实施例中为用户提供隐私、信任、安全性和认证。具体地,认证可以经由与连接管理服务器110的多因素认证来向用户
提供。隐私基于由消息和组密钥提供的消息加密向用户提供。安全性利用地址服务器来向用户提供,防止未授权的设备发现给定设备的地址。最后,附加信任在实施例中经由服务器-服务器加密提供。
[0258]
已经出于图示的目的呈现本发明的实施例的前述描述;它并不旨在穷举或将本发明限制为所公开的精确形式。相关领域的技术人员可以了解,鉴于以上公开内容,许多修改和变化是可能的。
[0259]
本描述的一些部分根据算法和关于信息的操作的符号表示来描述本发明的实施例。这些算法描述和表示通常被数据处理领域的技术人员用于将他们工作的实质有效地传达给本领域的其他技术人员。虽然在功能上、计算上或逻辑上进行了描述,但这些操作被理解为由计算机程序或等效电路、微代码等来实施。此外,在不失一般性的情况下,有时将这些操作布置称为模块也被证明是方便的。所描述的操作及其关联模块可以在软件、固件、硬件或其任何组合中实施。
[0260]
本文描述的任何步骤、操作或过程可以单独地或与其他设备组合使用一个或多个硬件或软件模块来执行或实施。在一个实施例中,软件模块是用计算机程序产品实施的,该计算机程序产品包括包含计算机程序代码的计算机可读介质,该计算机程序代码可以由计算机处理器执行以执行所描述的任何或所有步骤、操作或过程。
[0261]
本发明的实施例还可以涉及一种用于执行本文的操作的装置。该装置可以出于所需目的特别构造,和/或它可以包括由存储在计算机中的计算机程序选择性地激活或者重新配置的通用计算设备。这种计算机程序可以被存储在非瞬态、有形的计算机可读存储介质中,或者适合于存储电子指令的任何类型的介质中,它们可以被耦合至计算机系统总线。此外,本说明书中引用的任何计算系统可以包括单个处理器,或者可以是采用多个处理器设计以增加计算能力的架构。
[0262]
本发明的实施例还可以涉及一种由本文描述的计算过程产生的产品。这种产品可以包括由计算过程产生的信息,其中该信息被存储在非瞬态、有形的计算机可读存储介质上,并且可以包括计算机程序产品的任何实施例或本文描述的其他数据组合。
[0263]
最后,说明书中使用的语言主要是为了可读性和指导目的而选择的,并且可能不是为了描写或约束发明主题而选择的。因此,本发明的范围意图不受该详细描述的限制,而是受在基于此的申请上发布的任何权利要求限制。因此,本发明的实施例的公开内容旨在说明而非限制在以下权利要求中陈述的本发明的范围。
再多了解一些

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

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

相关文献