[go: up one dir, main page]

CN108432205A - 使用代理的安全的多方通信的系统和方法 - Google Patents

使用代理的安全的多方通信的系统和方法 Download PDF

Info

Publication number
CN108432205A
CN108432205A CN201680075331.9A CN201680075331A CN108432205A CN 108432205 A CN108432205 A CN 108432205A CN 201680075331 A CN201680075331 A CN 201680075331A CN 108432205 A CN108432205 A CN 108432205A
Authority
CN
China
Prior art keywords
computer
message
encrypted
recipient
client
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.)
Withdrawn
Application number
CN201680075331.9A
Other languages
English (en)
Inventor
E·勒圣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Visa International Service Association
Original Assignee
Visa International Service Association
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Visa International Service Association filed Critical Visa International Service Association
Publication of CN108432205A publication Critical patent/CN108432205A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0471Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/067Network architectures or network communication protocols for network security for supporting key management in a packet data network using one-time keys

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

实施例扩展了用于两个实体之间的安全通信的协议,使得一个实体使用单个消息与多方安全地通信。例如,发送方可确定对于每个接收者的唯一的共享秘密,并使用从对应的共享秘密生成的会话密钥加密对于接收者的数据。加密的数据可组合成单个消息,每个接收者可只解密被授权的消息的子集。

Description

