具有替代数字证书的网络安全的制作方法

文档序号:18873720发布日期:2019-10-14 20:07阅读:398来源:国知局
具有替代数字证书的网络安全的制作方法

本申请要求2017年2月13日提交的标题为“networksecuritywithsurrogatedigitalcertificates”的美国专利申请号15/431,496的优先权,其公开内容通过引用整体并入本文。



背景技术:

在许多背景下,计算资源和相关数据的安全性非常重要。作为示例,组织通常利用计算设备的网络来向它们的用户提供一组稳健的服务。网络通常跨越多个地理边界,且常常与其他网络连接。例如,组织可使用计算资源的内部网络和由其他组织管理的计算资源两者来支持其操作。例如,该组织的计算机可与其他组织的计算机进行通信以访问数据和/或提供数据,同时使用另一个组织的服务。在许多情况下,组织使用由其他组织管理的硬件来配置并操作远程网络,从而降低基础设施成本并实现其他优点。在具有此类计算资源配置的情况下,确保对它们所持有的资源和数据的访问安全可能具有挑战性,尤其是随着此类配置的大小和复杂性的增长。

现代加密算法提供高水平的数据安全性。然而,一个组织内的用户和实体使用加密操作可能会给该组织监控网络的安全性并确保敏感信息(例如,商业秘密、社会安全号码、信用卡号码、私人医疗信息)不会以不适当的方式传输(无论是无意的还是恶意的)带来挑战。

附图说明

将参考附图来描述各种技术,在附图中:

图1示出了可以实践各种实施方案的环境的说明性示例;

图2示出了替代证书链的说明性示例;

图3示出了握手过程的说明性示例;

图4示出了监控网络流量的网络安全设备的说明性示例;

图5示出了根据各种实施方案的数据包的说明性示例;

图6示出了图示用于建立加密保护的通信会话的过程的图;

图7示出了图示用于生成替代证书链的过程的图;

图8示出了图示用于监控和保护网络上的敏感数据的过程的图;以及

图9说明了可实现各种实施方案的环境。

具体实施方式

本文档描述了用于通过使用替代数字证书来防止未授权的数据导出以及确保信息安全的技术。本文档中描述的系统可用于生成、存储、分发和使用替代数字证书,替代数字证书可由一个或多个网络安全设备用于跟踪网络活动并检测敏感信息是否以不正确的方式传输。敏感信息可以包括组织的商业秘密、私人信息等。不应传输的敏感信息的示例可包括信用卡号码、社会安全号码和帐户密码。网络安全设备可以用于监控、跟踪敏感信息跨网络的传输,且响应于这种传输来执行动作。

网络安全设备可以是位于组织的网络(例如,内联网)的边界处并且检查跨网络边界接收和/或传输的数据的计算机设备或模块。组织内部网络内的客户端计算机系统可以通过一个或多个网络安全设备来路由内部网络外部的网络流量网络流量。例如,位于组织内联网内的客户端计算机系统可以尝试与网络外部的服务器(例如,外部计算机系统)进行通信。来自客户端的数据可以被发送到网络安全设备,并且网络安全设备可以检查数据以确保敏感信息没有被传输到内联网外部,并且将数据转发到服务器。组织的内部网络可以具有用于路由出站流量的多个网络安全设备,并且这些设备可以被配置为彼此进行通信和/或利用共享计算资源。

网络安全设备可用于生成替代证书和替代证书链。网络安全设备可以访问硬件安全模块(hsm)和/或证书高速缓存,作为生成一个或多个替代证书的一部分。替代证书链可以包括两个或更多个数字证书,其形成从终端实体证书(例如,替代服务器证书)到受信任的根授权机构(例如,替代根授权机构证书)的信任链。替代根授权机构证书可以由替代根授权机构(例如公司根授权机构)进行数字签名。组织的系统管理员可以调配客户端计算机系统和/或客户端计算机系统上的软件,以便信任替代根授权机构证书。例如,可以给客户端计算机设备的web浏览器调配包括替代根授权机构证书的受信任根证书的列表。因此,可以形成并验证从替代服务器证书到替代根授权机构证书的有效的信任链。替代证书链的一个或多个证书可以部分地从另一个证书链导出。替代证书可以具有与来自其他证书链的证书相同的各种字段信息,例如主体名称、发布者名称、到期、密钥大小、密钥类型等。

客户端计算机系统和网络安全设备可以经由第一加密保护的通信会话(例如传输层安全性(tls)会话)进行通信。作为建立第一加密保护通信会话的握手过程的一部分,客户端计算机系统可以接收替代证书链并使用包括在替代服务器证书中的主体公钥来建立加密保护的通信会话。网络安全设备和服务器可以经由第二加密保护的通信会话进行通信,使得网络安全设备接收证书链并使用包括在服务器证书中的主体公钥来建立第二加密保护的通信会话。

网络安全设备可用于跟踪网络流量。网络安全设备可以接收由客户端计算机系统发送的以服务器作为预期接收者的加密数据,并且可以访问替代私钥,该替代私钥是替代服务器证书中公钥的对应私钥,公钥用于对数据进行加密。网络安全设备可以获得未加密的数据并确定数据是否包含敏感信息。例如,数据可以包括社会安全号码(例如,顾客的社会安全号码)并且可以被认为是敏感信息。在检测到数据中存在正在传输的敏感信息时,可以修改数据以便混淆或移除敏感信息。可以使用公钥对修改的数据进行加密,以传输到服务器,使用服务器证书来获得用于加密修改的数据的公钥。

证书和替代证书可以封装在各种类型的数据包中,作为跨一个或多个网络传输的一部分。网络安全设备可以接收包括数据包报头的第一数据包,数据包报头包括各种字段,其中一些字段可以指出数据包的大小和/或数据有效载荷(例如,因特网报头长度(ihl)、总长度和/或因特网协议版本4(ipv4)数据包的校验和字段)和包括证书链的至少一部分的有效载荷。网络安全设备可以通过克隆所接收到的数据包(例如,使用存储器复制操作)并且用与接收到的证书或证书链大小相同的替代证书或替代证书链来替换有效载荷(例如,ipv4数据包的ip数据部分)来生成导出数据包。以这种方式,导出数据包的报头信息可以具有与接收到的数据包相同的数据报头信息。在一些情况下,替代证书链的大小可以小于所接收到的证书,并且导出的数据包可以包括填充结构,使得所接收到的数据包和所导出的数据包的有效载荷(例如,数据部分)具有相同的大小。数据包可以根据各种协议,例如因特网协议版本4(ipv4)、因特网协议版本6(ipv6)和超文本传输协议(http)。更一般地,具有报头数据和/或元数据的第一数据包可以由数据联网设备结合证书和/或证书链的传输接收。具有相同报头和/或元数据的第二数据包可以由数据联网设备结合至少部分地从证书链导出的替代证书或替代证书链传输。

在前面和后面的描述中,描述了各种技术。出于解释的目的,将阐述特定的配置和细节,以便提供对实施所述技术的可能方式的透彻理解。然而,还明显的是,下面所描述的技术可以在不具有特定细节的情况下以不同配置来实践。此外,可以省略或简化众所周知的特征,以避免模糊所描述的技术。

图1是可以实践本公开的各种实施方案的环境100的说明性示例。在实施方案中,客户端计算机系统102和服务器104可以使用网络安全设备106进行通信(例如,经由网络)。网络安全设备106可以用作例如在客户端102与网络安全设备106之间以及在服务器104与网络安全设备106之间建立一个或多个加密保护的通信会话的一部分。

