具有替代数字证书的网络安全系统、方法及存储介质转让专利

申请号 : CN201880011338.3

文献号 : CN110326267B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 彼得·扎卡里·鲍恩

申请人 : 亚马逊技术有限公司

摘要 :

诸如网络安全设备之类的计算设备接收证书链中的一个或多个数字证书,并生成形成替代证书链的一个或多个替代数字证书。可以使用来自所接收到的证书链的对应数字证书的证书信息来生成替代证书。在一些情况下,所接收到的证书链可以具有受信任的根证书,所述受信任的根证书是所接收到的证书链的信任锚,并且所生成的替代证书链可以具有不同的受信任根证书,所述不同的受信任根证书是所述替代证书链的所述信任锚。所述证书链的加密密钥可用于建立加密保护的通信会话。所述计算设备可以利用所述证书链中包括的加密密钥来监控网络流量以对数据进行加密。可以对所述加密数据进行解密和检查,以确定是否以不正确的方式传输敏感信息。

权利要求 :

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所述的非暂时性计算机可读存储介质,其中修改所述消息包括识别所述敏感信息的要修改的第一部分和识别所述敏感信息的要保留的第二部分。

说明书 :

具有替代数字证书的网络安全系统、方法及存储介质

[0001] 相关申请的交叉引用
[0002] 本申请要求2017年2月13日提交的标题为“NETWORK SECURITY WITH SURROGATE DIGITAL CERTIFICATES”的美国专利申请号15/431,496的优先权,其公开内容通过引用整
体并入本文。

背景技术

[0003] 在许多背景下,计算资源和相关数据的安全性非常重要。作为示例,组织通常利用计算设备的网络来向它们的用户提供一组稳健的服务。网络通常跨越多个地理边界,且常
常与其他网络连接。例如,组织可使用计算资源的内部网络和由其他组织管理的计算资源
两者来支持其操作。例如,该组织的计算机可与其他组织的计算机进行通信以访问数据和/
或提供数据,同时使用另一个组织的服务。在许多情况下,组织使用由其他组织管理的硬件
来配置并操作远程网络,从而降低基础设施成本并实现其他优点。在具有此类计算资源配
置的情况下,确保对它们所持有的资源和数据的访问安全可能具有挑战性,尤其是随着此
类配置的大小和复杂性的增长。
[0004] 现代加密算法提供高水平的数据安全性。然而,一个组织内的用户和实体使用加密操作可能会给该组织监控网络的安全性并确保敏感信息(例如,商业秘密、社会安全号
码、信用卡号码、私人医疗信息)不会以不适当的方式传输(无论是无意的还是恶意的)带来
挑战。

附图说明

[0005] 将参考附图来描述各种技术,在附图中:
[0006] 图1示出了可以实践各种实施方案的环境的说明性示例;
[0007] 图2示出了替代证书链的说明性示例;
[0008] 图3示出了握手过程的说明性示例;
[0009] 图4示出了监控网络流量的网络安全设备的说明性示例;
[0010] 图5示出了根据各种实施方案的数据包的说明性示例;
[0011] 图6示出了图示用于建立加密保护的通信会话的过程的图;
[0012] 图7示出了图示用于生成替代证书链的过程的图;
[0013] 图8示出了图示用于监控和保护网络上的敏感数据的过程的图;以及
[0014] 图9说明了可实现各种实施方案的环境。

具体实施方式

