具有替代数字证书的网络安全系统、方法及存储介质转让专利
申请号 : CN201880011338.3
文献号 : CN110326267B
文献日 : 2021-07-02
发明人 : 彼得·扎卡里·鲍恩
申请人 : 亚马逊技术有限公司
摘要 :
权利要求 :
1.一种用于具有替代数字证书的网络安全的系统,其包括:包括处理器的计算机系统;以及包含可执行指令的存储器,作为由所述处理器执行的结果,所述可执行指令使所述系统:
接收从服务器传输到客户端的证书链,所述证书链包括:包括中间授权机构公钥和主体信息的中间证书,其中所述中间证书的有效性是能至少部分地基于所述中间证书与受信任根证书之间的第一信任链加密地验证的;以及包括终端实体公钥的终端实体证书,其中所述终端实体证书的有效性是能至少部分地基于所述中间授权机构公钥加密地验证的;
通过以下方式生成替代证书链:获得替代中间证书,所述替代中间证书包括替代中间授权机构公钥和与所述中间证书的所述主体信息相关联的主体信息,其中所述替代中间证书的有效性是能至少部分地基于所述替代中间证书与受信任的替代根证书之间的第二信任链加密地验证的;以及获得替代终端实体证书,所述替代终端实体证书包括替代终端实体公钥和与所述终端实体证书的所述主体信息相关联的主体信息,其中使用对应于所述替代中间授权机构公钥的替代中间授权机构私钥来对所述替代终端实体证书进行数字签名;以及将所述替代证书链作为所述接收到的证书链的替换物传输到所述客户端。
2.如权利要求1所述的系统,其中:所述计算机系统至少使用所述终端实体证书和所述证书链来与所述服务器建立第一加密保护的通信会话;以及
所述计算机系统至少使用所述替代证书链和对应于所述替代终端实体公钥的替代终端实体私钥来与所述客户端建立第二加密保护的通信会话。
3.如权利要求2所述的系统,其中所述存储器包含可执行指令,作为由所述处理器执行的结果,所述可执行指令还使所述系统:通过所述第二加密保护的通信会话,接收加密的消息;
解密所述加密的消息;
至少部分地基于所述解密的消息来检测指出所述服务器不应该接收所述解密的消息的条件的满足;
修改所述解密的消息,使得所述条件不再被满足;
使用所述终端实体公钥来加密所述修改的消息;以及通过所述第一加密保护的通信会话来传输所述加密的修改的消息。
4.如权利要求1所述的系统,其中所述证书链和所述替代证书链具有相同的长度。
5.一种用于具有替代数字证书的网络安全的计算机实现的方法,其包括:获得中间授权机构证书,所述中间授权机构证书包括中间授权机构公钥;
生成替代终端实体证书,所述替代终端实体证书包括:替代终端实体公钥;
与终端实体证书相关联的主体信息;
与所述终端实体证书相关联的发布者信息;并且其中所述替代终端实体证书的有效性是能至少部分地基于所述中间授权机构公钥加密地验证的;以及
至少使所述替代终端实体证书可用于替换所述终端实体证书。
6.如权利要求5所述的计算机实现的方法,其中所述中间授权机构证书的有效性能通过包括第一受信任根授权机构的信任链来加密地验证,所述第一受信任根授权机构不同于能用于确定所述终端实体证书的有效性的第二受信任根授权机构。
7.如权利要求5所述的计算机实现的方法,其中所述终端实体证书的大小和所述替代终端实体证书的大小相等。
8.如权利要求5所述的计算机实现的方法,其中:所述终端实体证书通过第一数据包获得,所述第一数据包包括协议类型和数据包大小;以及
通过第二数据包获得所述替代终端实体证书,所述第二数据包包括相同的协议类型和相同的数据包大小。
9.如权利要求8所述的计算机实现的方法,其中所述协议类型选自由以下组成的组:因特网协议(IP)、传输层安全性(TLS)、传输控制协议(TCP)和用户数据报协议(UDP)。
10.如权利要求8所述的计算机实现的方法,其中:所述终端实体证书的大小大于所述替代终端实体证书的大小;以及所述第二数据包还包括所述第二数据包的数据部分,所述数据部分包括所述替代终端实体证书和填充结构。
11.如权利要求8所述的计算机实现的方法,其中:所述终端实体证书包括终端实体公钥;
所述终端实体公钥的大小大于所述替代终端实体公钥的大小;以及所述替代终端实体证书还包括填充结构。
12.如权利要求8所述的计算机实现的方法,其中:所述终端实体证书包括终端实体公钥和一个或多个扩展字段;
所述终端实体公钥的大小小于所述替代终端实体公钥的大小;以及从所述终端实体证书获得所述主体信息包括省略所述一个或多个扩展字段的至少一部分。
13.一种非暂时性计算机可读存储介质,其上存储有可执行指令,作为由计算机系统的一个或多个处理器执行的结果,所述可执行指令使所述计算机系统至少:生成第一多个数字证书,所述多个数字证书包括第一数字证书和第二数字证书,其中:所述第一多个数字证书中的各个数字证书与第二多个数字证书的至少一个对应的数字证书相关联;以及
所述第二证书包括第一公钥和从所述第二多个数字证书中的相关联数字证书获得的发布者信息,所述相关联数字证书包括与所述第一公钥不同的第二公钥;以及作为认证过程的一部分,提供所述第一多个数字证书来代替所述第二多个数字证书。
14.如权利要求13所述的非暂时性计算机可读存储介质,其中所述第一多个数字证书至少通过以下操作来生成:
确定存储了与所述第二多个数字证书中的证书相关联的高速缓存数字证书;
获得所述高速缓存的数字证书;以及将所述高速缓存的数字证书添加到所述第一多个数字证书。
15.如权利要求13所述的非暂时性计算机可读存储介质,其中:第一信任链能至少部分地基于所述第一多个数字证书从所述第一数字证书到所述第二数字证书加密地验证;以及
第二信任链能至少部分地基于所述第二多个数字证书从所述相关联的数字证书到根证书加密地验证。
16.如权利要求13所述的非暂时性计算机可读存储介质,其中第一公钥根据第一公钥算法获得,而所述第二公钥根据与所述第一公钥算法不同的第二公钥算法而获得。
17.如权利要求13所述的非暂时性计算机可读存储介质,其中生成所述第一公钥以具有等于所述第二公钥的所述大小的大小。
18.如权利要求13所述的非暂时性计算机可读存储介质,其中所述可执行指令还使所述计算机系统:
使用所述第一公钥来与第一计算实体建立第一加密保护的通信会话;
使用所述第二公钥来与第二计算实体建立第二加密保护的通信会话;
经由所述第二加密保护的通信会话,从所述第二计算实体接收加密的消息;
对所述消息进行解密;
修改所述消息以移除敏感信息;以及经由所述第一加密保护的通信,将加密的修改的消息传输到所述第一计算实体。
19.如权利要求18所述的非暂时性计算机可读存储介质,其中所述第一加密保护的通信会话使用第一密码套件,而所述第二加密保护的通信使用不同于所述第一密码套件的第二密码套件。
20.如权利要求18所述的非暂时性计算机可读存储介质,其中修改所述消息包括识别所述敏感信息的要修改的第一部分和识别所述敏感信息的要保留的第二部分。
说明书 :
具有替代数字证书的网络安全系统、方法及存储介质
体并入本文。
背景技术
常与其他网络连接。例如,组织可使用计算资源的内部网络和由其他组织管理的计算资源
两者来支持其操作。例如,该组织的计算机可与其他组织的计算机进行通信以访问数据和/
或提供数据,同时使用另一个组织的服务。在许多情况下,组织使用由其他组织管理的硬件
来配置并操作远程网络,从而降低基础设施成本并实现其他优点。在具有此类计算资源配
置的情况下,确保对它们所持有的资源和数据的访问安全可能具有挑战性,尤其是随着此
类配置的大小和复杂性的增长。
码、信用卡号码、私人医疗信息)不会以不适当的方式传输(无论是无意的还是恶意的)带来
挑战。
附图说明
具体实施方式
字证书可由一个或多个网络安全设备用于跟踪网络活动并检测敏感信息是否以不正确的
方式传输。敏感信息可以包括组织的商业秘密、私人信息等。不应传输的敏感信息的示例可
包括信用卡号码、社会安全号码和帐户密码。网络安全设备可以用于监控、跟踪敏感信息跨
网络的传输,且响应于这种传输来执行动作。
通过一个或多个网络安全设备来路由内部网络外部的网络流量网络流量。例如,位于组织
内联网内的客户端计算机系统可以尝试与网络外部的服务器(例如,外部计算机系统)进行
通信。来自客户端的数据可以被发送到网络安全设备,并且网络安全设备可以检查数据以
确保敏感信息没有被传输到内联网外部,并且将数据转发到服务器。组织的内部网络可以
具有用于路由出站流量的多个网络安全设备,并且这些设备可以被配置为彼此进行通信
和/或利用共享计算资源。
以包括两个或更多个数字证书,其形成从终端实体证书(例如,替代服务器证书)到受信任
的根授权机构(例如,替代根授权机构证书)的信任链。替代根授权机构证书可以由替代根
授权机构(例如公司根授权机构)进行数字签名。组织的系统管理员可以调配客户端计算机
系统和/或客户端计算机系统上的软件,以便信任替代根授权机构证书。例如,可以给客户
端计算机设备的web浏览器调配包括替代根授权机构证书的受信任根证书的列表。因此,可
以形成并验证从替代服务器证书到替代根授权机构证书的有效的信任链。替代证书链的一
个或多个证书可以部分地从另一个证书链导出。替代证书可以具有与来自其他证书链的证
书相同的各种字段信息,例如主体名称、发布者名称、到期、密钥大小、密钥类型等。
户端计算机系统可以接收替代证书链并使用包括在替代服务器证书中的主体公钥来建立
加密保护的通信会话。网络安全设备和服务器可以经由第二加密保护的通信会话进行通
信,使得网络安全设备接收证书链并使用包括在服务器证书中的主体公钥来建立第二加密
保护的通信会话。
服务器证书中公钥的对应私钥,公钥用于对数据进行加密。网络安全设备可以获得未加密
的数据并确定数据是否包含敏感信息。例如,数据可以包括社会安全号码(例如,顾客的社
会安全号码)并且可以被认为是敏感信息。在检测到数据中存在正在传输的敏感信息时,可
以修改数据以便混淆或移除敏感信息。可以使用公钥对修改的数据进行加密,以传输到服
务器,使用服务器证书来获得用于加密修改的数据的公钥。
其中一些字段可以指出数据包的大小和/或数据有效载荷(例如,因特网报头长度(IHL)、总
长度和/ 或因特网协议版本4(IPv4)数据包的校验和字段)和包括证书链的至少一部分的
有效载荷。网络安全设备可以通过克隆所接收到的数据包 (例如,使用存储器复制操作)并
且用与接收到的证书或证书链大小相同的替代证书或替代证书链来替换有效载荷(例如,
IPv4数据包的IP 数据部分)来生成导出数据包。以这种方式,导出数据包的报头信息可以
具有与接收到的数据包相同的数据报头信息。在一些情况下,替代证书链的大小可以小于
所接收到的证书,并且导出的数据包可以包括填充结构,使得所接收到的数据包和所导出
的数据包的有效载荷 (例如,数据部分)具有相同的大小。数据包可以根据各种协议,例如
因特网协议版本4(IPv4)、因特网协议版本6(IPv6)和超文本传输协议 (HTTP)。更一般地,
具有报头数据和/或元数据的第一数据包可以由数据联网设备结合证书和/或证书链的传
输接收。具有相同报头和/或元数据的第二数据包可以由数据联网设备结合至少部分地从
证书链导出的替代证书或替代证书链传输。
技术可以在不具有特定细节的情况下以不同配置来实践。此外,可以省略或简化众所周知
的特征,以避免模糊所描述的技术。
网络安全设备106可以用作例如在客户端102与网络安全设备106之间以及在服务器104与
网络安全设备106之间建立一个或多个加密保护的通信会话的一部分。
网、蜂窝网络、局域网、卫星网络或任何其他这样的网络和/或其组合。客户端计算机系统
102 可以托管在可以管理一组策略的组织的网络环境中—例如,组织的网络管理员可以向
客户端计算机系统102调配一组受信任的根证书。受信任的根证书可用于诸如下级授权机
构通过使用密码例如通过生成数字签名或消息认证码(MAC)来证明数据的真实性。作为示
例,受信任的根证书可以由证书授权机构(例如,GlobalSign、DigiCert和Entrust) 发布,
或者也可以是由组织向其自己的设备发布的私有证书授权机构。在一些实施方案中,客户
端计算机系统102驻留在组织的内联网内,并且客户端计算机系统102与外部一方(例如,图
1中所示的服务器104)之间的流量可以通过位于内联网的边缘的网络安全设备106 来进行
路由。客户端计算机系统可以访问替代证书链108,替代证书链可以作为与另一实体(例如,
图1的服务器104)的通信的一部分而获得。
户端计算机系统102)可以经由诸如因特网之类的外部网络连接到服务器104。服务器可以
是任何合适的计算设备,并且可以访问客户端102可访问的计算资源。在一些实施方案中,
客户端计算机系统102可以尝试与服务器104建立加密保护的通信会话。在一些情况下,客
户端计算机系统102可能会被调配恶意代码(由于恶意软件、特洛伊木马病毒,或更一般地,
计算机安全开发),其导致客户端102尝试漏出敏感信息到服务器104。
络安全设备。在一些实施方案中,组织的内部网络内的客户端计算机系统102通过一个或多
个网络安全设备来路由内部网络外部的网络流量。例如,位于组织内联网内的客户端计算
机系统102可以尝试与网络外部的服务器104(例如,外部计算机系统)进行通信。来自客户
端102的数据可以被发送到网络安全设备106,并且网络安全设备可以检查数据以确保敏感
信息没有被传输到内联网外部,并且将数据转发到服务器104。组织的内部网络可以具有用
于路由出站流量的多个网络安全设备,并且这些设备可以被配置为彼此进行通信和/或利
用共享计算资源。网络安全设备可以实现为防火墙设备、路由器设备、交换机设备、集线器
设备和各种其他类型的计算设备。网络安全设备可以实现为上述设备中的模块,并且可以
实现为上述各种计算设备中的计算机可执行代码。
是用于存储加密密钥的加密模块。在一些实施方案中,网络安全设备106可以访问加密服
务,该加密服务执行可以由一个或多个HSM支持的各种加密操作(诸如生成数字证书)。在一
些实施方案中,网络安全设备106可以利用HSM 110和/或加密服务来生成数字证书。在一些
实施方案中,网络安全设备可以例如使用加密服务,生成由替代根授权机构签名的数字证
书。继续该示例,组织可以具有公司根授权机构,使得非对称密钥对的私钥用于对公司根授
权机构证书进行数字签名,并且公司根授权机构证书和客户端计算机系统102被调配为(例
如,由系统管理员)将公司根授权机构证书包括在受信任的根证书列表中。公司根授权机构
证书可以是替代根授权机构证书。
可以存储在证书高速缓存 112中。证书高速缓存可以使用易失性存储器(例如,随机存取存
储器) 或永久存储器(例如,硬盘驱动器)来实现,可以使用结构化存储(例如,数据库或数
据库系统)或非结构化存储(例如,作为数据文件中的比特流)来存储。在证书高速缓存112
中,数字证书可以是单独高速缓存的,或者可以包括附加的关联。例如,证书链中的链接也
可以存储在证书高速缓存中,使得替代证书可以具有到发布者证书的关联链接 (例如,在
图1中,从替代服务器证书到替代发布者证书的关联链接)。
权机构证书可以由诸如公司根授权机构之类的替代根授权机构进行数字签名,并且替代根
证书可以充当替代证书链108的信任锚。组织的系统管理员可以调配客户端计算机系统102
和/或客户端计算机系统上的软件,以便信任替代根授权机构证书。例如,可以给客户端计
算机设备102的web浏览器调配包括替代根授权机构证书的受信任根证书的列表。因此,可
以形成并验证从替代服务器证书到替代根授权机构证书的有效的信任链。在一些实施方案
中,替代证书链可以包括两个数字证书(例如,由替代根授权机构数字签名的替代服务器证
书)。在其他实施方案中,链中可以包括三个或更多个数字证书。可能存在有效的信任根,其
中可以使用受信任的根证书来以密码方式验证数字证书的有效性。在图1中,存在从替代服
务器证书到替代根授权机构证书的有效信任链,并且信任链是可以加密地验证的。
证书链。证书链114可以作为TLS握手过程的一部分来提供。在一些实施方案中,替代服务器
证书和服务器证书具有共享的共同信息,诸如主体名称、发布者名称、到期、密钥大小、密钥
类型等。在一些实施方案中,图1中所示的数字证书是根据RFC 5280的X.509v3证书,RFC
5280据此通过引用并入本文。
分,客户端计算机系统102可以接收替代证书链108并使用包括在替代服务器证书中的主体
公钥来建立加密保护的通信会话。网络安全设备106和服务器104可以经由第二加密保护的
通信会话进行通信,使得网络安全设备106接收证书链114并使用包括在服务器证书中的主
体公钥来建立第二加密保护的通信会话。
务器证书204、中间证书 206和根证书208。证书可以包括各种字段,诸如证书的主体、证书
的发布者以及主体公钥信息,主体公钥信息还可以包括主体公钥和关于主体公钥的信息,
例如密钥类型和密钥大小。证书可以是根据RFC 5280的X.509v3证书,RFC 5280据此通过引
用并入本文。
钥的服务器证书可以具有对应的私钥,服务器104将私钥用作建立TLS会话的TLS握手过程
的一部分。证书的主体字段可以是指与证书相关联的实体的标识符。例如,在服务器证书
204中,主体“服务器”可以是指诸如上面结合图 1描述的服务器之类的服务器。证书的发布
者字段可以是指对证书进行数字签名的实体。在一些实施方案中,在发布者字段中标识的
发布者可以是中间授权机构,或者可以是证书链的根授权机构。例如,在服务器证书204中,
发布者“Example_IA”可以是指已经对服务器证书 204进行数字签名的中间授权机构。证书
还可以包括关于主体的公钥信息的信息。主体公钥信息字段可以包括两个子字段—包括主
体的加密公钥的比特流的密钥字段,以及标识主体公钥的公钥算法的算法字段。例如,在服
务器证书204中,算法“RSA‑2048”可以是指主体公钥是2048比特RSA公钥,并且密钥可以是
2048比特流。服务器证书 204的公钥可以具有与图2中所示的其他证书的公钥不同的值—
注意,服务器证书204的公钥(为了说明的目的,以十六进制值0x123 开始)具有与替代服务
器证书212的公钥不同的值(也为了说明目的,其具有以0xABC开头的不同十六进制值)。
钥。中间授权机构的私钥可以用于对服务器证书204进行数字签名,并且中间证书206可以
用于通过使用中间证书206的主体公钥执行签名验证来加密地验证数字签名。在一些实施
方案中,中间证书206的主体字段和服务器证书204的发布者字段匹配(即,第一证书的发布
者字段与第二证书的主体字段匹配,其中第二证书与对第一证书进行数字签名的实体相关
联)。
书中以指出证书是根证书。例如,根据X.509v3标准的根证书208可以包括基本约束字段,该
字段还包括为真的cA字段。在一些实施方案中,可以向计算机系统调配一个或多个受信任
的根证书。另外,系统管理员可以调配计算机系统以包括附加的受信任证书,例如由组织的
内部证书授权机构发布的根证书。在一些实施方案中,组织的内部证书授权机构可以由该
组织调配的计算设备信任,但不一定被组织未调配的设备信任。与根证书208中标识的根授
权机构相关联的私钥可以用于对中间证书206进行数字签名,并且包括在根证书208中的主
体公钥可以用于加密地验证在中间证书上生成的数字签名的真实性。
实体证书(例如,中间证书206) 的发布者的公钥来验证终端实体证书的数字签名。依次,可
以获得发布者证书(例如,中间证书206),并且可以以与刚刚描述的方式相同的方式验证发
布者证书的数字签名。可以重复该过程,直到获得由根授权机构签名的证书(例如,根证书
208)。根授权机构证书可以充当证书链的信任锚。可以使用根证书中包含的公钥来验证根
证书的数字签名,并且可以执行验证以检查根证书是否包括在受信任的根证书列表中(例
如,受信任证书列表,其至少部分地由系统管理员调配)。
接链接到根证书(例如,在终端实体证书由根授权机构进行数字签名的情况下)。作为第二
示例,终端实体证书可以由第一中间授权机构进行数字签名,第一中间授权机构的证书可
以由第二中间授权机构进行数字签名,和第二中间授权机构的证书可以由根授权机构进行
数字签名。在一些实施方案中,证书链可以包括甚至更多的中间证书。
方案中描述的那些设备生成。作为示例,可以至少部分地基于诸如服务器证书204之类的另
一证书的一个或多个字段的值来生成替代服务器证书212。图2中所示的替代服务器证书
212可以通过获得服务器证书204的主体和发布者字段来生成。在一些实施方案中,替代证
书的主体信息、发布者信息或其他证书信息可以与对应证书的相应信息相关联。替代数字
证书的证书信息可以与对应数字证书的证书信息相关联,可以以各种方式相关联—例如,
关联可以是指替代证书的一个或多个字段的证书信息与包括在对应的证书中的证书信息
相同。在其他情况下,该关联可以包括数据的变换,例如,在一些情况下,证书的主体信息可
以包括人类可读字段从一种语言到另一种语言的映射。在一些实施方案中,可以导出替代
证书的附加字段,例如证书到期。在一些实施方案中,替代服务器证书212和服务器证书204
的主体公钥可以是相同的大小。例如,在图2中,替代服务器证书212可以具有2048比特密
钥,其大小被选择为匹配服务器证书204公钥大小的大小。注意,在一些实施方案中,替代证
书的密钥大小可以与导出其的证书的密钥大小相同,并且密钥类型可以是不同的。例如,替
代服务器证书212使用诸如 Diffie‑Hellman密钥交换算法之类的第一公钥算法,并且服务
器证书使用诸如RSA算法之类的第二公钥算法。替代服务器证书212可以通过与替代中间证
书214相关联的中间授权机构的私钥进行数字签名。
证书212)之类的证书。替代中间授权机构可以映射到证书链202的中间证书授权机构。替代
中间证书214的主体字段可以从对应的中间证书206的主体字段导出。在一些实施方案中,
替代中间证书的发布者字段也可以从对应的中间证书导出。替代中间证书214可以通过另
一个中间授权机构或根授权机构的私钥进行数字签名。例如,在图2中,替代中间证书214可
以由与替代根证书216相关联的根授权机构进行数字签名。
(例如,图2中所示的替代根证书216),使得替代根证书216是独立生成的,使得至少替代根
证书的主体字段和发布者字段不是从根证书208导出的。在一些实施方案中,系统管理员可
以调配计算机系统以将由组织的内部证书授权机构发布的一个或多个根证书包括到受信
任的根证书列表中。替代根证书216可以由组织的内部证书授权机构发布。在一些实施方案
中,替代根证书216和根证书208可以是相同的证书。
的列表,其包括根证书208 和替代根证书216两者。在一些实施方案中,证书链202的一个或
多个证书可以具有与替代证书链210中的对应证书相同的大小(例如,以字节为单位)。在一
些实施方案中,证书链202的大小和替代证书链210的大小相等。在一些实施方案中,替代证
书链210中的每个证书的大小都等于证书链202中的对应证书的大小(例如,替代服务器证
书212的大小与服务器证书204的大小相同,对于各个链中的所有证书,依此类推)。
信息可能指的是不应在公司内联网外传输的信息。例如,敏感信息可能包括组织的商业秘
密、员工或顾客的社会安全号码、信用卡号码等。网络安全设备304可以是根据上面结合图1
描述的网络安全设备的计算设备。在一些实施方案中,客户端计算机系统302经由一个或多
个网络安全设备与组织的内联网外的计算设备连接。网络安全设备304可以位于公司内联
网与外部网络(例如,因特网)之间的边界处,并且可以经由一个或多个网络安全设备来路
由从外部网络到客户端302的网络流量。在一些实施方案中,网络边界可以包括内联网内部
且内联网外部的计算系统或完全在内联网的子部分内的计算系统。网络边界可以基于设备
(例如在数据中心或物理办公室位置内的那些设备)的物理位置而存在。网络边界也可以基
于例如在虚拟机实例与另一计算系统(例如,在同一主机上运行的另一个虚拟机实例)之间
的虚拟和/或逻辑信息存在。更一般地,网络边界可以存在于网络流量的源与目的地之间的
各种逻辑、虚拟和/或物理位置。在一些实施方案中,网络边界可以存在于网络流量的目的
地,例如在目的地是已被隔离或列入黑名单的计算系统的情况下。服务器306可以是根据上
面结合图1描述的服务器的服务器。服务器306可以是组织的内联网外部的计算系统,客户
端302尝试与其建立TLS会话。
以经由网络安全设备304路由到服务器306。网络安全设备可以接收310第一TLS
ClientHello,并且响应于接收到第一TLS ClientHello,向服务器306传输312第二TLS
ClientHello。在一些实施方案中,第一TLS ClientHello可以包括所支持的加密算法的有
序列表(例如,从最优先的到最不优先的),而第二TLS ClientHello可以包括相同的有序列
表。然而,在其他实施方案中,网络安全设备304可以传输具有不同的列表的第二
ClientHello,并且可以包括附加的加密算法(例如,网络安全设备304支持但客户端计算机
系统302不支持的加密算法)。服务器306可以接收314第二 ClientHello。
主体公钥,其对应的私钥可由服务器306访问。证书链可以是例如以上结合图2描述的那些
的证书链,并且可以具有以受信任证书授权机构为根的信任链。证书链的真实性和完整性
可以由证书链的接收者加密地验证。真实性可以指保证消息是由声称是消息作者的一方创
建的。完整性可以指保证所接收到的消息在消息传输时没有故意地(例如,由恶意的一方)
或无意地(例如,作为在传输期间信号丢失的结果)从其原始形式被修改。网络安全设备304
可以接收ServerHello、证书链和ServerHelloDone,并且可以随后验证证书链是有效的并
且完成与服务器306的TLS握手。
根授权机构相关联的数字证书。网络安全设备304可以访问对应于替代根证书中包括的公
钥的私钥,或者可以访问可用于执行利用私钥的密码操作(例如,发布数字证书)的密码服
务。网络安全设备304可以生成320一个或多个替代中间证书。使用图2中所示的证书链来作
为示例,可以生成替代中间证书,其具有与证书链的对应中间证书相同的主体字段,以及指
出中间证书是由替代根授权机构发布和数字签名的发布者字段。回到图 3,在一些实施方
案中,替代中间证书的密钥算法可以从中间证书导出。
小相同。在一些情况下,替代证书(例如,替代中间证书)可以包括填充结构,以便匹配对应
证书的大小。填充结构例如可以是预定大小的随机或确定字节流。填充结构可以作为诸如
X.509v3数字证书之类的证书的扩展字段的一部分包括在内。作为第二示例,填充结构可以
包括在可选字段中,诸如X.509 v3数字证书的发布者唯一标识符或主体唯一标识符字段。
在一些实施方案中,替代证书的大小可以通过生成更长或更短的标识符(例如, X.509v3数
字证书的序列号字段)来匹配证书的大小,以使证书大小匹配。在一些实施方案中,替代证
书可以从对应的证书中导出至少一些证书信息并省略其他信息。例如,在一些情况下,如果
对应数字证书的所有导出字段都包括在替代证书中,则生成替代证书的系统可以确定替代
证书的大小太大(例如,大于替代证书要与其大小相等的对应数字证书)。结果,系统可以在
生成替代证书时省略和/或截断一个或多个可选字段的内容(即,省略的字段不包括在替代
证书中)。可以省略和/或截断的字段包括与撤销证书相关的备用名称和扩展。在一些示例
中,证书可以包括与撤销证书相关的多个字段,并且从该证书导出的替代证书可以省略与
撤销证书相关的多个字段中的一个或多个。在一些实施方案中,可以至少部分地基于计算
实体接收替代证书的能力来确定被省略和/或截断的字段(例如,可以省略和/或截断计算
实体不支持的扩展)。在一些实施方案中,多个中间证书可以链接在一起,其中第一中间授
权机构是第二中间授权机构的数字证书的发布者。在一些实施方案中,替代证书可以被高
速缓存(例如,在上面结合图1讨论的证书高速缓存中),并且网络安全设备可以首先检查替
代证书是否存在于高速缓存中。如果替代证书不存在,则可以如上所讨论生成一个,但是如
果在高速缓存中找到一个,则代替可以从证书高速缓存中获得高速缓存的替代证书。
行数字签名。替代服务器证书可以是终端实体证书,其可以由客户端302和网络安全设备
304用作密钥交换过程的一部分。可以使用上面讨论的替代证书来构建替代证书链。响应于
来自客户端302的第一TLS ClientHello,网络安全设备 304可以向客户端302提供
324ServerHello、替代证书链和 ServerHelloDone。
信任链是有效的并且确定替代服务器证书是真实的时,客户端302和网络安全设备304 可
以完成TLS握手,并根据TLS记录协议来传输数据。
可以由客户端计算机系统发送,其中预期接收者为服务器(例如,结合图1讨论的客户端和
服务器)。可以根据TLS的版本(例如,如2008年8月的RFC 5246中所定义的TLS版本1.2,其据
此通过引用并入)来接收加密数据。网络安全设备402可以从客户端计算机系统接收加密数
据404,其中客户端计算机系统使用包括在替代服务器证书中的公钥(例如上面结合图1‑
图3描述的那些)对数据进行加密地加密。网络安全设备402可以访问替代私钥406,该替代
私钥是替代服务器证书中公钥的对应私钥,该公钥用于对数据进行加密。网络安全设备402
可以使用替代私钥 406对加密数据404进行解密,并获得未加密数据408。
敏感信息。在检测到数据中存在正在传输的敏感信息时,可以修改数据。在一些实施方案
中,可以完全移除敏感信息(例如,在密码或个人识别号码(PIN)的情况下)。在其他情况下,
可以修改敏感信息,例如如图4所示,其中网络安全设备可以被配置为混淆一部分信息,使
得混淆的信息处于可接受的形式。在社会安全号码的情况下,传输社会安全号码的最后四
位而不是整个社会安全号码是可以接受的。可以使用公钥对修改的数据410进行加密,以便
传输给接收者。例如,为了将已修改的数据传输到服务器(例如,结合图1描述的服务器),网
络安全设备402可以获得服务器证书412,并使用服务器证书中包括的公钥来加密已修改的
数据。已加密的修改数据414可以被传输到服务器,服务器可以使用与服务器证书412中的
公钥对应的私钥来解密修改的数据。
见。同样地,作为第二 TLS握手的一部分,网络安全设备和服务器可以对使用第二对称密钥
来传输数据取得一致意见。网络安全设备可以从客户端计算机系统接收加密数据,使用第
一对称密钥来解密加密数据,检测数据中敏感信息的存在,相应地修改数据,使用第二对称
密钥来加密修改数据,以及将已加密的修改数据传输到服务器,并且也可以访问第二对称
密钥的服务器可以获得已解密的修改数据。
设备接收。网络安全设备可以接收包括IP报头504部分和IP数据506部分的第一IP数据包
502。IP报头504部分可以包括关于IP版本、因特网报头长度和总长度的信息。版本可以是指
IP数据包的版本(例如,IPv4)。因特网报头长度可以是指IP报头504的长度,其可以是可变
长度。总长度可以是指整个IP数据包的长度,其可以包括报头部分和数据部分。在各种实施
方案中,数据包通常可包括一个或多个长度字段,其指出数据包或数据包的子部分的长度。
长度和大小可以以各种度量单位来表示,包括但不限于比特、字节、字、双字(双字)等度量。
尽管图5中所示的数据包是因特网协议(IP)数据包,但是,数据包可以根据各种协议和标
准,诸如因特网协议版本4(IPv4)、因特网协议版本6(IPv6) 和超文本传输协议(HTTP)。
描述的客户端)。第二IP 数据包508可以在接收到第一IP数据包502时至少部分地由网络安
全设备生成。在一些实施方案中,网络安全设备可以通过接收第一IP 数据包502并用其他
数据(例如,替代证书链)替换第一数据包的IP数据部分(例如,证书链)以便形成可以传输
的第二IP数据包508,来生成第二IP数据包508。在一些实施方案中,例如在证书链和替代证
书链具有相同大小的那些实施方案中,第二IP数据包的IP报头510可以具有相同的因特网
报头长度、总长度以及指出IP数据包或IP数据包的子部分的大小的各种其他字段。同样,第
一IP报头504和第二 IP报头510两者都可以包括相同的校验和值。在一些实施方案中,第一
IP报头504和第二IP报头510可以是相同的(即,第一和第二IP 报头的所有字段都具有相同
的相应值),源和目的地信息排除在外。在一些实施方案中,报头的一个或多个字段可以是
不同的—例如,在一些实施方案中,报头可以包括校验和字段,该校验和字段至少部分地基
于数据部分的值。由于证书链和替代证书链的证书信息可能不同,因此可以重新计算第二
数据包的校验和,以确保第二数据包的有效性。
据联网设备结合至少部分地从证书链导出的替代证书或替代证书链传输。在一些实施方案
中,服务器证书链的大小和替代证书链的大小可以是不同的—例如,如果替代证书链小于
证书链,则可以包括填充结构作为第二数据包的IP数据 512的一部分,以便使第一IP数据
包502和第二IP数据包508的大小匹配。协议数据单元可以是指可以与信息一起传输的单
元,其示例包括数据包、帧、分段、数据报和比特流。
(IPv4)或因特网协议版本6(IPv6) 的IP数据包。数据包可以根据开放系统互连(OSI)模型
的各个层处的协议,两者都包括可以用于使用所包括的证书来建立加密保护的通信会话的
层之上和之下的层。例如,根据图5的数据包可以根据超文本传输协议(HTTP)来实现,其中
数据包可以对应于HTTP消息正文,其中报头部分对应于关于消息正文的元数据(例如,内容
长度),并且数据部分对应于消息正文数据,可用于传输证书和/或证书链。作为另一个示
例,根据图5的数据包可以实现为具有段报头部分和数据部分的传输控制协议(TCP)段。作
为又一个示例,根据图5的数据包可以实现为具有UDP报头和UDP数据的用户数据报协议
(UDP)数据报。根据图5的数据包还可以实现为具有元数据部分(例如,报头部分和帧检查部
分)和有效载荷部分的以太网帧。应该注意的是,尽管图5 示出了在每个数据包中传输整个
证书链,但是,在各种实施方案中,数据包可以各自仅包括链的一部分(例如,证书或证书的
一部分),包括证书链的多个部分的多个数据包可以传输,并在目的地重新组装。
到的证书(或者甚至是所接收到的证书的一部分)来生成替代证书,并且对于所接收到的多
个数据包中的每个数据包,生成第二多个数据包的封装所生成的替代证书的对应数据包。
第二多个数据包中的每个数据包都可以具有与第一多个数据包的对应接收到的数据包的
报头信息匹配的报头信息(诸如长度字段)。第二多个数据包的总长度(例如,以字节为单位
的大小)可以被配置为等于结合证书接收到的数据包的总长度。在一些情况下,可以生成针
对替代证书生成的每个数据包,其大小与对应的接收到的数据包的大小匹配。作为示例,考
虑证书被分段以使得在第一数据包中传输字段的第一子集,并且在第二数据包中传输不同
字段的第二子集的情况。在一些实施方案中,系统接收两个数据包,重新组装证书,生成替
代证书,并且创建具有与第一数据包相同的字段的第三数据包,并且创建具有与第二数据
包相同字段的第四数据包。第三和第四数据包可以分别具有与第一和第二数据包相同的大
小(例如,以字节为单位)。注意,虽然数据包的字段可以匹配,但是它们的值可以是不同的
(例如,源和目的地信息可以不同)。
内的计算机系统尝试与外部系统(例如,组织的内联网之外的另一计算机系统)建立TLS会
话时,可以执行该过程。
以是网络安全设备或路由器,其是第一计算机系统与第二计算机系统之间的网络路径的一
部分。系统可以经由诸如因特网之类的外部网络向第二计算机系统发送604 ClientHello。
在一些实施方案中,系统结合发送的ClientHello(例如,发送到第二计算机系统的
ClientHello)接收606包括ServerHello、证书链和ServerHelloDone的响应。证书链可以具
有可由系统加密地验证的信任链,并且证书链的终端实体证书可以包括证书,其包括与第
二计算机系统相关联的公钥。系统可以使用公钥来与第二计算机系统建立608加密保护的
通信会话(例如,TLS会话)。公钥可以用作握手协议的一部分,以在执行过程600的系统与第
二计算机系统之间协商共享秘密。应当注意,可以使用各种协议来接收证书链,并且可以以
各种抽象级别将其封装在各种逻辑结构中。例如,可以至少部分地在一个或多个IP数据包
中接收证书链。还可以至少部分地在HTTP消息正文中接收证书链(在与前一句中描述的相
同实施方案中或在不同实施方案中)。
中,系统可以使用加密服务来生成替代证书链的一个或多个证书和/或访问证书高速缓存
以获得一个或多个替代证书。替代证书可以具有到受信任的替代根证书的信任链,替代根
证书充当信任锚并在组织内发布。第一计算机系统可以信任替代证书(例如,第一计算机系
统可以由系统管理员调配以包括替代根证书作为受信任证书)。在一些实施方案中,替代证
书链可以具有与所接收到的证书链相同的长度(即,链具有相同数量的证书)和/ 或相同的
大小(例如,以字节为单位)。替代证书链的生成可以根据下面结合图7描述的过程来执行。
私钥来与第一计算机系统建立614 加密保护的通信会话。数据可以以各种方式提供给计算
实体—例如,可以通过在一个或多个消息中传输所请求的数据来使数据可用于计算实体,
或者可以通过将数据存储在计算实体可以访问的数据存储库 (例如,网络存储设备)中,并
向计算实体提供诸如令牌、统一资源标识符(URI)、统一资源定位符(URL)等信息(其可以用
于指出何处和/或如何从数据存储库中获取资源)来使数据可用。
如,组织可以支持在内部网络内的通信中使用的第一组密码套件,使得系统与第一计算机
系统(其可以完全在内部网络内)之间的加密保护的通信会话使用从第一组密码套件中选
择的一个密码套件。继续该示例,组织可以支持第二组密码套件,用于系统与可以在组织的
内部网络之外的第二计算机系统之间的通信。系统与第二计算机系统之间的加密保护的通
信会话可以使用从第二组密码套件中选择的不同的密码套件。在一些实施方案中,系统可
以检测到第一计算机正在使用适合于内部通信(例如,组织内联网内的通信)的配置,尝试
连接第二计算机系统,并且可以使用该配置来建立与第一计算机系统的通信会话,并且还
选择适合于外部通信(例如,通过因特网进行通信)的不同配置以建立与第二计算机系统的
通信会话。在一些情况下,可以是网络安全设备的系统可以使用第一密码套件来从第一计
算机系统接收发往第二计算机系统的 ClientHello,并通过使用第二、更强的密码套件来
升级连接,以在系统与第二计算机系统之间建立加密保护的通信会话。在一些情况下,系统
可以检测到第一计算机系统与第二计算机系统协商的密码套件不被第二计算机系统支持,
并且可以降级系统与第二计算机系统之间的连接(例如,通过使用不同的、较弱的密码套
件,来在网络安全设备与服务器之间建立加密保护的通信会话),但是为系统与第一计算机
系统之间的连接使用更强的密码套件。
执行,网络安全设备可以经由应用编程接口与加密服务进行通信。过程700可以结合上面结
合图 6描述的握手过程来执行。系统可以接收702形成从根授权机构到终端实体的信任链
的证书列表。证书链可以包括两个或更多个数字证书。
由组织内的计算设备信任。系统可以从所接收到的证书列表获得706证书。在一些实施方案
中,获得所接收到的证书链的根证书之后的第一证书。系统可以检查708是否可以通过证书
高速缓存(例如结合图1描述的证书高速缓存)访问对应于所获得的证书的替代证书。证书
高速缓存可以具有证书到替代证书的映射,该映射可以用于确定从接收到的证书链获得的
特定证书是否已被高速缓存。如果检查确定证书被高速缓存,则获得对应的替代证书并将
其添加718到替代证书链。但是,如果在高速缓存中未找到证书,则可以生成与证书对应的
替代证书。在一些实施方案中,系统可以不使用证书高速缓存,并且系统可以绕过检查708
并执行与替代证书的生成相关的步骤。
中的先前证书相关联的实体的发布者(例如,在本示例中,替代根授权机构)。在一些实施方
案中,从获得的证书中导出附加字段,例如加密密钥类型和密钥大小。随后,系统可以使用
与替代证书链中的先前证书相关联的私钥(例如,在这种情况下,对应于包括在替代根证书
中的公钥的私钥)来对数字证书进行数字签名712。加密服务可用于执行结合替代证书的生
成描述的一些或所有加密操作。
否有更多证书在获得的证书列表中。如果有更多证书,则系统可以从证书列表中获得下一
个证书,并从证书高速缓存中获得对应的替代证书或生成对应的替代证书。替代证书可以
迭代地执行该过程,直到它确定列表中不再有证书,然后使替代证书链可用720,例如,参考
上面结合以上图1‑图6描述的实施方案。
信会话来接收802第一加密消息。会话可以是在内部网络内的第一计算机系统与网络安全
设备之间建立的TLS会话。可以根据上面结合图6描述的过程来建立加密保护的通信会话。
算机系统。计算机系统可能已经使用替代公钥对消息执行加密操作以生成第一加密消息。
在一些实施方案中,系统可以使用至少部分地使用替代私钥获得的加密密钥来解密第一加
密消息。例如,作为TLS握手协议的一部分,系统可接收加密的秘密并使用替代私钥来解密
加密的秘密。该秘密可用于确定可用于解密第一加密消息的对称密钥。
社会安全号码、信用卡号码等。如果系统确定有敏感信息包括在消息中,则系统可以修改
808消息以移除敏感信息的至少一部分。例如,系统可以被配置为部分地修改以下类型的敏
感信息:社会安全号码(混淆前5个数字,但允许传输最后4个数字);信用卡号码(混淆信用
卡号码的所有数字,但最后 4位数字除外);和电子邮件地址(混淆地址和域名的所有字母,
但前两个字母除外)。更一般地,系统可以识别敏感信息的要修改的第一部分和识别敏感信
息的可以保留(即,未修改)的第二部分。可以将敏感信息的保留部分传输给接收者(例如,
结合图1描述的服务器)。在一些实施方案中,可以完全移除敏感信息(例如,可以通过用预
定固定数量的星号字符替换密码来完全混淆密码)。
书获得的。在一些实施方案中,系统可以使用在系统与要接收消息的实体之间的握手过程
期间获得的第二对称密钥来加密修改的消息,方式与上面结合解密步骤804 描述的方式类
似。如果消息未被修改,则系统可以通过执行刚刚描述的加密步骤来生成810第二加密消
息,但是使用未修改的消息作为加密操作的输入。
消息中,则系统可以拒绝将消息递送给接收者计算机系统,而不是生成修改的消息。拒绝将
消息递送给接收者计算机系统可以以各种方式完成,例如通过简单地接收消息(例如,以上
面在步骤802中描述的方式)并且不将消息或修改的消息传输到接收者计算机系统。在一些
实施方案中,系统还可以向在步骤802中传输消息的计算实体发送系统未能将消息递送给
接收者的指示。在一些实施方案中,例如在响应于请求将消息传输到接收者计算机系统的
那些实施方案中,系统可以向接收者计算机系统提供未能履行请求的指示,例如指示超时
或错误代码。
实施各种实施方案。环境包括电子客户端设备902,所述电子客户端设备可以包括可操作来
通过适当网络904发送和/或接收请求、消息或信息并且在一些实施方案中将信息传送回设
备的用户的任何适当设备。此类客户端设备的示例包括个人计算机、手机、手持式消息传送
设备、膝上型计算机、平板计算机、机顶盒、个人数据助理、嵌入式计算机系统、电子书阅读
器等。网络可以包括任何适当网络,包括内联网、因特网、蜂窝网络、局域网、卫星网络或任
何其他此类网络和/或上述网络的组合。用于这种系统的部件可至少部分地取决于所选择
的网络和/或环境的类型。用于通过这样的网络进行通信的许多协议和部件是公知的,将不
在此进行详细讨论。经由网络的通信可以通过有线或无线连接以及其组合来实现。在此示
例中,网络包括因特网和/或其他可公开寻址的通信网络,因为环境包括用于接收请求并且
响应于所述请求而提供内容的 web服务器906,但是对于其他网络来说,可以使用提供类似
目的的备选设备,如对本领域的普通技术人员明显的。
以执行诸如从适当的数据存储区获得数据之类的任务。如本文所使用的服务器可以以各种
方式实现,例如硬件设备或虚拟计算机系统。在一些背景下,服务器可以指代正在计算机系
统上执行的编程模块。如本文中所使用,除非另有说明或从上下文中清楚,否则术语“数据
存储区”是指能够存储、访问并检索数据的任何设备或设备的组合,所述设备或设备的组合
可以包括在任何标准、分布式、虚拟或群集环境中的数据服务器、数据库、数据存储设备以
及数据存储介质的任何组合和任何数量的所述数据服务器、数据库、数据存储设备以及数
据存储介质。应用服务器可以包括任何适当的硬件、软件和固件,所述硬件、软件和固件用
于根据需要与数据存储区集成以执行客户端设备的一个或多个应用的方面、处理应用的数
据访问和业务逻辑中的一些或全部。应用服务器可以与数据存储区协作来提供访问控制服
务,并且能够生成包括但不限于以下各项的内容:文本、图形、音频、视频和/或可用于提供
给用户的其他内容,所述内容可由web服务器以超文本标记语言(“HTML”)、可扩展标记语言
(“XML”)、JavaScript、级联样式表(“CSS”)、JavaScript 对象表示法(JSON)和/或另一适当
的客户端侧结构化语言的形式提供给用户。传送到客户端设备的内容可以由客户端设备处
理,以便以一种或多种形式提供内容,所述形式包括但不限于用户可通过听觉、视觉和/或
通过其他感觉来感知的形式。在此示例中,对全部请求和响应的处理以及客户端设备902与
应用服务器908之间的内容递送可由 web服务器使用PHP:超文本预处理器(“PHP”)、
Python、Ruby、Perl、 Java、HTML、XML、JSON和/或另一种适当服务器侧结构化语言来处理。
此外,除非另外从上下文中清楚,否则在本文中被描述为由单个设备执行的操作可以由可
能形成分布式和/或虚拟系统的多个设备共同地执行。
数据存储区可包括用于存储生产数据912和用户信息916的机制,生产数据和用户信息可用
于提供用于生产侧的内容。数据存储区还被示为包括用于存储日志数据 914的机制,所述
日志数据可用于报告、分析或其他这类目的。应当理解,可能存在可能需要存储在数据存储
区中的许多其他方面,如页面图像信息和访问权信息,所述方面可视情况存储在上文列出
的机制中的任意机制中或存储在数据存储区910中的额外机制中。数据存储区910可以通过
与其相关联的逻辑来操作,以便从应用服务器908接收指令,并且响应于所述指令获得数
据、更新数据或以其他方式处理数据。应用服务器908可以响应于所接收指令而提供静态、
动态数据或静态和动态数据的组合。诸如在web日志(博客)、购物应用、新闻服务以及其他
此类应用中使用的数据之类的动态数据可以由如本文所描述的服务器侧结构化语言生成
或者可以由在应用服务器上操作或在其控制下的内容管理系统(“CMS”)提供。在一个示例
中,通过由用户操作的设备,用户可以提交针对某一类型的项目的搜索请求。在这种情况
下,数据存储区可以访问用户信息来验证用户的身份,并且可以访问目录详细信息以获得
有关所述类型的项目的信息。随后,可将信息诸如以网页上的结果列表的形式返回给用户,
用户能够通过用户设备902上的浏览器来查看所述网页。可以在专用浏览器页面或窗口中
查看感兴趣的特定项目的信息。然而,应注意,本公开的实施方案不一定限于网页的上下
文,而是可以更普遍地适用于处理一般的请求,其中请求不一定是对内容的请求。
储器、只读存储器等),所述指令在由服务器的处理器执行时(即,作为被执行的结果)允许
服务器执行其预期的功能。
互连。但是,本领域普通技术人员应理解,这种系统可在具有比图9所示的部件更少或更多
部件的系统中同样顺利地操作。因此,图9中的系统900的描绘本质上应视为说明性的,并且
不限制本公开的范围。
基于所述替代中间证书与受信任的替代根证书之间的第二信任链加密地验证的;以及
公钥的替代中间授权机构私钥来对所述终端实体证书进行数字签名;以及
可用于确定所述终端实体证书的有效性的第二受信任根授权机构。
二密码套件。
客户端设备可以包括多种计算机中的任一种,诸如运行标准操作系统的台式计算机、膝上
型计算机或平板计算机,以及运行移动软件并且能够支持多种网络和消息传递协议的蜂窝
式、无线和手持设备。这样的系统还可以包括多个工作站,它们运行各种可商购的操作系统
中的任何一种以及用于诸如开发和数据库管理之类的用途的其他已知应用。这些设备还可
以包括其他电子设备,诸如虚拟终端、瘦客户端、游戏系统以及能够经由网络进行通信的其
他设备。这些设备还可以包括虚拟设备,例如虚拟机、管理程序和能够经由网络进行通信的
其他虚拟设备。
IP”)、用户数据报协议(“UDP”)、在开放系统互连(“OSI”)模型的各个层中操作的协议、文件
传送协议 (“FTP”)、通用即插即用(“UpnP”)、网络文件系统(“NFS”)、公共因特网文件系统
(“CIFS”)以及AppleTalk。网络可以是例如局域网、广域网、虚拟专用网、因特网、内联网、外
联网、公用交换电话网、红外网络、无线网、卫星网络以及上述网络的任何组合。在一些实施
方案中,面向连接的协议可以用于在网络端点之间进行通信。面向连接的协议(有时被称为
基于连接的协议)能够以有序流的形式传输数据。面向连接的协议可以是可靠或不可靠的。
例如,TCP协议是一种可靠的面向连接的协议。异步传输模式(“ATM”)和帧中继是不可靠的
面向连接的协议。面向连接的协议与面向数据包的协议(诸如UDP)形成对比,所述面向数据
包的协议在没有保证排序的情况下传输数据包。
器、数据服务器、Java服务器、Apache服务器以及业务应用服务器。服务器还可以能够响应
于来自用户设备的请求而执行程序或脚本,诸如,通过执行可以实施为用任何编程语言(诸
如, C、C#或C++)或任何脚本语言(诸如, Ruby、PHP、Perl、Python或TCL)以及其组合
编写的一个或多个脚本或程序的一个或多个web应用。服务器还可包含数据库服务器,包含
但不限于可商购自 以及 的那些服务器以及开源
服务器,例如MySQL、Postgres、SQLite、MongoDB,以及能够存储、检索以及访问结构化或非
结构化数据的任何其他服务器。数据库服务器可以包括基于表的服务器、基于文档的服务
器、非结构化服务器、关系服务器、非关系服务器或这些和/或其他数据库服务器的组合。
中)的存储介质上,或在网络上远离任何或所有计算机的存储介质上。在一组特定的实施方
案中,信息可以驻留在本领域技术人员熟悉的存储区域网络(“SAN”)中。类似地,用于执行
归因于计算机、服务器或其他网络设备的功能的任何必要文件可以在适当的情况下本地
和/或远程存储。在系统包括计算机化设备的情况下,每一个这种设备都可包括可通过总线
电耦合的硬件元件,所述元件包括例如至少一个中央处理单元(“CPU”或“处理器”)、至少一
个输入设备(例如,鼠标、键盘、控制器、触摸屏或小键盘)和至少一个输出设备(例如,显示
设备、打印机或扬声器)。此类系统还可以包括一个或多个存储设备,诸如磁盘驱动器、光存
储设备和固态存储设备,诸如随机存取存储器(“RAM”)或只读存储器(“ROM”),以及可移动
介质设备、存储卡、闪存卡等。
介质读取器可以与计算机可读存储介质连接或被配置成接收计算机可读存储介质,所述计
算机可读存储介质表示远程、本地、固定和/或可移动的存储设备,以及用于临时和/或更永
久地含有、存储、传输和检索计算器可读信息的存储介质。系统和各种设备通常还将包括位
于至少一个工作存储器设备内的多个软件应用、模块、服务或其他元件,包括操作系统和应
用程序,诸如客户端应用或web浏览器。此外,也可以使用定制的硬件和/或特定元件可以用
硬件、软件(包括移植性软件,例如小应用)或两者来实现。此外,可以采用到诸如网络输入/
输出设备之类的其他计算设备的连接。
信息(诸如,计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的
易失性和非易失性、可移动和不可移动介质,包括RAM、ROM、电可擦除可编程只读存储器
(“EEPROM”)、闪存或其他存储器技术、压缩盘只读存储器(“CD‑ROM”)、数字通用盘(DVD)或
其他光学存储设备、磁带盒、磁带、磁盘存储设备或其他磁存储装置,或者可以用于存储所
需信息且可由系统设备访问的任何其他介质。基于本文中提供的公开和教导,本领域普通
技术人员将理解用于实施各种实施方案的其他方式和/或方法。
改和改变。
理解,并不意图将本发明限于所公开的一种或多种特定形式,相反,本发明旨在覆盖落入本
发明的精神和范围内的所有修改、替代构造和等效物,如所附权利要求中所限定。
指称对象的使用应被解释为涵盖单数和复数两者。除非另有说明,否则术语“包括”、“具
有”、“包括”和“含有”将被解释为开放式术语(即,意味着“包括但不限于”)。在未经修改且
涉及物理连接的情况下,术语“连接”应被解释为部分或全部包含在内、附接到或接合在一
起,即使存在某些介入。除非本文另有说明,否则本文中值的范围的列举仅意图用作单独提
及落在该范围内的每个单独值的速记方法,并且每个单独的值并入本说明书中,如同在本
文中单独列举一样。除非另有说明或与上下文矛盾,否则术语“集合”(例如,“项目集合”)或
“子集”的使用应被解释为包括一个或多个成员的非空集合。此外,除非另有说明或与上下
文矛盾,否则术语对应集合的“子集”未必表示对应集合的真子集,而是子集和对应集合可
以相等。
为表示某一项目、项等可以是A或B或C,或者A和B和C的集合的任何非空子集。例如,在具有
三个成员的集合的说明性示例中,连接短语“A、B和C中的至少一个”和“A、B和C中的至少一
个”是指以下集合中的任一者: {A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}。因此,此类连
接语言通常并不意图暗示某些实施方案需要A中的至少一个、 B中的至少一个和C中的至少
一个各自存在。
指令的一个或多个计算机系统的控制下执行,并且可以实施为在一个或多个处理器上共同
地执行的代码(例如,可执行指令、一个或多个计算机程序或者一个或多个应用),通过硬件
来实施或其组合来实施。代码可以存储在计算机可读存储介质上,例如以包括可由一个或
多个处理器执行的多个指令的计算机程序的形式存储。计算机可读存储介质可以是非暂时
性的。在一些实施方案中,代码存储在一个或多个非暂时性计算机可读存储介质的集合上,
其上存储有可执行指令,当由计算机系统的一个或多个处理器执行时(即,作为被执行的结
果),所述指令使得计算机系统执行这里描述的操作。该非暂时性计算机可读存储介质集合
可以包括多个非暂时性计算机可读存储介质,并且多个非暂时性计算机可读存储介质中的
单独的非暂时性存储介质的一个或多个可能并非包含所有代码,而多个非暂时性计算机可
读存储介质共同存储所有代码。
硬件和/或软件。此外,实施本公开的各种实施方案的计算机系统在一些示例中可以是单个
设备,而在其他示例中,是包括多个设备的分布式计算机系统,所述多个设备不同地操作,
使得分布式计算机系统执行本文中描述的操作,并且使得单个设备不能执行所有操作。
书中的语言不应被解释为表示任何未要求保护的元素是实践本发明所必需的。
本发明人期望本领域技术人员适当地使用此类变化,并且发明人意图以与本文中的具体描
述不同的方式实践本公开的实施方案。因此,本公开的范围包括如适用法律所允许的对所
附权利要求中叙述的主题的所有修改和等效物。此外,除非本文中另有说明或另外明确地
与上下文矛盾,否则本公开的范围涵盖其全部可能变化中的上述元素的任何组合。
阐述一样。