客户端计算机系统102可以是使用硬件、软件或两者的组合实现的计算机系统。客户端计算机系统102可以被配置为经由各种类型的网络来进行通信,网络包括内联网、因特网、蜂窝网络、局域网、卫星网络或任何其他这样的网络和/或其组合。客户端计算机系统102可以托管在可以管理一组策略的组织的网络环境中—例如,组织的网络管理员可以向客户端计算机系统102调配一组受信任的根证书。受信任的根证书可用于诸如下级授权机构通过使用密码例如通过生成数字签名或消息认证码(mac)来证明数据的真实性。作为示例,受信任的根证书可以由证书授权机构(例如,globalsign、digicert和entrust)发布,或者也可以是由组织向其自己的设备发布的私有证书授权机构。在一些实施方案中,客户端计算机系统102驻留在组织的内联网内,并且客户端计算机系统102与外部一方(例如,图1中所示的服务器104)之间的流量可以通过位于内联网的边缘的网络安全设备106来进行路由。客户端计算机系统可以访问替代证书链108,替代证书链可以作为与另一实体(例如,图1的服务器104)的通信的一部分而获得。

服务器104可以是使用硬件、软件或其组合实现的计算机系统。在一些实施方案中,服务器104可以是位于组织的内联网之外的计算机,并且内联网内的计算设备(例如,客户端计算机系统102)可以经由诸如因特网之类的外部网络连接到服务器104。服务器可以是任何合适的计算设备,并且可以访问客户端102可访问的计算资源。在一些实施方案中,客户端计算机系统102可以尝试与服务器104建立加密保护的通信会话。在一些情况下,客户端计算机系统102可能会被调配恶意代码(由于恶意软件、特洛伊木马病毒,或更一般地,计算机安全开发),其导致客户端102尝试漏出敏感信息到服务器104。

网络安全设备106可以是位于组织的网络(例如,内联网)的边界处并且检查跨网络边界接收和/或传输的数据的计算机设备或模块。可以使用硬件、软件或其组合来实现网络安全设备。在一些实施方案中,组织的内部网络内的客户端计算机系统102通过一个或多个网络安全设备来路由内部网络外部的网络流量。例如,位于组织内联网内的客户端计算机系统102可以尝试与网络外部的服务器104(例如,外部计算机系统)进行通信。来自客户端102的数据可以被发送到网络安全设备106,并且网络安全设备可以检查数据以确保敏感信息没有被传输到内联网外部,并且将数据转发到服务器104。组织的内部网络可以具有用于路由出站流量的多个网络安全设备,并且这些设备可以被配置为彼此进行通信和/或利用共享计算资源。网络安全设备可以实现为防火墙设备、路由器设备、交换机设备、集线器设备和各种其他类型的计算设备。网络安全设备可以实现为上述设备中的模块,并且可以实现为上述各种计算设备中的计算机可执行代码。

另外,网络安全设备106可以用于生成替代证书。网络安全设备可以访问硬件安全模块110(hsm)和/或证书高速缓存112,作为生成替代证书的一部分。硬件安全模块110可以是用于存储加密密钥的加密模块。在一些实施方案中,网络安全设备106可以访问加密服务,该加密服务执行可以由一个或多个hsm支持的各种加密操作(诸如生成数字证书)。在一些实施方案中,网络安全设备106可以利用hsm110和/或加密服务来生成数字证书。在一些实施方案中,网络安全设备可以例如使用加密服务,生成由替代根授权机构签名的数字证书。继续该示例,组织可以具有公司根授权机构,使得非对称密钥对的私钥用于对公司根授权机构证书进行数字签名,并且公司根授权机构证书和客户端计算机系统102被调配为(例如,由系统管理员)将公司根授权机构证书包括在受信任的根证书列表中。公司根授权机构证书可以是替代根授权机构证书。

在一些实施方案中,网络安全设备106可以包括和/或可以访问证书高速缓存112。当生成替代证书时,替代证书可以存储在证书高速缓存112中,并且替代证书到证书的映射可以存储在证书高速缓存112中。证书高速缓存可以使用易失性存储器(例如,随机存取存储器)或永久存储器(例如,硬盘驱动器)来实现,可以使用结构化存储(例如,数据库或数据库系统)或非结构化存储(例如,作为数据文件中的比特流)来存储。在证书高速缓存112中,数字证书可以是单独高速缓存的,或者可以包括附加的关联。例如,证书链中的链接也可以存储在证书高速缓存中,使得替代证书可以具有到发布者证书的关联链接(例如,在图1中,从替代服务器证书到替代发布者证书的关联链接)。

替代证书链108可以包括两个或更多个数字证书,其形成从终端实体证书(例如,替代服务器证书)到受信任的根授权机构(例如,替代根授权机构证书)的信任链。替代根授权机构证书可以由诸如公司根授权机构之类的替代根授权机构进行数字签名,并且替代根证书可以充当替代证书链108的信任锚。组织的系统管理员可以调配客户端计算机系统102和/或客户端计算机系统上的软件,以便信任替代根授权机构证书。例如,可以给客户端计算机设备102的web浏览器调配包括替代根授权机构证书的受信任根证书的列表。因此,可以形成并验证从替代服务器证书到替代根授权机构证书的有效的信任链。在一些实施方案中,替代证书链可以包括两个数字证书(例如,由替代根授权机构数字签名的替代服务器证书)。在其他实施方案中,链中可以包括三个或更多个数字证书。可能存在有效的信任根,其中可以使用受信任的根证书来以密码方式验证数字证书的有效性。在图1中,存在从替代服务器证书到替代根授权机构证书的有效信任链,并且信任链是可以加密地验证的。

在一些实施方案中,替代证书链108的一个或多个证书可以部分地从证书链114导出。证书链114可以是具有受信任根证书和包括服务器104的非对称公钥的终端实体证书的证书链。证书链114可以作为tls握手过程的一部分来提供。在一些实施方案中,替代服务器证书和服务器证书具有共享的共同信息,诸如主体名称、发布者名称、到期、密钥大小、密钥类型等。在一些实施方案中,图1中所示的数字证书是根据rfc5280的x.509v3证书,rfc5280据此通过引用并入本文。

客户端计算机系统102和网络安全设备106可以经由第一加密保护的通信会话(例如传输层安全性(tls)会话)进行通信。作为建立第一加密保护通信会话的握手过程的一部分,客户端计算机系统102可以接收替代证书链108并使用包括在替代服务器证书中的主体公钥来建立加密保护的通信会话。网络安全设备106和服务器104可以经由第二加密保护的通信会话进行通信,使得网络安全设备106接收证书链114并使用包括在服务器证书中的主体公钥来建立第二加密保护的通信会话。

图2示出了证书链202和替代证书链210的图200。替代证书链的一个或多个数字证书可以部分地从证书链中的对应数字证书导出。图2中所示的证书链202包括三个证书—服务器证书204、中间证书206和根证书208。证书可以包括各种字段,诸如证书的主体、证书的发布者以及主体公钥信息,主体公钥信息还可以包括主体公钥和关于主体公钥的信息,例如密钥类型和密钥大小。证书可以是根据rfc5280的x.509v3证书,rfc5280据此通过引用并入本文。

服务器证书204可以是终端实体证书。终端实体证书可以指包括公钥的证书,公钥具有对应私钥,私钥用作加密保护通信的一部分。例如,在图1中,可以包括服务器104的公钥的服务器证书可以具有对应的私钥,服务器104将私钥用作建立tls会话的tls握手过程的一部分。证书的主体字段可以是指与证书相关联的实体的标识符。例如,在服务器证书204中,主体“服务器”可以是指诸如上面结合图1描述的服务器之类的服务器。证书的发布者字段可以是指对证书进行数字签名的实体。在一些实施方案中,在发布者字段中标识的发布者可以是中间授权机构,或者可以是证书链的根授权机构。例如,在服务器证书204中,发布者“example_ia”可以是指已经对服务器证书204进行数字签名的中间授权机构。证书还可以包括关于主体的公钥信息的信息。主体公钥信息字段可以包括两个子字段—包括主体的加密公钥的比特流的密钥字段,以及标识主体公钥的公钥算法的算法字段。例如,在服务器证书204中,算法“rsa-2048”可以是指主体公钥是2048比特rsa公钥,并且密钥可以是2048比特流。服务器证书204的公钥可以具有与图2中所示的其他证书的公钥不同的值—注意,服务器证书204的公钥(为了说明的目的,以十六进制值0x123开始)具有与替代服务器证书212的公钥不同的值(也为了说明目的,其具有以0xabc开头的不同十六进制值)。