[0015] 本文档描述了用于通过使用替代数字证书来防止未授权的数据导出以及确保信息安全的技术。本文档中描述的系统可用于生成、存储、分发和使用替代数字证书,替代数
字证书可由一个或多个网络安全设备用于跟踪网络活动并检测敏感信息是否以不正确的
方式传输。敏感信息可以包括组织的商业秘密、私人信息等。不应传输的敏感信息的示例可
包括信用卡号码、社会安全号码和帐户密码。网络安全设备可以用于监控、跟踪敏感信息跨
网络的传输,且响应于这种传输来执行动作。
[0016] 网络安全设备可以是位于组织的网络(例如,内联网)的边界处并且检查跨网络边界接收和/或传输的数据的计算机设备或模块。组织内部网络内的客户端计算机系统可以
通过一个或多个网络安全设备来路由内部网络外部的网络流量网络流量。例如,位于组织
内联网内的客户端计算机系统可以尝试与网络外部的服务器(例如,外部计算机系统)进行
通信。来自客户端的数据可以被发送到网络安全设备,并且网络安全设备可以检查数据以
确保敏感信息没有被传输到内联网外部,并且将数据转发到服务器。组织的内部网络可以
具有用于路由出站流量的多个网络安全设备,并且这些设备可以被配置为彼此进行通信
和/或利用共享计算资源。
[0017] 网络安全设备可用于生成替代证书和替代证书链。网络安全设备可以访问硬件安全模块(HSM)和/或证书高速缓存,作为生成一个或多个替代证书的一部分。替代证书链可
以包括两个或更多个数字证书,其形成从终端实体证书(例如,替代服务器证书)到受信任
的根授权机构(例如,替代根授权机构证书)的信任链。替代根授权机构证书可以由替代根
授权机构(例如公司根授权机构)进行数字签名。组织的系统管理员可以调配客户端计算机
系统和/或客户端计算机系统上的软件,以便信任替代根授权机构证书。例如,可以给客户
端计算机设备的web浏览器调配包括替代根授权机构证书的受信任根证书的列表。因此,可
以形成并验证从替代服务器证书到替代根授权机构证书的有效的信任链。替代证书链的一
个或多个证书可以部分地从另一个证书链导出。替代证书可以具有与来自其他证书链的证
书相同的各种字段信息,例如主体名称、发布者名称、到期、密钥大小、密钥类型等。
[0018] 客户端计算机系统和网络安全设备可以经由第一加密保护的通信会话(例如传输层安全性(TLS)会话)进行通信。作为建立第一加密保护通信会话的握手过程的一部分,客
户端计算机系统可以接收替代证书链并使用包括在替代服务器证书中的主体公钥来建立
加密保护的通信会话。网络安全设备和服务器可以经由第二加密保护的通信会话进行通
信,使得网络安全设备接收证书链并使用包括在服务器证书中的主体公钥来建立第二加密
保护的通信会话。
[0019] 网络安全设备可用于跟踪网络流量。网络安全设备可以接收由客户端计算机系统发送的以服务器作为预期接收者的加密数据,并且可以访问替代私钥,该替代私钥是替代
服务器证书中公钥的对应私钥,公钥用于对数据进行加密。网络安全设备可以获得未加密
的数据并确定数据是否包含敏感信息。例如,数据可以包括社会安全号码(例如,顾客的社
会安全号码)并且可以被认为是敏感信息。在检测到数据中存在正在传输的敏感信息时,可
以修改数据以便混淆或移除敏感信息。可以使用公钥对修改的数据进行加密,以传输到服
务器,使用服务器证书来获得用于加密修改的数据的公钥。
[0020] 证书和替代证书可以封装在各种类型的数据包中,作为跨一个或多个网络传输的一部分。网络安全设备可以接收包括数据包报头的第一数据包,数据包报头包括各种字段,
其中一些字段可以指出数据包的大小和/或数据有效载荷(例如,因特网报头长度(IHL)、总
长度和/ 或因特网协议版本4(IPv4)数据包的校验和字段)和包括证书链的至少一部分的
有效载荷。网络安全设备可以通过克隆所接收到的数据包 (例如,使用存储器复制操作)并
且用与接收到的证书或证书链大小相同的替代证书或替代证书链来替换有效载荷(例如,
IPv4数据包的IP 数据部分)来生成导出数据包。以这种方式,导出数据包的报头信息可以
具有与接收到的数据包相同的数据报头信息。在一些情况下,替代证书链的大小可以小于
所接收到的证书,并且导出的数据包可以包括填充结构,使得所接收到的数据包和所导出
的数据包的有效载荷 (例如,数据部分)具有相同的大小。数据包可以根据各种协议,例如
因特网协议版本4(IPv4)、因特网协议版本6(IPv6)和超文本传输协议 (HTTP)。更一般地,
具有报头数据和/或元数据的第一数据包可以由数据联网设备结合证书和/或证书链的传
输接收。具有相同报头和/或元数据的第二数据包可以由数据联网设备结合至少部分地从
证书链导出的替代证书或替代证书链传输。
[0021] 在前面和后面的描述中,描述了各种技术。出于解释的目的,将阐述特定的配置和细节,以便提供对实施所述技术的可能方式的透彻理解。然而,还明显的是,下面所描述的
技术可以在不具有特定细节的情况下以不同配置来实践。此外,可以省略或简化众所周知
的特征,以避免模糊所描述的技术。
[0022] 图1是可以实践本公开的各种实施方案的环境100的说明性示例。在实施方案中,客户端计算机系统102和服务器104可以使用网络安全设备106进行通信(例如,经由网络)。
网络安全设备106可以用作例如在客户端102与网络安全设备106之间以及在服务器104与
网络安全设备106之间建立一个或多个加密保护的通信会话的一部分。
[0023] 客户端计算机系统102可以是使用硬件、软件或两者的组合实现的计算机系统。客户端计算机系统102可以被配置为经由各种类型的网络来进行通信,网络包括内联网、因特
网、蜂窝网络、局域网、卫星网络或任何其他这样的网络和/或其组合。客户端计算机系统
102 可以托管在可以管理一组策略的组织的网络环境中—例如,组织的网络管理员可以向
客户端计算机系统102调配一组受信任的根证书。受信任的根证书可用于诸如下级授权机
构通过使用密码例如通过生成数字签名或消息认证码(MAC)来证明数据的真实性。作为示
例,受信任的根证书可以由证书授权机构(例如,GlobalSign、DigiCert和Entrust) 发布,
或者也可以是由组织向其自己的设备发布的私有证书授权机构。在一些实施方案中,客户
端计算机系统102驻留在组织的内联网内,并且客户端计算机系统102与外部一方(例如,图
1中所示的服务器104)之间的流量可以通过位于内联网的边缘的网络安全设备106 来进行
路由。客户端计算机系统可以访问替代证书链108,替代证书链可以作为与另一实体(例如,
图1的服务器104)的通信的一部分而获得。
[0024] 服务器104可以是使用硬件、软件或其组合实现的计算机系统。在一些实施方案中,服务器104可以是位于组织的内联网之外的计算机,并且内联网内的计算设备(例如,客
户端计算机系统102)可以经由诸如因特网之类的外部网络连接到服务器104。服务器可以
是任何合适的计算设备,并且可以访问客户端102可访问的计算资源。在一些实施方案中,
客户端计算机系统102可以尝试与服务器104建立加密保护的通信会话。在一些情况下,客
户端计算机系统102可能会被调配恶意代码(由于恶意软件、特洛伊木马病毒,或更一般地,
计算机安全开发),其导致客户端102尝试漏出敏感信息到服务器104。
[0025] 网络安全设备106可以是位于组织的网络(例如,内联网)的边界处并且检查跨网络边界接收和/或传输的数据的计算机设备或模块。可以使用硬件、软件或其组合来实现网
络安全设备。在一些实施方案中,组织的内部网络内的客户端计算机系统102通过一个或多
个网络安全设备来路由内部网络外部的网络流量。例如,位于组织内联网内的客户端计算
机系统102可以尝试与网络外部的服务器104(例如,外部计算机系统)进行通信。来自客户
端102的数据可以被发送到网络安全设备106,并且网络安全设备可以检查数据以确保敏感
信息没有被传输到内联网外部,并且将数据转发到服务器104。组织的内部网络可以具有用
于路由出站流量的多个网络安全设备,并且这些设备可以被配置为彼此进行通信和/或利
用共享计算资源。网络安全设备可以实现为防火墙设备、路由器设备、交换机设备、集线器
设备和各种其他类型的计算设备。网络安全设备可以实现为上述设备中的模块,并且可以
实现为上述各种计算设备中的计算机可执行代码。
[0026] 另外,网络安全设备106可以用于生成替代证书。网络安全设备可以访问硬件安全模块110(HSM)和/或证书高速缓存112,作为生成替代证书的一部分。硬件安全模块110可以
是用于存储加密密钥的加密模块。在一些实施方案中,网络安全设备106可以访问加密服
务,该加密服务执行可以由一个或多个HSM支持的各种加密操作(诸如生成数字证书)。在一
些实施方案中,网络安全设备106可以利用HSM 110和/或加密服务来生成数字证书。在一些
实施方案中,网络安全设备可以例如使用加密服务,生成由替代根授权机构签名的数字证
书。继续该示例,组织可以具有公司根授权机构,使得非对称密钥对的私钥用于对公司根授
权机构证书进行数字签名,并且公司根授权机构证书和客户端计算机系统102被调配为(例
如,由系统管理员)将公司根授权机构证书包括在受信任的根证书列表中。公司根授权机构
证书可以是替代根授权机构证书。
[0027] 在一些实施方案中,网络安全设备106可以包括和/或可以访问证书高速缓存112。当生成替代证书时,替代证书可以存储在证书高速缓存112中,并且替代证书到证书的映射
可以存储在证书高速缓存 112中。证书高速缓存可以使用易失性存储器(例如,随机存取存
储器) 或永久存储器(例如,硬盘驱动器)来实现,可以使用结构化存储(例如,数据库或数
据库系统)或非结构化存储(例如,作为数据文件中的比特流)来存储。在证书高速缓存112
中,数字证书可以是单独高速缓存的,或者可以包括附加的关联。例如,证书链中的链接也
可以存储在证书高速缓存中,使得替代证书可以具有到发布者证书的关联链接 (例如,在
图1中,从替代服务器证书到替代发布者证书的关联链接)。
[0028] 替代证书链108可以包括两个或更多个数字证书,其形成从终端实体证书(例如,替代服务器证书)到受信任的根授权机构(例如,替代根授权机构证书)的信任链。替代根授
权机构证书可以由诸如公司根授权机构之类的替代根授权机构进行数字签名,并且替代根
证书可以充当替代证书链108的信任锚。组织的系统管理员可以调配客户端计算机系统102
和/或客户端计算机系统上的软件,以便信任替代根授权机构证书。例如,可以给客户端计
算机设备102的web浏览器调配包括替代根授权机构证书的受信任根证书的列表。因此,可
以形成并验证从替代服务器证书到替代根授权机构证书的有效的信任链。在一些实施方案
中,替代证书链可以包括两个数字证书(例如,由替代根授权机构数字签名的替代服务器证
书)。在其他实施方案中,链中可以包括三个或更多个数字证书。可能存在有效的信任根,其
中可以使用受信任的根证书来以密码方式验证数字证书的有效性。在图1中,存在从替代服
务器证书到替代根授权机构证书的有效信任链,并且信任链是可以加密地验证的。
[0029] 在一些实施方案中,替代证书链108的一个或多个证书可以部分地从证书链114导出。证书链114可以是具有受信任根证书和包括服务器104的非对称公钥的终端实体证书的
证书链。证书链114可以作为TLS握手过程的一部分来提供。在一些实施方案中,替代服务器
证书和服务器证书具有共享的共同信息,诸如主体名称、发布者名称、到期、密钥大小、密钥
类型等。在一些实施方案中,图1中所示的数字证书是根据RFC 5280的X.509v3证书,RFC 
5280据此通过引用并入本文。
[0030] 客户端计算机系统102和网络安全设备106可以经由第一加密保护的通信会话(例如传输层安全性(TLS)会话)进行通信。作为建立第一加密保护通信会话的握手过程的一部
分,客户端计算机系统102可以接收替代证书链108并使用包括在替代服务器证书中的主体
公钥来建立加密保护的通信会话。网络安全设备106和服务器104可以经由第二加密保护的
通信会话进行通信,使得网络安全设备106接收证书链114并使用包括在服务器证书中的主
体公钥来建立第二加密保护的通信会话。
[0031] 图2示出了证书链202和替代证书链210的图200。替代证书链的一个或多个数字证书可以部分地从证书链中的对应数字证书导出。图2中所示的证书链202包括三个证书—服
务器证书204、中间证书 206和根证书208。证书可以包括各种字段,诸如证书的主体、证书
的发布者以及主体公钥信息,主体公钥信息还可以包括主体公钥和关于主体公钥的信息,
例如密钥类型和密钥大小。证书可以是根据RFC 5280的X.509v3证书,RFC 5280据此通过引
用并入本文。
[0032] 服务器证书204可以是终端实体证书。终端实体证书可以指包括公钥的证书,公钥具有对应私钥,私钥用作加密保护通信的一部分。例如,在图1中,可以包括服务器104的公
钥的服务器证书可以具有对应的私钥,服务器104将私钥用作建立TLS会话的TLS握手过程
的一部分。证书的主体字段可以是指与证书相关联的实体的标识符。例如,在服务器证书
204中,主体“服务器”可以是指诸如上面结合图 1描述的服务器之类的服务器。证书的发布
者字段可以是指对证书进行数字签名的实体。在一些实施方案中,在发布者字段中标识的
发布者可以是中间授权机构,或者可以是证书链的根授权机构。例如,在服务器证书204中,
发布者“Example_IA”可以是指已经对服务器证书 204进行数字签名的中间授权机构。证书
还可以包括关于主体的公钥信息的信息。主体公钥信息字段可以包括两个子字段—包括主
体的加密公钥的比特流的密钥字段,以及标识主体公钥的公钥算法的算法字段。例如,在服
务器证书204中,算法“RSA‑2048”可以是指主体公钥是2048比特RSA公钥,并且密钥可以是
2048比特流。服务器证书 204的公钥可以具有与图2中所示的其他证书的公钥不同的值—
注意,服务器证书204的公钥(为了说明的目的,以十六进制值0x123 开始)具有与替代服务
器证书212的公钥不同的值(也为了说明目的,其具有以0xABC开头的不同十六进制值)。
[0033] 中间证书206可以是由受信任证书授权机构直接或间接发布的证书。与中间证书206相关联的中间授权机构可以访问对应于中间证书的公钥(例如,公钥0x234......)的私
钥。中间授权机构的私钥可以用于对服务器证书204进行数字签名,并且中间证书206可以
用于通过使用中间证书206的主体公钥执行签名验证来加密地验证数字签名。在一些实施
方案中,中间证书206的主体字段和服务器证书204的发布者字段匹配(即,第一证书的发布
者字段与第二证书的主体字段匹配,其中第二证书与对第一证书进行数字签名的实体相关
联)。
[0034] 根证书208可以是由与根证书相关联的证书授权机构自行发布的证书。例如,根证书的主体字段和发布者字段可以是指同一实体。在一些实施方案中,有附加信息包括在证
书中以指出证书是根证书。例如,根据X.509v3标准的根证书208可以包括基本约束字段,该
字段还包括为真的cA字段。在一些实施方案中,可以向计算机系统调配一个或多个受信任
的根证书。另外,系统管理员可以调配计算机系统以包括附加的受信任证书,例如由组织的
内部证书授权机构发布的根证书。在一些实施方案中,组织的内部证书授权机构可以由该
组织调配的计算设备信任,但不一定被组织未调配的设备信任。与根证书208中标识的根授
权机构相关联的私钥可以用于对中间证书206进行数字签名,并且包括在根证书208中的主
体公钥可以用于加密地验证在中间证书上生成的数字签名的真实性。
[0035] 可以存在从服务器证书204到根证书208的有效信任链,并且可以加密地验证链的有效性。对信任链的验证可以包括获得终端实体证书(例如,服务器证书204),并使用终端
实体证书(例如,中间证书206) 的发布者的公钥来验证终端实体证书的数字签名。依次,可
以获得发布者证书(例如,中间证书206),并且可以以与刚刚描述的方式相同的方式验证发
布者证书的数字签名。可以重复该过程,直到获得由根授权机构签名的证书(例如,根证书
208)。根授权机构证书可以充当证书链的信任锚。可以使用根证书中包含的公钥来验证根
证书的数字签名,并且可以执行验证以检查根证书是否包括在受信任的根证书列表中(例
如,受信任证书列表,其至少部分地由系统管理员调配)。
[0036] 应当注意,虽然结合图2在证书链202中示出了一个中间证书,但是在一些实施方案中,可能存在更多或更少的中间授权机构。例如,在一些实施方案中,服务器证书可以直
接链接到根证书(例如,在终端实体证书由根授权机构进行数字签名的情况下)。作为第二
示例,终端实体证书可以由第一中间授权机构进行数字签名,第一中间授权机构的证书可
以由第二中间授权机构进行数字签名,和第二中间授权机构的证书可以由根授权机构进行
数字签名。在一些实施方案中,证书链可以包括甚至更多的中间证书。
[0037] 替代证书链210的一个或多个证书可以至少部分地从证书链202 中的对应证书导出。替代证书链210的一个或多个证书可以由网络安全设备生成,例如由结合图1在各实施
方案中描述的那些设备生成。作为示例,可以至少部分地基于诸如服务器证书204之类的另
一证书的一个或多个字段的值来生成替代服务器证书212。图2中所示的替代服务器证书
212可以通过获得服务器证书204的主体和发布者字段来生成。在一些实施方案中,替代证
书的主体信息、发布者信息或其他证书信息可以与对应证书的相应信息相关联。替代数字
证书的证书信息可以与对应数字证书的证书信息相关联,可以以各种方式相关联—例如,
关联可以是指替代证书的一个或多个字段的证书信息与包括在对应的证书中的证书信息
相同。在其他情况下,该关联可以包括数据的变换,例如,在一些情况下,证书的主体信息可
以包括人类可读字段从一种语言到另一种语言的映射。在一些实施方案中,可以导出替代
证书的附加字段,例如证书到期。在一些实施方案中,替代服务器证书212和服务器证书204
的主体公钥可以是相同的大小。例如,在图2中,替代服务器证书212可以具有2048比特密
钥,其大小被选择为匹配服务器证书204公钥大小的大小。注意,在一些实施方案中,替代证
书的密钥大小可以与导出其的证书的密钥大小相同,并且密钥类型可以是不同的。例如,替
代服务器证书212使用诸如 Diffie‑Hellman密钥交换算法之类的第一公钥算法,并且服务
器证书使用诸如RSA算法之类的第二公钥算法。替代服务器证书212可以通过与替代中间证
书214相关联的中间授权机构的私钥进行数字签名。
[0038] 替代中间证书214可以部分地从中间证书导出。替代中间证书可以与中间授权机构相关联,中间授权机构可以用于发布诸如终端实体证书(例如,图2中所示的替代服务器
证书212)之类的证书。替代中间授权机构可以映射到证书链202的中间证书授权机构。替代
中间证书214的主体字段可以从对应的中间证书206的主体字段导出。在一些实施方案中,
替代中间证书的发布者字段也可以从对应的中间证书导出。替代中间证书214可以通过另
一个中间授权机构或根授权机构的私钥进行数字签名。例如,在图2中,替代中间证书214可
以由与替代根证书216相关联的根授权机构进行数字签名。
[0039] 在一些实施方案中,替代根证书216可以是替代证书链210的根证书。在一些实施方案中,可以存在证书链的根证书(例如,图2中所示的根证书208)和替代证书链的根证书
(例如,图2中所示的替代根证书216),使得替代根证书216是独立生成的,使得至少替代根
证书的主体字段和发布者字段不是从根证书208导出的。在一些实施方案中,系统管理员可
以调配计算机系统以将由组织的内部证书授权机构发布的一个或多个根证书包括到受信
任的根证书列表中。替代根证书216可以由组织的内部证书授权机构发布。在一些实施方案
中,替代根证书216和根证书208可以是相同的证书。
[0040] 如图2所示,证书链202和替代证书链210两者都可以具有针对不同根授权机构验证的有效信任链。在一些实施方案中,接收证书链的计算机系统可以具有受信任根证书208
的列表,其包括根证书208 和替代根证书216两者。在一些实施方案中,证书链202的一个或
多个证书可以具有与替代证书链210中的对应证书相同的大小(例如,以字节为单位)。在一
些实施方案中,证书链202的大小和替代证书链210的大小相等。在一些实施方案中,替代证
书链210中的每个证书的大小都等于证书链202中的对应证书的大小(例如,替代服务器证
书212的大小与服务器证书204的大小相同,对于各个链中的所有证书,依此类推)。
[0041] 图3示出了图300,其中客户端302、网络安全设备304和服务器306执行与建立加密保护的通信会话有关的一组操作。例如,可以结合TLS握手来执行操作。
[0042] 客户端计算机系统302可以是根据上面结合图1描述的客户端计算机系统的计算机系统。客户端计算机系统302可以是组织的内联网内可以访问敏感信息的计算设备。敏感
信息可能指的是不应在公司内联网外传输的信息。例如,敏感信息可能包括组织的商业秘
密、员工或顾客的社会安全号码、信用卡号码等。网络安全设备304可以是根据上面结合图1
描述的网络安全设备的计算设备。在一些实施方案中,客户端计算机系统302经由一个或多
个网络安全设备与组织的内联网外的计算设备连接。网络安全设备304可以位于公司内联
网与外部网络(例如,因特网)之间的边界处,并且可以经由一个或多个网络安全设备来路
由从外部网络到客户端302的网络流量。在一些实施方案中,网络边界可以包括内联网内部
且内联网外部的计算系统或完全在内联网的子部分内的计算系统。网络边界可以基于设备
(例如在数据中心或物理办公室位置内的那些设备)的物理位置而存在。网络边界也可以基
于例如在虚拟机实例与另一计算系统(例如,在同一主机上运行的另一个虚拟机实例)之间
的虚拟和/或逻辑信息存在。更一般地,网络边界可以存在于网络流量的源与目的地之间的
各种逻辑、虚拟和/或物理位置。在一些实施方案中,网络边界可以存在于网络流量的目的
地,例如在目的地是已被隔离或列入黑名单的计算系统的情况下。服务器306可以是根据上
面结合图1描述的服务器的服务器。服务器306可以是组织的内联网外部的计算系统,客户
端302尝试与其建立TLS会话。
[0043] 作为TLS握手协议的一部分,内联网的客户端计算机系统302可以传输308第一TLS ClientHello,其中预期接收者是服务器306。在一些实施方案中,第一TLS ClientHello可
以经由网络安全设备304路由到服务器306。网络安全设备可以接收310第一TLS 
ClientHello,并且响应于接收到第一TLS ClientHello,向服务器306传输312第二TLS
ClientHello。在一些实施方案中,第一TLS ClientHello可以包括所支持的加密算法的有
序列表(例如,从最优先的到最不优先的),而第二TLS ClientHello可以包括相同的有序列
表。然而,在其他实施方案中,网络安全设备304可以传输具有不同的列表的第二
ClientHello,并且可以包括附加的加密算法(例如,网络安全设备304支持但客户端计算机
系统302不支持的加密算法)。服务器306可以接收314第二 ClientHello。
[0044] 响应于接收到第二ClientHello,服务器306可以提供316对应的 ServerHello、证书链和ServerHelloDone。证书链可以包括终端实体证书,其与服务器306相关联,并且包括
主体公钥,其对应的私钥可由服务器306访问。证书链可以是例如以上结合图2描述的那些
的证书链,并且可以具有以受信任证书授权机构为根的信任链。证书链的真实性和完整性
可以由证书链的接收者加密地验证。真实性可以指保证消息是由声称是消息作者的一方创
建的。完整性可以指保证所接收到的消息在消息传输时没有故意地(例如,由恶意的一方)
或无意地(例如,作为在传输期间信号丢失的结果)从其原始形式被修改。网络安全设备304
可以接收ServerHello、证书链和ServerHelloDone,并且可以随后验证证书链是有效的并
且完成与服务器306的TLS握手。
[0045] 网络安全设备304可以生成替代证书链。作为生成替代证书链的一部分,网络安全设备304可以获得318替代根证书,该替代根证书可以是与客户端计算机系统302所信任的
根授权机构相关联的数字证书。网络安全设备304可以访问对应于替代根证书中包括的公
钥的私钥,或者可以访问可用于执行利用私钥的密码操作(例如,发布数字证书)的密码服
务。网络安全设备304可以生成320一个或多个替代中间证书。使用图2中所示的证书链来作
为示例,可以生成替代中间证书,其具有与证书链的对应中间证书相同的主体字段,以及指
出中间证书是由替代根授权机构发布和数字签名的发布者字段。回到图 3,在一些实施方
案中,替代中间证书的密钥算法可以从中间证书导出。
[0046] 另外,在一些实施方案中,可以构造替代中间证书以便具有与对应的中间证书相同的大小。例如,可以如此选择替代中间证书的密钥大小,使其与对应的中间证书的密钥大
小相同。在一些情况下,替代证书(例如,替代中间证书)可以包括填充结构,以便匹配对应
证书的大小。填充结构例如可以是预定大小的随机或确定字节流。填充结构可以作为诸如
X.509v3数字证书之类的证书的扩展字段的一部分包括在内。作为第二示例,填充结构可以
包括在可选字段中,诸如X.509 v3数字证书的发布者唯一标识符或主体唯一标识符字段。
在一些实施方案中,替代证书的大小可以通过生成更长或更短的标识符(例如, X.509v3数
字证书的序列号字段)来匹配证书的大小,以使证书大小匹配。在一些实施方案中,替代证
书可以从对应的证书中导出至少一些证书信息并省略其他信息。例如,在一些情况下,如果
对应数字证书的所有导出字段都包括在替代证书中,则生成替代证书的系统可以确定替代
证书的大小太大(例如,大于替代证书要与其大小相等的对应数字证书)。结果,系统可以在
生成替代证书时省略和/或截断一个或多个可选字段的内容(即,省略的字段不包括在替代
证书中)。可以省略和/或截断的字段包括与撤销证书相关的备用名称和扩展。在一些示例
中,证书可以包括与撤销证书相关的多个字段,并且从该证书导出的替代证书可以省略与
撤销证书相关的多个字段中的一个或多个。在一些实施方案中,可以至少部分地基于计算
实体接收替代证书的能力来确定被省略和/或截断的字段(例如,可以省略和/或截断计算
实体不支持的扩展)。在一些实施方案中,多个中间证书可以链接在一起,其中第一中间授
权机构是第二中间授权机构的数字证书的发布者。在一些实施方案中,替代证书可以被高
速缓存(例如,在上面结合图1讨论的证书高速缓存中),并且网络安全设备可以首先检查替
代证书是否存在于高速缓存中。如果替代证书不存在,则可以如上所讨论生成一个,但是如
果在高速缓存中找到一个,则代替可以从证书高速缓存中获得高速缓存的替代证书。
[0047] 可以生成322替代服务器证书。网络安全设备304可以访问对应于替代服务器证书中包含的主体公钥的私钥。替代服务器证书可以由替代中间授权机构或替代根授权机构进
行数字签名。替代服务器证书可以是终端实体证书,其可以由客户端302和网络安全设备
304用作密钥交换过程的一部分。可以使用上面讨论的替代证书来构建替代证书链。响应于
来自客户端302的第一TLS ClientHello,网络安全设备 304可以向客户端302提供
324ServerHello、替代证书链和 ServerHelloDone。
[0048] 客户端302可以接收326ServerHello、替代证书链和 ServerHelloDone。在接收到替代证书链后,客户端306可以验证328 从替代服务器证书到替代根证书的信任链。在验证
信任链是有效的并且确定替代服务器证书是真实的时,客户端302和网络安全设备304 可
以完成TLS握手,并根据TLS记录协议来传输数据。
[0049] 图4示出了监控网络流量的网络安全设备的图400。网络安全设备402可以是上面结合图1‑图3描述的网络安全设备。网络安全设备 402可以接收加密数据404。加密数据404
可以由客户端计算机系统发送,其中预期接收者为服务器(例如,结合图1讨论的客户端和
服务器)。可以根据TLS的版本(例如,如2008年8月的RFC 5246中所定义的TLS版本1.2,其据
此通过引用并入)来接收加密数据。网络安全设备402可以从客户端计算机系统接收加密数
据404,其中客户端计算机系统使用包括在替代服务器证书中的公钥(例如上面结合图1‑ 
图3描述的那些)对数据进行加密地加密。网络安全设备402可以访问替代私钥406,该替代
私钥是替代服务器证书中公钥的对应私钥,该公钥用于对数据进行加密。网络安全设备402
可以使用替代私钥 406对加密数据404进行解密,并获得未加密数据408。
[0050] 网络安全设备402可以获得未加密的数据408并确定数据是否包含敏感信息。例如,在图4中,数据可以包括社会安全号码(例如,顾客的社会安全号码)并且可以被认为是
敏感信息。在检测到数据中存在正在传输的敏感信息时,可以修改数据。在一些实施方案
中,可以完全移除敏感信息(例如,在密码或个人识别号码(PIN)的情况下)。在其他情况下,
可以修改敏感信息,例如如图4所示,其中网络安全设备可以被配置为混淆一部分信息,使
得混淆的信息处于可接受的形式。在社会安全号码的情况下,传输社会安全号码的最后四
位而不是整个社会安全号码是可以接受的。可以使用公钥对修改的数据410进行加密,以便
传输给接收者。例如,为了将已修改的数据传输到服务器(例如,结合图1描述的服务器),网
络安全设备402可以获得服务器证书412,并使用服务器证书中包括的公钥来加密已修改的
数据。已加密的修改数据414可以被传输到服务器,服务器可以使用与服务器证书412中的
公钥对应的私钥来解密修改的数据。
[0051] 注意,可存在各种替代实施方案。例如,在一些实施方案中,作为第一TLS握手的一部分,网络安全设备和客户端计算机系统可以对使用第一对称密钥来传输数据取得一致意
见。同样地,作为第二 TLS握手的一部分,网络安全设备和服务器可以对使用第二对称密钥
来传输数据取得一致意见。网络安全设备可以从客户端计算机系统接收加密数据,使用第
一对称密钥来解密加密数据,检测数据中敏感信息的存在,相应地修改数据,使用第二对称
密钥来加密修改数据,以及将已加密的修改数据传输到服务器,并且也可以访问第二对称
密钥的服务器可以获得已解密的修改数据。
[0052] 图5示出了可以传输和接收的具有证书链的数据包的图500。在一些实施方案中,第一IP数据包502可以由计算系统(例如,上面结合图1讨论的服务器)传输并且由网络安全
设备接收。网络安全设备可以接收包括IP报头504部分和IP数据506部分的第一IP数据包 
502。IP报头504部分可以包括关于IP版本、因特网报头长度和总长度的信息。版本可以是指
IP数据包的版本(例如,IPv4)。因特网报头长度可以是指IP报头504的长度,其可以是可变
长度。总长度可以是指整个IP数据包的长度,其可以包括报头部分和数据部分。在各种实施
方案中,数据包通常可包括一个或多个长度字段,其指出数据包或数据包的子部分的长度。
长度和大小可以以各种度量单位来表示,包括但不限于比特、字节、字、双字(双字)等度量。
尽管图5中所示的数据包是因特网协议(IP)数据包,但是,数据包可以根据各种协议和标
准,诸如因特网协议版本4(IPv4)、因特网协议版本6(IPv6) 和超文本传输协议(HTTP)。
[0053] 第二IP数据包508可以包括IP报头510部分和包括替代证书链的IP数据512部分。网络安全设备可以生成替代证书链并将替代证书链提供给计算机系统(例如,上面结合图1
描述的客户端)。第二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 报头的所有字段都具有相同
的相应值),源和目的地信息排除在外。在一些实施方案中,报头的一个或多个字段可以是
不同的—例如,在一些实施方案中,报头可以包括校验和字段,该校验和字段至少部分地基
于数据部分的值。由于证书链和替代证书链的证书信息可能不同,因此可以重新计算第二
数据包的校验和,以确保第二数据包的有效性。
[0054] 更一般地,具有报头数据和/或元数据的第一协议数据单元(PDU) 可以由数据联网设备结合证书和/或证书链的传输接收。具有相同报头和/或元数据的第二PDU可以由数
据联网设备结合至少部分地从证书链导出的替代证书或替代证书链传输。在一些实施方案
中,服务器证书链的大小和替代证书链的大小可以是不同的—例如,如果替代证书链小于
证书链,则可以包括填充结构作为第二数据包的IP数据 512的一部分,以便使第一IP数据
包502和第二IP数据包508的大小匹配。协议数据单元可以是指可以与信息一起传输的单
元,其示例包括数据包、帧、分段、数据报和比特流。
[0055] 虽然图5中示出了IP数据包以说明在证书链和替代证书链的传输中使用的匹配数据包大小,但是可以存在对实施方案的变体。例如,数据包可以是根据因特网协议版本4
(IPv4)或因特网协议版本6(IPv6) 的IP数据包。数据包可以根据开放系统互连(OSI)模型
的各个层处的协议,两者都包括可以用于使用所包括的证书来建立加密保护的通信会话的
层之上和之下的层。例如,根据图5的数据包可以根据超文本传输协议(HTTP)来实现,其中
数据包可以对应于HTTP消息正文,其中报头部分对应于关于消息正文的元数据(例如,内容
长度),并且数据部分对应于消息正文数据,可用于传输证书和/或证书链。作为另一个示
例,根据图5的数据包可以实现为具有段报头部分和数据部分的传输控制协议(TCP)段。作
为又一个示例,根据图5的数据包可以实现为具有UDP报头和UDP数据的用户数据报协议
(UDP)数据报。根据图5的数据包还可以实现为具有元数据部分(例如,报头部分和帧检查部
分)和有效载荷部分的以太网帧。应该注意的是,尽管图5 示出了在每个数据包中传输整个
证书链,但是,在各种实施方案中,数据包可以各自仅包括链的一部分(例如,证书或证书的
一部分),包括证书链的多个部分的多个数据包可以传输,并在目的地重新组装。
[0056] 在一些实施方案中,数字证书可以被分段并在多于一个数据包中传输。在这样的实施方案中,可以接收多个数据包,每个数据包都具有证书的一部分。系统可以基于所接收
到的证书(或者甚至是所接收到的证书的一部分)来生成替代证书,并且对于所接收到的多
个数据包中的每个数据包,生成第二多个数据包的封装所生成的替代证书的对应数据包。
第二多个数据包中的每个数据包都可以具有与第一多个数据包的对应接收到的数据包的
报头信息匹配的报头信息(诸如长度字段)。第二多个数据包的总长度(例如,以字节为单位
的大小)可以被配置为等于结合证书接收到的数据包的总长度。在一些情况下,可以生成针
对替代证书生成的每个数据包,其大小与对应的接收到的数据包的大小匹配。作为示例,考
虑证书被分段以使得在第一数据包中传输字段的第一子集,并且在第二数据包中传输不同
字段的第二子集的情况。在一些实施方案中,系统接收两个数据包,重新组装证书,生成替
代证书,并且创建具有与第一数据包相同的字段的第三数据包,并且创建具有与第二数据
包相同字段的第四数据包。第三和第四数据包可以分别具有与第一和第二数据包相同的大
小(例如,以字节为单位)。注意,虽然数据包的字段可以匹配,但是它们的值可以是不同的
(例如,源和目的地信息可以不同)。
[0057] 图6示出了图示用于使用替代证书来建立加密保护的通信会话的过程600的图。过程可由任何合适的系统如上文结合图1描述的网络安全设备来执行。例如,当组织的内联网
内的计算机系统尝试与外部系统(例如,组织的内联网之外的另一计算机系统)建立TLS会
话时,可以执行该过程。
[0058] 系统可以从第一计算机系统接收602ClientHello。ClientHello可以作为TLS握手协议的一部分进行,并且预期的接收者可以是第二计算机系统。接收ClientHello的系统可
以是网络安全设备或路由器,其是第一计算机系统与第二计算机系统之间的网络路径的一
部分。系统可以经由诸如因特网之类的外部网络向第二计算机系统发送604 ClientHello。
在一些实施方案中,系统结合发送的ClientHello(例如,发送到第二计算机系统的
ClientHello)接收606包括ServerHello、证书链和ServerHelloDone的响应。证书链可以具
有可由系统加密地验证的信任链,并且证书链的终端实体证书可以包括证书,其包括与第
二计算机系统相关联的公钥。系统可以使用公钥来与第二计算机系统建立608加密保护的
通信会话(例如,TLS会话)。公钥可以用作握手协议的一部分,以在执行过程600的系统与第
二计算机系统之间协商共享秘密。应当注意,可以使用各种协议来接收证书链,并且可以以
各种抽象级别将其封装在各种逻辑结构中。例如,可以至少部分地在一个或多个IP数据包
中接收证书链。还可以至少部分地在HTTP消息正文中接收证书链(在与前一句中描述的相
同实施方案中或在不同实施方案中)。
[0059] 在一些实施方案中,系统至少部分地基于所接收到的证书链来生成610替代证书链。此外,系统可以访问对应于替代证书链的终端实体证书的公钥的私钥。在一些实施方案
中,系统可以使用加密服务来生成替代证书链的一个或多个证书和/或访问证书高速缓存
以获得一个或多个替代证书。替代证书可以具有到受信任的替代根证书的信任链,替代根
证书充当信任锚并在组织内发布。第一计算机系统可以信任替代证书(例如,第一计算机系
统可以由系统管理员调配以包括替代根证书作为受信任证书)。在一些实施方案中,替代证
书链可以具有与所接收到的证书链相同的长度(即,链具有相同数量的证书)和/ 或相同的
大小(例如,以字节为单位)。替代证书链的生成可以根据下面结合图7描述的过程来执行。
[0060] 例如,根据TLS握手协议,系统可以例如使ServerHello、替代证书链和ServerHelloDone对第二计算机系统可用612。系统可以使用与终端实体证书的公钥对应的
私钥来与第一计算机系统建立614 加密保护的通信会话。数据可以以各种方式提供给计算
实体—例如,可以通过在一个或多个消息中传输所请求的数据来使数据可用于计算实体,
或者可以通过将数据存储在计算实体可以访问的数据存储库 (例如,网络存储设备)中,并
向计算实体提供诸如令牌、统一资源标识符(URI)、统一资源定位符(URL)等信息(其可以用
于指出何处和/或如何从数据存储库中获取资源)来使数据可用。
[0061] 在一些实施方案中,使用与第一加密保护的通信会话的配置数据匹配的配置数据来建立第二加密保护的通信会话。然而,在一些实施方案中,可以使用不同类型的会话。例
如,组织可以支持在内部网络内的通信中使用的第一组密码套件,使得系统与第一计算机
系统(其可以完全在内部网络内)之间的加密保护的通信会话使用从第一组密码套件中选
择的一个密码套件。继续该示例,组织可以支持第二组密码套件,用于系统与可以在组织的
内部网络之外的第二计算机系统之间的通信。系统与第二计算机系统之间的加密保护的通
信会话可以使用从第二组密码套件中选择的不同的密码套件。在一些实施方案中,系统可
以检测到第一计算机正在使用适合于内部通信(例如,组织内联网内的通信)的配置,尝试
连接第二计算机系统,并且可以使用该配置来建立与第一计算机系统的通信会话,并且还
选择适合于外部通信(例如,通过因特网进行通信)的不同配置以建立与第二计算机系统的
通信会话。在一些情况下,可以是网络安全设备的系统可以使用第一密码套件来从第一计
算机系统接收发往第二计算机系统的 ClientHello,并通过使用第二、更强的密码套件来
升级连接,以在系统与第二计算机系统之间建立加密保护的通信会话。在一些情况下,系统
可以检测到第一计算机系统与第二计算机系统协商的密码套件不被第二计算机系统支持,
并且可以降级系统与第二计算机系统之间的连接(例如,通过使用不同的、较弱的密码套
件,来在网络安全设备与服务器之间建立加密保护的通信会话),但是为系统与第一计算机
系统之间的连接使用更强的密码套件。
[0062] 图7示出了图示用于生成替代证书链的过程700的图。过程可由任何合适的系统如上文结合图1描述的网络安全设备来执行。在一些实施方案中,过程700可以由加密服务来
执行,网络安全设备可以经由应用编程接口与加密服务进行通信。过程700可以结合上面结
合图 6描述的握手过程来执行。系统可以接收702形成从根授权机构到终端实体的信任链
的证书列表。证书链可以包括两个或更多个数字证书。
[0063] 系统可以生成获得替代根证书并将替代根证书添加704到替代证书链。替代根证书可以是证书链中的第一证书,并且可以是受信任的根证书。根证书可以由组织发布并且
由组织内的计算设备信任。系统可以从所接收到的证书列表获得706证书。在一些实施方案
中,获得所接收到的证书链的根证书之后的第一证书。系统可以检查708是否可以通过证书
高速缓存(例如结合图1描述的证书高速缓存)访问对应于所获得的证书的替代证书。证书
高速缓存可以具有证书到替代证书的映射,该映射可以用于确定从接收到的证书链获得的
特定证书是否已被高速缓存。如果检查确定证书被高速缓存,则获得对应的替代证书并将
其添加718到替代证书链。但是,如果在高速缓存中未找到证书,则可以生成与证书对应的
替代证书。在一些实施方案中,系统可以不使用证书高速缓存,并且系统可以绕过检查708
并执行与替代证书的生成相关的步骤。
[0064] 替代证书可以通过首先生成710未签名的数字证书来从所获得的证书中导出,该未签名的数字证书包括从获得的证书的主体字段导出的主体字段和对应于与替代证书链
中的先前证书相关联的实体的发布者(例如,在本示例中,替代根授权机构)。在一些实施方
案中,从获得的证书中导出附加字段,例如加密密钥类型和密钥大小。随后,系统可以使用
与替代证书链中的先前证书相关联的私钥(例如,在这种情况下,对应于包括在替代根证书
中的公钥的私钥)来对数字证书进行数字签名712。加密服务可用于执行结合替代证书的生
成描述的一些或所有加密操作。
[0065] 签名的替代证书可以被添加714到替代证书链,替代证书链可以使用各种数据结构例如证书链的链表、证书阵列、堆栈数据结构等以逻辑方式来表示。系统可以检查716是
否有更多证书在获得的证书列表中。如果有更多证书,则系统可以从证书列表中获得下一
个证书,并从证书高速缓存中获得对应的替代证书或生成对应的替代证书。替代证书可以
迭代地执行该过程,直到它确定列表中不再有证书,然后使替代证书链可用720,例如,参考
上面结合以上图1‑图6描述的实施方案。
[0066] 图8示出了图示用于使用替代证书来监控网络流量的过程800的图。过程可由任何合适的系统如上文结合图1描述的网络安全设备来执行。系统可以经由第一加密保护的通
信会话来接收802第一加密消息。会话可以是在内部网络内的第一计算机系统与网络安全
设备之间建立的TLS会话。可以根据上面结合图6描述的过程来建立加密保护的通信会话。
[0067] 系统可以使用替代私钥来解密804第一加密消息。在一些实施方案中,替代公钥可以包括在替代证书链的替代终端实体证书中,替代证书链作为握手协议的一部分提供给计
算机系统。计算机系统可能已经使用替代公钥对消息执行加密操作以生成第一加密消息。
在一些实施方案中,系统可以使用至少部分地使用替代私钥获得的加密密钥来解密第一加
密消息。例如,作为TLS握手协议的一部分,系统可接收加密的秘密并使用替代私钥来解密
加密的秘密。该秘密可用于确定可用于解密第一加密消息的对称密钥。
[0068] 然后,系统可以检查806解密的第一消息是否包括敏感信息。敏感信息可能指的是不应在公司内联网外传输的信息。例如,敏感信息可能包括组织的商业秘密、员工或顾客的
社会安全号码、信用卡号码等。如果系统确定有敏感信息包括在消息中,则系统可以修改
808消息以移除敏感信息的至少一部分。例如,系统可以被配置为部分地修改以下类型的敏
感信息:社会安全号码(混淆前5个数字,但允许传输最后4个数字);信用卡号码(混淆信用
卡号码的所有数字,但最后 4位数字除外);和电子邮件地址(混淆地址和域名的所有字母,
但前两个字母除外)。更一般地,系统可以识别敏感信息的要修改的第一部分和识别敏感信
息的可以保留(即,未修改)的第二部分。可以将敏感信息的保留部分传输给接收者(例如,
结合图1描述的服务器)。在一些实施方案中,可以完全移除敏感信息(例如,可以通过用预
定固定数量的星号字符替换密码来完全混淆密码)。
[0069] 如果消息被修改,则系统可以使用与要接收消息的计算系统相关联的公钥,生成810修改的消息的第二加密消息。在示例中,公钥是从与要接收消息的实体相关联的数字证
书获得的。在一些实施方案中,系统可以使用在系统与要接收消息的实体之间的握手过程
期间获得的第二对称密钥来加密修改的消息,方式与上面结合解密步骤804 描述的方式类
似。如果消息未被修改,则系统可以通过执行刚刚描述的加密步骤来生成810第二加密消
息,但是使用未修改的消息作为加密操作的输入。
[0070] 然后,系统可以例如经由第二加密保护的通信会话(例如,TLS 会话),使第二加密消息对接收者计算系统可用812。在一些实施方案中,如果系统检测到敏感信息包括在原始
消息中,则系统可以拒绝将消息递送给接收者计算机系统,而不是生成修改的消息。拒绝将
消息递送给接收者计算机系统可以以各种方式完成,例如通过简单地接收消息(例如,以上
面在步骤802中描述的方式)并且不将消息或修改的消息传输到接收者计算机系统。在一些
实施方案中,系统还可以向在步骤802中传输消息的计算实体发送系统未能将消息递送给
接收者的指示。在一些实施方案中,例如在响应于请求将消息传输到接收者计算机系统的
那些实施方案中,系统可以向接收者计算机系统提供未能履行请求的指示,例如指示超时
或错误代码。
[0071] 图9示出用于实现根据各个实施方案的各方面的示例性环境900 的各方面。应理解,尽管为了说明的目的使用基于web的环境,但是在适当的情况下可以使用不同的环境来
实施各种实施方案。环境包括电子客户端设备902,所述电子客户端设备可以包括可操作来
通过适当网络904发送和/或接收请求、消息或信息并且在一些实施方案中将信息传送回设
备的用户的任何适当设备。此类客户端设备的示例包括个人计算机、手机、手持式消息传送
设备、膝上型计算机、平板计算机、机顶盒、个人数据助理、嵌入式计算机系统、电子书阅读
器等。网络可以包括任何适当网络,包括内联网、因特网、蜂窝网络、局域网、卫星网络或任
何其他此类网络和/或上述网络的组合。用于这种系统的部件可至少部分地取决于所选择
的网络和/或环境的类型。用于通过这样的网络进行通信的许多协议和部件是公知的,将不
在此进行详细讨论。经由网络的通信可以通过有线或无线连接以及其组合来实现。在此示
例中,网络包括因特网和/或其他可公开寻址的通信网络,因为环境包括用于接收请求并且
响应于所述请求而提供内容的 web服务器906,但是对于其他网络来说,可以使用提供类似
目的的备选设备,如对本领域的普通技术人员明显的。
[0072] 说明性环境包括至少一个应用服务器908和数据存储区910。应当理解,可以存在可以被链接或以其他方式配置的若干应用服务器、层或其他元件、进程或部件,其可以交互
以执行诸如从适当的数据存储区获得数据之类的任务。如本文所使用的服务器可以以各种
方式实现,例如硬件设备或虚拟计算机系统。在一些背景下,服务器可以指代正在计算机系
统上执行的编程模块。如本文中所使用,除非另有说明或从上下文中清楚,否则术语“数据
存储区”是指能够存储、访问并检索数据的任何设备或设备的组合,所述设备或设备的组合
可以包括在任何标准、分布式、虚拟或群集环境中的数据服务器、数据库、数据存储设备以
及数据存储介质的任何组合和任何数量的所述数据服务器、数据库、数据存储设备以及数
据存储介质。应用服务器可以包括任何适当的硬件、软件和固件,所述硬件、软件和固件用
于根据需要与数据存储区集成以执行客户端设备的一个或多个应用的方面、处理应用的数
据访问和业务逻辑中的一些或全部。应用服务器可以与数据存储区协作来提供访问控制服
务,并且能够生成包括但不限于以下各项的内容:文本、图形、音频、视频和/或可用于提供
给用户的其他内容,所述内容可由web服务器以超文本标记语言(“HTML”)、可扩展标记语言
(“XML”)、JavaScript、级联样式表(“CSS”)、JavaScript 对象表示法(JSON)和/或另一适当
的客户端侧结构化语言的形式提供给用户。传送到客户端设备的内容可以由客户端设备处
理,以便以一种或多种形式提供内容,所述形式包括但不限于用户可通过听觉、视觉和/或
通过其他感觉来感知的形式。在此示例中,对全部请求和响应的处理以及客户端设备902与
应用服务器908之间的内容递送可由 web服务器使用PHP:超文本预处理器(“PHP”)、
Python、Ruby、Perl、 Java、HTML、XML、JSON和/或另一种适当服务器侧结构化语言来处理。
此外,除非另外从上下文中清楚,否则在本文中被描述为由单个设备执行的操作可以由可
能形成分布式和/或虚拟系统的多个设备共同地执行。
[0073] 数据存储区910可包括用于存储与本公开的特定方面相关的数据的若干单独数据表、数据库、数据文档、动态数据存储方案和/或其他数据存储机制和介质。举例来说,所示
数据存储区可包括用于存储生产数据912和用户信息916的机制,生产数据和用户信息可用
于提供用于生产侧的内容。数据存储区还被示为包括用于存储日志数据 914的机制,所述
日志数据可用于报告、分析或其他这类目的。应当理解,可能存在可能需要存储在数据存储
区中的许多其他方面,如页面图像信息和访问权信息,所述方面可视情况存储在上文列出
的机制中的任意机制中或存储在数据存储区910中的额外机制中。数据存储区910可以通过
与其相关联的逻辑来操作,以便从应用服务器908接收指令,并且响应于所述指令获得数
据、更新数据或以其他方式处理数据。应用服务器908可以响应于所接收指令而提供静态、
动态数据或静态和动态数据的组合。诸如在web日志(博客)、购物应用、新闻服务以及其他
此类应用中使用的数据之类的动态数据可以由如本文所描述的服务器侧结构化语言生成
或者可以由在应用服务器上操作或在其控制下的内容管理系统(“CMS”)提供。在一个示例
中,通过由用户操作的设备,用户可以提交针对某一类型的项目的搜索请求。在这种情况
下,数据存储区可以访问用户信息来验证用户的身份,并且可以访问目录详细信息以获得
有关所述类型的项目的信息。随后,可将信息诸如以网页上的结果列表的形式返回给用户,
用户能够通过用户设备902上的浏览器来查看所述网页。可以在专用浏览器页面或窗口中
查看感兴趣的特定项目的信息。然而,应注意,本公开的实施方案不一定限于网页的上下
文,而是可以更普遍地适用于处理一般的请求,其中请求不一定是对内容的请求。
[0074] 每个服务器通常都将包括提供用于该服务器的一般管理和操作的可执行程序指令的操作系统,并且通常将包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存
储器、只读存储器等),所述指令在由服务器的处理器执行时(即,作为被执行的结果)允许
服务器执行其预期的功能。
[0075] 在一个实施方案中,环境为利用若干计算机系统和部件的分布式和/或虚拟计算环境,所述计算机系统和部件使用一个或多个计算机网络或直接连接,经由通信链路进行
互连。但是,本领域普通技术人员应理解,这种系统可在具有比图9所示的部件更少或更多
部件的系统中同样顺利地操作。因此,图9中的系统900的描绘本质上应视为说明性的,并且
不限制本公开的范围。
[0076] 本公开的实施方案可以鉴于以下条款来描述:
[0077] 1.一种系统,其包括:
[0078] 包括处理器的计算机系统;以及
[0079] 包含可执行指令的存储器,作为由所述处理器执行的结果,所述可执行指令使所述系统:
[0080] 接收从服务器传输到客户端的证书链,所述证书链包括:
[0081] 包括中间授权机构公钥和主体信息的中间证书,其中所述中间证书的有效性是可至少部分地基于所述中间证书与受信任根证书之间的第一信任链加密地验证的;以及
[0082] 包括终端实体公钥的终端实体证书,其中所述终端实体证书的有效性是可至少部分地基于所述中间授权机构公钥加密地验证的;
[0083] 通过以下方式生成替代证书链:
[0084] 获得替代中间证书,所述替代中间证书包括替代中间授权机构公钥和与所述中间证书的所述主体信息相关联的主体信息,其中所述替代中间证书的有效性是可至少部分地
基于所述替代中间证书与受信任的替代根证书之间的第二信任链加密地验证的;以及
[0085] 获得替代终端实体证书,所述替代终端实体证书包括替代终端实体公钥和与所述终端实体证书的所述主体信息相关联的主体信息,其中使用对应于所述替代中间授权机构
公钥的替代中间授权机构私钥来对所述终端实体证书进行数字签名;以及
[0086] 将所述替代证书链作为所接收到的证书链的替换物传输到所述客户端。
[0087] 2.如条款1所述的系统,其中:
[0088] 所述计算机系统至少使用所述终端实体证书和所述证书链来与所述服务器建立第一加密保护的通信会话;以及
[0089] 所述计算机系统至少使用所述替代证书链和对应于所述替代终端实体公钥的替代终端实体私钥来与所述客户端建立第二加密保护的通信会话。
[0090] 3.如条款2所述的系统,其中所述存储器包含可执行指令,作为由所述处理器执行的结果,所述可执行指令还使所述系统:
[0091] 通过所述第二加密保护的通信会话,接收加密的消息;
[0092] 解密所述加密的消息;
[0093] 至少部分地基于所述解密的消息来检测指出所述服务器不应该接收所述解密的消息的条件的满足;
[0094] 修改所述解密的消息,使所述条件不再被满足;
[0095] 使用所述终端实体公钥来加密所述修改的消息;以及
[0096] 通过所述第二加密保护的通信会话,来传输所述加密的修改的消息。
[0097] 4.如条款1‑3中任一项所述的系统,其中所述证书链和所述替代证书链具有相同的长度。
[0098] 5.一种计算机实现的方法,其包括:
[0099] 获得中间授权机构证书,所述中间授权机构证书包括中间授权机构公钥;
[0100] 生成替代终端实体证书,所述替代终端实体证书包括:
[0101] 替代终端实体公钥;
[0102] 与终端实体证书相关联的主体信息;
[0103] 与所述终端实体证书相关联的发布者信息;并且
[0104] 其中所述替代终端实体证书的有效性是可至少部分地基于所述中间授权机构公钥加密地验证的;以及
[0105] 至少使所述替代终端实体证书可用于替换所述终端实体证书。
[0106] 6.如条款5所述的计算机实现的方法,其中所述中间授权机构证书的有效性可通过包括第一受信任根授权机构的信任链来加密地验证,所述第一受信任根授权机构不同于
可用于确定所述终端实体证书的有效性的第二受信任根授权机构。
[0107] 7.如条款5或6所述的计算机实现的方法,其中所述终端实体证书的大小和所述替代终端实体证书的大小相等。
[0108] 8.如条款5‑7中任一项所述的计算机实现的方法,其中:
[0109] 所述终端实体证书通过第一数据包获得,所述第一数据包包括协议类型和数据包大小;以及
[0110] 通过第二数据包,使所述替代终端实体证书可用,所述第二数据包包括相同的协议类型和相同的数据包大小。
[0111] 9.如条款8所述的计算机实现的方法,其中所述协议类型选自由以下组成的组:因特网协议(IP)、传输层安全性(TLS)、传输控制协议(TCP)和用户数据报协议(UDP)。
[0112] 10.如条款8或9所述的计算机实现的方法,其中:
[0113] 所述终端实体证书的大小大于所述替代终端实体证书的大小;以及
[0114] 所述第二数据包还包括所述第二数据包的数据部分,所述数据部分包括所述替代终端实体证书和填充结构。
[0115] 11.如条款8‑10中任一项所述的计算机实现的方法,其中:
[0116] 所述终端实体证书包括终端实体公钥;
[0117] 所述终端实体公钥的大小大于所述替代终端实体公钥的大小;以及
[0118] 所述替代终端实体证书还包括填充结构。
[0119] 12.如条款8‑11中任一项所述的计算机实现的方法,其中:
[0120] 所述终端实体证书包括终端实体公钥和一个或多个扩展字段;
[0121] 所述终端实体公钥的大小小于所述替代终端实体公钥的大小;以及
[0122] 从所述终端实体证书获得所述主体信息包括省略所述一个或多个扩展字段的至少一部分。
[0123] 13.一种非暂时性计算机可读存储介质,其上存储有可执行指令,作为由计算机系统的一个或多个处理器执行的结果,所述可执行指令使所述计算机系统至少:
[0124] 生成第一多个数字证书,所述多个数字证书包括第一数字证书和第二数字证书,其中:
[0125] 所述第一多个中的各个数字证书与第二多个数字证书的至少一个对应的数字证书相关联;以及
[0126] 所述第二证书包括第一公钥和从所述第二多个中的相关联数字证书获得的发布者信息,所述相关联数字证书包括与所述第一公钥不同的第二公钥;以及
[0127] 作为认证过程的一部分,提供所述第一多个数字证书来代替所述第二多个数字证书。
[0128] 14.如条款13所述的非暂时性计算机可读存储介质,其中所述第一多个数字证书至少通过以下操作来生成:
[0129] 确定存储了与所述第二多个中的证书相关联的高速缓存数字证书;
[0130] 获取所述高速缓存的数字证书;以及
[0131] 将所述高速缓存的数字证书添加到所述第一多个。
[0132] 15.如条款13或14所述的非暂时性计算机可读存储介质,其中:
[0133] 第一信任链可以至少部分地基于所述第一多个从所述第一数字证书到所述第二数字证书加密地验证;以及
[0134] 第二信任链可以至少部分地基于所述第二多个从所述相关联的数字证书到根证书加密地验证。
[0135] 16.如条款13‑15中任一项所述的非暂时性计算机可读存储介质,其中第一公钥根据第一公钥算法,而所述第二公钥根据与所述第一公钥算法不同的第二公钥算法。
[0136] 17.如条款13‑16中任一项所述的非暂时性计算机可读存储介质,其中生成所述第一公钥以具有等于所述第二公钥的所述大小的大小。
[0137] 18.如条款13‑17中任一项所述的非暂时性计算机可读存储介质,其中所述可执行指令还使所述计算机系统:
[0138] 使用所述第一公钥来与第一计算实体建立第一加密保护的通信会话;
[0139] 使用所述第二公钥来与第二计算实体建立第二加密保护的通信会话;
[0140] 经由所述第二加密保护的通信会话,从所述第二计算实体接收加密的消息;
[0141] 对所述消息进行解密;
[0142] 修改所述消息以移除敏感信息;以及
[0143] 经由所述第一加密保护的通信,将加密的修改的消息传输到所述第一计算实体。
[0144] 19.如条款18所述的非暂时性计算机可读存储介质,其中所述第一加密保护的通信会话使用第一密码套件,而所述第二加密保护的通信使用不同于所述第一密码套件的第
二密码套件。
[0145] 20.如条款18或19所述的非暂时性计算机可读存储介质,其中修改所述消息包括识别所述敏感信息的要修改的第一部分和识别所述敏感信息的要保留的第二部分。
[0146] 各种实施方案还可在各种操作环境中实施,所述操作环境在一些情况下可包括一个或多个用户计算机、计算设备或处理设备,其可用于操作多个应用中的任何应用。用户或
客户端设备可以包括多种计算机中的任一种,诸如运行标准操作系统的台式计算机、膝上
型计算机或平板计算机,以及运行移动软件并且能够支持多种网络和消息传递协议的蜂窝
式、无线和手持设备。这样的系统还可以包括多个工作站,它们运行各种可商购的操作系统
中的任何一种以及用于诸如开发和数据库管理之类的用途的其他已知应用。这些设备还可
以包括其他电子设备,诸如虚拟终端、瘦客户端、游戏系统以及能够经由网络进行通信的其
他设备。这些设备还可以包括虚拟设备,例如虚拟机、管理程序和能够经由网络进行通信的
其他虚拟设备。
[0147] 本公开的各种实施方案利用本领域技术人员可能熟悉的至少一种网络来支持使用多种可商购的协议中的任一种的通信,所述协议诸如传输控制协议/因特网协议(“TCP/
IP”)、用户数据报协议(“UDP”)、在开放系统互连(“OSI”)模型的各个层中操作的协议、文件
传送协议 (“FTP”)、通用即插即用(“UpnP”)、网络文件系统(“NFS”)、公共因特网文件系统
(“CIFS”)以及AppleTalk。网络可以是例如局域网、广域网、虚拟专用网、因特网、内联网、外
联网、公用交换电话网、红外网络、无线网、卫星网络以及上述网络的任何组合。在一些实施
方案中,面向连接的协议可以用于在网络端点之间进行通信。面向连接的协议(有时被称为
基于连接的协议)能够以有序流的形式传输数据。面向连接的协议可以是可靠或不可靠的。
例如,TCP协议是一种可靠的面向连接的协议。异步传输模式(“ATM”)和帧中继是不可靠的
面向连接的协议。面向连接的协议与面向数据包的协议(诸如UDP)形成对比,所述面向数据
包的协议在没有保证排序的情况下传输数据包。
[0148] 在利用web服务器的实施方案中,web服务器可以运行各种服务器或中间层应用中的任一者,包括超文本传输协议(“HTTP”)服务器、 FTP服务器、通用网关接口(“CGI”)服务
器、数据服务器、Java服务器、Apache服务器以及业务应用服务器。服务器还可以能够响应
于来自用户设备的请求而执行程序或脚本,诸如,通过执行可以实施为用任何编程语言(诸
如, C、C#或C++)或任何脚本语言(诸如, Ruby、PHP、Perl、Python或TCL)以及其组合
编写的一个或多个脚本或程序的一个或多个web应用。服务器还可包含数据库服务器,包含
但不限于可商购自 以及 的那些服务器以及开源
服务器,例如MySQL、Postgres、SQLite、MongoDB,以及能够存储、检索以及访问结构化或非
结构化数据的任何其他服务器。数据库服务器可以包括基于表的服务器、基于文档的服务
器、非结构化服务器、关系服务器、非关系服务器或这些和/或其他数据库服务器的组合。
[0149] 环境可以包括各种数据存储区以及其他存储器和存储介质,如上文所论述。这些可驻留在各种各样位置,如在计算机的一个或多个本地(和/或驻留在计算机的一个或多个
中)的存储介质上,或在网络上远离任何或所有计算机的存储介质上。在一组特定的实施方
案中,信息可以驻留在本领域技术人员熟悉的存储区域网络(“SAN”)中。类似地,用于执行
归因于计算机、服务器或其他网络设备的功能的任何必要文件可以在适当的情况下本地
和/或远程存储。在系统包括计算机化设备的情况下,每一个这种设备都可包括可通过总线
电耦合的硬件元件,所述元件包括例如至少一个中央处理单元(“CPU”或“处理器”)、至少一
个输入设备(例如,鼠标、键盘、控制器、触摸屏或小键盘)和至少一个输出设备(例如,显示
设备、打印机或扬声器)。此类系统还可以包括一个或多个存储设备,诸如磁盘驱动器、光存
储设备和固态存储设备,诸如随机存取存储器(“RAM”)或只读存储器(“ROM”),以及可移动
介质设备、存储卡、闪存卡等。
[0150] 此类设备还可以包括计算机可读存储介质读取器、通信设备(例如,调制解调器、网卡(无线或有线的)、红外通信设备等)以及如上文所描述的工作存储器。计算机可读存储
介质读取器可以与计算机可读存储介质连接或被配置成接收计算机可读存储介质,所述计
算机可读存储介质表示远程、本地、固定和/或可移动的存储设备,以及用于临时和/或更永
久地含有、存储、传输和检索计算器可读信息的存储介质。系统和各种设备通常还将包括位
于至少一个工作存储器设备内的多个软件应用、模块、服务或其他元件,包括操作系统和应
用程序,诸如客户端应用或web浏览器。此外,也可以使用定制的硬件和/或特定元件可以用
硬件、软件(包括移植性软件,例如小应用)或两者来实现。此外,可以采用到诸如网络输入/
输出设备之类的其他计算设备的连接。
[0151] 用于含有代码或代码部分的存储介质和计算机可读介质可以包括本领域中已知或使用的任何适当的介质,包括存储介质和通信介质,诸如但不限于,用于存储和/或传输
信息(诸如,计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的
易失性和非易失性、可移动和不可移动介质,包括RAM、ROM、电可擦除可编程只读存储器
(“EEPROM”)、闪存或其他存储器技术、压缩盘只读存储器(“CD‑ROM”)、数字通用盘(DVD)或
其他光学存储设备、磁带盒、磁带、磁盘存储设备或其他磁存储装置,或者可以用于存储所
需信息且可由系统设备访问的任何其他介质。基于本文中提供的公开和教导,本领域普通
技术人员将理解用于实施各种实施方案的其他方式和/或方法。
[0152] 因此,应以说明性意义而不是限制性意义来理解本说明书和附图。然而,显而易见的是,在不脱离如权利要求所述的本发明的更广泛精神和范围的情况下,可以进行各种修
改和改变。
[0153] 其他变化在本公开的精神内。因此,虽然所公开的技术易受各种修改和替代构造的影响,但是在附图中示出了其某些示出的实施方案,并且在上文已经详细描述。然而,应
理解,并不意图将本发明限于所公开的一种或多种特定形式,相反,本发明旨在覆盖落入本
发明的精神和范围内的所有修改、替代构造和等效物,如所附权利要求中所限定。
[0154] 除非本文另有说明或明确地与上下文矛盾,否则在描述所公开的实施方案的上下文中(特别是在所附权利要求的上下文中)对术语“一 (a)”和“一(an)”和“所述”以及类似
指称对象的使用应被解释为涵盖单数和复数两者。除非另有说明,否则术语“包括”、“具
有”、“包括”和“含有”将被解释为开放式术语(即,意味着“包括但不限于”)。在未经修改且
涉及物理连接的情况下,术语“连接”应被解释为部分或全部包含在内、附接到或接合在一
起,即使存在某些介入。除非本文另有说明,否则本文中值的范围的列举仅意图用作单独提
及落在该范围内的每个单独值的速记方法,并且每个单独的值并入本说明书中,如同在本
文中单独列举一样。除非另有说明或与上下文矛盾,否则术语“集合”(例如,“项目集合”)或
“子集”的使用应被解释为包括一个或多个成员的非空集合。此外,除非另有说明或与上下
文矛盾,否则术语对应集合的“子集”未必表示对应集合的真子集,而是子集和对应集合可
以相等。
[0155] 除非另有具体陈述或另外明确地与上下文矛盾,否则连接语言,诸如形式“A、B、和C中的至少一个”或“A、B和C中的至少一个”之类的短语可以在一般使用的上下文中被理解
为表示某一项目、项等可以是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中的至少
一个各自存在。
[0156] 除非本文另有说明或另外明确地与上下文矛盾,否则本文所述的过程的操作可以以任何合适的顺序执行。本文中描述的过程(或其变化和/或其组合)可以在配置有可执行
指令的一个或多个计算机系统的控制下执行,并且可以实施为在一个或多个处理器上共同
地执行的代码(例如,可执行指令、一个或多个计算机程序或者一个或多个应用),通过硬件
来实施或其组合来实施。代码可以存储在计算机可读存储介质上,例如以包括可由一个或
多个处理器执行的多个指令的计算机程序的形式存储。计算机可读存储介质可以是非暂时
性的。在一些实施方案中,代码存储在一个或多个非暂时性计算机可读存储介质的集合上,
其上存储有可执行指令,当由计算机系统的一个或多个处理器执行时(即,作为被执行的结
果),所述指令使得计算机系统执行这里描述的操作。该非暂时性计算机可读存储介质集合
可以包括多个非暂时性计算机可读存储介质,并且多个非暂时性计算机可读存储介质中的
单独的非暂时性存储介质的一个或多个可能并非包含所有代码,而多个非暂时性计算机可
读存储介质共同存储所有代码。
[0157] 因此,在一些示例中,计算机系统被配置为实施单独地或共同地执行本文中描述的过程的操作的一个或多个服务。此类计算机系统可以例如被配置有能够执行操作的适用
硬件和/或软件。此外,实施本公开的各种实施方案的计算机系统在一些示例中可以是单个
设备,而在其他示例中,是包括多个设备的分布式计算机系统,所述多个设备不同地操作,
使得分布式计算机系统执行本文中描述的操作,并且使得单个设备不能执行所有操作。
[0158] 除非另有要求,否则对本文所提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅意图更好地说明本发明的实施方案,而非对本发明的范围构成限制。本说明
书中的语言不应被解释为表示任何未要求保护的元素是实践本发明所必需的。
[0159] 本公开的实施方案在本文中描述,包括发明人已知的用于实施本发明的最佳模式。在阅读前面的描述之后,这些实施方案的变化对于本领域的普通技术人员可变得明显。
本发明人期望本领域技术人员适当地使用此类变化,并且发明人意图以与本文中的具体描
述不同的方式实践本公开的实施方案。因此,本公开的范围包括如适用法律所允许的对所
附权利要求中叙述的主题的所有修改和等效物。此外,除非本文中另有说明或另外明确地
与上下文矛盾,否则本公开的范围涵盖其全部可能变化中的上述元素的任何组合。
[0160] 在本文中引用的所有参考文献,包括公开案、专利申请案以及专利特此通过引用并入本文中,如同每一参考文献个别地且具体地指示为通过引用并入且以其全文在本文中
阐述一样。