使用代理的安全的多方通信的系统和方法
相关申请的交叉引用
本申请要求2015年12月16日提交的标题为“具有对不同接收者的各部分的机密消息的加密(ENCRYPTION OF CONFIDENTIAL MESSAGE WITH PORTIONS FOR DIFFERENTRECIPIENTS)”的美国临时申请No.62/268,348的优先权,该临时申请的整个内容据此出于所有目的以引用方式并入。
背景技术
除了台式计算机、膝上型计算机、平板计算机和移动电话之外,各种“智能”装置变得更加普遍。这些“智能”装置包括例如智能手表、健身活动跟踪器、智能恒温器、智能电视和数字个人助理。这些装置中的每一个可能需要与远程服务器的安全通信以便执行其功能。可能需要安全通信以便在服务提供商计算机或其它服务器计算机处认证智能装置,目的是使智能装置接收信息或服务。为了建立安全通信,常规的安全协议(例如传输层安全)可能需要装置首先与服务器计算机执行安全握手协议。
使事情更复杂的是许多智能装置执行多个应用程序,且可从多个服务提供商计算机接收数据或服务。此外,某些智能装置并不总是连接至通信网络,而是异步的。例如,某些智能装置可能只响应于某些触发器条件或者在某个时间间隔之后接入通信网络。此外,某些智能装置(例如智能手表和活动跟踪器)可以不与其对应的服务提供商计算机直接网络通信,且可以依赖另一计算装置从而为其提供通信路径。
现有的系统和技术不能很好地适应这种复杂的通信情形。因此,随着智能装置变得更加普遍,由于网络复杂性和网络资源在如此多的装置之间共享,进行安全通信可能形成挑战。
发明内容
本文中描述的实施例单独地和共同地解决了上面描述的问题和其它问题。一些实施例扩展了用于两个实体之间的安全通信的协议,使得一个实体使用单个消息与多方安全地通信。例如,发送方可确定对于每个接收者的唯一的共享秘密,并使用从对应的共享秘密生成的会话密钥加密对于接收者的数据。加密的数据可组合成单个消息,每个接收者可只解密被授权的消息的子集。而且,无需能够解密目的不在于中介的数据,一些接收者可充当中介,并将消息转发到其它接收者。
其他实施方案涉及与本文中描述的方法关联的系统、便携式消费者装置和计算机可读介质。
参照以下详细描述和附图,可以获得对本发明的实施方案的本质和优点的更好理解。
附图说明
图1是根据一些实施例的来自客户端计算机的请求和服务器计算机的响应的通信流图。
图2是根据一些实施例在客户端计算机和服务器计算机之间经由代理计算机的安全的端对端通信的消息流图。
图3是根据一些实施例的包括多个加密的消息部分和用于路由多个加密的消息部分中的每一个的地址信息的多方消息的框图。
图4是根据一些实施例的集线器计算机接收并聚合多个请求消息成单个多方消息,单个多方消息被发送至代理计算机以分配到第一接收者计算机的消息流图。
图5是根据一些实施例的第一代理计算机接收并聚合多个响应消息成单个多方消息,单个多方消息被发送至第二代理计算机以分配到多个接收者计算机的消息流图。
图6是根据一些实施例的在多个源计算机和多个接收者计算机之间的多方消息收发的消息流图。
图7是根据一些实施例的在第一客户端计算机、第二客户端计算机和服务器计算机之间带认证的安全通信的消息流图。
图8是根据一些实施例的在第一客户端计算机、第二客户端计算机和服务器计算机之间带有双向信道保护的安全通信的消息流图。
图9示出根据一些实施例的用于生成涉及代理的安全通信的示例性方法的流程图。
图10示出根据一些实施例的用于生成涉及一个代理和两个或更多个接收者计算机的安全通信的示例性方法的流程图。
图11示出根据一些实施例的用于路由涉及代理的安全通信的示例性方法的流程图。
图12是根据一些实施例的计算机系统的组件的框图。
术语
在讨论本发明的一些实施方案之前,对一些术语的描述可有助于理解本发明的实施方案。
术语“客户端计算机”通常指请求信息或服务的计算机。客户端计算机可包括计算机(例如台式计算机)、移动装置(例如智能电话、膝上型计算机或平板计算机)或可穿戴装置(例如智能手表或活动跟踪器)。客户端计算机可包括无线通信能力(例如Wi-Fi、蓝牙或近场通信)。在一些实施例中,客户端计算机可以与服务器计算机通信。在一些实施例中,第一客户端计算机可能不能够与服务器计算机通信,除非第二客户端计算机为第一客户端计算机充当代理,发送和接收消息。
术语“服务器计算机”可以包括功能强大的计算机或计算机集群。例如,服务器计算机可以是大型主机、小型计算机集群或像单元一样工作的一组服务器。在一个例子中,服务器计算机可以是耦接到网络服务器的数据库服务器。服务器计算机可以耦接到数据库并且可以包括用于服务于来自一个或多个客户端计算机的请求的任何硬件、软件、其他逻辑、或前述内容的组合。服务器计算机可以是对一个或多个客户端计算机提供服务的服务提供商计算机。服务器计算机可以包括一个或多个计算设备并且可以使用各种计算结构、布置和编译中的任何计算结构、布置和编译来服务于来自一个或多个客户端计算机的请求。
术语“代理计算机”指代表另一计算机发送或接收消息的计算机。在某个计算机不能与另一计算机通信但代理计算机可以与另一计算机通信时,代理计算机是有用的。例如,代理计算机可连接至互联网,同时另一装置可以只具有蓝牙或近场通信能力,不能访问互联网。在一些实施例中,代理计算机可代表许多计算机发送和接收消息。在一些实施例中,代理计算机可接收多方消息,基于多方消息中包括的地址信息发送多方消息内的每个加密的消息部分到接收者。
术语“公/私钥对”可以包括由实体生成的一对关联加密密钥。公钥可以用于公共功能,诸如加密要发送给实体的消息,或用于对应该由实体做出的数字签名进行验证。另一方面,私钥可以用于私用功能,诸如对接收到的消息解密或应用数字签名。公钥通常会由被称为证书机构(CA)的主体进行授权,证书机构将公钥存储在数据库中并将其分配给请求它的任何其他实体。私钥一般会被保持在安全存储介质中并且通常只有实体知道。然而,本文中描述的密码系统可以以用于恢复丢失的密钥并避免数据丢失的密钥恢复机制为特征。公钥和私钥可以是任何适当格式,包括基于RSA或椭圆曲线密码学(ECC)的格式。
“数字签名”可以指基于公/私钥对应用算法的结果,这种算法允许签名方显示,并且允许验证方验证文件的真实性和完整性。签名方借助于私钥起作用,验证方借助于公钥起作用。这个过程证明发送方的真实性、已签名文档的完整性和所称的不可否认性原则,所述原则不允许否认已经签名的内容。证书或包括签名方的数字签名的其他数据被称为是由签名方“签名的”。
“证书”可以包括使用数字签名将公钥与关联身份的数据绑定的电子文档或数据文件。证书可包括公钥和签名。证书可以包括一个或多个数据字段,例如身份的合法名称、证书的序列号、证书的起始有效期和终止有效期、证书相关许可等。证书可以包含指示证书有效的第一个日期的“起始有效”日期,以及指示证书有效的最后日期的“终止有效”日期。证书还可以包含证书中包括数据字段的数据的散列。除非另有指示,否则每个证书由证书机构签名(例如,证书机构使用证书机构的私钥生成证书的签名)。
“证书机构”(CA)可以包括可操作耦连以向实体发行证书的一个或多个服务器计算机。CA可以使用CA证书证明其身份,CA证书包括CA的公钥。可以用另一个CA的私钥或者可以用同一个CA的私钥对CA证书签名。后者被称为自签名证书。CA还通常维护由CA发布的所有证书的数据库。在一个典型的证书签名过程中,证书机构从其身份已知的实体接收未签名的证书。未签名的证书包括公钥、一个或多个数据字段、以及证书中的数据的散列。CA用与CA证书上所包括的公钥相对应的私钥对证书进行签名。CA然后可以将签名的证书存储在数据库中,并将签名的证书发行给实体。
“密码随机数”可以包括任何数字、字符串、位序列、或旨在关联单个通信会话使用的其他数据值。在一些情况下,密码随机数可以是随机或伪随机生成的。通常,密码随机数具有足够的长度以使多次独立生成同一随机数值的可能性并不显著。密码随机数可用作“盲化因子”,其可施加到公钥以“盲化”或模糊化公钥,阻止公钥被跟踪。
“盲化的密钥(blinded key),”诸如“盲化的公钥”可以包括通过与另一数据元素(如密码随机数)结合而被模糊化或以其他方式修改了其原始值的密钥。例如,公钥可以乘以随机数从而生成“盲化的公钥”。类似地,私钥可以乘以随机数从而生成“盲化的私钥”。
“加密密钥”可以包括适合于用密码加密数据的任何数据值或其他信息。“解密密钥”可以包括适用于对已加密的数据进行解密的任何数据值或其他信息。在一些情况下,加密密钥和解密密钥可以是相同的(即,“对称密钥”)。
“一次性密钥”或“短暂密钥”是指旨在用于仅一次保护单个交易或两个实体(例如,客户端计算机和服务器计算机)之间的其他通信会话(例如,请求消息或响应消息)的密钥。例如,客户端计算机可以使用第一客户端密钥来加密发送到服务器计算机的请求消息。可以由客户端计算机使用第一客户端密钥来解密由服务器计算机发送的与第一请求消息相对应的响应消息。然而,为了加密下一个请求消息,客户端计算机可以使用第二不同的密钥。因此,第一客户端密钥是用于仅保护来自客户端的第一请求消息的一次性客户端密钥。类似地,可以使用一次性服务器密钥来保护来自服务器计算机的单个响应消息。
一次性密钥可以包括为每个新的交易或通信会话重新生成的密钥(也被称为“短暂密钥”)。另选地,可以从相同的基本或静态密钥生成多个一次性密钥,该基本或静态密钥在多个交易或通信会话中保持不变。可以不同地修改多个一次性密钥中的每一个。例如,每个一次性密钥可以使用不同的加密随机数、识别因子或其他盲化因子被盲化,或者以其他方式被不同地模糊化。
一次性密钥通常在交易或通信会话结束时被移除。然而,在一些实施方案中,一次性密钥可以保持较长的时间段。例如,在与服务器计算机的异步通信期间,客户端计算机可以发送请求消息,但是可能在很长一段时间内不接收对应的响应消息,或者可能不按顺序接收对应的响应消息(例如,在接收到对应于稍后传输的请求消息的响应消息之后)。在这种情况下,需要保存与较早请求相关联的一次性密钥并将其用于解密对应的响应消息。基本同时与多台服务器计算机进行通信的客户端计算机也可能需要存储与相应的交易或通信会话相关联的多个一次性私钥,从而解密对应的响应消息。类似地,与多个客户端计算机通信的服务器计算机还需要存储与相应的交易或通信会话相关联的多个一次性密钥。
“一次性密钥对”可以包括私钥和对应的公钥,其中两个密钥中的至少一个为每个新的交易或通信会话改变。密钥对可以是任何合适的格式,例如基于椭圆曲线(EC)的密钥或基于RSA的密钥。在一个示例中,可以为每个新交易重新生成私钥和对应的公钥。因此,一次性密钥对包括短暂私钥和短暂公钥。在另一示例中,一次性密钥对可以包括静态私钥和短暂公钥,静态私钥对于多于一个交易保持相同,但每次不同地模糊化。在又一示例中,一次性密钥对可以包括静态公钥和短暂私钥,所述静态公钥对于多于一个交易保持相同但每次被不同地模糊化。在一些实施方案中,一次性密钥对的私钥和公钥都是静态的,但是对于每个新的通信会话,密钥中的一个或两个都可以被盲化、模糊化或以其他方式不同地修改。
“静态密钥对”可以包括在一段时间内或为给定数量的交易或通信会话维护的公钥(即“静态公钥”)和私钥(即“静态私钥”)。通常但不一定,静态私钥可以被安全地存储在诸如硬件安全模块(HSM)或安全元件(SE)中。通常但不一定,静态公钥可以通过使用数字证书绑定到身份。静态密钥对可以是任何适当格式,诸如ECC或RSA。
“共享秘密”可以包括只对安全通信中的被授权方已知的任何数据值或其他信息。共享秘密可以以任何适当方式由任何适当数据生成。例如,可以使用基于Diffie-Hellman的算法(诸如椭圆曲线Diffie-Hellman(ECDH)),以由私钥和公钥生成共享秘密。请求共享秘密可以指用于保护请求消息的安全性的共享秘密。响应共享秘密是指用于保护响应消息的安全性的共享秘密。在某些情况下,可以使用共享秘密来生成一个或多个密钥。例如,可以使用共享秘密来生成用于保护整个请求或响应消息的一个或多个会话密钥或保护密钥(下文将讨论)。作为另一示例,可以使用共享秘密来生成多个密钥,每个密钥用于保护消息的一部分。
“会话密钥”可对应于用来加密或解密经由两个实体之间的信道发送的消息的密钥。消息可包括其它加密的部分,当加密的部分针对另一实体时,每个加密的部分可具有其自己的会话密钥。
“信道”或“通信信道”通常指两个计算实体之间的信息链路。信道不一定是连接两个实体的物理介质,而可以是用于传送信息的概念化路径。两个计算机之间的信道也可涉及传递或转发信息以在两个计算机之间路由消息的其它实体。例如,第一计算机可通过互联网建立与第二计算机的通信信道,客户端计算机和服务器计算机之间的通信可通过各种网络网关被路由。“安全信道”可以是使用加密使通过信道被发送的通信安全的信道。例如,第一计算机和第二计算机可通过使用会话密钥加密对于彼此的通信通过安全信道通信。
具体实施方式
本文中描述的系统和方法提供在多个计算装置之间数据的安全的端对端通信。安全的端对端通信可通过代理计算机路由,而不需要代理计算机能够访问或解密安全通信。在一个实施例中,源计算机把对于不同接收者计算机的多个消息聚合成单个多方消息。源计算机可提供多方消息至代理计算机,代理计算机可从多方消息识别不同的接收者计算机,接着把每个单独的消息路由至目标接收者计算机。在各个实施方式中,多个接收者计算机可发送响应消息,多个源计算机可发送通信。这些装置中的任何一个可以是在线集线器(例如移动电话或路由器)。本文中描述的系统和方法的一个优点是数据的各片断是被单独加密的,因此使得各部分是可单独访问的。另外的优点在下面描述。
本文中描述的系统和方法使得能够对哪些参与方可访问传送到多方的数据的哪些部分进行控制。
Ⅰ.客户端-服务器系统
图1是根据一些实施例来自客户端计算机101的请求和服务器计算机102的响应的通信流图100。客户端计算机101和服务器计算机102都可以是任何合适的计算设备(例如,主机、台式或膝上型计算机、平板计算机、移动设备、可穿戴设备等)。在本文中的通信流图中,方框代表系统、装置或数据,图中的箭头从消息源(例如对应于连接至箭头开始的竖直线的方框的装置)指向消息消息目的地(例如对应于连接至箭头指向的竖直线的方框的装置)。
在一些实施例中,客户端计算机101可接收获得对客户端计算机101不可用的某些数据的指令。但是,此数据可对服务器计算机102可用。如下面进一步所述,客户端计算机101可从服务器计算机102请求数据。在其它实施例中,客户端计算机101可接收执行不能由客户端计算机101执行的某个动作的指令。但是,此动作可由服务器计算机102执行。如下面还描述的,客户端计算机101可请求该动作由服务器计算机102执行。
为了获得信息或者使动作被执行,客户端计算机101可将请求消息111(图1中的“请求”)发送至服务器计算机102。请求消息111可指示请求信息或所请求的动作。请求消息可以是TCP/IP包、HTTP请求消息或另一消息格式中的一个或多个。在一些实施例中,请求消息111可根据具象状态传输(REST)应用程序接口(API)制作。
响应于接收来自客户端计算机101的请求消息111,服务器计算机102可处理请求消息111。在处理请求消息111时,服务器计算机102可确定所请求的信息或动作,接着生成响应消息112(图1中的“响应”)。如果信息由客户端计算机101请求,则响应消息可包括所请求的信息。一旦生成响应消息112,服务器计算机102可将响应消息112发送至客户端计算机101。可以通过通信网络发送响应消息112。可无线地(例如通过Wi-Fi、蓝牙或蜂窝通信等)或使用有线通信信道(例如以太网、USB等)发送响应消息112。
客户端计算机101可接收由服务器计算机102发送的响应消息112。响应于接收响应消息112,客户端计算机101可提取响应消息112中包括的任何信息。例如,客户端计算机101可提取由客户端计算机101在请求消息111中请求的信息。
使用请求和响应通信(例如请求消息111和响应消息112),客户端计算机101可从服务器计算机102获得对客户端计算机101不可用的某些数据,和/或客户端计算机101可使不能由客户端计算机101执行的某个动作由服务器计算机执行102。请求和响应通信是有利的,原因是他们简单(例如因为只发送两个通信)并且可用在许多情况中。
Ⅱ.使用代理的专用的安全请求和响应
客户端计算机可发送请求消息至服务器计算机以便请求数据或者请求要由服务器计算机执行的动作。但是,客户端计算机可以不与服务器计算机直接通信。例如,客户端计算机可通过代理计算机(例如网络网关、路由器或集线器)与服务器计算机通信。代理计算机可将通信路由到客户端计算机和服务器计算机两者或者路由来自这两者的通信。在一些实施例中,客户端计算机可通过第一安全信道与代理计算机通信,代理计算机可通过第二安全信道与服务器计算机通信。因此,由客户端计算机加密的通信可由代理计算机解密,并接着被再次加密以路由到服务器计算机。
在一些实施例中,由客户端计算机发送的请求消息可包含敏感信息(例如账户数据、个人信息、密码等)。通常,任何请求消息可包含敏感信息,原因是其可用来跟踪客户端计算机的活动。因此,由代理计算机对请求消息的解密使得代理计算机能够具有对敏感信息的访问。即使代理计算机是可信实体,请求消息从客户端计算机到明文的任何解密会产生敏感信息被泄露的风险。
客户端计算机可通过限制可访问请求消息的多方的数目,提高请求消息的安全性。例如,客户端计算机可使用与服务器计算机共享但不与代理计算机共享的第一共享秘密加密请求消息。客户端计算机还可使用与代理计算机共享的第二共享秘密加密加密的请求消息。因此,客户端计算机可通过第一安全信道与代理计算机通信,同时客户端计算机可经由与代理计算机的第一安全信道通过第二安全信道与服务器计算机通信。经由第一安全信道通过第二安全信道的通信是有利的,原因是使得客户端计算机能与服务器计算机进行安全和专用的端对端通信,同时使用代理计算机提供与服务器计算机的连接。此外,由于代理计算机通过单独的安全信道在代理计算机和服务器计算机之间路由来自客户端计算机的通信,送至服务器计算机的通信可被追溯回客户端计算机。因此,代理计算机可充当集线器,提供通信和隐私的路由。
图2是根据一些实施例在客户端计算机220和服务器计算机240之间经由代理计算机230的安全的端对端通信的消息流图200。客户端计算机220可通过第一安全信道经由与代理计算机230的第二安全信道与服务器计算机240通信。客户端计算机220以前已经建立与代理计算机230的第二安全信道以及与服务器计算机240的第一安全信道。代理计算机230以前已经建立与服务器计算机240的第三安全信道。
在本文中的消息流图中,点划线/虚线和物体是任选的。消息流图中的圆圈指示由某些计算机或装置执行的步骤或过程的步骤次序。在其它实施例中,可以不同的次序执行某些步骤。
从概念上讲,在客户端计算机220和服务器计算机240之间的安全的端对端通信涉及生成第一请求消息221,使用与服务器计算机240共享的第一会话密钥加密第一请求消息221,并通过第一安全信道(例如使用第一会话密钥)发送第一请求消息221至服务器计算机240。第一请求消息221可通过代理计算机230(例如经由在客户端计算机220和代理计算机230之间的第二安全信道,并经由在代理计算机230和服务器计算机240之间的第三安全信道)路由。然而,代理计算机230可以不加密第一请求消息221(例如因为代理计算机230不具有第一会话密钥)。
在服务器计算机240处,与客户端计算机220的安全的端对端通信涉及接收由客户端计算机220发送的第一请求消息221,解密第一请求消息221,处理第一请求消息221(例如生成或获得第一请求消息221中请求的数据),生成第一响应消息(图2中的“Rsp.1”)241,使用第一会话密钥加密第一响应消息,并通过第一信道发送第一响应消息241至客户端计算机220。第一响应消息241可通过代理计算机230被路由。然而,代理计算机230可以不解密第一响应消息241。客户端计算机220可接收并解密第一响应消息241以获得所请求的数据(如果有的话)。
因此,客户端计算机220和服务器计算机240可通过第一安全信道安全交换第一请求消息221和第一响应消息241,而不必由代理计算机230解密这些消息。
为了通过代理计算机230实现与服务器计算机240的安全的端对端通信,客户端计算机可在第二请求消息222中封装第一请求消息221,并使用不同的信道(例如不同的加密密钥)与代理计算机230通信。
在201,客户端计算机220可生成第一请求消息221,并使用与服务器计算机240共享的第一会话密钥加密第一请求消息。例如,第一请求消息221包括从服务器计算机240对特定数据的请求。客户端计算机接着可生成第二请求消息222(图2中的“Req.2”)。第二请求消息222可包括第一请求消息221。第二请求消息222可请求代理计算机230将第一加密的请求消息221路由(例如发送)到服务器计算机240。例如,第二请求消息222可具有消息主体,所述消息主体包括针对服务器计算机240的地址信息(例如地址或路线)。客户端计算机220可使用与代理计算机230共享的第二会话密钥加密第二请求消息222。
在一些实施例中,加密第二请求消息222涉及使用第二会话密钥加密第二请求消息222的消息主体,但不重新加密第一请求消息221。即,第一请求消息221可在第二请求消息222的明文部分中被发送。以明文包括第一请求消息221可保证是安全的,原因是已经使用第一会话密钥加密第一请求消息221。接着,客户端计算机220可通过第二安全信道(例如使用基于第二会话密钥加密而保证安全的第二信道)发送包括第一加密的请求消息221的第二请求消息222至代理计算机230。代理计算机230可通过第二安全信道从客户端计算机220接收第二请求消息222。
在202,代理计算机230可使用与客户端计算机220共享的第二会话密钥解密第二请求消息222。即,代理计算机230可解密第二请求消息222的消息主体。然而,第一请求消息221是使用不与代理计算机230共享的第一会话密钥加密的。因此,代理计算机230不能够解密第二请求消息222中包括的第一请求消息221。
代理计算机230可解析第二请求消息222的消息主体以识别对于服务器计算机240的地址信息。接着,代理计算机230可生成第三请求消息231(图2中的“Req.3”)。第一请求消息221可包括在第三请求消息231中。代理计算机230可使用与服务器计算机240共享的第三会话密钥加密第三请求消息231。在一些实施例中,加密第三请求消息231涉及使用第三会话密钥加密第三请求消息231的消息主体,但不重新加密第一请求消息221。即,第一请求消息221可在第三请求消息231的明文部分中被发送。
代理计算机230接着可通过在代理计算机230和服务器计算机240之间建立的第三安全信道(例如使用第三加密密钥)将第三请求消息231路由至服务器计算机240。服务器计算机240可通过第三安全信道从代理计算机230接收第三请求消息231。响应于接收第三请求消息231,在203处,服务器计算机可使用与代理计算机230共享的第三会话密钥解密第三请求消息231。服务器计算机240接着可使用与客户端计算机220共享的第一会话密钥解密第一请求消息221。
服务器计算机240可以处理第一请求消息221。在处理第一请求消息211时,服务器计算机240可确定由客户端计算机220请求的信息或动作。服务器计算机240可获得所请求的信息或执行所请求的动作。服务器计算机接着可对客户端计算机220生成第一响应消息241(图2中的“Rsp.1”)。在一些实施例中,第一响应消息241可包括由客户端计算机220请求的信息。在一些实施例中,第一响应消息241可指示服务器计算机240执行了所请求的动作。服务器计算机240使用与客户端计算机220共享的第一会话密钥加密第一响应消息241。
服务器计算机接着对代理计算机230生成第三响应消息242(图2中的“Rsp.3”)。第三响应消息242可包括使用第一会话密钥加密的第一响应消息241。第三响应消息242响应于来自代理计算机230的第三请求消息231,第一响应消息241响应于来自客户端计算机220的第一请求消息221。服务器可使用与代理计算机230共享的第三会话密钥加密第三响应消息242。在一些实施例中,加密第三响应消息242涉及使用第三会话密钥加密第三响应消息242的消息主体,但不重新加密第一响应消息241。即,第一响应消息241可在第三响应消息242的明文部分中被发送。第三响应消息242的消息主体可包括对于客户端计算机220的地址信息(例如客户端计算机220的地址或到客户端计算机220的路线)。服务器计算机240可通过第三安全信道将包括第一响应消息241的第三响应消息242发送至代理计算机230。
代理计算机230可从服务器计算机240接收第三响应消息242。在204,代理计算机230可使用与服务器计算机240共享的第三会话密钥解密第三响应消息242。即,代理计算机230可解密第三响应消息242的消息主体。但是,第一响应消息241是使用不与代理计算机230共享的第一会话密钥加密的。因此,代理计算机230不能够解密包括于第三响应消息242中的第一响应消息241。
代理计算机230可解析第三响应消息242的消息主体以识别对于客户端计算机220的地址信息。接着,代理计算机230可生成第二响应消息232(例如图2中的“Rsp.2”)。第一响应消息241可包括于第二响应消息232中。第二响应消息232响应于第一请求消息221。代理计算机230可使用与客户端计算机220共享的第二会话密钥加密第二响应消息232。在一些实施例中,加密第二响应消息232涉及使用第二会话密钥加密第二响应消息232的消息主体,但不重新加密第一响应消息241。即,第一响应消息241可在第二响应消息232的明文部分中被发送。代理计算机230接着可通过与客户端计算机220的第一安全信道将第二响应消息232路由至客户端计算机220。
客户端计算机220可通过第一安全信道从代理计算机230接收第二响应消息232。在205处,响应于接收第二响应消息232,客户端计算机220可使用与代理计算机230共享的第二会话密钥解密第二响应消息232。客户端计算机220接着可使用与服务器计算机240共享的第一会话密钥解密第一响应消息241。
通过使用与代理计算机230建立的安全信道,客户端计算机220可甚至不需要与服务器计算机240直接连接就能与服务器计算机240交换安全通信。而且,客户端计算机220和服务器计算机240之间的通信不能够被代理计算机230解密。因此,代理计算机230可甚至在客户端计算机220保持其通信隐私的情况下提供对客户端计算机220的路由。
在其它实施例中,在客户端计算机220和代理计算机230之间建立的第二信道可不是安全的。例如,客户端计算机220和代理计算机230可通过未加密的Wi-Fi连接、未加密的蓝牙连接或有线连接通信。然而,即便与代理计算机230的第二信道是不安全的,第一请求消息221和第一响应消息241仍是安全的,原因是使用第一会话密钥对第一请求消息和第一响应消息加密。
客户端计算机220还可以确保与代理计算机230和服务器计算机240两者的通信是机密的。客户端计算机220可使用单个请求消息和单个响应消息建立机密的安全信道。例如,客户端计算机220可使用由客户端计算机220生成的短暂私钥和服务器计算机240的公钥建立用于与服务器计算机240通信的共享秘密。客户端计算机220可在单个请求消息中与使用共享秘密加密的数据一起发送短暂公钥(其与短暂私钥形成密钥对)至服务器计算机240。因此,服务器计算机240可使用客户端计算机220的短暂公钥和服务器计算机240的私钥(其与服务器计算机的公钥形成密钥对)生成相同的共享秘密。因此,请求消息保持客户端计算机220的机密性,原因是短暂密钥可只被使用一次,因此不能以跟踪静态公钥相同的方式跟踪短暂密钥。
在一些实施例中,代替生成用于建立共享秘密的短暂密钥对,客户端计算机220可使用盲化因子(例如密码随机数)盲化其静态公钥,并发送盲化的公钥至服务器计算机240。盲化的公钥还保持客户端计算机的机密性,原因是没有盲化因子不能导出客户端计算机的静态公钥。在客户端计算机220使用盲化的客户端计算机公钥生成共享秘密的实施例中,客户端计算机220可在发送至服务器计算机240的加密的数据中包括盲化因子。服务器计算机240可使用盲化的用户装置公钥和服务器计算机的私钥生成相同的共享秘密。此共享秘密可用来解密来自客户端计算机220的可包括盲化因子的加密的数据。
服务器计算机240接着可通过使用解密的盲化因子和来自客户端计算机220的有效证书的客户端公钥重新生成盲化的客户端计算机公钥,认证客户端计算机220。一旦认证客户端计算机220,服务器计算机240可使用服务器计算机公钥和由服务器计算机240生成的第二盲化因子(例如密码随机数)生成盲化的服务器计算机公钥。服务器计算机240可使用客户端公钥、服务器计算机私钥和第二盲化因子生成第二共享秘密。服务器计算机240接着可发送响应消息至客户端计算机220,响应消息包括盲化的服务器计算机公钥和使用第二共享秘密加密的数据。盲化的服务器计算机240发送的加密的数据可包括盲化的服务器计算机生成的第二盲化因子。因此,来自服务器计算机240的响应消息保持机密,原因是盲化的服务器计算机公钥不能被追溯回服务器计算机240。
客户端计算机220接着可以使用客户端计算机私钥和盲化的服务器计算机公钥生成相同的第二共享秘密。客户端计算机220接着可解密响应消息中的加密的数据。客户端计算机220可通过使用第二盲化因子和来自服务器计算机240的有效证书的服务器计算机240的公钥重新生成盲化的服务器计算机公钥,认证服务器计算机240。
再参照图2,可通过上面描述的过程使客户端计算机220和服务器计算机240之间的安全的端对端通信是机密的。此外,也可以使客户端计算机220和代理计算机230之间的通信是机密的。
例如,客户端计算机220可使用第一共享秘密加密第一请求消息221。可使用由客户端计算机220生成的短暂私钥或者如上面讨论的盲化的客户端计算机私钥和服务器计算机公钥,建立第一共享秘密。第一请求消息221可包括对应的公钥(例如对应的短暂公钥或盲化的客户端计算机公钥),可使用第一共享秘密加密第一请求消息221的数据。因此,即便由代理计算机230路由,与服务器计算机的端对端通信仍是机密的。
此外,也可以使包括第一请求消息221的第二请求消息222是机密的。客户端计算机220可使用第二共享秘密加密第二请求消息222。可使用由客户端计算机220生成的第二短暂私钥或第二盲化的客户端计算机私钥(使用不同的盲化因子)以及代理计算机230的公钥建立第二共享秘密。第二请求消息222可包括对应的公钥(例如对应的第二短暂公钥或第二盲化的客户端计算机公钥),可使用第二共享秘密加密第二请求消息222的数据。
可如上面讨论的使来自服务器计算机240的第一响应消息241和第二响应消息232是机密的。例如,第一响应消息241可包括盲化的服务器计算机公钥,且第一响应消息可包括使用另一共享秘密加密的数据,另一共享秘密是使用由服务器计算机生成的盲化因子建立的。第二响应消息232可包括盲化的代理计算机公钥,且第二响应消息可包括使用另一共享秘密加密的数据,另一共享秘密是使用由代理计算机230生成的盲化因子建立的。
因此,客户端计算机220可只发送单个请求消息(例如第二请求消息222,其包括第一请求消息221),且只接收单个响应消息(例如第二响应消息232,其包括第一响应消息241),以便经由与代理计算机230的第二机密的安全的端对端通信信道建立与服务器计算机240的机密的安全的端对端通信信道。只使用单个请求消息和单个响应消息的这些机密的安全通信是有利的,原因是其能够使得客户端计算机220与服务器计算机240进行安全通信,同时仍保持客户端计算机220和服务器计算机240两者的隐私,而不必发送额外的握手通信来建立专用和安全的信道。
Ⅲ.使用单个多方消息的安全的多方通信
代理计算机可处理许多不同的源计算机和目的地计算机之间的请求和响应通信。因此,许多消息可通过代理计算机传送。为了降低通过代理计算机传递的消息的数目,从而降低网络资源的路由复杂性和使用,多个源消息可组合成单个多方消息,传递至代理计算机以用于路由。
多方消息可包含对于每个源消息的地址信息。地址信息可指示到源消息的目的地的网络地址或路线。因此,代理计算机可接收包括多个源消息的单个多方消息,并基于单个多方消息中包括的地址信息将每个源消息路由到其目的地。在一些实施例中,可使用与其相应的目的地共享的但不与代理计算机共享的会话密钥加密源消息中的每一个。因此,多方消息中包括的源消息中的每一个通过其各自相应的通信信道可以是单独安全的端对端。因此,可使用单个多方消息提供多个安全的端对端通信信道,因此降低路由复杂性和被传递的消息数量。
图3是根据一些实施例包括多个加密的消息部分340和用于路由多个加密的消息部分中的每一个的地址信息330的多方消息310的框图300。如本文中描述的,源计算机可生成多方消息310以便发送不同的数据至不同的接收者计算机。可经由如上面参照图2讨论的代理计算机在客户端计算机和服务器计算机之间的安全通信中实施多方消息310。
为了生成多方消息310,源计算机可识别多个接收者计算机。在一些实施例中,多个接收者计算机是不同的计算机。在一些实施例中,多个接收者计算机是同一计算机。在一些实施例中,多个接收者计算机是在同一计算机上运行或者在不同的计算机上运行的不同的应用程序。例如,源计算机可识别第一接收者计算机、第二接收者计算机和第三接收者计算机。源计算机可确定多个接收者计算机中的每一个的地址信息330,指示分别到每个接收者计算机的路线的地址信息。例如,源计算机可确定对于第一接收者计算机的第一地址331、对于第二接收者计算机的第二地址332和对于第三接收者计算机的第三地址333。
源计算机可获得对于多个接收者计算机中的每一个的加密的消息部分。例如,源计算机可获得对于第一接收者计算机的第一加密的消息部分341、对于第二接收者计算机的第二加密的消息部分342和对于第三接收者计算机的第三加密的消息部分343。可使用与对应的接收者计算机共享的会话密钥加密加密的消息部分340中的每一个。例如,可使用与第一接收者计算机共享的第一会话密钥加密第一加密的消息部分341(例如第一接收者计算机可建立或获得第一会话密钥,使用其解密第一加密的消息部分341)。在一些实施例中,生成多方消息310的源计算机可使用第一会话密钥加密第一消息部分以获得第一加密的消息部分341。在其它实施例中,生成多方消息310的源计算机可从第二源计算机接收第一加密的消息部分341。第二源计算机可能已经使用第一会话密钥对第一消息部分加密。同样,可使用与第二接收者计算机共享的第二会话密钥加密第二加密的消息部分342,可使用与第三接收者计算机共享的第三会话密钥加密第三加密的消息部分343。因此,可单独地保证加密的消息部分340中的每一个的安全,使得其只能由其目的接收者计算机访问。因此,多方消息310在第一源计算机和第一接收者计算机、在第二源计算机和第二接收者计算机以及在第三源计算机和第三接收者计算机之间建立安全的端对端通信。
加密的消息部分340中的每一个可基于对应的地址信息330被路由到接收者计算机中的每一个。例如,使用第一地址331,第一加密的消息部分341可被路由到第一接收者计算机。同样,可使用第二地址332,第二加密的消息部分342被路由到第二接收者计算机。且可使用第三地址333第三加密的消息部分343可路由到第三接收者计算机。
多方消息310还可包括用于多方消息310的策略信息312。策略信息312可指示如何处理和是否处理多方消息310和加密的消息部分340。例如,策略信息312可指示多方消息310为有效的某个日期。如果基于策略信息312将多方消息310确定为无效(例如在策略信息312中指定的日期之后接收多方消息310),则加密的消息部分340可以不被分配到多个接收者计算机中的任一个。策略信息312还可指示多方消息310为有效的某个时段或时间段。
在接收者计算机是异步的(例如接收者计算机具有间断的网络连接)的情况下,基于策略信息312处理多方消息310可以是有利的。在一些实施例中,一些或所有加密的消息部分340可具有其自己的指示应当如何处理相应的消息部分的策略信息。
在其它实施例中,多方消息310可包括不同数目的加密的消息部分340。因此,多方消息310可在地址信息330中包括相同数目的地址。例如,多方消息310可包括两个加密的消息部分,十个加密的消息部分或者另一数目的加密的消息部分。在一些实施例中,一个或多个加密的消息部分本身可以是多方消息(在解密时)。因此,多方消息可嵌套在其它多方消息内。
源计算机可发送多方消息310至代理计算机。不必解密加密的消息部分340,代理计算机可基于地址信息330把加密的消息部分340分配到接收者计算机中的每一个。在一些实施例中,源计算机可使用与代理计算机共享的代理会话密钥加密多方消息310。在这些实施例中,代理计算机可建立或获得与源计算机共享的代理会话密钥,代理计算机可使用代理会话密钥解密多方消息。
在许多不同的情况下,使用聚合多个源消息的多方消息310可以是有利的。例如,多方消息310可提供使用单个请求消息(例如单个多方请求消息)和单个响应(例如单个多方响应消息)加密多个信道的有效的方式。因此,多方消息可充当对多个接收者计算机的多播消息,同时保持安全性(例如因为加密的消息部分是使用对于相应的接收者计算机不同的加密密钥被单独确保安全的)。
在一些实施例中,源装置可具有目的为不同接收者计算机的数据。源装置可使用与对应的目的地计算机共享的会话密钥加密源消息中的每一个,接着将加密的源消息聚合成单个多方消息。接着,源计算机可发送单个多方消息至代理计算机,代理计算机将适当地路由源消息中的每一个到其相应的目的地,而不必将任何源消息的内容解密成明文。
在另一实施例中,源计算机可操作许多不同的应用程序,来自每个应用程序的源消息可以是单独加密的(例如使用不同的加密密钥)并包括在单个多方消息中。在另一实施例中,集线器计算机可把从个人装置网络(例如物联网装置网络)中的多个装置接收的多个请求消息聚合成单个多方请求消息。在另一实施例中,处理多个请求消息的服务器可把多个对应的响应消息聚合成单个多方响应消息。在一些实施例中,多方消息可以被嵌套,使得一个多方请求消息包括多个源消息,其中,一个或多个源消息本身是多方消息。示例性实施例将在下面更详细地描述。
A.从多个源计算机到单个接收者计算机的多方通信
本文中描述的实施例可提供使用单个多方消息加密多个信道的有效方式。例如,在个人装置网络中多个源装置可缺少到达向源装置提供数据或服务的服务器计算机的网络连接性。这些源装置可以是具有近场通信能力或者蓝牙能力但不具有互联网连接的智能手表。此装置可连接至集线器计算机,例如移动电话,集线器计算机提供对服务器计算机的连接。集线器计算机为个人装置网络中的多个装置提供互联网连接。为了降低复杂性,集线器计算机可把来自个人装置中的多个源计算机的多个请求消息聚合成单个多方消息,单个多方消息被发送至代理计算机以分配到服务器计算机。可使用不同的会话密钥分别对多个请求消息加密,且多个请求消息被包括在多方消息中作为加密的消息部分。因此,降低了通信复杂性,原因是单个多方请求消息被发送至代理计算机而不是为每个源计算机发送多个请求消息。而且,由于可使用不同的会话密钥加密不同的加密的消息部分,确保了安全和隐私。
图4是根据一些实施例的集线器计算机410接收和聚合多个请求消息成单个多方消息,单个多方消息被发送至代理计算机450以分配到第一接收者计算机460的消息流图400。此消息流可用于聚合来自不具有网络能力(例如个人装置网络或“物联网”网络中的装置)的多个源计算机(例如客户端计算机)的请求消息。如上面参照图3讨论的消息可聚合成多方消息。集线器计算机410可对第一源计算机420、第二源计算机430和第三源计算机440提供网络连接。此外,图4的消息流可实施如上面参照图2讨论的安全的端对端通信。第一接收者计算机460可以是对源计算机提供服务的服务提供商计算机。由服务提供商提供的服务可以是任何适合的信息或数据。例如,在源计算机是住宅楼内的“物联网”装置时,服务提供商计算机可存储可提供至装置的凭证,或者服务提供商可存储对于装置的数据,处理该数据并且一旦请求将数据提供至装置。
在此实施例中,每个源计算机可发送请求消息至第一接收者计算机460。第一源计算机420可生成第一请求消息421(图4中的“Req.1”)。第一源计算机420可使用与第一接收者计算机460建立的第一会话密钥加密第一请求消息421。例如,可使用第一源计算机的私钥和第一接收者计算机的公钥建立第一会话密钥。第一源计算机420可发送第一请求消息421至集线器计算机410。集线器计算机410可生成多方请求消息,并作为多方请求消息的加密的消息部分包括第一请求消息421(使用第一会话密钥对其加密)。
集线器计算机410还可包括对于来自第二源计算机430和第三源计算机440的请求的加密的消息部分。例如,第二源计算机430可使用与第一接收者计算机460建立的第二会话密钥加密第二请求消息431(图4中的“Req.2”)。例如,可使用第二源计算机的私钥和第一接收者计算机的公钥建立第二会话密钥。第二源计算机430可发送第二请求消息431至集线器计算机410。第三源计算机可使用与第一接收者计算机460建立的第三会话密钥加密第三请求消息441(图4中的“Req.3”)。例如,可使用第三源计算机的私钥和第一接收者计算机的公钥建立第三会话密钥。第三源计算机440可发送第三请求消息441至集线器计算机410。
在从源计算机中的每一个接收加密的请求消息之后,集线器计算机可在第四请求消息411中包括加密的请求消息中的每一个,作为多方消息的加密的消息部分。集线器计算机410还可确定加密的消息部分中的每一个(例如第一请求消息421、第二请求消息431和第三请求消息441)的地址信息。地址信息可指示接收者计算机的地址或到接收者计算机的路线。在此实施例中,三个请求消息被发送至第一接收者计算机460。因此,对于加密的消息部分中的每一个的地址可指示第一接收者计算机460的地址或到它的路线。
集线器计算机410可发送第四请求消息411(图4中的“Req.4(Req.1,2,3)”)至代理计算机450。如上面讨论的,来自集线器计算机410的第四请求消息411是多方消息,其包括针对第一请求消息421、第二请求消息431和第三请求消息441的加密的消息部分。在一些实施例中,集线器计算机可使用在集线器计算机410和代理计算机450之间建立的代理会话密钥加密第四请求消息411。例如,可使用代理会话密钥加密包括地址信息的消息主体。在一些实施例中,可使用代理会话密钥加密加密的消息部分。在一些实施例中,可以不使用代理会话密钥加密加密的消息部分(例如加密的消息部分可在第四请求消息的明文部分中被发送,同时仍由其相应的会话密钥加密)。
代理计算机450可从集线器计算机410接收第四请求消息411。在第四请求消息411是使用代理会话密钥加密的实施例中,代理计算机可使用代理会话密钥解密第四请求消息411。例如,可使用代理计算机450的私钥和集线器计算机410的公钥生成代理会话密钥。
代理计算机可获得第四请求消息411的消息主体内的地址信息。代理计算机450可解析地址信息以识别加密的消息部分中的每一个的地址。在此实施例中,代理计算机450可确定三个加密的消息部分中的每一个要被路由到第一接收者计算机460。代理计算机450接着可路由加密的消息部分中的每一个至第一接收者计算机460。例如,代理计算机450可生成第五请求消息451,并发送第五请求消息451至第一接收者计算机460,第五请求消息包括对于第一请求消息421的第一加密的消息部分。此外,代理计算机450可生成第六请求消息452,并发送第六请求消息452至第一接收者计算机460,第六请求消息包括对于第二请求消息431的第二加密的消息部分。并且,代理计算机450可生成第七请求消息453,并发送第七请求消息453至第一接收者计算机460,第七请求消息包括对于第三请求消息441的第三加密的消息部分。
使用图4的消息流,集线器计算机410可以发送单个多方响应消息(例如第四请求消息411)至代理计算机450,而不是分别发送三个不同的请求消息,由此降低在集线器计算机410和代理计算机450之间的通信的复杂性。
B.到多个接收者计算机的多方通信
也可使用多方消息发送消息至多个接收者计算机。如上面参照图4讨论的,多个源装置可在单个多方请求消息中发送请求消息至服务器。服务器可在多方响应消息中对这些请求消息中的每一个进行响应。可使用提供请求消息至服务器的代理计算机将响应消息聚合成单个多方响应消息。此单个多方响应消息可被发送回聚合来自源装置的请求消息的集线器计算机。集线器计算机可充当代理,且分配每个单独的响应消息(例如每个加密的消息部分)至目标接收者(例如,响应被发送至以前发送对应响应的源计算机,其中,请求源现在是响应的接收者)。因此,可响应于多对一的请求消息,制作一对多的响应消息。
图5是根据一些实施例第一代理计算机550接收并聚合多个响应消息成单个多方消息,单个多方消息被发送至第二代理计算机510以分配到多个接收者计算机的消息流图500。在此实施例中,第一源计算机560之前已经从第一接收者计算机520接收第一请求消息,从第二接收者计算机530接收第二请求消息,从第三接收者计算机540接收第三请求消息。第一源计算机(例如服务器计算机)可响应于这些请求消息生成响应消息。
第一源计算机560可响应于第一请求消息生成第一响应消息561(图5中的“Rsp.1”),响应于第二请求消息生成第二响应消息562(图5中的“Rsp.2”),响应于第三请求消息563生成第三响应消息(图5中的“Rsp.3”)。第一响应消息561、第二响应消息562和第三响应消息563可被发送至第一代理计算机550。第一代理计算机可充当集线器并将三个响应消息聚合成第四响应消息551(图5中的“Rsp.4(Rsp.1,2,3)”),第四响应消息是单个多方响应消息,三个响应消息中的每一个是在第四响应消息551内的单独加密的消息部分。在一些实施例中,第一源计算机560可在发送响应消息至第一代理计算机550之前对响应消息加密。在其它实施例中,第一代理计算机550本身可加密响应消息。第四响应消息551可包含在第四响应消息551的消息主体内的地址信息,其指示第一响应消息561是针对第一接收者计算机520,第二响应消息562是针对第二接收者计算机530,第三响应消息563是针对第三接收者计算机540。
第一代理计算机550可发送第四响应消息551至第二代理计算机510。第二代理计算机510可已经为曾发送请求至第一源计算机560(是该消息流中的接收者计算机)的源计算机充当集线器计算机。在一些实施例中,可使用在第一源计算机560和第二代理计算机510之间建立的代理会话密钥加密第四响应消息551。
第二代理计算机510可接收并解密第四响应消息551。第二代理计算机510接着可获得在第四响应消息551的消息主体内的地址信息。第二代理计算机510可解析地址信息以识别加密的消息部分中的每一个的地址。在此实施例中,第二代理计算机510可确定要分别路由三个加密的消息部分至第一接收者计算机520、第二接收者计算机530和第三接收者计算机540。第二代理计算机510可接着相应地路由每一个加密的消息部分。
在此实施例中,第二代理计算机510可生成包括第一加密的消息部分(其包括第一响应消息561)的第五响应消息511(图5中的“Rsp.5(Rsp.1)”),并发送第五响应消息511至第一接收者计算机520。第二代理计算机510还可生成包括第二加密的消息部分(其包括第二响应消息562)的第六响应消息512(图5中的“Rsp.6(Rsp.2)”),并发送第六响应消息512至第二接收者计算机530。并且第二代理计算机510可生成包括第三加密的消息部分(其包括第三响应消息563)的第七响应消息513(图5中的“Rsp.7(Rsp.3)”),并发送第七响应消息514至第三接收者计算机540。
因此,可使用多方响应消息(例如第四响应消息551)将三个响应消息从第一源计算机560路由到多个接收者计算机。图4和图5的消息流是有利的,原因是其使得使用从集线器计算机410到代理计算机450的单个多方请求消息和从第一代理计算机550(例如代理计算机450)到第二代理计算机510(例如集线器计算机410)的单个多方响应消息对来自多个装置的多个请求消息进行响应。
这些消息流在物联网和个人装置网络中是有利的,在物联网和个人装置网络中来自多个源装置的数据由可以是移动电话或网关的集线器计算机聚合。集线器计算机可等待所有的源装置参与,把数据聚合成多方消息,接着把所有数据一起作为一个请求发送至代理计算机。多方消息内的请求消息可由代理计算机分配到其目的接收者(例如服务器或接收者计算机)。
上面描述的消息的多对一消息流是有利的,原因是使得每个个别的源装置能够端对端地发送专用和安全消息至在代理之后的目标装置。因此,可在每个源装置和服务器或接收者计算机之间只使用单个多方请求和从服务器返回的一个多方响应,建立独立的安全信道。这降低了与发送许多较小消息相比的复杂性,确保处理通信过程的方式的一致性,降低用于安全握手的通信。
另一优点是对于异步装置,集线器计算机可等待装置出现,当所有装置已经响应时,发送多方请求。当响应返回时,可以等待所有装置在线,或者靠近电话的装置可一个一个地出现,电话将独立地将消息传递回装置,与装置是否可连接至服务无关。
在另一实施例中,单个源计算机可具有基于不同的加密需求或使用情况可被不同地加密的不同的数据片断。在此实施例中,单个多方消息可包括加密的数据的不同片断中的每一个。
在另一实施例中,账号可在加密的消息部分中被加密,服务器可发送多个号码至代理,代理接着可发送到个别装置。因此,服务器可处理文件以对要被发送至不同装置的不同账号、令牌或其它数据使用不同密钥。在目标侧,如果目标不具有查看实际的账户价值必需的特权,则目标只能够解密通用文件内容,而不能解密账号。对此,目标需要访问类似短暂私钥的单独的私钥,其只授权给有特权的实体。在目标上,这可以是可以在该服务器的安全部分中的特定应用程序。因此,在获得初始通用信息之后,代理可接着获得关于如何路由任何消息部分如何将其路由到服务器或其它接收者的安全部分的信息。安全端口可生成其自己的会话密钥,解密账号接着能够操纵这些账号。在安全区域的该应用程序的那部分可以遵守各种安全协议。
C.从多个源计算机到多个接收者计算机的多方通信
在一些实施例中,可以有多个源计算机、多个接收者计算机和多个代理计算机。在一些实施例中,代理计算机可被嵌套,使得多方消息作为加密的消息部分包括在另一多方消息内。每个代理计算机可解密加密的消息以确定加密的消息部分要被转发到的接收者装置的地址。代理可使用与接收的加密消息的发送者对应的第一会话密钥解密接收的加密消息以确定地址。地址之一可对应于另一代理,所述代理接着将加密的消息部分转发到其它装置。代理接着可使用第二会话密钥,第二会话密钥对应于其它装置以加密其它装置要将加密的消息部分转发到的地址。没有任何代理可读取加密的消息部分,因为没有一个代理可访问对应的密钥。
因此,在每个步骤的数据交换中可涉及新发送者和新接收者,因为请求或与响应混合。例如,可在数据交换路线上发现多个代理,每个代理打开并对于下一代理地址重新封装接收者数据,而不损坏接收者数据的端对端保护。对于请求和响应,用于密钥建立和隐私保护的信息可以是相似的。
图6是根据一些实施例在多个源计算机和多个接收者计算机之间的多方消息收发的消息流图600。通过使用多个代理计算机进行多个源和多个接收者之间的通信使得多方消息嵌套在其它多方消息内,图6的消息流在图4和图5的消息流上扩展。在此实施例中,多个客户端计算机可发送请求消息至多个服务器计算机,服务器计算机可用响应消息对客户端计算机进行响应。
在此实施例中,第一客户端计算机610发送第一请求消息611(图6中的“Req.1”)至第一代理计算机650以分配至第一服务器计算机670。第二客户端计算机620发送第二请求消息621(图6中的“Req.2”)至第四客户端计算机640,第四客户端计算机对第二客户端计算机620既充当集线器又充当代理,以分配至第二服务器计算机680。第三客户端计算机630发送第三请求消息631(图6中的“Req.3”)至第四客户端计算机640,第四客户端计算机也可对第三客户端计算机630既充当集线器也充当代理,以分配至第三服务器计算机690。第四客户端计算机640可生成第四请求消息641(图6中的“Req.4(2,3)”),第四请求消息为多方请求消息,包括作为加密的消息部分的第二请求消息621和第三请求消息631。第四客户端计算机640接着可发送第四请求消息641至第一代理计算机650。
第一代理计算机650可生成第五请求消息651(图6中的“Req.5(Req.1,4(Req.2,3))”),第五请求消息为多方请求消息,包括作为加密的消息部分的第一请求消息611和第四请求消息641(其本身是包括第二请求消息和第三请求消息的多方请求消息)。第一代理计算机650可发送第五请求消息至第二代理计算机660以用于分配。
第二代理计算机可解析第五请求消息651中包括的地址信息以确定每个接收者计算机的地址。第二代理计算机660可发送对第一请求消息611的加密的消息部分至第一服务器计算机670。第二代理计算机接着可发送第四请求消息至第四服务器计算机605。第四服务器计算机接着可分配对第二请求消息621的加密的消息部分至第二服务器计算机680,分配加密的消息部分至第三服务器计算机690。
每个服务器计算机可处理其对应的请求消息并生成响应消息。这些响应消息可聚合成如上面描述的多方响应消息。在此实施例中,第一服务器计算机生成第一响应消息671(图6中的“Rsp.1”),并将其发送至第二代理计算机660,第二代理计算机可为服务器计算机充当集线器。第二服务器计算机680生成第二响应消息681(图6中的“Rsp.2”)并将其发送至第四服务器计算机605。第三服务器计算机生成第三响应消息691(图6中的“Rsp.3”),并将其发送至第四服务器计算机605。
第四服务器计算机605可生成第四响应消息606(图6中的“Rsp.4(2,3)”),第四响应消息是多方响应消息,包括作为加密的消息部分的第二响应消息681和第三响应消息691。第四服务器计算机605可发送第四响应消息606至第二代理计算机660。第二代理计算机660可接着生成第五响应消息662(图6中的“Rsp.5(Rsp.1,4(Rsp.2,3))”),第五响应消息为多方响应消息,包括作为加密的消息部分的第一响应消息671和第四响应消息606(其本身是包括第二响应消息和第三响应消息的多方请求消息)。第二代理计算机660可发送第五响应消息至第一代理计算机650以分配给客户端计算机。
第五代理计算机650可解析第五响应消息662中包括的地址信息以确定每个接收者计算机的地址。第一代理计算机650可发送对第一响应消息671的加密的消息部分至第一客户端计算机610。第一代理计算机650可发送第四响应消息606至第四客户端计算机640。第四客户端计算机640可解析第四响应消息606中包括的地址信息,并发送对第二响应消息681加密的消息部分至第二客户端计算机620。第四客户端计算机640可基于第四响应消息606中包括的地址信息发送对第三请求消息631加密的消息部分至第三客户端计算机630。
图6的消息流使得可只使用在第一代理计算机650和第二代理计算机660之间的单个请求消息(例如第五请求消息651)和单个响应消息(例如第五响应消息662)进行多对多消息收发。包括加密的消息部分和加密的消息部分中的每一个的地址信息的多方消息的使用使得可降低上面参照图6描述的复杂性。如果没有多方消息收发,三个请求消息和三个响应消息而不是只有一个请求和一个响应将在第一代理计算机650和第二代理计算机660之间发送。
Ⅳ.使用多方消息的认证
在一些实施例中,多方消息收发还可提供在源计算机和接收者计算机之间的机密认证。图7和8示出使用多方消息的机密认证的示例性消息流。这些消息流使得服务器计算机能够提供不同数据至不同客户端计算机。
A.第一客户端和服务器计算机之间的安全通信
图7是根据一些实施例在第一客户端计算机720、第二客户端计算机730和服务器计算机740之间附带认证的安全通信的消息流图700。此消息流使得第一客户端计算机720和第二客户端计算机730使用发送至服务器计算机740的单个多方请求消息在服务器计算机740处认证。在认证之后,服务器计算机740可在另一多方消息中提供第一数据743(图7中的“数据1”)至第二客户端计算机730,提供第二数据745(图7中的“数据2”)至第一客户端计算机720。因此,只使用在第二客户端计算机730和服务器计算机740之间发送的一个多方请求消息和一个多方响应消息,第一客户端计算机720和第二客户端计算机730可以被认证,并从服务器计算机740接收不同的数据。
第一客户端计算机720可存储包括第一客户端私钥721(图7中的“客户端私钥1”)和与第一客户端私钥721对应的第一客户端公钥722(图7中的“客户端公钥1”)的第一密钥对。第一客户端私钥721可以是静态私钥,第一客户端公钥722可以是静态公钥。在一些实施例中,第一客户端计算机720可使用第一客户端私钥721生成第一客户端公钥722。第一客户端计算机还可以存储服务器计算机740的服务器公钥742(“图7中的服务器公钥”)。服务器公钥742可以是静态公钥。在一些实施例中,第一客户端计算机720可以是可直接与第二客户端计算机730通信的智能手表。在一些实施例中,如第二客户端计算机730不充当代理计算机,第一客户端计算机720可以不具有到服务器计算机740的通信路径。在一些实施例中,第一客户端计算机720可包括用于安全数据存储的安全元件电路,其可用于强认证第一客户端计算机720。
第二客户端计算机730可存储包括第二客户端私钥731(图7中的“客户端私钥2”)和第二客户端公钥(图7中的“客户端公钥2”)的第二密钥对。第二客户端私钥731可以是短暂私钥,第二客户端公钥732可以是短暂公钥。在一些实施例中,第二客户端计算机730可生成第二客户端私钥731,并使用第二客户端私钥731生成第二客户端公钥732。第二客户端计算机还可存储服务器计算机740的服务器公钥742。在一些实施例中,第二客户端计算机730可以是可直接与第一客户端计算机720通信的移动电话。在一些实施例中,第二客户端计算机730可为第一客户端计算机720充当代理计算机,原因是第二客户端计算机730可路由如本文中描述的从第一客户端计算机720接收的通信。在一些实施例中,第二客户端计算机730可不包括安全元件电路。在一些实施例中,第二客户端计算机730可实施主机卡模拟(HCE)软件,来代替使用安全元件电路。HCE可不如安全元件那样安全,基于HCE的认证可以不如基于安全元件的认证那样强。
服务器计算机740可存储包括服务器私钥741(图7中的“Server Priv.Key”)和服务器公钥742的第三密钥对。服务器私钥741可以是静态私钥,服务器公钥742可以是静态公钥。在图7的通信流之前,第一客户端计算机720和第二客户端计算机730可已经获得服务器公钥742。在一些实施例中,服务器计算机740可信任第一客户端计算机720,但可不信任第二客户端计算机730。例如,服务器计算机740可信任第一客户端计算机720的安全元件,但可不信任第二客户端计算机730上实施的HCE。但是,服务器计算机740可以只与第二客户端计算机730通信,且不能够与第一客户端计算机720通信,除非第二客户端计算机730为第一客户端计算机720充当代理计算机。
在701,第二客户端计算机730可生成从服务器计算机740请求第一数据743的第一请求消息733。第二客户端计算机730可发送第一请求消息733至第一客户端计算机720。在一些实施例中,第二客户端计算机730可使用蓝牙通信或者使用近场通信发送第一请求消息733。在一些实施例中,第二客户端计算机730可发送第一请求消息733至第一客户端计算机720以被封装在来自第一客户端计算机720的请求消息中,原因是第一客户端计算机720可被服务器计算机740信任,而第二客户端计算机730不可被服务器计算机740信任。在一些实施例中,第二客户端计算机730和第一客户端计算机720可相互信任,原因是他们彼此在紧密接近度之内(例如在蓝牙通信范围或近场通信范围内)。
在一些实施例中,第二客户端计算机730可使用用于与服务器计算机740通信的第二会话密钥加密第一请求消息733。第二客户端计算机730可使用第二客户端私钥731和服务器公钥742生成第二会话密钥。第二客户端计算机730可在第一请求消息733的明文部分中包括第二客户端公钥732(例如第二客户端公钥732为明文,不使用第二会话密钥加密)。
在702,第一客户端计算机720可从第二客户端计算机730接收第一请求消息733。第一客户端计算机720可生成对服务器计算机740的第二请求消息723(图7中的“Req.2”)。第二请求消息723可从服务器计算机740请求第二数据745(图7中的“数据2”)。第二请求消息723可包括从第二客户端计算机730接收的第一请求消息733。在一些实施例中,可使用第二会话密钥加密包括于第二请求消息723中的第一请求消息733。
在一些实施例中,第一客户端计算机720可生成用于与服务器计算机740通信的第一会话密钥。第一客户端计算机可使用第一客户端私钥721、服务器公钥742和第一密码随机数(例如由第一客户端计算机720生成的随机数)生成第一会话密钥。在一些实施例中,第一客户端计算机720可使用第一会话密钥加密第二请求消息723。在一些实施例中,第一客户端计算机720可使用第一客户端公钥722和第一密码随机数生成盲化的第一客户端公钥。在一些实施例中,第一客户端计算机720可借助第二请求消息723以明文(尽管由第一密码随机数盲化)发送盲化的第一客户端公钥(例如不使用第一会话密钥加密盲化的第一客户端公钥)。在一些实施例中,第一客户端计算机720可在使用第一会话密钥加密的第二请求消息723中包括第一密码随机数。在一些实施例中,第一客户端计算机720可在使用第一会话密钥加密的第二请求消息723中包括第一客户端计算机720的证书(其包括第一客户端公钥722)。在一些实施例中,第二请求消息723可以是包括作为加密的消息部分的第一请求消息733的多方消息。
第一客户端计算机720可发送第二请求消息723至第二客户端计算机730。第二客户端计算机730可为第一客户端计算机720充当代理计算机。在703,第二客户端计算机730从第一客户端计算机720接收第二请求消息723,并发送第二请求消息723至服务器计算机740。
在704,服务器计算机740可接收第二请求消息723。在一些实施例中,服务器计算机740还可接收盲化的第一客户端公钥。服务器计算机740可以使用盲化的第一客户端公钥和服务器私钥741生成第一会话密钥。服务器计算机740接着可解密第二请求消息723,并获得来自第二客户端计算机730的第一密码随机数、第一客户端计算机720的证书和第一请求消息733。在一些实施例中,服务器计算机740可使用包括在第二请求消息723中的第一密码随机数和存储在服务器计算机740处的第一客户端公钥722生成相同的盲化的第一客户端公钥。接着,服务器计算机740可通过验证第一客户端计算机720的证书认证第一客户端计算机720。
在一些实施例中,服务器计算机740还可与第一请求消息733一起获得第二客户端公钥732。在一些实施例中,服务器计算机740可使用第二客户端公钥732和服务器私钥741生成第二会话密钥。接着,服务器计算机740可解密第一请求消息733。响应于从第二客户端计算机730接收第一请求消息733,服务器计算机可获得对于第二客户端计算机730的第一数据743。响应于从第一客户端计算机720接收第二请求消息723,服务器计算机可获得对于第一客户端计算机的第二数据745。在一些实施例中,第一数据743可包括凭证的第一部分(例如有限使用密钥),第二数据745可包括同一凭证的第二部分。
服务器计算机740接着可响应于第一请求消息733生成第一响应消息744(图7中的“Rsp.1”)。第一响应消息744可包括第一数据743。在一些实施例中,服务器计算机740可使用第二会话密钥加密第一响应消息744。
服务器计算机740还可响应于第二请求消息723生成第二响应消息746(图7中的“Rsp.2”)。第二响应消息746可包括对于第一客户端计算机720的第二数据745。在一些实施例中,服务器计算机740可使用第三会话密钥加密第二响应消息746。在一些实施例中,服务器计算机740可使用服务器私钥741、第一客户端公钥722和第二密码随机数生成第三会话密钥。在一些实施例中,服务器计算机740可使用第二密码随机数和服务器公钥742生成盲化的服务器公钥。在一些实施例中,服务器计算机740可在第二响应消息746中包括明文的盲化的服务器公钥。在一些实施例中,服务器计算机740可在使用第三会话密钥加密的第二响应消息746中包括第二密码随机数。在一些实施例中,服务器计算机可在使用第三会话密钥加密的第二响应消息746中包括服务器计算机740的证书(其包括服务器公钥742)。在一些实施例中,第二响应消息746可以是多方消息。
通过在705从服务器计算机740接收第二响应消息746,并接着发送第二响应消息746至第一客户端计算机720,服务器计算机740可经由第二客户端计算机730发送第二响应消息746至第一客户端计算机720,第二客户端计算机可为第一客户端计算机720充当代理计算机。
在706,第一客户端计算机720可经由第二客户端计算机730从服务器计算机740接收第二响应消息746。在一些实施例中,第一客户端计算机720可连同第二响应消息746一起接收盲化的服务器公钥。第一客户端计算机720可以使用盲化的服务器公钥和第一客户端私钥721生成第三会话密钥。第一客户端计算机720可接着使用第三会话密钥解密第二响应消息746以获得第二数据745、第二密码随机数、包括服务器公钥742的服务器计算机740的证书以及第一响应消息744。在一些实施例中,第一客户端计算机可使用第二密码随机数和服务器公钥742生成相同的盲化的服务器公钥。在一些实施例中,第一客户端计算机720可通过验证服务器计算机740的证书认证服务器计算机740。
第一客户端计算机720可存储第二数据745。第一客户端计算机720接着可发送第一响应消息744至第二客户端计算机730。在707,第二客户端计算机730可接收第一响应消息744。第二客户端计算机730可使用第二会话密钥解密第一响应消息744以获得第一数据743,第一数据可存储在第二客户端计算机730处。
使用图7的消息流图,服务器计算机740可强认证第一客户端计算机720。接着,基于第一客户端计算机720的认证,服务器计算机740可在单个响应消息(例如第二响应消息746)中提供数据至第一客户端计算机720和第二客户端计算机730。因此,服务器计算机740可基于服务器计算机740信任的第一客户端计算机720的认证,信任以前不被信任的第二客户端计算机730。
在一些实施例中,服务器计算机740可格式化第二响应消息746,使得第二客户端计算机730可直接接收第一数据743,而不必从第一客户端计算机720接收第一数据743。例如,在一些实施例中,服务器计算机740可在响应消息744内部包括第二响应消息746,使得第二客户端计算机730可解密第一响应消息744,获得第一数据743并接着发送第二响应消息746至第一客户端计算机720。
B.通过与第二客户端计算机的安全通信信道在第一客户端计算机和服务器计算机之间的安全通信
图8是根据一些实施例在第一客户端计算机820、第二客户端计算机830和服务器计算机840之间具有双向信道保护的安全通信的消息流图800。除了以下指出的之外,图8的消息流类似于图7的消息流。图8的消息流提供如上面参照图7描述的第一客户端计算机820在服务器计算机840处的认证。然而,除了保护在第一客户端计算机820和服务器计算机840之间的信道之外,通过保护在第一客户端计算机820和第二客户端计算机830之间的信道,图8的消息流在图7的消息流上扩展。
图8的消息流使得第一客户端计算机820和第二客户端计算机830能够使用发送至服务器计算机840的单个多方请求消息在服务器计算机840处认证。在认证之后,服务器计算机840可在另一多方消息中提供第一数据843(图8中的“数据1”)至第二客户端计算机830,提供第二数据845(图8中的“数据2”)至第一客户端计算机820。因此,只使用在第二客户端计算机830和服务器计算机840之间发送的一个多方请求消息和一个多方响应消息,第一客户端计算机820和第二客户端计算机830可以被认证,并从服务器计算机840接收不同的数据。
第一客户端计算机820可存储包括第一客户端私钥821(图8中的“客户端私钥1”)和与第一客户端私钥821对应的第一客户端公钥822(图8中的“客户端公钥1”)的第一密钥对。第一客户端私钥821可以是静态私钥,第一客户端公钥822可以是静态公钥。在一些实施例中,第一客户端计算机820可使用第一客户端私钥821生成第一客户端公钥822。第一客户端计算机还可以存储服务器计算机840的服务器公钥842(“图8中的服务器公钥”)。服务器公钥842可以是静态公钥。在一些实施例中,第一客户端计算机820可以是可直接与第二客户端计算机830通信的智能手表。在一些实施例中,如第二客户端计算机830不充当代理计算机,第一客户端计算机820可以不具有到服务器计算机840的通信路径。在一些实施例中,第一客户端计算机820可包括用于安全数据存储的安全元件电路,其可用于强认证第一客户端计算机820。
第二客户端计算机830可存储包括第二客户端私钥831(图8中的“客户端私钥2”)和第二客户端公钥(图8中的“客户端公钥2”)的第二密钥对。第二客户端私钥831可以是短暂私钥,第二客户端公钥832可以是短暂公钥。在一些实施例中,第二客户端计算机830可生成第二客户端私钥831,并使用第二客户端私钥831生成第二客户端公钥832。第二客户端计算机还可存储服务器计算机840的服务器公钥842。在一些实施例中,第二客户端计算机830可以是可直接与第一客户端计算机820通信的移动电话。在一些实施例中,第二客户端计算机830可为第一客户端计算机820充当代理计算机,原因是第二客户端计算机830可路由如本文中描述的从第一客户端计算机820接收的通信。在一些实施例中,第二客户端计算机830可不包括安全元件电路。在一些实施例中,第二客户端计算机830可实施主机卡模拟(HCE)软件,来代替使用安全元件电路。HCE可不如安全元件那样安全,基于HCE的认证可以不如基于安全元件的认证那样强。
服务器计算机840可存储包括服务器私钥841(图8中的“Server Priv.Key”)和服务器公钥842的第三密钥对。服务器私钥841可以是静态私钥,服务器公钥842可以是静态公钥。在图8的通信流之前,第一客户端计算机820和第二客户端计算机830可已经获得服务器公钥842。在一些实施例中,服务器计算机840可信任第一客户端计算机820,但可不信任第二客户端计算机830。例如,服务器计算机840可信任第一客户端计算机820的安全元件,但可不信任第二客户端计算机830上实施的HCE。但是,服务器计算机840可以只与第二客户端计算机830通信,且不能够与第一客户端计算机820通信,除非第二客户端计算机830为第一客户端计算机820充当代理计算机。
在801,第二客户端计算机830可生成从服务器计算机840请求第一数据843的第一请求消息833。第二客户端计算机830可发送第一请求消息833至第一客户端计算机820。在一些实施例中,第二客户端计算机830可使用蓝牙通信或者使用近场通信发送第一请求消息833。在一些实施例中,第二客户端计算机830可发送第一请求消息833至第一客户端计算机820以被封装在来自第一客户端计算机820的请求消息中,原因是第一客户端计算机820可被服务器计算机840信任,而第二客户端计算机830不可被服务器计算机840信任。在一些实施例中,第二客户端计算机830和第一客户端计算机820可相互信任,原因是他们彼此在紧密接近度之内(例如在蓝牙通信范围或近场通信范围内)。
在一些实施例中,第二客户端计算机830可使用用于与服务器计算机840通信的第二会话密钥加密第一请求消息833。第二客户端计算机830可使用第二客户端私钥831和服务器公钥842生成第二会话密钥。第二客户端计算机830可在第一请求消息833的明文部分中包括第二客户端公钥832(例如第二客户端公钥832为明文,不使用第二会话密钥加密)。
在一些实施例中,第二客户端计算机830可生成包括第一请求消息833的第三请求消息834(图8中的“Req.3”)。第二客户端计算机830可生成用于加密第三请求消息834的客户端会话密钥。第二客户端计算机830可使用第二客户端私钥831和存储在第二客户端计算机830处的第一客户端公钥822生成客户端会话密钥。第二客户端计算机可使用客户端会话密钥加密第三请求消息834,且发送第三请求消息834至第一客户端计算机820。第二客户端计算机830可借助第三请求消息834以明文发送第二客户端公钥832至第一客户端计算机820。
因此,对于服务器计算机840加密的第一请求消息833封装在对第一客户端计算机840加密的第三请求消息834中。因此,除了第二客户端计算机830和服务器计算机840之间的通信被保护之外,第二客户端计算机830和第一客户端计算机820之间的通信也被保护。
在802,第一客户端计算机820可从第二客户端计算机830接收包括第一请求消息833的第三请求消息834。第一客户端计算机可使用第一客户端私钥821和连同第三请求消息834一起以明文接收的第一客户端公钥822生成客户端会话密钥。接着,第一客户端计算机820可使用客户端会话密钥解密第三请求消息834以获得第一请求消息833,第一请求消息已经由第二客户端计算机830使用如上面讨论的(用于与服务器计算机840通信的)第二会话加密。
接着,第一客户端计算机820可对于服务器计算机8生成第二请求消息823(图8中的“Req.2”)。第二请求消息823可从服务器计算机840请求第二数据845(图8中的“数据2”)。第二请求消息823可包括从第二客户端计算机830接收的第一请求消息833。在一些实施例中,可使用第二会话密钥加密包括于第二请求消息823中的第一请求消息833。
在一些实施例中,第一客户端计算机820可生成用于与服务器计算机840通信的第一会话密钥。第一客户端计算机可使用第一客户端私钥821、服务器公钥842和第一密码随机数(例如由第一客户端计算机820生成的随机数)生成第一会话密钥。在一些实施例中,第一客户端计算机820可使用第一会话密钥加密第二请求消息823。在一些实施例中,第一客户端计算机820可使用第一客户端公钥822和第一密码随机数生成盲化的第一客户端公钥。在一些实施例中,第一客户端计算机820可借助第二请求消息823以明文(尽管由第一密码随机数盲化)发送盲化的第一客户端公钥(例如不使用第一会话密钥加密盲化的第一客户端公钥)。在一些实施例中,第一客户端计算机820可在使用第一会话密钥加密的第二请求消息823中包括第一密码随机数。在一些实施例中,第一客户端计算机820可在使用第一会话密钥加密的第二请求消息823中包括第一客户端计算机820的证书(其包括第一客户端公钥822)。在一些实施例中,第二请求消息823可以是包括作为加密的消息部分的第一请求消息833的多方消息。
在一些实施例中,第一客户端计算机820可生成包括第二请求消息823的第三响应消息824(图8中的“Rsp.3”)。第一客户端计算机可使用客户端会话密钥加密第三响应消息824,且发送第三响应消息824至第二客户端计算机830。在803,第二客户端计算机830可使用客户端会话密钥解密第三响应消息824以获得第二请求消息823。因此,使用客户端会话密钥使第一客户端计算机820和第二客户端计算机830之间的通信安全。接着,第二客户端计算机830可为第一客户端计算机820充当代理计算机,且发送第二请求消息823至服务器计算机840。
在804,服务器计算机840可接收第二请求消息823。在一些实施例中,服务器计算机840还可接收盲化的第一客户端公钥。服务器计算机840可使用盲化的第一客户端公钥和服务器私钥841生成第一会话密钥。服务器计算机840接着可解密第二请求消息823并获得来自第二客户端计算机830的第一密码随机数、第一客户端计算机820的证书和第一请求消息833。在一些实施例中,服务器计算机840可使用包括在第二请求消息823中的第一密码随机数和存储在服务器计算机840处的第一客户端公钥822生成相同的盲化的第一客户端公钥。接着,服务器计算机840可通过验证第一客户端计算机820的证书认证第一客户端计算机820。
在一些实施例中,服务器计算机840还可与第一请求消息833一起获得第二客户端公钥832。在一些实施例中,服务器计算机840可使用第二客户端公钥832和服务器私钥841生成第二会话密钥。接着,服务器计算机840可解密第一请求消息833。响应于从第二客户端计算机830接收第一请求消息833,服务器计算机可获得对于第二客户端计算机830的第一数据843。响应于从第一客户端计算机820接收第二请求消息823,服务器计算机可获得对于第一客户端计算机的第二数据845。在一些实施例中,第一数据843可包括凭证的第一部分(例如有限使用密钥),第二数据845可包括同一凭证的第二部分。
服务器计算机840接着可响应于第一请求消息833生成第一响应消息844(图8中的“Rsp.1”)。第一响应消息844可包括第一数据843。在一些实施例中,服务器计算机840可使用第二会话密钥加密第一响应消息844。
服务器计算机840也可响应于第二请求消息823生成第二响应消息846(图8中的“Rsp.2”)。第二响应消息846可包括对于第一客户端计算机820的第二数据845。在一些实施例中,服务器计算机840可使用第三会话密钥加密第二响应消息846。在一些实施例中,服务器计算机840可使用服务器私钥841、第一客户端公钥822和第二密码随机数生成第三会话密钥。在一些实施例中,服务器计算机840可使用第二密码随机数和服务器公钥842生成盲化的服务器公钥。在一些实施例中,服务器计算机840可在第二响应消息846中包括明文的盲化的服务器公钥。在一些实施例中,服务器计算机840可在使用第三会话密钥加密的第二响应消息846中包括第二密码随机数。在一些实施例中,服务器计算机可在使用第三会话密钥加密的第二响应消息846中包括服务器计算机840的证书(其包括服务器公钥842)。在一些实施例中,第二响应消息846可以是多方消息。
服务器计算机840可通过第二客户端计算机830发送第二响应消息846至第一客户端计算机820,第二客户端计算机通过在805接收来自服务器计算机840的第二响应消息846可为第一客户端计算机820充当代理计算机。在一些实施例中,第二客户端计算机830可生成包括第二响应消息846的第四请求消息835(图8中的“Req.4”)。第二客户端计算机830可生成第二客户端会话密钥,第二客户端会话密钥用于对第一客户端计算机820加密第四请求消息835。第二客户端计算机830可使用第二客户端私钥831和存储在第二客户端计算机830处的第一客户端公钥822生成第二客户端会话密钥。在一些实施例中,第二客户端计算机830可使用不同的私钥(例如新生成的短暂私钥)生成第四请求消息835。第二客户端计算机接着可使用第二客户端会话密钥加密第四请求消息835,并发送第四请求消息835至第一客户端计算机820。第二客户端计算机830可借助第四请求消息835以明文发送与曾用来生成第二客户端会话密钥的私钥对应的公钥至第一客户端计算机820。
在806,第一客户端计算机820可接收来自服务器计算机的包括第二响应消息846的第四请求消息835。第一客户端计算机可使用第一客户端公钥822和连同第四请求消息835一起从第二客户端计算机830接收的公钥生成第二客户端会话密钥。第一客户端计算机820可接着解密第四响应消息835以从服务器计算机获得第二响应消息846。
在一些实施例中,第一客户端计算机820可连同第二响应消息846一起接收盲化的服务器公钥。第一客户端计算机820可以使用盲化的服务器公钥和第一客户端私钥821生成第三会话密钥。第一客户端计算机820可接着使用第三会话密钥解密第二响应消息846以获得第二数据845、第二密码随机数、包括服务器公钥842的服务器计算机840的证书以及第一响应消息844。在一些实施例中,第一客户端计算机可使用第二密码随机数和服务器公钥842生成相同的盲化的服务器公钥。在一些实施例中,第一客户端计算机820可通过验证服务器计算机840的证书认证服务器计算机840。第一客户端计算机820可存储第二数据845。
第一客户端计算机820接着可响应于从第二客户端计算机830接收的第四请求消息835生成第四响应消息825。第四响应消息825可包括由服务器计算机840生成的第一响应消息844。第一客户端计算机820可使用第二客户端会话密钥加密第四响应消息825,并发送第四响应消息825至第二客户端计算机830。第二客户端计算机830可使用第二客户端会话密钥解密第四响应消息825。接着,第二客户端计算机830可使用第二会话密钥解密第一响应消息844,以获得第一数据843,第一数据可存储在第二客户端计算机830处。
使用图8的消息流,服务器计算机840可强认证第一客户端计算机820。接着,基于第一客户端计算机820的认证,服务器计算机840可在单个响应消息(例如第二响应消息846)中提供数据至第一客户端计算机820和第二客户端计算机830。因此,服务器计算机840可基于服务器计算机840信任的第一客户端计算机820的认证,信任以前不被信任的第二客户端计算机830。而且,除了在第一客户端计算机820和服务器计算机840之间的安全信道之外,图8的消息流提供在第一客户端计算机820和第二客户端计算机830之间的安全信道。
Ⅴ.多方消息收发的实施
本文中描述的多方消息收发可在下面的专利申请中描述的系统和方法中实施:2016年6月30日提交的国际申请号PCT/US2016/040586(代理人案号为079900-1455WO01-1010060);2016年6月30日提交的国际申请号PCT/US2016/040590(代理人案号为079900-1455WO02-1012983);2016年2月16日提交的美国专利申请号15/045,052(代理人案号为079900-1230US03-0967996);2015年8月31日提交的美国专利申请号14/841,589(代理人案号为079900-1068US02-0945228);2015年6月18日提交的美国专利申请号14/743,874(代理人案号为079900-1012US03-0928449);以及2015年1月13日提交的美国专利申请号14/595,792(代理人案号为079900-836US02-0925739),出于所有目的,这些申请的公开内容通过引用被全文并入本文中。
Ⅵ.用于安全的多方消息收发的方法
用于安全的多方消息收发的方法将在下面参照图9-11描述。这些方法可由上面参照例如图2和图4-8描述的计算机系统实施。所述方法中的消息可类似于上面参照图3描述的多方消息。
A.生成涉及一个代理的安全通信
图9示出根据一些实施例用于生成涉及一个代理的安全通信的示例性方法的流程图900。例如,所述方法可由客户端计算机如在上面参照图2和图4-8中描述的执行。在901,客户端计算机可识别要通信的一个或多个接收者计算机。对于一个或多个接收者计算机中的每一个,客户端计算机可获得针对该接收者计算机的加密的消息部分。可以通过用对于接收者的接收者会话密钥加密对于该接收者的消息部分,生成加密的消息部分。例如,902a,客户端计算机可获得对于第一接收者计算机的加密的消息部分。如果存在超过一个接收者计算机,则在902b,客户端计算机可获得对于第二接收者计算机的加密的消息部分。客户端计算机可继续获得如由图9中的省略号指示的接收者计算机中的每一个的加密的消息部分。对于每个消息部分,客户端计算机可确定对于相应的接收者计算机的接收者会话密钥,并使用该接收者会话密钥加密消息部分以获得加密的消息部分。
客户端计算机可确定对于每个接收者计算机的地址信息。例如,在903a,客户端计算机可确定对于第一接收者计算机的地址信息。地址信息可包括用于将对于第一接收者计算机的加密的消息部分路由到第一接收者计算机的信息。如果存在超过一个接收者计算机,则在903b,客户端计算机可确定对于第二接收者计算机的地址信息。客户端计算机可继续确定如由图9中的省略号指示的每个接收者计算机的地址信息。
在904,客户端计算机可识别代理计算机。客户端计算机也可以与代理计算机通信,或者以前与代理计算机通信过。客户端计算机可基于接收者计算机的地址信息识别代理计算机。例如,不同的代理计算机能够为不同的接收者计算机路由消息。代理计算机标识符能够路由加密的消息部分至每个识别的接收者计算机。
在905,客户端计算机可确定代理会话密钥。代理会话密钥可从在客户端计算机和代理计算机之间共享的共享秘密导出。共享秘密可由客户端计算机使用代理计算机的公钥和客户端计算机的私钥建立。相同的共享秘密可由代理计算机使用客户端计算机的公钥和代理计算机的私钥建立。可使用盲化因子盲化客户端计算机的公钥,或者客户端计算机的公钥可以是短暂公钥。此外,可使用盲化因子盲化代理计算机的公钥。因此,由客户端计算机和代理计算机传送的用于建立共享秘密的公钥可以是机密的,如上面讨论的。
在905,客户端计算机可确定消息主体。消息主体可以是如上面描述的多方消息的消息主体。消息主体可包括对于一个或多个接收者计算机中的每一个的地址信息。消息主体还可包括对应于私钥的公钥,所述私钥曾用来建立如上面讨论的与代理计算机的共享秘密。
在906,客户端计算机可使用代理会话密钥加密消息主体。因此,客户端计算机可获得使用代理会话密钥加密的加密的消息主体。也可以使用代理会话密钥加密一个或多个加密的消息部分。因此,可用第二层加密加密一个或多个加密的消息部分。加密的消息主体和一个或多个加密的消息部分可形成加密的消息。一个或多个加密的消息部分还可在加密的消息的明文部分中被发送至代理计算机。然而,一个或多个加密的消息部分仍是安全的,原因是尽管一个或多个加密的消息部分是在加密的消息的明文部分中被发送的,但对于接收者计算机仍是被加密的。
在907,客户端计算机可发送加密的消息至代理计算机。代理计算机可接收加密的消息,所述加密的消息包括加密的消息主体和一个或多个加密的消息部分。代理计算机可生成相同的代理会话密钥,并解密加密的消息以获得消息主体和加密的消息部分。代理计算机可以不具有解密加密的消息部分所必需的加密密钥,原因是消息部分是针对其对应的接收者计算机被加密的。因此,在通过代理计算机被传送时,加密的消息部分仍是安全的。
B.生成涉及一个代理和两个或更多个接收者计算机的安全通信
图10示出根据一些实施例用于生成涉及一个代理和两个或更多个接收者计算机的安全通信的示例性方法的流程图1000。例如,所述方法可由客户端计算机如在上面参照图2和图4-8中描述的执行。除了以下描述的之外,图10的方法类似于图9的方法。例如,图10的方法涉及两个或更多个接收者计算机,而图9的方法涉及一个或多个接收者计算机。
在1001,客户端计算机可识别要通信的一个或多个接收者计算机。对于一个或多个接收者计算机中的每一个,客户端计算机可获得针对该接收者计算机的加密的消息部分。可以通过用对于接收者的接收者会话密钥加密对于该接收者的消息部分,生成加密的消息部分。例如,1002a,客户端计算机可获得对于第一接收者计算机的加密的消息部分。如果存在超过一个接收者计算机,则在1002b,客户端计算机可获得对于第二接收者计算机的加密的消息部分。客户端计算机可继续获得如由图10中的省略号指示的接收者计算机中的每一个的加密的消息部分。对于每个消息部分,客户端计算机可确定对于相应的接收者计算机的接收者会话密钥,并使用该接收者会话密钥加密消息部分以获得加密的消息部分。
客户端计算机可确定对于每个接收者计算机的地址信息。例如,在1003a,客户端计算机可确定对于第一接收者计算机的地址信息。地址信息可包括用于将对于第一接收者计算机的加密的消息部分路由到第一接收者计算机的信息。在1003b,客户端计算机可确定对于第二接收者计算机的地址信息。客户端计算机可继续确定如由图10中的省略号指示的每个接收者计算机的地址信息。
在1004,客户端计算机可识别代理计算机。客户端计算机也可以与代理计算机通信,或者以前与代理计算机通信过。客户端计算机可基于接收者计算机的地址信息识别代理计算机。例如,不同的代理计算机能够为不同的接收者计算机路由消息。代理计算机标识符能够路由加密的消息部分至每个识别的接收者计算机。
客户端计算机可使用未加密的通信与代理计算机通信。例如,客户端计算机可使用未加密的蓝牙通信或未加密的Wi-Fi通信与代理计算机通信。在一些实施例中,客户端计算机可加密对于代理计算机的通信。例如,客户端计算机可确定用于与代理计算机通信的代理会话密钥。代理会话密钥可从在客户端计算机和代理计算机之间共享的共享秘密导出。共享秘密可由客户端计算机使用代理计算机的公钥和客户端计算机的私钥建立。相同的共享秘密可由代理计算机使用客户端计算机的公钥和代理计算机的私钥建立。可使用盲化因子盲化客户端计算机的公钥,或者客户端计算机的公钥可以是短暂公钥。此外,可使用盲化因子盲化代理计算机的公钥。因此,由客户端计算机和代理计算机传送的用于建立共享秘密的公钥可以是机密的,如上面讨论的。
在1005,客户端计算机可确定消息主体。消息主体可以是如上面描述的多方消息的消息主体。消息主体可包括对于一个或多个接收者计算机中的每一个的地址信息。如果对于代理计算机的消息被加密,则消息主体也可包括与私钥对应的公钥,所述私钥被用来建立如上面讨论的与代理计算机的共享秘密。
如果保证与代理计算机的通信是安全的,则客户端计算机可使用代理会话密钥加密消息主体。因此,客户端计算机可获得使用代理会话密钥加密的加密的消息主体。也可以使用代理会话密钥加密一个或多个加密的消息部分。因此,可用第二层加密加密一个或多个加密的消息部分。加密的消息主体和一个或多个加密的消息部分可形成加密的消息。一个或多个加密的消息部分还可在加密的消息的明文部分中被发送至代理计算机。然而,一个或多个加密的消息部分仍是安全的,原因是尽管一个或多个加密的消息部分是在加密的消息的明文部分中被发送的,但对于接收者计算机仍是被加密的。
在1006处,客户端计算机可发送消息至代理计算机。代理计算机可接收包括消息主体和一个或多个加密的消息部分的消息。如果消息被加密,则代理计算机可生成相同的代理会话密钥,并解密加密的消息以获得消息主体和加密的消息部分。代理计算机可以不具有解密加密的消息部分所必需的加密密钥,原因是消息部分是针对其对应的接收者计算机被加密的。因此,在通过代理计算机被传送时,加密的消息部分仍是安全的。
C.路由涉及代理的安全通信
图11示出根据一些实施例用于路由涉及代理的安全通信的示例性方法的流程图1100。例如,所述方法可由代理计算机如上面参照图2和图4-8描述的执行。在1101处,代理计算机可接收加密的消息。如上面讨论的,可从客户端计算机接收消息。消息可以是多方消息。加密的消息可包括一个或多个加密的消息部分和加密的消息主体。在一些实施例中,消息主体不被加密,而加密的消息部分被加密。可使用与用来加密加密的消息部分的加密密钥或密钥不同的加密密钥对消息主体加密。
在1102处,代理计算机可生成会话密钥,并使用该会话密钥解密加密的消息主体。会话密钥可从与计算机(例如客户端计算机)共享的共享秘密导出,所述计算机发送加密的消息至代理计算机。如上面描述的,代理计算机和客户端计算机可机密地建立共享秘密。一旦使用会话密钥解密加密的消息主体,代理计算机可获得消息主体。如上面讨论的,消息主体可包括与对于加密的消息部分的每一个接收者计算机对应的地址信息。在一些实施例中,一个或多个加密的消息部分包括于加密的消息的明文部分中,且不使用会话密钥解密。
在1103,代理计算机可解析消息主体以识别对于每个加密的消息部分的地址。地址可包括将加密的消息部分路由到接收者计算机的路由信息。例如,对于接收者计算机的地址可以是在到达接收者计算机的通信路线上的下一计算机的地址。地址也可以是接收者计算机本身的网络地址。
接着,代理计算机可使用对于接收者计算机的对应地址路由每个加密的消息部分。在1104a,代理计算机可使用对于第一接收者计算机的对应地址路由第一加密的消息部分。如果接收的消息包括超过一个加密的消息部分,则在1104b,代理计算机可使用对于第二接收者计算机的对应地址路由第二加密的消息。代理计算机可以基于如由图11中的省略号表示的地址信息继续将每个加密的消息部分路由到每个对应的接收者计算机。
代理计算机也可以确保用来发送或路由加密的消息部分到对应的接收者计算机的通信的安全。例如,代理计算机可生成与接收装置对应的新会话密钥。代理计算机接着可使用新会话密钥加密一个或多个其它地址以获得新的加密的消息。新的加密的消息包括对于每个其它地址的至少一个加密的消息部分。接着代理计算机可发送新的加密的消息至接收装置。类似地,接收装置可使用一个或多个其它地址以用于路由新的加密的消息中的加密的消息部分中的一个或多个。
Ⅶ.计算机系统
图12是根据一些实施例的计算机系统1200的组件的框图。本文中提到的任何计算机系统可使用任何适合数目的子系统。在图12中示出了在计算机系统1200中这样的子系统的示例。在一些实施例中,计算机系统包括单个计算机设备,其中,子系统可以是计算机设备的组件。在其它实施例中,计算机系统可包括多个计算机设备,每一个计算机设备是具有内部组件的子系统。计算机系统可包括台式计算机和膝上型计算机、平板计算机、移动电话和其它移动装置。
图12中所示的子系统经由系统总线1275互连。示出了附加子系统,例如打印机1274、键盘1278、存储装置1279、监视器1276(该监视器联接到显示器适配器1282)和其它。联接到I/O控制器1271的外围设备和输入/输出(I/O)设备可以通过本领域已知的任何数量的构件(诸如输入/输出(I/O)端口1277(例如USB,)连接到计算机系统。例如,I/O端口1277或外部接口1281(例如以太网、Wi-Fi等)可以用来将计算机系统1200连接至广域网(诸如互联网)、鼠标输入设备或扫描仪。经由系统总线75的互连允许中央处理器1273与每个子系统通信,并控制来自系统存储器1272或存储装置1279(例如固定磁盘,诸如硬盘或光盘)的指令的执行以及信息在子系统之间的交换。系统存储器1272和/或存储装置1279可以体现计算机可读介质。另一子系统是数据采集装置1285,例如照相机、麦克风、加速度计等等。本文中提到的任何数据可以从一个组件输出到另一组件,且可以输出给用户。
计算机系统可包括,例如,由外部接口1281或由内部接口连接在一起的多个相同组件或子系统。在一些实施方案中,计算机系统、子系统或装置可以通过网络进行通信。在这种情况下,一台计算机可以被认为是客户端,另一台计算机为服务器,其中每台计算机都可以是同一计算机系统的一部分。客户端和服务器可以分别包括多个系统、子系统或组件。
应当理解,本发明的任何实施方案可以使用硬件(例如专用集成电路或现场可编程门阵列)和/或使用计算机软件以控制逻辑的形式借助通用可编程处理器以模块化或集成方式实现。如本文所使用的,处理器包括单核处理器,同一集成芯片上的多核处理器或单个电路板上的多个处理单元或网络。基于本文中提供的公开和教导,本领域普通技术人员会知道并意识到使用硬件及硬件和软件的组合实现本发明的实施方案的其他方式和/或方法。
本申请中描述的任何软件组件或功能中可以实现为使用任何适当计算机语言(诸如,例如Java、C、C++、C#、Objective-C、Swift)或脚本语言(诸如Perl或Python)使用例如传统的或面向对象的技术由处理器执行的软件代码。软件代码可以存储为计算机可读介质上的一系列指令或命令以用于存储和/或传输。适合的非瞬态计算机可读介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、磁介质(诸如硬盘或软盘)或光介质(诸如光盘(CD)或DVD(数字通用盘))、闪存等等。计算机可读介质可以是这些存储或传输装置的任何组合。
也可以使用适于通过符合各种协议(包括互联网)的有线、光学、和/或无线网络传输的载波信号来编码和传输这样的程序。因此,根据本发明的实施方案的计算机可读介质可以使用用这种程序编码的数据信号来创建。利用程序代码编码的计算机可读介质可以利用兼容的装置来封装,或与其他装置可分开地提供(例如通过互联网下载)。任何这样的计算机可读介质都可以驻留在单个计算机产品(例如硬盘驱动器,CD或整个计算机系统)上或内部,并且可以存在于系统或网络内的不同计算机产品上或内部。计算机系统可包括监视器、打印机,或用于向用户提供本文所提及的任何结果的其他合适的显示器。
本文中描述的任何方法可以完全地或部分地用包括可被配置成执行这些步骤的一个或多个处理器的计算机系统执行。因此,实施方案可以涉及被配置成执行本文中描述的任何方法的步骤、可能具有执行相应步骤或相应步骤群组的不同组件的计算机系统。尽管呈现为编号步骤,但本文中的方法的步骤可以同时或以不同顺序被执行。另外,这些步骤的部分可以与来自其他方法的掐他步骤的部分一起使用。同样,一个步骤的全部或部分可以是可选的。另外,任何方法的任何步骤可以用模块、单元、电路或用于执行这些步骤的其他手段来执行。
在不偏离本发明的实施方案的精神和范围下,具体实施方案的特定细节可以以任何适当方式组合。但是,本发明的其他实施方案可以涉及与每个单独的方面有关的特定实施方案,或者这些单独的方面的特定组合。
上文对本发明的示例性实施方案的描述已经出于图示和描述的目的呈现。不旨在是详尽的,或将本发明局限到描述的精确形式,根据上文的教导许多修改和变形是可能的。
除非明确指示有相反的意思,否则叙述“一个/种”或“该/所述”旨在表示“一个/种或多个/种”。除非明确指示有相反的意思,“或”的使用旨在表示是“包括性的或,”而不是“排他性的或”。提到“第一”组件并不一定要求提供第二组件。而且,除非明确指出,否则提到“第一”或“第二”组件并不限制被提到的组件为特定位置。
本文中提到的所有专利、专利申请、公开和描述出于所有目的通过引用被全部并入本文中。不承认它们为现有技术。

Claims (29)

1.一种执行涉及代理的安全通信的方法,所述方法包括:
识别一个或多个接收者计算机;
对于所述一个或多个接收者计算机中的每一个:
获得通过用接收者会话密钥加密消息部分而生成的加密的消息部分;
识别代理计算机;
确定代理会话密钥;
确定包括所述一个或多个接收者计算机中的每一个的地址信息的消息主体;
使用所述代理会话密钥加密所述消息主体以获得加密的消息主体;以及
发送加密的消息至所述代理计算机,所述加密的消息包括所述加密的消息主体和一个或多个加密的消息部分。
2.根据权利要求1所述的方法,其中,对于所述一个或多个接收者计算机中的每一个:
从使用短暂私钥建立的共享秘密导出用来加密所述消息部分的所述接收者会话密钥,所述短暂私钥与短暂公钥形成密钥对;以及
其中,所述消息主体包括用于建立用于导出所述接收者会话密钥的共享秘密的短暂公钥。
3.根据权利要求1所述的方法,其中,对于所述一个或多个接收者计算机中的每一个:
从使用盲化因子和私钥建立的共享秘密导出用来加密所述消息部分的所述接收者会话密钥,所述私钥与短暂公钥形成密钥对;
所述加密的消息部分包括所述盲化因子;以及
所述消息主体包括用于建立用于导出所述接收者会话密钥的所述共享秘密的所述短暂公钥。
4.根据权利要求1所述的方法,其中,还使用代理会话密钥加密所述一个或多个加密的消息部分以获得加密的消息。
5.根据权利要求1所述的方法,其中,所述一个或多个加密的消息部分在所述加密的消息的明文部分中被发送至所述代理计算机。
6.根据权利要求1所述的方法,其中,所述一个或多个接收者计算机中的至少一个对应于包括所述代理计算机的计算机系统的安全元件。
7.根据权利要求1所述的方法,其中,获得加密的消息部分包括:
对于所述接收者计算机中的每一个确定接收者会话密钥;以及
使用所述接收者会话密钥加密消息部分以获得加密的消息部分。
8.根据权利要求1所述的方法,其中,获得加密的消息部分包括:
从一个或多个源计算机接收所述加密的消息部分。
9.根据权利要求1所述的方法,其中,所述一个或多个接收者计算机是两个或更多个接收者计算机,所述方法还包括:
从所述两个或更多个接收者计算机接收包括一个或多个加密的第二消息部分的第二消息;以及
对于所述两个或更多个加密的第二消息部分中的每一个:
使用与所述接收者计算机共享的所述接收者会话密钥解密加密的第二消息部分。
10.根据权利要求9所述的方法,还包括使用所述代理会话密钥解密所述第二消息,其中,所述第二消息是由所述代理计算机使用所述代理会话密钥加密的。
11.一种执行涉及代理的安全通信的方法,所述方法包括:
接收加密的消息,所述加密的消息包括一个或多个加密的消息部分和加密的消息主体;
生成会话密钥;
使用所述会话密钥解密所述加密的消息主体,以获得消息主体;
解析所述消息主体以识别对于每个加密的消息部分的地址;以及
对于每个加密的消息部分:
使用对应的地址路由所述加密的消息部分。
12.根据权利要求11所述的方法,其中,使用所述会话密钥解密所述加密的消息主体包括解密所述加密的消息以获得所述一个或多个加密的消息部分。
13.根据权利要求11所述的方法,其中,所述一个或多个加密的消息部分在所述加密的消息的明文部分中。
14.根据权利要求11所述的方法,还包括:
生成与接收装置对应的新会话密钥;
使用所述新会话密钥加密一个或多个其它地址以获得新的加密的消息,所述新的加密的消息包括对于所述其它地址中的每一个的至少一个加密的消息部分;
发送所述新的加密的消息至所述接收装置,其中,所述接收装置要使用所述一个或多个其它地址以用于路由在所述新的加密的消息中的所述加密的消息部分中的一个或多个。
15.根据权利要求11所述的方法,其中,从第一源装置接收所述加密的消息,所述方法还包括:
对于一个或多个其它源装置中的每一个:
接收另一加密的消息,所述另一加密的消息包括一个或多个其它加密的消息部分和另一加密的消息主体;
生成另一会话密钥;
使用所述另一会话密钥解密所述另一加密的消息主体以获得另一消息主体;
解析所述另一消息主体以识别对于每个另一加密的消息部分的另一地址;以及
识别在所述多个加密的消息中的多个地址之中的共同地址;
把与所述共同地址对应的加密的消息部分组合以获得组合的加密的消息;以及
使用所述共同地址路由组合的加密的消息部分。
16.根据权利要求11所述的方法,其中,所述方法由移动电话执行。
17.根据权利要求16所述的方法,其中,所述移动电话与住宅中的多个装置通信,其中,所述移动电话为所述多个装置充当代理,并且其中,所述装置与所述移动电话异步连接。
18.一种执行涉及代理的安全通信的方法,所述方法包括:
识别两个或更多个接收者计算机;
对于所述两个或更多个接收者计算机中的每一个:
获得对于所述接收者计算机的加密的消息部分,所述加密的消息部分是使用与所述接收者计算机共享的接收者会话密钥加密的;以及
确定对于所述接收者计算机的地址信息;
识别代理计算机;
确定包括所述两个或更多个接收者计算机中的每一个的地址信息的消息主体;以及
发送消息至所述代理计算机,所述消息包括所述消息主体和所述两个或更多个加密的消息部分。
19.根据权利要求18所述的方法,还包括:
从所述两个或更多个接收者计算机接收包括两个或更多个加密的第二消息部分的第二消息;以及
对于所述两个或更多个加密的第二消息部分中的每一个:
使用与所述接收者计算机共享的所述接收者会话密钥解密加密的第二消息部分。
20.根据权利要求19所述的方法,还包括:使用代理会话密钥解密所述第二消息,其中,所述第二消息是由所述代理计算机使用所述代理会话密钥加密的。
21.根据权利要求18所述的方法,还包括:
确定用于与所述代理计算机通信的代理会话密钥;以及
使用所述代理会话密钥加密所述消息的所述消息主体。
22.根据权利要求18所述的方法,其中,所述一个或多个接收者计算机是各自提供不同服务至一个或多个源装置的服务提供商,所述一个或多个源装置通过无线通信异步连接至所述代理计算机,所述一个或多个源计算装置提供一个或多个消息部分至所述代理计算机,所述一个或多个消息部分被加密以创建所述一个或多个加密的消息部分。
23.根据权利要求18所述的方法,其中所述代理计算机是移动电话。
24.根据权利要求18所述的方法,其中,所述一个或多个接收者计算机是通过无线通信异步连接至所述代理计算机的装置,并且其中,从各自提供不同的服务至所述一个或多个接收者计算机的一个或多个服务提供商计算机获得所述加密的消息部分。
25.一种计算机产品,其包括存储多个指令的计算机可读介质,所述多个指令用于控制计算机系统执行上述方法中的任一个的操作。
26.一种系统,其包括:
根据权利要求25所述的计算机产品;以及
一个或多个处理器,所述一个或多个处理器用于执行存储在所述计算机可读介质上的指令。
27.一种系统,其包括用于执行上述方法中的任一个的装置。
28.一种系统,其被配置为执行上述方法中的任一个。
29.一种系统,其包括分别执行上述方法中的任一个的步骤的模块。
CN201680075331.9A 2015-12-16 2016-12-16 使用代理的安全的多方通信的系统和方法 Withdrawn CN108432205A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562268348P 2015-12-16 2015-12-16
US62/268,348 2015-12-16
PCT/US2016/067386 WO2017106793A1 (en) 2015-12-16 2016-12-16 Systems and methods for secure multi-party communications using a proxy

Publications (1)

Publication Number Publication Date
CN108432205A true CN108432205A (zh) 2018-08-21

Family

ID=59057744

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680075331.9A Withdrawn CN108432205A (zh) 2015-12-16 2016-12-16 使用代理的安全的多方通信的系统和方法

Country Status (6)

Country Link
US (2) US11108748B2 (zh)
EP (1) EP3391620B1 (zh)
CN (1) CN108432205A (zh)
AU (1) AU2016369606A1 (zh)
RU (1) RU2018125626A (zh)
WO (1) WO2017106793A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110545320A (zh) * 2019-08-23 2019-12-06 浙江大华技术股份有限公司 一种内网数据交互方法及设备
US20200275274A1 (en) * 2019-02-26 2020-08-27 Samsung Electronics Co., Ltd. Electronic device and method for storing user identification information

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108432205A (zh) 2015-12-16 2018-08-21 维萨国际服务协会 使用代理的安全的多方通信的系统和方法
CA3014737A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Blockchain-implemented method for control and distribution of digital content
CA3014727A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Method and system for efficient transfer of cryptocurrency associated with a payroll on a blockchain that leads to an automated payroll method and system based on smart contracts
KR102753027B1 (ko) 2016-02-23 2025-01-14 엔체인 홀딩스 리미티드 블록체인상의 개체의 안전한 전송을 위한 방법 및 시스템
MX2018010052A (es) 2016-02-23 2019-01-21 Nchain Holdings Ltd Sistema y metodo para controlar acciones relacionadas con activos por medio de una cadena de bloques.
EP3259724B1 (en) * 2016-02-23 2021-03-24 Nchain Holdings Limited Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
EA201891827A1 (ru) 2016-02-23 2019-02-28 Нчейн Холдингс Лимитед Реестр и способ автоматизированного администрирования смарт-контрактов, использующих блокчейн
EP4167165A1 (en) 2016-02-23 2023-04-19 nChain Licensing AG Blockchain-based exchange with tokenisation
SG11201805472RA (en) 2016-02-23 2018-07-30 Nchain Holdings Ltd Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
GB2561466A (en) 2016-02-23 2018-10-17 Nchain Holdings Ltd Methods and systems for efficient transfer of entities on a peer-to-peer distributed ledger using the blockchain
CN109314636B (zh) 2016-02-23 2022-01-11 区块链控股有限公司 用于从区块链中安全提取数据的密码方法和系统
CN115225268A (zh) 2016-02-23 2022-10-21 区块链控股有限公司 将椭圆曲线加密用于个人装置安全以共享秘密
EP3257002B1 (en) 2016-02-23 2020-03-11 Nchain Holdings Limited Agent-based turing complete transactions integrating feedback within a blockchain system
US11455378B2 (en) 2016-02-23 2022-09-27 nChain Holdings Limited Method and system for securing computer software using a distributed hash table and a blockchain
MX2018010048A (es) 2016-02-23 2019-01-21 Nchain Holdings Ltd Sistema universal de tokenizacion para criptomonedas basadas en cadena de bloques.
WO2017145008A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Tokenisation method and system for implementing exchanges on a blockchain
SG11201807726QA (en) 2016-06-07 2018-10-30 Visa Int Service Ass Multi-level communication encryption
US10887291B2 (en) 2016-12-16 2021-01-05 Amazon Technologies, Inc. Secure data distribution of sensitive data across content delivery networks
US10686765B2 (en) 2017-04-19 2020-06-16 International Business Machines Corporation Data access levels
US10313133B2 (en) 2017-06-21 2019-06-04 Visa International Service Association Secure communications providing forward secrecy
US12067129B2 (en) * 2017-06-23 2024-08-20 Flytxt B.V. Privacy preserving computation protocol for data analytics
JP6713585B2 (ja) * 2017-07-05 2020-06-24 日本電信電話株式会社 秘密計算システム、秘密計算装置、秘密計算方法、プログラム、および記録媒体
EP4216487B1 (en) 2017-10-30 2024-08-21 Visa International Service Association Multi-party threshold authenticated encryption
US12074865B1 (en) 2018-01-22 2024-08-27 Apple Inc. Techniques for signing into a user account using a trusted client device
US11159498B1 (en) * 2018-03-21 2021-10-26 Amazon Technologies, Inc. Information security proxy service
US20210014073A1 (en) * 2018-03-22 2021-01-14 Communication Security Group Inc. Decentranlised communication system and method
US20190334701A1 (en) * 2018-04-25 2019-10-31 EMC IP Holding Company LLC Lightweight security for internet of things messaging
US11349646B1 (en) * 2018-05-03 2022-05-31 Berryville Holdings, LLC Method of providing secure communications to multiple devices and multiple parties
US11362824B2 (en) * 2018-05-25 2022-06-14 Intertrust Technologies Corporation Content management systems and methods using proxy reencryption
US10979403B1 (en) 2018-06-08 2021-04-13 Amazon Technologies, Inc. Cryptographic configuration enforcement
US11133940B2 (en) * 2018-12-04 2021-09-28 Journey.ai Securing attestation using a zero-knowledge data management network
US10600050B1 (en) * 2019-03-22 2020-03-24 Onli, Inc. Secure custody of a ledger token and/or a quantity of cryptocurrency of a distributed ledger network through binding to a possession token
US11632672B2 (en) * 2019-12-30 2023-04-18 Texas Instruments Incorporated Systems and methods to support data privacy over a multi-hop network
WO2021151730A1 (en) * 2020-01-28 2021-08-05 Nokia Solutions And Networks Oy An apparatus for forwarding encrypted messages
US11438152B2 (en) 2020-01-31 2022-09-06 Visa International Service Association Distributed symmetric encryption
WO2021168164A1 (en) * 2020-02-21 2021-08-26 SDSE Networks LLC Method and system for secure communication
WO2021234580A1 (en) * 2020-05-21 2021-11-25 Marvell Asia Pte. Ltd. Methods and systems for secure network communication
US20220239502A1 (en) * 2021-01-27 2022-07-28 Anderson Software LLC System to Securely Issue and Count Electronic Ballots
US20220255735A1 (en) * 2021-02-08 2022-08-11 Visa International Service Association Blinding techniques for post-quantum public keys
US12074915B1 (en) * 2021-11-26 2024-08-27 Amazon Technologies, Inc. Connection management device and common API
US12095749B2 (en) 2021-12-09 2024-09-17 Netflow, UAB Distributed trust-based communication
US12177196B2 (en) 2021-12-09 2024-12-24 Netflow, UAB Distributed trust-based communication
US12238078B2 (en) * 2021-12-09 2025-02-25 Netflow, UAB Distributed trust-based communication
US12225111B2 (en) * 2022-03-08 2025-02-11 SanDisk Technologies, Inc. Authorization requests from a data storage device to multiple manager devices
WO2024030308A1 (en) * 2022-08-02 2024-02-08 Capital One Services, Llc Data exchange protection and governance system

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6084969A (en) * 1997-12-31 2000-07-04 V-One Corporation Key encryption system and method, pager unit, and pager proxy for a two-way alphanumeric pager network
US6453159B1 (en) 1999-02-25 2002-09-17 Telxon Corporation Multi-level encryption system for wireless network
US6760752B1 (en) * 1999-06-28 2004-07-06 Zix Corporation Secure transmission system
US7013389B1 (en) * 1999-09-29 2006-03-14 Cisco Technology, Inc. Method and apparatus for creating a secure communication channel among multiple event service nodes
US7660902B2 (en) * 2000-11-20 2010-02-09 Rsa Security, Inc. Dynamic file access control and management
EP1410296A2 (en) * 2001-06-12 2004-04-21 Research In Motion Limited Method for processing encoded messages for exchange with a mobile data communication device
EP1410601B1 (en) * 2001-07-10 2017-02-08 BlackBerry Limited System and method for secure message key caching in a mobile communication device
US7529933B2 (en) * 2002-05-30 2009-05-05 Microsoft Corporation TLS tunneling
AU2003258067A1 (en) 2002-08-06 2004-02-23 Privaris, Inc. Methods for secure enrollment and backup of personal identity credentials into electronic devices
US7363499B2 (en) * 2003-09-18 2008-04-22 Sun Microsystems, Inc. Blinded encryption and decryption
US8031865B2 (en) 2004-01-08 2011-10-04 Encryption Solutions, Inc. Multiple level security system and method for encrypting data within documents
DE102006004868B4 (de) 2005-11-04 2010-06-02 Siemens Ag Verfahren und Server zum Bereitstellen eines Mobilitätsschlüssels
US8291215B2 (en) * 2006-05-04 2012-10-16 Research In Motion Limited System and method for processing certificates located in a certificate search
US20100031337A1 (en) * 2007-04-09 2010-02-04 Certeon, Inc. Methods and systems for distributed security processing
EP2651100A1 (en) 2008-02-22 2013-10-16 Security First Corporation Systems and methods for secure workgroup management and communication
US8990569B2 (en) * 2008-12-03 2015-03-24 Verizon Patent And Licensing Inc. Secure communication session setup
US8954740B1 (en) * 2010-10-04 2015-02-10 Symantec Corporation Session key proxy decryption method to secure content in a one-to-many relationship
US8621036B1 (en) 2010-11-17 2013-12-31 Israel L'Heureux Secure file access using a file access server
US8566577B2 (en) 2010-11-30 2013-10-22 Blackberry Limited Method and device for storing secured sent message data
EP2659423A4 (en) * 2010-12-31 2014-09-17 Akamai Tech Inc EXPANSION OF DATA CONFIDENTIALITY IN A GAME APPLICATION
US8831224B2 (en) * 2012-09-14 2014-09-09 GM Global Technology Operations LLC Method and apparatus for secure pairing of mobile devices with vehicles using telematics system
CN103795692B (zh) 2012-10-31 2017-11-21 中国电信股份有限公司 开放授权方法、系统与认证授权服务器
EP3063970B1 (en) * 2013-10-30 2020-10-21 Nec Corporation Apparatus, system and method for secure direct communcation in proximity based services
US10177933B2 (en) * 2014-02-05 2019-01-08 Apple Inc. Controller networks for an accessory management system
US9426176B2 (en) * 2014-03-21 2016-08-23 Cisco Technology, Inc. Method, system, and logic for in-band exchange of meta-information
WO2015157693A2 (en) * 2014-04-11 2015-10-15 Rubicon Labs, Inc. System and method for an efficient authentication and key exchange protocol
WO2015184387A1 (en) * 2014-05-30 2015-12-03 Apple Inc. Accessory management system using environment model
US9608945B2 (en) 2014-05-30 2017-03-28 Apple Inc. Sending messages to multiple receiving electronic devices using a message server
US9876635B2 (en) * 2014-07-17 2018-01-23 Venafi, Inc. Security reliance scoring for cryptographic material and processes
US9258303B1 (en) * 2014-08-08 2016-02-09 Cellcrypt Group Limited Method of providing real-time secure communication between end points in a network
WO2016051122A1 (en) * 2014-09-30 2016-04-07 Kabushiki Kaisha Toshiba Homomorphic based method for distributing data from one or more metering devices to two or more third parties
US9860057B2 (en) * 2014-12-23 2018-01-02 Intel Corporation Diffie-Hellman key agreement using an M-of-N threshold scheme
US10122692B2 (en) * 2015-06-16 2018-11-06 Amazon Technologies, Inc. Handshake offload
CN108432205A (zh) 2015-12-16 2018-08-21 维萨国际服务协会 使用代理的安全的多方通信的系统和方法
US10581815B2 (en) * 2016-05-02 2020-03-03 Intel Corporation Technologies for secure mediated reality content publishing
SG11201807726QA (en) 2016-06-07 2018-10-30 Visa Int Service Ass Multi-level communication encryption

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200275274A1 (en) * 2019-02-26 2020-08-27 Samsung Electronics Co., Ltd. Electronic device and method for storing user identification information
US11496900B2 (en) * 2019-02-26 2022-11-08 Samsung Electronics Co., Ltd. Electronic device and method for storing user identification information
CN110545320A (zh) * 2019-08-23 2019-12-06 浙江大华技术股份有限公司 一种内网数据交互方法及设备

Also Published As

Publication number Publication date
US12047362B2 (en) 2024-07-23
RU2018125626A (ru) 2020-01-16
EP3391620A4 (en) 2018-12-26
EP3391620A1 (en) 2018-10-24
EP3391620B1 (en) 2020-02-05
AU2016369606A1 (en) 2018-05-31
US20210385201A1 (en) 2021-12-09
US11108748B2 (en) 2021-08-31
US20190014094A1 (en) 2019-01-10
WO2017106793A1 (en) 2017-06-22
RU2018125626A3 (zh) 2020-05-19

Similar Documents

Publication Publication Date Title
CN108432205A (zh) 使用代理的安全的多方通信的系统和方法
US11095624B2 (en) End-to-end encryption for personal communication nodes
US12010216B2 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
CN111756529B (zh) 一种量子会话密钥分发方法及系统
CN109891423A (zh) 使用多个控制机构的数据加密控制
US11528127B2 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
TW201537937A (zh) 統一身份認證平臺及認證方法
CN107612680A (zh) 一种移动网络支付中的国密算法
CN111756528B (zh) 一种量子会话密钥分发方法、装置及通信架构
CN114095229B (zh) 能源互联网的数据传输协议构建方法、装置和系统
Ramachandran et al. Secure and efficient data forwarding in untrusted cloud environment
CN104618362B (zh) 一种资源服务器和客户端交互会话消息的方法及装置
CN106712938A (zh) 一种量子白板通信方法和系统
Saxena et al. A Lightweight and Efficient Scheme for e-Health Care System using Blockchain Technology
CN108923923A (zh) 一种基于可信第三方的秘钥协商协议的设计及其实现方法
Yang Mobile Payment Security in the Context of Big Data: Certificateless Public Key Cryptography.
CN110247766A (zh) 一种抗中间人攻击的无协议交互的密钥协商方法
Vahidalizadehdizaj et al. A new mobile payment protocol (GMPCP) by using a new key agreement protocol (GC)
CN117880802B (zh) 虚拟电厂无线安全加密通信设计方法及系统
Kenzhebayeva et al. Simplified and Secure Authentication Scheme for the Internet of Things
Téllez et al. Security in mobile payment systems
Scholar et al. Easy and Secure Smart SMS Protocol on M-Health Environment in Mobile Computing
Sultana et al. Improved Needham-Schroeder protocol for secured and efficient key distributions
Tsai et al. LoRaWAN network server session keys establish method with the assistance of join server
Park Proxy Re-encryption Protocol in FANET

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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20180821