中间证书206可以是由受信任证书授权机构直接或间接发布的证书。与中间证书206相关联的中间授权机构可以访问对应于中间证书的公钥(例如,公钥0x234......)的私钥。中间授权机构的私钥可以用于对服务器证书204进行数字签名,并且中间证书206可以用于通过使用中间证书206的主体公钥执行签名验证来加密地验证数字签名。在一些实施方案中,中间证书206的主体字段和服务器证书204的发布者字段匹配(即,第一证书的发布者字段与第二证书的主体字段匹配,其中第二证书与对第一证书进行数字签名的实体相关联)。

根证书208可以是由与根证书相关联的证书授权机构自行发布的证书。例如,根证书的主体字段和发布者字段可以是指同一实体。在一些实施方案中,有附加信息包括在证书中以指出证书是根证书。例如,根据x.509v3标准的根证书208可以包括基本约束字段,该字段还包括为真的ca字段。在一些实施方案中,可以向计算机系统调配一个或多个受信任的根证书。另外,系统管理员可以调配计算机系统以包括附加的受信任证书,例如由组织的内部证书授权机构发布的根证书。在一些实施方案中,组织的内部证书授权机构可以由该组织调配的计算设备信任,但不一定被组织未调配的设备信任。与根证书208中标识的根授权机构相关联的私钥可以用于对中间证书206进行数字签名,并且包括在根证书208中的主体公钥可以用于加密地验证在中间证书上生成的数字签名的真实性。

可以存在从服务器证书204到根证书208的有效信任链,并且可以加密地验证链的有效性。对信任链的验证可以包括获得终端实体证书(例如,服务器证书204),并使用终端实体证书(例如,中间证书206)的发布者的公钥来验证终端实体证书的数字签名。依次,可以获得发布者证书(例如,中间证书206),并且可以以与刚刚描述的方式相同的方式验证发布者证书的数字签名。可以重复该过程,直到获得由根授权机构签名的证书(例如,根证书208)。根授权机构证书可以充当证书链的信任锚。可以使用根证书中包含的公钥来验证根证书的数字签名,并且可以执行验证以检查根证书是否包括在受信任的根证书列表中(例如,受信任证书列表,其至少部分地由系统管理员调配)。

应当注意,虽然结合图2在证书链202中示出了一个中间证书,但是在一些实施方案中,可能存在更多或更少的中间授权机构。例如,在一些实施方案中,服务器证书可以直接链接到根证书(例如,在终端实体证书由根授权机构进行数字签名的情况下)。作为第二示例,终端实体证书可以由第一中间授权机构进行数字签名,第一中间授权机构的证书可以由第二中间授权机构进行数字签名,和第二中间授权机构的证书可以由根授权机构进行数字签名。在一些实施方案中,证书链可以包括甚至更多的中间证书。

替代证书链210的一个或多个证书可以至少部分地从证书链202中的对应证书导出。替代证书链210的一个或多个证书可以由网络安全设备生成,例如由结合图1在各实施方案中描述的那些设备生成。作为示例,可以至少部分地基于诸如服务器证书204之类的另一证书的一个或多个字段的值来生成替代服务器证书212。图2中所示的替代服务器证书212可以通过获得服务器证书204的主体和发布者字段来生成。在一些实施方案中,替代证书的主体信息、发布者信息或其他证书信息可以与对应证书的相应信息相关联。替代数字证书的证书信息可以与对应数字证书的证书信息相关联,可以以各种方式相关联—例如,关联可以是指替代证书的一个或多个字段的证书信息与包括在对应的证书中的证书信息相同。在其他情况下,该关联可以包括数据的变换,例如,在一些情况下,证书的主体信息可以包括人类可读字段从一种语言到另一种语言的映射。在一些实施方案中,可以导出替代证书的附加字段,例如证书到期。在一些实施方案中,替代服务器证书212和服务器证书204的主体公钥可以是相同的大小。例如,在图2中,替代服务器证书212可以具有2048比特密钥,其大小被选择为匹配服务器证书204公钥大小的大小。注意,在一些实施方案中,替代证书的密钥大小可以与导出其的证书的密钥大小相同,并且密钥类型可以是不同的。例如,替代服务器证书212使用诸如diffie-hellman密钥交换算法之类的第一公钥算法,并且服务器证书使用诸如rsa算法之类的第二公钥算法。替代服务器证书212可以通过与替代中间证书214相关联的中间授权机构的私钥进行数字签名。

替代中间证书214可以部分地从中间证书导出。替代中间证书可以与中间授权机构相关联,中间授权机构可以用于发布诸如终端实体证书(例如,图2中所示的替代服务器证书212)之类的证书。替代中间授权机构可以映射到证书链202的中间证书授权机构。替代中间证书214的主体字段可以从对应的中间证书206的主体字段导出。在一些实施方案中,替代中间证书的发布者字段也可以从对应的中间证书导出。替代中间证书214可以通过另一个中间授权机构或根授权机构的私钥进行数字签名。例如,在图2中,替代中间证书214可以由与替代根证书216相关联的根授权机构进行数字签名。

在一些实施方案中,替代根证书216可以是替代证书链210的根证书。在一些实施方案中,可以存在证书链的根证书(例如,图2中所示的根证书208)和替代证书链的根证书(例如,图2中所示的替代根证书216),使得替代根证书216是独立生成的,使得至少替代根证书的主体字段和发布者字段不是从根证书208导出的。在一些实施方案中,系统管理员可以调配计算机系统以将由组织的内部证书授权机构发布的一个或多个根证书包括到受信任的根证书列表中。替代根证书216可以由组织的内部证书授权机构发布。在一些实施方案中,替代根证书216和根证书208可以是相同的证书。

如图2所示,证书链202和替代证书链210两者都可以具有针对不同根授权机构验证的有效信任链。在一些实施方案中,接收证书链的计算机系统可以具有受信任根证书208的列表,其包括根证书208和替代根证书216两者。在一些实施方案中,证书链202的一个或多个证书可以具有与替代证书链210中的对应证书相同的大小(例如,以字节为单位)。在一些实施方案中,证书链202的大小和替代证书链210的大小相等。在一些实施方案中,替代证书链210中的每个证书的大小都等于证书链202中的对应证书的大小(例如,替代服务器证书212的大小与服务器证书204的大小相同,对于各个链中的所有证书,依此类推)。

图3示出了图300,其中客户端302、网络安全设备304和服务器306执行与建立加密保护的通信会话有关的一组操作。例如,可以结合tls握手来执行操作。

客户端计算机系统302可以是根据上面结合图1描述的客户端计算机系统的计算机系统。客户端计算机系统302可以是组织的内联网内可以访问敏感信息的计算设备。敏感信息可能指的是不应在公司内联网外传输的信息。例如,敏感信息可能包括组织的商业秘密、员工或顾客的社会安全号码、信用卡号码等。网络安全设备304可以是根据上面结合图1描述的网络安全设备的计算设备。在一些实施方案中,客户端计算机系统302经由一个或多个网络安全设备与组织的内联网外的计算设备连接。网络安全设备304可以位于公司内联网与外部网络(例如,因特网)之间的边界处,并且可以经由一个或多个网络安全设备来路由从外部网络到客户端302的网络流量。在一些实施方案中,网络边界可以包括内联网内部且内联网外部的计算系统或完全在内联网的子部分内的计算系统。网络边界可以基于设备(例如在数据中心或物理办公室位置内的那些设备)的物理位置而存在。网络边界也可以基于例如在虚拟机实例与另一计算系统(例如,在同一主机上运行的另一个虚拟机实例)之间的虚拟和/或逻辑信息存在。更一般地,网络边界可以存在于网络流量的源与目的地之间的各种逻辑、虚拟和/或物理位置。在一些实施方案中,网络边界可以存在于网络流量的目的地,例如在目的地是已被隔离或列入黑名单的计算系统的情况下。服务器306可以是根据上面结合图1描述的服务器的服务器。服务器306可以是组织的内联网外部的计算系统,客户端302尝试与其建立tls会话。

作为tls握手协议的一部分,内联网的客户端计算机系统302可以传输308第一tlsclienthello,其中预期接收者是服务器306。在一些实施方案中,第一tlsclienthello可以经由网络安全设备304路由到服务器306。网络安全设备可以接收310第一tlsclienthello,并且响应于接收到第一tlsclienthello,向服务器306传输312第二tlsclienthello。在一些实施方案中,第一tlsclienthello可以包括所支持的加密算法的有序列表(例如,从最优先的到最不优先的),而第二tlsclienthello可以包括相同的有序列表。然而,在其他实施方案中,网络安全设备304可以传输具有不同的列表的第二clienthello,并且可以包括附加的加密算法(例如,网络安全设备304支持但客户端计算机系统302不支持的加密算法)。服务器306可以接收314第二clienthello。

响应于接收到第二clienthello,服务器306可以提供316对应的serverhello、证书链和serverhellodone。证书链可以包括终端实体证书,其与服务器306相关联,并且包括主体公钥,其对应的私钥可由服务器306访问。证书链可以是例如以上结合图2描述的那些的证书链,并且可以具有以受信任证书授权机构为根的信任链。证书链的真实性和完整性可以由证书链的接收者加密地验证。真实性可以指保证消息是由声称是消息作者的一方创建的。完整性可以指保证所接收到的消息在消息传输时没有故意地(例如,由恶意的一方)或无意地(例如,作为在传输期间信号丢失的结果)从其原始形式被修改。网络安全设备304可以接收serverhello、证书链和serverhellodone,并且可以随后验证证书链是有效的并且完成与服务器306的tls握手。

网络安全设备304可以生成替代证书链。作为生成替代证书链的一部分,网络安全设备304可以获得318替代根证书,该替代根证书可以是与客户端计算机系统302所信任的根授权机构相关联的数字证书。网络安全设备304可以访问对应于替代根证书中包括的公钥的私钥,或者可以访问可用于执行利用私钥的密码操作(例如,发布数字证书)的密码服务。网络安全设备304可以生成320一个或多个替代中间证书。使用图2中所示的证书链来作为示例,可以生成替代中间证书,其具有与证书链的对应中间证书相同的主体字段,以及指出中间证书是由替代根授权机构发布和数字签名的发布者字段。回到图3,在一些实施方案中,替代中间证书的密钥算法可以从中间证书导出。

另外,在一些实施方案中,可以构造替代中间证书以便具有与对应的中间证书相同的大小。例如,可以如此选择替代中间证书的密钥大小,使其与对应的中间证书的密钥大小相同。在一些情况下,替代证书(例如,替代中间证书)可以包括填充结构,以便匹配对应证书的大小。填充结构例如可以是预定大小的随机或确定字节流。填充结构可以作为诸如x.509v3数字证书之类的证书的扩展字段的一部分包括在内。作为第二示例,填充结构可以包括在可选字段中,诸如x.509v3数字证书的发布者唯一标识符或主体唯一标识符字段。在一些实施方案中,替代证书的大小可以通过生成更长或更短的标识符(例如,x.509v3数字证书的序列号字段)来匹配证书的大小,以使证书大小匹配。在一些实施方案中,替代证书可以从对应的证书中导出至少一些证书信息并省略其他信息。例如,在一些情况下,如果对应数字证书的所有导出字段都包括在替代证书中,则生成替代证书的系统可以确定替代证书的大小太大(例如,大于替代证书要与其大小相等的对应数字证书)。结果,系统可以在生成替代证书时省略和/或截断一个或多个可选字段的内容(即,省略的字段不包括在替代证书中)。可以省略和/或截断的字段包括与撤销证书相关的备用名称和扩展。在一些示例中,证书可以包括与撤销证书相关的多个字段,并且从该证书导出的替代证书可以省略与撤销证书相关的多个字段中的一个或多个。在一些实施方案中,可以至少部分地基于计算实体接收替代证书的能力来确定被省略和/或截断的字段(例如,可以省略和/或截断计算实体不支持的扩展)。在一些实施方案中,多个中间证书可以链接在一起,其中第一中间授权机构是第二中间授权机构的数字证书的发布者。在一些实施方案中,替代证书可以被高速缓存(例如,在上面结合图1讨论的证书高速缓存中),并且网络安全设备可以首先检查替代证书是否存在于高速缓存中。如果替代证书不存在,则可以如上所讨论生成一个,但是如果在高速缓存中找到一个,则代替可以从证书高速缓存中获得高速缓存的替代证书。

可以生成322替代服务器证书。网络安全设备304可以访问对应于替代服务器证书中包含的主体公钥的私钥。替代服务器证书可以由替代中间授权机构或替代根授权机构进行数字签名。替代服务器证书可以是终端实体证书,其可以由客户端302和网络安全设备304用作密钥交换过程的一部分。可以使用上面讨论的替代证书来构建替代证书链。响应于来自客户端302的第一tlsclienthello,网络安全设备304可以向客户端302提供324serverhello、替代证书链和serverhellodone。

客户端302可以接收326serverhello、替代证书链和serverhellodone。在接收到替代证书链后,客户端306可以验证328从替代服务器证书到替代根证书的信任链。在验证信任链是有效的并且确定替代服务器证书是真实的时,客户端302和网络安全设备304可以完成tls握手,并根据tls记录协议来传输数据。

图4示出了监控网络流量的网络安全设备的图400。网络安全设备402可以是上面结合图1-图3描述的网络安全设备。网络安全设备402可以接收加密数据404。加密数据404可以由客户端计算机系统发送,其中预期接收者为服务器(例如,结合图1讨论的客户端和服务器)。可以根据tls的版本(例如,如2008年8月的rfc5246中所定义的tls版本1.2,其据此通过引用并入)来接收加密数据。网络安全设备402可以从客户端计算机系统接收加密数据404,其中客户端计算机系统使用包括在替代服务器证书中的公钥(例如上面结合图1-图3描述的那些)对数据进行加密地加密。网络安全设备402可以访问替代私钥406,该替代私钥是替代服务器证书中公钥的对应私钥,该公钥用于对数据进行加密。网络安全设备402可以使用替代私钥406对加密数据404进行解密,并获得未加密数据408。

网络安全设备402可以获得未加密的数据408并确定数据是否包含敏感信息。例如,在图4中,数据可以包括社会安全号码(例如,顾客的社会安全号码)并且可以被认为是敏感信息。在检测到数据中存在正在传输的敏感信息时,可以修改数据。在一些实施方案中,可以完全移除敏感信息(例如,在密码或个人识别号码(pin)的情况下)。在其他情况下,可以修改敏感信息,例如如图4所示,其中网络安全设备可以被配置为混淆一部分信息,使得混淆的信息处于可接受的形式。在社会安全号码的情况下,传输社会安全号码的最后四位而不是整个社会安全号码是可以接受的。可以使用公钥对修改的数据410进行加密,以便传输给接收者。例如,为了将已修改的数据传输到服务器(例如,结合图1描述的服务器),网络安全设备402可以获得服务器证书412,并使用服务器证书中包括的公钥来加密已修改的数据。已加密的修改数据414可以被传输到服务器,服务器可以使用与服务器证书412中的公钥对应的私钥来解密修改的数据。

注意,可存在各种替代实施方案。例如,在一些实施方案中,作为第一tls握手的一部分,网络安全设备和客户端计算机系统可以对使用第一对称密钥来传输数据取得一致意见。同样地,作为第二tls握手的一部分,网络安全设备和服务器可以对使用第二对称密钥来传输数据取得一致意见。网络安全设备可以从客户端计算机系统接收加密数据,使用第一对称密钥来解密加密数据,检测数据中敏感信息的存在,相应地修改数据,使用第二对称密钥来加密修改数据,以及将已加密的修改数据传输到服务器,并且也可以访问第二对称密钥的服务器可以获得已解密的修改数据。

图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)。

第二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报头的所有字段都具有相同的相应值),源和目的地信息排除在外。在一些实施方案中,报头的一个或多个字段可以是不同的—例如,在一些实施方案中,报头可以包括校验和字段,该校验和字段至少部分地基于数据部分的值。由于证书链和替代证书链的证书信息可能不同,因此可以重新计算第二数据包的校验和,以确保第二数据包的有效性。

更一般地,具有报头数据和/或元数据的第一协议数据单元(pdu)可以由数据联网设备结合证书和/或证书链的传输接收。具有相同报头和/或元数据的第二pdu可以由数据联网设备结合至少部分地从证书链导出的替代证书或替代证书链传输。在一些实施方案中,服务器证书链的大小和替代证书链的大小可以是不同的—例如,如果替代证书链小于证书链,则可以包括填充结构作为第二数据包的ip数据512的一部分,以便使第一ip数据包502和第二ip数据包508的大小匹配。协议数据单元可以是指可以与信息一起传输的单元,其示例包括数据包、帧、分段、数据报和比特流。

虽然图5中示出了ip数据包以说明在证书链和替代证书链的传输中使用的匹配数据包大小,但是可以存在对实施方案的变体。例如,数据包可以是根据因特网协议版本4(ipv4)或因特网协议版本6(ipv6)的ip数据包。数据包可以根据开放系统互连(osi)模型的各个层处的协议,两者都包括可以用于使用所包括的证书来建立加密保护的通信会话的层之上和之下的层。例如,根据图5的数据包可以根据超文本传输协议(http)来实现,其中数据包可以对应于http消息正文,其中报头部分对应于关于消息正文的元数据(例如,内容长度),并且数据部分对应于消息正文数据,可用于传输证书和/或证书链。作为另一个示例,根据图5的数据包可以实现为具有段报头部分和数据部分的传输控制协议(tcp)段。作为又一个示例,根据图5的数据包可以实现为具有udp报头和udp数据的用户数据报协议(udp)数据报。根据图5的数据包还可以实现为具有元数据部分(例如,报头部分和帧检查部分)和有效载荷部分的以太网帧。应该注意的是,尽管图5示出了在每个数据包中传输整个证书链,但是,在各种实施方案中,数据包可以各自仅包括链的一部分(例如,证书或证书的一部分),包括证书链的多个部分的多个数据包可以传输,并在目的地重新组装。

在一些实施方案中,数字证书可以被分段并在多于一个数据包中传输。在这样的实施方案中,可以接收多个数据包,每个数据包都具有证书的一部分。系统可以基于所接收到的证书(或者甚至是所接收到的证书的一部分)来生成替代证书,并且对于所接收到的多个数据包中的每个数据包,生成第二多个数据包的封装所生成的替代证书的对应数据包。第二多个数据包中的每个数据包都可以具有与第一多个数据包的对应接收到的数据包的报头信息匹配的报头信息(诸如长度字段)。第二多个数据包的总长度(例如,以字节为单位的大小)可以被配置为等于结合证书接收到的数据包的总长度。在一些情况下,可以生成针对替代证书生成的每个数据包,其大小与对应的接收到的数据包的大小匹配。作为示例,考虑证书被分段以使得在第一数据包中传输字段的第一子集,并且在第二数据包中传输不同字段的第二子集的情况。在一些实施方案中,系统接收两个数据包,重新组装证书,生成替代证书,并且创建具有与第一数据包相同的字段的第三数据包,并且创建具有与第二数据包相同字段的第四数据包。第三和第四数据包可以分别具有与第一和第二数据包相同的大小(例如,以字节为单位)。注意,虽然数据包的字段可以匹配,但是它们的值可以是不同的(例如,源和目的地信息可以不同)。

图6示出了图示用于使用替代证书来建立加密保护的通信会话的过程600的图。过程可由任何合适的系统如上文结合图1描述的网络安全设备来执行。例如,当组织的内联网内的计算机系统尝试与外部系统(例如,组织的内联网之外的另一计算机系统)建立tls会话时,可以执行该过程。

系统可以从第一计算机系统接收602clienthello。clienthello可以作为tls握手协议的一部分进行,并且预期的接收者可以是第二计算机系统。接收clienthello的系统可以是网络安全设备或路由器,其是第一计算机系统与第二计算机系统之间的网络路径的一部分。系统可以经由诸如因特网之类的外部网络向第二计算机系统发送604clienthello。在一些实施方案中,系统结合发送的clienthello(例如,发送到第二计算机系统的clienthello)接收606包括serverhello、证书链和serverhellodone的响应。证书链可以具有可由系统加密地验证的信任链,并且证书链的终端实体证书可以包括证书,其包括与第二计算机系统相关联的公钥。系统可以使用公钥来与第二计算机系统建立608加密保护的通信会话(例如,tls会话)。公钥可以用作握手协议的一部分,以在执行过程600的系统与第二计算机系统之间协商共享秘密。应当注意,可以使用各种协议来接收证书链,并且可以以各种抽象级别将其封装在各种逻辑结构中。例如,可以至少部分地在一个或多个ip数据包中接收证书链。还可以至少部分地在http消息正文中接收证书链(在与前一句中描述的相同实施方案中或在不同实施方案中)。

在一些实施方案中,系统至少部分地基于所接收到的证书链来生成610替代证书链。此外,系统可以访问对应于替代证书链的终端实体证书的公钥的私钥。在一些实施方案中,系统可以使用加密服务来生成替代证书链的一个或多个证书和/或访问证书高速缓存以获得一个或多个替代证书。替代证书可以具有到受信任的替代根证书的信任链,替代根证书充当信任锚并在组织内发布。第一计算机系统可以信任替代证书(例如,第一计算机系统可以由系统管理员调配以包括替代根证书作为受信任证书)。在一些实施方案中,替代证书链可以具有与所接收到的证书链相同的长度(即,链具有相同数量的证书)和/或相同的大小(例如,以字节为单位)。替代证书链的生成可以根据下面结合图7描述的过程来执行。

例如,根据tls握手协议,系统可以例如使serverhello、替代证书链和serverhellodone对第二计算机系统可用612。系统可以使用与终端实体证书的公钥对应的私钥来与第一计算机系统建立614加密保护的通信会话。数据可以以各种方式提供给计算实体—例如,可以通过在一个或多个消息中传输所请求的数据来使数据可用于计算实体,或者可以通过将数据存储在计算实体可以访问的数据存储库(例如,网络存储设备)中,并向计算实体提供诸如令牌、统一资源标识符(uri)、统一资源定位符(url)等信息(其可以用于指出何处和/或如何从数据存储库中获取资源)来使数据可用。

在一些实施方案中,使用与第一加密保护的通信会话的配置数据匹配的配置数据来建立第二加密保护的通信会话。然而,在一些实施方案中,可以使用不同类型的会话。例如,组织可以支持在内部网络内的通信中使用的第一组密码套件,使得系统与第一计算机系统(其可以完全在内部网络内)之间的加密保护的通信会话使用从第一组密码套件中选择的一个密码套件。继续该示例,组织可以支持第二组密码套件,用于系统与可以在组织的内部网络之外的第二计算机系统之间的通信。系统与第二计算机系统之间的加密保护的通信会话可以使用从第二组密码套件中选择的不同的密码套件。在一些实施方案中,系统可以检测到第一计算机正在使用适合于内部通信(例如,组织内联网内的通信)的配置,尝试连接第二计算机系统,并且可以使用该配置来建立与第一计算机系统的通信会话,并且还选择适合于外部通信(例如,通过因特网进行通信)的不同配置以建立与第二计算机系统的通信会话。在一些情况下,可以是网络安全设备的系统可以使用第一密码套件来从第一计算机系统接收发往第二计算机系统的clienthello,并通过使用第二、更强的密码套件来升级连接,以在系统与第二计算机系统之间建立加密保护的通信会话。在一些情况下,系统可以检测到第一计算机系统与第二计算机系统协商的密码套件不被第二计算机系统支持,并且可以降级系统与第二计算机系统之间的连接(例如,通过使用不同的、较弱的密码套件,来在网络安全设备与服务器之间建立加密保护的通信会话),但是为系统与第一计算机系统之间的连接使用更强的密码套件。

图7示出了图示用于生成替代证书链的过程700的图。过程可由任何合适的系统如上文结合图1描述的网络安全设备来执行。在一些实施方案中,过程700可以由加密服务来执行,网络安全设备可以经由应用编程接口与加密服务进行通信。过程700可以结合上面结合图6描述的握手过程来执行。系统可以接收702形成从根授权机构到终端实体的信任链的证书列表。证书链可以包括两个或更多个数字证书。

系统可以生成获得替代根证书并将替代根证书添加704到替代证书链。替代根证书可以是证书链中的第一证书,并且可以是受信任的根证书。根证书可以由组织发布并且由组织内的计算设备信任。系统可以从所接收到的证书列表获得706证书。在一些实施方案中,获得所接收到的证书链的根证书之后的第一证书。系统可以检查708是否可以通过证书高速缓存(例如结合图1描述的证书高速缓存)访问对应于所获得的证书的替代证书。证书高速缓存可以具有证书到替代证书的映射,该映射可以用于确定从接收到的证书链获得的特定证书是否已被高速缓存。如果检查确定证书被高速缓存,则获得对应的替代证书并将其添加718到替代证书链。但是,如果在高速缓存中未找到证书,则可以生成与证书对应的替代证书。在一些实施方案中,系统可以不使用证书高速缓存,并且系统可以绕过检查708并执行与替代证书的生成相关的步骤。

替代证书可以通过首先生成710未签名的数字证书来从所获得的证书中导出,该未签名的数字证书包括从获得的证书的主体字段导出的主体字段和对应于与替代证书链中的先前证书相关联的实体的发布者(例如,在本示例中,替代根授权机构)。在一些实施方案中,从获得的证书中导出附加字段,例如加密密钥类型和密钥大小。随后,系统可以使用与替代证书链中的先前证书相关联的私钥(例如,在这种情况下,对应于包括在替代根证书中的公钥的私钥)来对数字证书进行数字签名712。加密服务可用于执行结合替代证书的生成描述的一些或所有加密操作。

签名的替代证书可以被添加714到替代证书链,替代证书链可以使用各种数据结构例如证书链的链表、证书阵列、堆栈数据结构等以逻辑方式来表示。系统可以检查716是否有更多证书在获得的证书列表中。如果有更多证书,则系统可以从证书列表中获得下一个证书,并从证书高速缓存中获得对应的替代证书或生成对应的替代证书。替代证书可以迭代地执行该过程,直到它确定列表中不再有证书,然后使替代证书链可用720,例如,参考上面结合以上图1-图6描述的实施方案。

图8示出了图示用于使用替代证书来监控网络流量的过程800的图。过程可由任何合适的系统如上文结合图1描述的网络安全设备来执行。系统可以经由第一加密保护的通信会话来接收802第一加密消息。会话可以是在内部网络内的第一计算机系统与网络安全设备之间建立的tls会话。可以根据上面结合图6描述的过程来建立加密保护的通信会话。

系统可以使用替代私钥来解密804第一加密消息。在一些实施方案中,替代公钥可以包括在替代证书链的替代终端实体证书中,替代证书链作为握手协议的一部分提供给计算机系统。计算机系统可能已经使用替代公钥对消息执行加密操作以生成第一加密消息。在一些实施方案中,系统可以使用至少部分地使用替代私钥获得的加密密钥来解密第一加密消息。例如,作为tls握手协议的一部分,系统可接收加密的秘密并使用替代私钥来解密加密的秘密。该秘密可用于确定可用于解密第一加密消息的对称密钥。

然后,系统可以检查806解密的第一消息是否包括敏感信息。敏感信息可能指的是不应在公司内联网外传输的信息。例如,敏感信息可能包括组织的商业秘密、员工或顾客的社会安全号码、信用卡号码等。如果系统确定有敏感信息包括在消息中,则系统可以修改808消息以移除敏感信息的至少一部分。例如,系统可以被配置为部分地修改以下类型的敏感信息:社会安全号码(混淆前5个数字,但允许传输最后4个数字);信用卡号码(混淆信用卡号码的所有数字,但最后4位数字除外);和电子邮件地址(混淆地址和域名的所有字母,但前两个字母除外)。更一般地,系统可以识别敏感信息的要修改的第一部分和识别敏感信息的可以保留(即,未修改)的第二部分。可以将敏感信息的保留部分传输给接收者(例如,结合图1描述的服务器)。在一些实施方案中,可以完全移除敏感信息(例如,可以通过用预定固定数量的星号字符替换密码来完全混淆密码)。

如果消息被修改,则系统可以使用与要接收消息的计算系统相关联的公钥,生成810修改的消息的第二加密消息。在示例中,公钥是从与要接收消息的实体相关联的数字证书获得的。在一些实施方案中,系统可以使用在系统与要接收消息的实体之间的握手过程期间获得的第二对称密钥来加密修改的消息,方式与上面结合解密步骤804描述的方式类似。如果消息未被修改,则系统可以通过执行刚刚描述的加密步骤来生成810第二加密消息,但是使用未修改的消息作为加密操作的输入。

然后,系统可以例如经由第二加密保护的通信会话(例如,tls会话),使第二加密消息对接收者计算系统可用812。在一些实施方案中,如果系统检测到敏感信息包括在原始消息中,则系统可以拒绝将消息递送给接收者计算机系统,而不是生成修改的消息。拒绝将消息递送给接收者计算机系统可以以各种方式完成,例如通过简单地接收消息(例如,以上面在步骤802中描述的方式)并且不将消息或修改的消息传输到接收者计算机系统。在一些实施方案中,系统还可以向在步骤802中传输消息的计算实体发送系统未能将消息递送给接收者的指示。在一些实施方案中,例如在响应于请求将消息传输到接收者计算机系统的那些实施方案中,系统可以向接收者计算机系统提供未能履行请求的指示,例如指示超时或错误代码。

图9示出用于实现根据各个实施方案的各方面的示例性环境900的各方面。应理解,尽管为了说明的目的使用基于web的环境,但是在适当的情况下可以使用不同的环境来实施各种实施方案。环境包括电子客户端设备902,所述电子客户端设备可以包括可操作来通过适当网络904发送和/或接收请求、消息或信息并且在一些实施方案中将信息传送回设备的用户的任何适当设备。此类客户端设备的示例包括个人计算机、手机、手持式消息传送设备、膝上型计算机、平板计算机、机顶盒、个人数据助理、嵌入式计算机系统、电子书阅读器等。网络可以包括任何适当网络,包括内联网、因特网、蜂窝网络、局域网、卫星网络或任何其他此类网络和/或上述网络的组合。用于这种系统的部件可至少部分地取决于所选择的网络和/或环境的类型。用于通过这样的网络进行通信的许多协议和部件是公知的,将不在此进行详细讨论。经由网络的通信可以通过有线或无线连接以及其组合来实现。在此示例中,网络包括因特网和/或其他可公开寻址的通信网络,因为环境包括用于接收请求并且响应于所述请求而提供内容的web服务器906,但是对于其他网络来说,可以使用提供类似目的的备选设备,如对本领域的普通技术人员明显的。

说明性环境包括至少一个应用服务器908和数据存储区910。应当理解,可以存在可以被链接或以其他方式配置的若干应用服务器、层或其他元件、进程或部件,其可以交互以执行诸如从适当的数据存储区获得数据之类的任务。如本文所使用的服务器可以以各种方式实现,例如硬件设备或虚拟计算机系统。在一些背景下,服务器可以指代正在计算机系统上执行的编程模块。如本文中所使用,除非另有说明或从上下文中清楚,否则术语“数据存储区”是指能够存储、访问并检索数据的任何设备或设备的组合,所述设备或设备的组合可以包括在任何标准、分布式、虚拟或群集环境中的数据服务器、数据库、数据存储设备以及数据存储介质的任何组合和任何数量的所述数据服务器、数据库、数据存储设备以及数据存储介质。应用服务器可以包括任何适当的硬件、软件和固件,所述硬件、软件和固件用于根据需要与数据存储区集成以执行客户端设备的一个或多个应用的方面、处理应用的数据访问和业务逻辑中的一些或全部。应用服务器可以与数据存储区协作来提供访问控制服务,并且能够生成包括但不限于以下各项的内容:文本、图形、音频、视频和/或可用于提供给用户的其他内容,所述内容可由web服务器以超文本标记语言(“html”)、可扩展标记语言(“xml”)、javascript、级联样式表(“css”)、javascript对象表示法(json)和/或另一适当的客户端侧结构化语言的形式提供给用户。传送到客户端设备的内容可以由客户端设备处理,以便以一种或多种形式提供内容,所述形式包括但不限于用户可通过听觉、视觉和/或通过其他感觉来感知的形式。在此示例中,对全部请求和响应的处理以及客户端设备902与应用服务器908之间的内容递送可由web服务器使用php:超文本预处理器(“php”)、python、ruby、perl、java、html、xml、json和/或另一种适当服务器侧结构化语言来处理。此外,除非另外从上下文中清楚,否则在本文中被描述为由单个设备执行的操作可以由可能形成分布式和/或虚拟系统的多个设备共同地执行。

数据存储区910可包括用于存储与本公开的特定方面相关的数据的若干单独数据表、数据库、数据文档、动态数据存储方案和/或其他数据存储机制和介质。举例来说,所示数据存储区可包括用于存储生产数据912和用户信息916的机制,生产数据和用户信息可用于提供用于生产侧的内容。数据存储区还被示为包括用于存储日志数据914的机制,所述日志数据可用于报告、分析或其他这类目的。应当理解,可能存在可能需要存储在数据存储区中的许多其他方面,如页面图像信息和访问权信息,所述方面可视情况存储在上文列出的机制中的任意机制中或存储在数据存储区910中的额外机制中。数据存储区910可以通过与其相关联的逻辑来操作,以便从应用服务器908接收指令,并且响应于所述指令获得数据、更新数据或以其他方式处理数据。应用服务器908可以响应于所接收指令而提供静态、动态数据或静态和动态数据的组合。诸如在web日志(博客)、购物应用、新闻服务以及其他此类应用中使用的数据之类的动态数据可以由如本文所描述的服务器侧结构化语言生成或者可以由在应用服务器上操作或在其控制下的内容管理系统(“cms”)提供。在一个示例中,通过由用户操作的设备,用户可以提交针对某一类型的项目的搜索请求。在这种情况下,数据存储区可以访问用户信息来验证用户的身份,并且可以访问目录详细信息以获得有关所述类型的项目的信息。随后,可将信息诸如以网页上的结果列表的形式返回给用户,用户能够通过用户设备902上的浏览器来查看所述网页。可以在专用浏览器页面或窗口中查看感兴趣的特定项目的信息。然而,应注意,本公开的实施方案不一定限于网页的上下文,而是可以更普遍地适用于处理一般的请求,其中请求不一定是对内容的请求。

每个服务器通常都将包括提供用于该服务器的一般管理和操作的可执行程序指令的操作系统,并且通常将包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),所述指令在由服务器的处理器执行时(即,作为被执行的结果)允许服务器执行其预期的功能。

在一个实施方案中,环境为利用若干计算机系统和部件的分布式和/或虚拟计算环境,所述计算机系统和部件使用一个或多个计算机网络或直接连接,经由通信链路进行互连。但是,本领域普通技术人员应理解,这种系统可在具有比图9所示的部件更少或更多部件的系统中同样顺利地操作。因此,图9中的系统900的描绘本质上应视为说明性的,并且不限制本公开的范围。

本公开的实施方案可以鉴于以下条款来描述:

1.一种系统,其包括:

包括处理器的计算机系统;以及

包含可执行指令的存储器,作为由所述处理器执行的结果,所述可执行指令使所述系统:

接收从服务器传输到客户端的证书链,所述证书链包括:

包括中间授权机构公钥和主体信息的中间证书,其中所述中间证书的有效性是可至少部分地基于所述中间证书与受信任根证书之间的第一信任链加密地验证的;以及

包括终端实体公钥的终端实体证书,其中所述终端实体证书的有效性是可至少部分地基于所述中间授权机构公钥加密地验证的;

通过以下方式生成替代证书链:

获得替代中间证书,所述替代中间证书包括替代中间授权机构公钥和与所述中间证书的所述主体信息相关联的主体信息,其中所述替代中间证书的有效性是可至少部分地基于所述替代中间证书与受信任的替代根证书之间的第二信任链加密地验证的;以及

获得替代终端实体证书,所述替代终端实体证书包括替代终端实体公钥和与所述终端实体证书的所述主体信息相关联的主体信息,其中使用对应于所述替代中间授权机构公钥的替代中间授权机构私钥来对所述终端实体证书进行数字签名;以及

将所述替代证书链作为所接收到的证书链的替换物传输到所述客户端。

2.如条款1所述的系统,其中:

所述计算机系统至少使用所述终端实体证书和所述证书链来与所述服务器建立第一加密保护的通信会话;以及

所述计算机系统至少使用所述替代证书链和对应于所述替代终端实体公钥的替代终端实体私钥来与所述客户端建立第二加密保护的通信会话。

3.如条款2所述的系统,其中所述存储器包含可执行指令,作为由所述处理器执行的结果,所述可执行指令还使所述系统:

通过所述第二加密保护的通信会话,接收加密的消息;

解密所述加密的消息;

至少部分地基于所述解密的消息来检测指出所述服务器不应该接收所述解密的消息的条件的满足;

修改所述解密的消息,使所述条件不再被满足;

使用所述终端实体公钥来加密所述修改的消息;以及

通过所述第二加密保护的通信会话,来传输所述加密的修改的消息。

4.如条款1-3中任一项所述的系统,其中所述证书链和所述替代证书链具有相同的长度。

5.一种计算机实现的方法,其包括:

获得中间授权机构证书,所述中间授权机构证书包括中间授权机构公钥;

生成替代终端实体证书,所述替代终端实体证书包括:

替代终端实体公钥;

与终端实体证书相关联的主体信息;

与所述终端实体证书相关联的发布者信息;并且

其中所述替代终端实体证书的有效性是可至少部分地基于所述中间授权机构公钥加密地验证的;以及

至少使所述替代终端实体证书可用于替换所述终端实体证书。

6.如条款5所述的计算机实现的方法,其中所述中间授权机构证书的有效性可通过包括第一受信任根授权机构的信任链来加密地验证,所述第一受信任根授权机构不同于可用于确定所述终端实体证书的有效性的第二受信任根授权机构。

7.如条款5或6所述的计算机实现的方法,其中所述终端实体证书的大小和所述替代终端实体证书的大小相等。

8.如条款5-7中任一项所述的计算机实现的方法,其中:

所述终端实体证书通过第一数据包获得,所述第一数据包包括协议类型和数据包大小;以及

通过第二数据包,使所述替代终端实体证书可用,所述第二数据包包括相同的协议类型和相同的数据包大小。

9.如条款8所述的计算机实现的方法,其中所述协议类型选自由以下组成的组:因特网协议(ip)、传输层安全性(tls)、传输控制协议(tcp)和用户数据报协议(udp)。

10.如条款8或9所述的计算机实现的方法,其中:

所述终端实体证书的大小大于所述替代终端实体证书的大小;以及

所述第二数据包还包括所述第二数据包的数据部分,所述数据部分包括所述替代终端实体证书和填充结构。

11.如条款8-10中任一项所述的计算机实现的方法,其中:

所述终端实体证书包括终端实体公钥;

所述终端实体公钥的大小大于所述替代终端实体公钥的大小;以及

所述替代终端实体证书还包括填充结构。

12.如条款8-11中任一项所述的计算机实现的方法,其中:

所述终端实体证书包括终端实体公钥和一个或多个扩展字段;

所述终端实体公钥的大小小于所述替代终端实体公钥的大小;以及

从所述终端实体证书获得所述主体信息包括省略所述一个或多个扩展字段的至少一部分。

13.一种非暂时性计算机可读存储介质,其上存储有可执行指令,作为由计算机系统的一个或多个处理器执行的结果,所述可执行指令使所述计算机系统至少:

生成第一多个数字证书,所述多个数字证书包括第一数字证书和第二数字证书,其中:

所述第一多个中的各个数字证书与第二多个数字证书的至少一个对应的数字证书相关联;以及

所述第二证书包括第一公钥和从所述第二多个中的相关联数字证书获得的发布者信息,所述相关联数字证书包括与所述第一公钥不同的第二公钥;以及

作为认证过程的一部分,提供所述第一多个数字证书来代替所述第二多个数字证书。

14.如条款13所述的非暂时性计算机可读存储介质,其中所述第一多个数字证书至少通过以下操作来生成:

确定存储了与所述第二多个中的证书相关联的高速缓存数字证书;

获取所述高速缓存的数字证书;以及

将所述高速缓存的数字证书添加到所述第一多个。

15.如条款13或14所述的非暂时性计算机可读存储介质,其中:

第一信任链可以至少部分地基于所述第一多个从所述第一数字证书到所述第二数字证书加密地验证;以及

第二信任链可以至少部分地基于所述第二多个从所述相关联的数字证书到根证书加密地验证。

16.如条款13-15中任一项所述的非暂时性计算机可读存储介质,其中第一公钥根据第一公钥算法,而所述第二公钥根据与所述第一公钥算法不同的第二公钥算法。

17.如条款13-16中任一项所述的非暂时性计算机可读存储介质,其中生成所述第一公钥以具有等于所述第二公钥的所述大小的大小。

18.如条款13-17中任一项所述的非暂时性计算机可读存储介质,其中所述可执行指令还使所述计算机系统:

使用所述第一公钥来与第一计算实体建立第一加密保护的通信会话;

使用所述第二公钥来与第二计算实体建立第二加密保护的通信会话;

经由所述第二加密保护的通信会话,从所述第二计算实体接收加密的消息;

对所述消息进行解密;

修改所述消息以移除敏感信息;以及

经由所述第一加密保护的通信,将加密的修改的消息传输到所述第一计算实体。

19.如条款18所述的非暂时性计算机可读存储介质,其中所述第一加密保护的通信会话使用第一密码套件,而所述第二加密保护的通信使用不同于所述第一密码套件的第二密码套件。

20.如条款18或19所述的非暂时性计算机可读存储介质,其中修改所述消息包括识别所述敏感信息的要修改的第一部分和识别所述敏感信息的要保留的第二部分。

各种实施方案还可在各种操作环境中实施,所述操作环境在一些情况下可包括一个或多个用户计算机、计算设备或处理设备,其可用于操作多个应用中的任何应用。用户或客户端设备可以包括多种计算机中的任一种,诸如运行标准操作系统的台式计算机、膝上型计算机或平板计算机,以及运行移动软件并且能够支持多种网络和消息传递协议的蜂窝式、无线和手持设备。这样的系统还可以包括多个工作站,它们运行各种可商购的操作系统中的任何一种以及用于诸如开发和数据库管理之类的用途的其他已知应用。这些设备还可以包括其他电子设备,诸如虚拟终端、瘦客户端、游戏系统以及能够经由网络进行通信的其他设备。这些设备还可以包括虚拟设备,例如虚拟机、管理程序和能够经由网络进行通信的其他虚拟设备。

本公开的各种实施方案利用本领域技术人员可能熟悉的至少一种网络来支持使用多种可商购的协议中的任一种的通信,所述协议诸如传输控制协议/因特网协议(“tcp/ip”)、用户数据报协议(“udp”)、在开放系统互连(“osi”)模型的各个层中操作的协议、文件传送协议(“ftp”)、通用即插即用(“upnp”)、网络文件系统(“nfs”)、公共因特网文件系统(“cifs”)以及appletalk。网络可以是例如局域网、广域网、虚拟专用网、因特网、内联网、外联网、公用交换电话网、红外网络、无线网、卫星网络以及上述网络的任何组合。在一些实施方案中,面向连接的协议可以用于在网络端点之间进行通信。面向连接的协议(有时被称为基于连接的协议)能够以有序流的形式传输数据。面向连接的协议可以是可靠或不可靠的。例如,tcp协议是一种可靠的面向连接的协议。异步传输模式(“atm”)和帧中继是不可靠的面向连接的协议。面向连接的协议与面向数据包的协议(诸如udp)形成对比,所述面向数据包的协议在没有保证排序的情况下传输数据包。

在利用web服务器的实施方案中,web服务器可以运行各种服务器或中间层应用中的任一者,包括超文本传输协议(“http”)服务器、ftp服务器、通用网关接口(“cgi”)服务器、数据服务器、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)”和“一(an)”和“所述”以及类似指称对象的使用应被解释为涵盖单数和复数两者。除非另有说明,否则术语“包括”、“具有”、“包括”和“含有”将被解释为开放式术语(即,意味着“包括但不限于”)。在未经修改且涉及物理连接的情况下,术语“连接”应被解释为部分或全部包含在内、附接到或接合在一起,即使存在某些介入。除非本文另有说明,否则本文中值的范围的列举仅意图用作单独提及落在该范围内的每个单独值的速记方法,并且每个单独的值并入本说明书中,如同在本文中单独列举一样。除非另有说明或与上下文矛盾,否则术语“集合”(例如,“项目集合”)或“子集”的使用应被解释为包括一个或多个成员的非空集合。此外,除非另有说明或与上下文矛盾,否则术语对应集合的“子集”未必表示对应集合的真子集,而是子集和对应集合可以相等。

除非另有具体陈述或另外明确地与上下文矛盾,否则连接语言,诸如形式“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中的至少一个各自存在。

除非本文另有说明或另外明确地与上下文矛盾,否则本文所述的过程的操作可以以任何合适的顺序执行。本文中描述的过程(或其变化和/或其组合)可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以实施为在一个或多个处理器上共同地执行的代码(例如,可执行指令、一个或多个计算机程序或者一个或多个应用),通过硬件来实施或其组合来实施。代码可以存储在计算机可读存储介质上,例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储。计算机可读存储介质可以是非暂时性的。在一些实施方案中,代码存储在一个或多个非暂时性计算机可读存储介质的集合上,其上存储有可执行指令,当由计算机系统的一个或多个处理器执行时(即,作为被执行的结果),所述指令使得计算机系统执行这里描述的操作。该非暂时性计算机可读存储介质集合可以包括多个非暂时性计算机可读存储介质,并且多个非暂时性计算机可读存储介质中的单独的非暂时性存储介质的一个或多个可能并非包含所有代码,而多个非暂时性计算机可读存储介质共同存储所有代码。

因此,在一些示例中,计算机系统被配置为实施单独地或共同地执行本文中描述的过程的操作的一个或多个服务。此类计算机系统可以例如被配置有能够执行操作的适用硬件和/或软件。此外,实施本公开的各种实施方案的计算机系统在一些示例中可以是单个设备,而在其他示例中,是包括多个设备的分布式计算机系统,所述多个设备不同地操作,使得分布式计算机系统执行本文中描述的操作,并且使得单个设备不能执行所有操作。

除非另有要求,否则对本文所提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅意图更好地说明本发明的实施方案,而非对本发明的范围构成限制。本说明书中的语言不应被解释为表示任何未要求保护的元素是实践本发明所必需的。

本公开的实施方案在本文中描述,包括发明人已知的用于实施本发明的最佳模式。在阅读前面的描述之后,这些实施方案的变化对于本领域的普通技术人员可变得明显。本发明人期望本领域技术人员适当地使用此类变化,并且发明人意图以与本文中的具体描述不同的方式实践本公开的实施方案。因此,本公开的范围包括如适用法律所允许的对所附权利要求中叙述的主题的所有修改和等效物。此外,除非本文中另有说明或另外明确地与上下文矛盾,否则本公开的范围涵盖其全部可能变化中的上述元素的任何组合。

在本文中引用的所有参考文献,包括公开案、专利申请案以及专利特此通过引用并入本文中,如同每一参考文献个别地且具体地指示为通过引用并入且以其全文在本文中阐述一样。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1