首页 / 专利库 / 电脑零配件 / 固件 / 软件 / 软件套件 / 用于在不用局部可访问的私有密钥的情况下终止SSL连接的方法、装置和系统

用于在不用局部可访问的私有密钥的情况下终止SSL连接的方法、装置和系统

阅读:2发布:2020-12-08

专利汇可以提供用于在不用局部可访问的私有密钥的情况下终止SSL连接的方法、装置和系统专利检索,专利查询,专利分析的服务。并且一种互联网 基础 设施传递平台(例如,由服务提供者操作)提供RSA代理“服务”作为SSL协议的增强,其将加密的预主秘密(ePMS)的解密卸载到外部 服务器 。利用此服务,代替“局部地”解密ePMS,SSL 服务器代理 向RSA代理服务器组件(转发)ePMS并且在响应中接收解密的预主秘密。以这样的方式,解密密钥不需要与SSL服务器关联地存储。,下面是用于在不用局部可访问的私有密钥的情况下终止SSL连接的方法、装置和系统专利的具体信息内容。

1.一种在第一机器上执行的装置,包括:
处理器;
计算机存储器,保存被适配为由处理器运行的程序代码,所述程序代码被配置为代理服务器的客户端组件,所述代理服务器还具有与所述客户端组件不同并且在远离第一机器的第二机器上执行的服务器组件,包括:
用于至少部分地通过验证证书链具有匹配给定证书权限的根节点来建立到代理服务器的服务器组件的安全连接的代码;
用于从客户端接收安全握手请求的代码;
用于响应于接收到安全握手请求,确定与该安全握手请求相关联的密钥交换是否能够至少部分地通过使用与代理服务器的服务器组件相关联地保持的私有密钥处理,该私有密钥不能被代理服务器的客户端组件访问
用于响应于基于学习表中的信息确定与该安全握手请求相关联的密钥交换能够至少部分地通过使用与代理服务器的服务器组件相关联地保持的私有密钥处理,经由该安全连接将第一信息转发到代理服务器的远程服务器组件的代码,所述第一信息被适配为利用在与代理服务器的远程服务器组件相关联地保持的所述私有密钥被处理;以及用于经由该安全连接从代理服务器的服务器组件接收响应的代码,所述响应包括第二信息,所述第二信息已被在代理服务器组件处通过生成所述第一信息的哈希、使用所述哈希作为高速缓存的索引、基于所述哈希确定所述第一信息是否已经存在于所述高速缓存中、当所述第一信息没有已经存在于所述高速缓存中时将所述第一信息存储在所述高速缓存中、以及将在代理服务器的服务器组件处保持的私有密钥应用于所述第一信息而生成,所述第二信息被适配为在第一机器处使用以进一步便于在所述安全握手请求的处理期间的密钥交换。
2.如权利要求1所述的装置,其中第一信息是加密的预主秘密,并且第二信息是解密的预主秘密,并且其中所述程序代码还包括用于使用解密的预主秘密生成所述主秘密的代码。
3.如权利要求2所述的装置,还包括用于将主秘密返回到客户端的代码。
4.如权利要求1所述的装置,其中利用不对称Rivest-Shamir-Adelman(RSA)来建立预主秘密。
5.如权利要求1所述的装置,其中安全连接是相互验证的连接。
6.如权利要求1所述的装置,其中所述安全握手请求是安全套接层(SSL)握手请求和传输层安全(TLS)握手请求中的一个。
7.一种安全通信的方法,包括:
在第一机器上执行的代理服务器的客户端组件与在第二机器上执行的代理服务器的服务器组件之间建立安全连接,所述第二机器与第一机器远程地安置,所述安全连接是至少部分地通过所述代理服务器的客户端组件和服务器组件的每一个验证证书链具有匹配给定证书权限的根节点而建立的;
由在第一机器上执行的代理服务器的客户端组件接收安全握手请求;
在接收到安全握手请求时,由代理服务器的客户端组件基于学习表中的信息确定与该安全握手请求相关联的密钥交换是否能够至少部分地通过使用远程地且与代理服务器的服务器组件相关联地保持的私有密钥处理;
基于确定该安全握手请求能够至少部分地通过使用远程地保持的私有密钥处理,通过该安全连接将第一信息代理到该代理服务器的服务器组件;
通过安全连接从该代理服务器的服务器组件接收响应,所述响应包括第二信息,所述第二信息已被在代理服务器的服务器组件处通过生成所述第一信息的哈希、使用所述哈希作为高速缓存的索引、基于所述哈希确定所述第一信息是否已经存在于所述高速缓存中、当所述第一信息没有已经存在于所述高速缓存中时将所述第一信息存储在所述高速缓存中、以及将在代理服务器的服务器组件处保持的私有密钥应用于第一信息而生成,所述第二信息被适配为在第一机器处使用以进一步便于在所述安全握手请求的处理期间的密钥交换;以及
利用第二信息来便于密钥交换。
8.如权利要求7所述的方法,其中安全连接是相互验证的连接。
9.如权利要求7所述的方法,其中所述安全握手请求是安全套接层(SSL)握手请求和传输层安全(TLS)握手请求中的一个。
10.如权利要求7所述的方法,其中所述第一信息是加密的预主秘密,并且第二信息是所述预主秘密。
11.一种安全通信的系统,包括:
在第一网络可访问位置中的至少一个机器,其包括在硬件上运行的代理服务器组件软件程序;
在第二网络可访问位置中的至少一个机器,其包括在硬件上运行的代理客户端组件软件程序;
所述代理服务器组件软件程序和代理客户端组件软件程序每个都包括用于建立并维护在其间的安全连接的代码,所述安全连接是至少部分地通过所述代理服务器的客户端组件和服务器组件的每一个验证证书链具有匹配给定证书权限的根节点而建立的;
所述代理客户端组件软件程序被适配为从客户端接收新的安全握手请求;
所述代理客户端组件软件程序操作来基于学习表中的信息确定与该安全握手请求相关联的密钥交换是否能够使用远程地且与所述代理服务器组件软件程序相关联地保持的私有密钥处理;
所述代理客户端组件软件程序在确定该安全握手请求能够使用远程地保持的私有密钥处理,通过该安全连接将第一信息转发到所述代理服务器组件软件程序;
所述代理服务器组件软件程序被适配为接收从代理客户端组件软件程序转发的第一信息;
所述代理服务器组件软件程序进一步被适配为通过安全连接将响应返回到代理客户端组件软件程序,所述响应包括第二信息,所述第二信息已被在所述代理服务器组件软件程序处通过接收所述第一信息、生成所述第一信息的哈希、使用所述哈希作为高速缓存的索引、基于所述哈希确定所述第一信息是否已经存在于所述高速缓存中、当所述第一信息没有已经存在于所述高速缓存中时将所述第一信息存储在所述高速缓存中、以及将所述私有密钥应用于所述第一信息而生成;
所述代理客户端组件软件程序接收所述第二信息并且利用它进一步便于在所述安全握手请求的处理期间的密钥交换。
12.如权利要求11所述的系统,其中第一网络可访问位置是与实体相关联的数据中心,第二网络可访问位置是远离第一网络可访问位置的物理位置。
13.如权利要求12所述的系统,其中当在数据中心与物理位置之间时,数据中心具有更高的安全度。
14.如权利要求11所述的系统,其中代理服务器组件软件程序与所述高速缓存相关联,该高速缓存存储来自于至少所述代理客户端组件软件程序的加密的预主秘密。
15.如权利要求14所述的系统,其中所述高速缓存是加密的预主秘密的最近最少使用的(LRU)高速缓存。
16.如权利要求15所述的系统,其中所述代理服务器组件软件接收加密的预主秘密作为所述第一信息,生成接收的加密的预主秘密的哈希,并且使用该哈希作为高速缓存中的索引以确定加密的预主秘密是否存在于高速缓存中。
17.如权利要求11所述的系统,其中安全连接是相互验证的连接。
18.如权利要求11所述的系统,其中所述新的安全握手请求是安全套接层(SSL)握手请求和传输层安全(TLS)握手请求中的一个。
19.如权利要求11所述的系统,其中所述第一信息是加密的预主秘密,并且第二信息是所述预主秘密。
20.一种在第二机器上执行的装置,所述第二机器与第一机器远程地安置,所述第一机器由提供实体管理,包括:
处理器;
计算机存储器,保存被适配为由处理器运行的程序代码,所述程序代码包括被配置为代理服务器的服务器组件的代码,所述代理服务器还具有与所述服务器组件不同并且在远离第二机器的第一机器上执行的客户端组件,所述程序代码还包括:
用于至少部分地通过验证证书链具有匹配与所述提供实体相关联的给定证书权限的根节点来建立到所述代理服务器的客户端组件的安全连接的代码;
用于从代理服务器的客户端组件接收与新的安全握手请求相关联的第一信息的代码,所述安全握手请求已被在代理服务器的客户端组件处从客户端接收,所述第一信息已经在代理服务器的客户端组件处基于学习表中的信息确定与该安全握手请求相关联的密钥交换能够至少部分地使用远程地且与所述代理服务器组件相关联地保持的私有密钥处理之后经由安全连接被接收的;
用于生成所述第一信息的哈希、使用所述哈希作为高速缓存的索引、基于所述哈希确定所述第一信息是否已经存在于所述高速缓存中、当所述第一信息没有已经存在于所述高速缓存中时将所述第一信息存储在所述高速缓存中、以及将该私有密钥应用于第一信息来生成第二信息的代码;以及
用于将响应经由安全连接返回到代理服务器的客户端组件的代码,所述响应包括所述第二信息,所述第二信息用于进一步便于在所述安全握手请求的处理期间的所述密钥交换。
21.如权利要求20所述的装置,还包括数据存储器,所述数据存储器是用于存储来自于至少代理服务器的客户端组件的加密的预主秘密的所述高速缓存。
22.如权利要求21所述的装置,其中所述高速缓存是加密的预主秘密的最近最少使用的(LRU)高速缓存。
23.如权利要求22所述的装置,其中所述程序代码接收加密的预主秘密作为第一信息,生成接收的加密的预主秘密的哈希,并且使用该哈希作为高速缓存中的索引以确定加密的预主秘密是否存在于高速缓存中。
24.如权利要求23所述的装置,其中利用不对称Rivest-Shamir-Adelman(RSA)加密建立该预主秘密。
25.如权利要求20所述的装置,其中安全连接是相互验证的连接。
26.如权利要求20所述的装置,其中所述新的安全握手请求是安全套接层(SSL)握手请求和传输层安全(TLS)握手请求中的一个。
27.如权利要求20所述的装置,其中所述第一信息是加密的预主秘密,并且第二信息是所述预主秘密。

说明书全文

用于在不用局部可访问的私有密钥的情况下终止SSL连接的

方法、装置和系统

[0001] 本申请基于并要求2011年12月16日提出的序列号No.61/554,571的优先权。

技术领域

[0002] 本申请一般涉及利用诸如SSL之类的加密协议的基于网络安全的通信。

背景技术

[0003] 分布式计算机系统现有技术中是公知的。一个这样的分布式计算机系统是由服务提供者操作并管理的“内容传递网络”或“CDN”。服务提供者通常代表使用服务提供者的基础设施的第三方(用户)提供内容传递服务。此类型的分布式系统通常是指由网络或多个网络与软件、系统、协议和技术一起链接的独立计算机的集合,所述技术被设计以便于各种服务,诸如内容传递、网络应用加速、或外包源站点基础设施的其它支持。CDN服务提供者通常经由数字属性(诸如网站)提供服务传递,其被在用户户中提供并且然后被布置到网络。数字属性通常被绑定到允许服务提供者负责业务并给它的用户开帐单的一个或多个边缘配置。
[0004] 安全套接层(SSL)是用于通过诸如互联网之类的网络进行安全通信的公知的加密协议。诸如SSL之类的加密协议通常基于公共密钥加密录系统,诸如RSA(Rivest,Shamir和Adelman)加密算法。对于传统的基于RSA的SSL会话,连接的两方达成用于生成用于会话的其余部分的参数的“预主秘密”(PMS)的协议。通常,两方使用RSA非对称加密以建立预主秘密而不用明文交换实际值。在操作中,SSL客户端生成预主秘密并且利用SSL服务器的公开可用的RSA密钥加密它。这生成加密的预先主秘密(ePMS),其然后被提供到SSL服务器。SSL服务器具有私有解密密钥,其用于解密加密的预主秘密。在这一点上,客户端和服务器都具有原始的预主秘密并且可以使用它以生成用于实际加密和安全数据交换的对称密钥。
[0005] 解密加密的预先主秘密是在SSL连接中需要私有密钥的仅有的时机。此解密出现在所谓的SSL终点处。在许多实例中,SSL终点是不安全的,并且因此那里的密钥的储存和使用呈现重大的安全险。发明内容
[0006] 互联网基础设施传递平台(例如,由服务提供者操作的)提供RSA代理“服务”作为SSL协议的增强,其将加密的预主秘密(ePMS)的解密卸载给外部服务器。利用此服务,代替“局部地”解密ePMS,SSL服务器向RSA代理服务器组件代理(转发)ePMS并且在响应中接收解密的预主秘密。以这样的方式,解密密钥不需要与SSL服务器关联地存储。
[0007] 在一个系统实施例中,第一网络可访问位置中的至少一个机器包括RSA代理服务器软件程序,并且第二网络可访问位置中的至少一个机器包括RSA代理客户端软件程序。RSA代理服务器软件程序与RSA代理客户端软件程序每个都包括用于建立并且维护其间的安全(例如,相互验证的SSL)连接的代码。RSA代理客户端软件通常与SSL服务器组件(诸如OpenSSL)联合运行。但是,根据此公开,SSL解密密钥不可被RSA代理客户端软件访问。相反地,加密的预主秘密的解密被卸载到RSA代理服务器软件程序。在操作中,RSA代理客户端软件程序通过相互验证的SSL连接接收并且向RSA代理服务器软件程序转发与从终端用户客户端程序(例如,SSL启动的网络浏览器、本地移动应用,等)接收(在RSA代理客户端处)的新的SSL握手请求相关联的加密的预主秘密。RSA代理服务器软件程序利用在RSA代理服务器软件程序处维持并且否则RSA代理客户端软件程序不可访问的解密密钥来解密加密的预主秘密。RSA代理服务器软件程序然后通过相互验证的SSL连接将解密的预先主秘密返回到RSA代理客户端软件程序。终端终用户客户端程序和SSL服务器组件二者都然后拥有预主秘密(并且可以使用它生成用于加密它们之间的连接的对称密钥)。
[0008] 虽然不意指限制,但是第一网络可访问位置是与实体相关联的数据中心,并且第二网络可访问位置是远离第一网络可访问位置的物理位置。在两个位置之间,数据中心(在其处RSA代理服务器组件运行)是更安全的。
[0009] 上文已经概述了本发明的更多相关特征中的一些。这些特征应当被解释为仅仅说明性的。可以通过以不同的方式应用公开的发明或通过修改将描述的发明获得许多其它有益结果。附图说明
[0010] 为了更完全地理解本发明和它的优点,现在结合附图参考以下描述,其中:
[0011] 图1是示出了配置为内容传递网络(CDN)的公知的分布式计算机系统的方框图
[0012] 图2是代表性的CDN边缘机器配置;
[0013] 图3示出了在一个实施例中可以实践本主题公开的代表性防火墙后网络配置;以及
[0014] 图4示出了此公开的RSA代理技术。

具体实施方式

[0015] 图1示出了公知的分布式计算机系统,其(如同下面描述的)是由这里所述技术扩展以提供单个基于HTTP的平台,能够将广播观众规模的在线HD视频传递到最流行的运行时环境和固定线路和移动环境中的最新设备。
[0016] 在公知的系统中,诸如图1所示,分布式计算机系统100被配置为CDN并且被认为具有102a-n个绕着互联网分布的机器集合。通常,大部分机器是接近互联网,即,在或相邻终端用户接入网络的边缘设置的服务器。网络操作命令中心(NOCC)104管理系统中各个机器的操作。诸如网站106之类的第三方站点将传递内容(例如,HTML、嵌入式页对象、流媒体、软件下载、等等)卸载到分布式计算机系统100,并且具体地到“边缘”服务器。通常,内容提供者通过将给定内容提供者域或子域化名(例如,由DNS CNAME)到由服务提供者的权威性域名服务管理的域来卸载他们的内容传递。期望内容的终端用户被引导到分布式计算机系统以更可靠并且高效地获得那些内容。尽管未详细地示出,但是分布式计算机系统也可以包括其它基础设施,诸如分布式数据收集系统108,其收集来自于边缘服务器的使用和其它数据,跨区域或区域集合聚集数据,并且将数据传递到其它后端系统110、112、114和116以便于监控、记录、提醒、计费、管理和其它操作和管理功能。分布式网络代理118监控网络以及服务器负荷并提供网络、业务和负荷数据到DNS查询处理机制115,其对于由CDN管理的内容域是权威性的。分布式数据传输机制120可以用来将控制信息(例如,管理内容、便于负荷均衡的元数据,等等)分布到边缘服务器。
[0017] 如图2所示,给定机器200包括运行支持一个或多个应用206a-n的操作系统内核(诸如Linux或变体)204的商品硬件(例如,Intel奔腾处理器)202。为了便于内容传递服务,例如,给定机器通常运行应用的集合,诸如HTTP代理207(有时被称为“全球主机”或“克隆(ghost)”进程)、名称服务器208、本地监控进程210、分布式数据收集进程212,等等。对于流媒体,机器通常包括一个或多个媒体服务器,诸如Windows媒体服务器(WMS)或Flash服务器,根据支持的媒体格式。
[0018] CDN边缘服务器被配置为提供一个或多个扩展的内容传递特征,优选地基于域特定、用户特定,优选地利用使用配置系统分布给边缘服务器的配置文件。给定配置文件优选是基于XML的并且包括便于一个或多个高级内容处理特征的内容处理规则和指令的集合。配置文件可以经由数据传输机制被传递到CDN边缘服务器。美国专利No.7,111,057示出了用于传递并管理边缘服务器内容控制信息的有用基础设施,并且这些和其它边缘服务器控制信息可以由CDN服务提供者本身、或操作源服务器的内容提供者用户(经由外联网等)提供。
[0019] CDN可以包括存储子系统,诸如在美国专利No.7,472,178中描述的,其公开通过引用合并于此。
[0020] CDN可以操作服务器高速缓存分层结构以提供用户内容的中间高速缓存;在美国专利No.7,376,716中描述了一个这样的高速缓存分层结构子系统,其的公开被通过引用合并于此。
[0021] CDN可以在客户端浏览器、边缘服务器和用户源服务器当中以在美国公开No.20040093419中描述的方式提供安全的内容传递。其中描述的安全的内容传递一方面在客户端与边缘服务器处理之间、另一方面在边缘服务器进程与源服务器进程之间实施基于SSL的链路。这使得SSL保护的网页和/或它的组件被经由边缘服务器传递。
[0022] 作为覆盖,CDN资源可以用来便于企业数据中心(其可以被秘密地管理)与第三方软件作为服务(SaaS)提供者之间的广域网(WAN)加速服务。
[0023] 在典型操作中,内容提供者识别内容提供者域或它期望由CDN服务的子域。CDN服务提供者将内容提供者域与边缘网络(CDN)主机名关联(例如,经由规范名称、或CNAME),并且CDN提供者然后向内容提供者提供那个边缘网络主机名。当到内容提供者域或子域的DNS查询在内容提供者的域名服务器处被接收时,那些服务器通过返回边缘网络主机名进行响应。边缘网络主机名指向CDN,并且边缘网络主机名然后经由CDN名服务被解析。所以,CDN名服务返回一个或多个IP地址。请求的客户端浏览器然后向与IP地址相关联的边缘服务器做出内容请求(例如,经由HTTP或HTTPS)。请求包括具有源内容提供者域或子域的主机报头。在接收到具有主机报头的请求时,边缘服务器检查它的配置文件以确定请求的内容域或子域实际上是否由CDN处理。如果是的话,边缘服务器将它的内容处理规则和指令应用于在配置中指定的域或子域。这些内容处理规则和指令可以位于基于XML的“元数据”配置文件内。
[0024] 通过进一步背景下,CDN用户可以预订“防火墙后”管理的服务产品以加速在用户的企业防火墙后面托管的内部网网络应用,以及加速将防火墙后面的他们的用户之间桥接到互联网中托管的应用的网络应用。为了实现这两个使用情况,CDN软件可以在一个或多个客户数据中心中托管的虚拟机上、和在远程“分支机构”中托管的虚拟机上运行。在客户数据中心中执行的CDN软件通常提供服务配置、服务管理、服务报告、远程管理访问、客户SSL证书管理,以及用于配置的网络应用的其它功能。在分支机构中执行的软件为位于那里的用户提供最后一程网络加速。CDN本身通常提供在CDN数据中心中托管的CDN硬件以提供运行在客户防火墙后的节点与服务提供者的其它基础设施(例如,网络和操作设施)之间的网关。这类管理的解决方案为企业提供相对于他们公司的内部网利用CDN技术的机会。图3示出了此类型的基本结构。在代表性的实施方式中,BTF网络由管理网关(AMG)300和一个或多个企业管理网关(EMG)302管理。AMG位于CDN操作和网络服务位置处。它管理现有客户的数据库并且可以访问EMG。EMG 302存在于客户的防火墙的内部并且管理BTF网络的各个终端节点304。终端节点对应于传统CDN中的边缘节点。AMG授权EMG(步骤1),并且EMG授权边缘节点A和B(步骤2和3)。边缘节点两者现在都信赖对方和EMG以创建如描述的客户信赖区(步骤4)。根据此基本信赖模型,AMG 300授权EMG 302以执行用于公司的BTF功能。EMG 302然后可以授权每一个终端节点以执行各个色或任务。一旦信赖经由此授权链建立,保密数据和秘密可以在网络周围被安全地交换。在此方法中,边缘节点通常被安装在远程分支机构处(接近终端终用户)并且EMG(父节点/区域)被安装在公司集线器处(通常,其中应用服务器所处的位置)。如上所述,该解决方案将用于企业的加速扩展到在互联网上任何地方服务的应用,诸如SaaS(软件作为服务)应用。通过桥接企业的基于CDN的私有覆盖网络与现有的CDN公共互联网覆盖网络,在远程分支机构的终端用户获得加速的端到端应用。
[0025] 为了BTF适当地加速SSL业务,它需要终端节点上的SSL密钥和证书。如上所述,SSL使用一次性RSA解密以在客户端和服务器之间建立私有的预主秘密。根据此公开,此RSA解密被卸载到安全的终端节点或包含私有密钥的其它服务,而其余的握手和SSL连接正常继续。现在描述此处理。
[0026] 在不用局部可访问的私有密钥的情况下终止SSL连接
[0027] 利用以上作为背景,现在描述本公开的主题。假定熟悉SSL握手。
[0028] 根据此公开,传统的SSL握手,并且具体地,加密的预主秘密的解密出现在正常的SSL终点(SSL服务器)外部(即,远离)。如图4所示,终点处的SSL服务器400包括代理服务器的“客户端组件”402,它的“服务器组件”404位于远程。服务器组件404具有与其关联的数据存储器406,其中维护解密密钥408。这些解密密钥408不可被客户端组件402访问。如将描述的,在SSL握手期间,并且代替解密加密的预主秘密本身,客户端组件402将它接收到(从传统的SSL客户端410)的加密的预主秘密代理(转发)到服务器组件404并且回过来接收解密的预主秘密。其余SSL事务(SSL服务器400与SSL客户端410之间)正常地完成。在此方法中,SSL私有密钥不被存储在SSL服务器上(或,一般地说,在SSL终点处)。
[0029] 优选地,代理服务器的客户端组件402和服务器组件404基于RSA加密;因此,这些组件在这里有时被称为RSA代理的组件。加密的预主秘密的转发(从客户端组件到服务器组件)这里有时被称为RSA代理请求。虽然RSA是优选的算法,但是也可以使用其它非对称加密算法。
[0030] 现在回到图3,分支机构和数据中心机器优选地使用安全连接(例如,相互验证的SSL连接)以通信并且传递业务。可以使用其它类型的安全连接(例如,IPSec VPN)。这些连接用于RSA代理请求、用户数据、和其它业务。如上所述,RSA代理客户端组件在分支机构中执行,同时它关联的服务器组件在(更安全的)数据中心中执行。在一个实施例中,每个机器具有单个客户端证书和用于与对等通信的密钥对。当提供(例如,通过CDN客户门户)新的机器时,所述机器生成私有密钥和CSR(证书签名请求)并且将后者发送到AMG。CSR优选地包含一对标识符,诸如用于分支机构或数据中心机器的唯一序列号,以及用于CSR版本的序列号。AMG签名CSR(优选地利用与CDN相关联的证书权限(CA))并且将证书发送到分支机构机器。另外,AMG将包含证书细节(序列号对)的消息发送到可以与分支机构通信(基于门户中的对等配置)的任何数据中心。利用其它CDN密钥管理基础设施,AMG签名客户端和服务器CSR(优选地利用CDN关联的CA)。优选地,分支机构机器和数据中心机器两者都维护有效的对等方和CA的集合。由AMG更新此集合以支持轮换和撤回。此外,每个盒优选地具有一份CA以及由盒和证书序列号标识的可接受的对等方的白名单。为了建立相互验证,相互SSL连接的两方(换句话说,RSA代理客户端组件在一方,并且RSA代理服务器组件在另一方)验证对等证书链具有匹配CA并且包含容许的序列号对的根节点。客户端和服务器组件也验证对等证书包含期望的机器序列号。
[0031] 如图4所示,RSA代理客户端402属于SSL传输模。在操作中,当接收到(从输入的SSL握手请求)ClientHello时,SSL模块检查IP地址(加端口)和证书的学习表。如果条目不存在,则数据被流化而未修改。如果数据中心机器可以执行用于IP和端口的RSA代理,则它将发送回包含RSA代理的服务器证书的新消息。SSL模块将IP地址和证书添加到学习表。在用于那个IP地址的下一个新的(非再开始的)SSL事务上,SSL模块找到条目并且知道它将执行RSA代理事务。如果学习表输入用于失败的RSA代理请求(或,在可替换中,在没有被使用一段时期之后),则学习表条目被删除。这些条目可以由数据中心机器随时更新,例如,通过代理客户端发送具有用于特定IP和端口的新证书的另一个消息。
[0032] 在握手期间,模块终止SSL连接并且将ServerCertificate从学习表发送到具有证书的请求的客户端。当接收到ClientKeyExchange消息和ePMS时,模块将RSA代理请求发送到正确的数据中心。根据此公开和如上所述,RSA代理请求和响应被RSA代理服务器404的服务器组件处理,其通过相互验证的SSL连接发送并接收数据。如果RSA代理服务器的服务器组件404返回失败或暂停,则SSL模块(客户端组件402)终止客户端连接并且握手没有成功。
[0033] 无限制地,SSL模块被实施为SSL协议终止器。在一个实施例中,它是建立于标准OpenSSL上的程序代码。
[0034] RSA代理客户端组件(在分支机构中的SSL模块)使用消息接口发送RSA代理请求并且通过相互验证的SSL连接响应。优选地,RSA客户端请求是包括以下信息字段的数据包:{ePMS长度、ePMS、服务器证书的哈希}。从RSA代理服务器组件(数据中心中的SSL模块)返回的响应数据包具有以下信息字段:{状态、解密的PMS长度、解密的预主秘密}。
[0035] 现在描述运行在数据中心设施处的RSA代理服务器组件的实施例。如注意的,它的基本操作是接收包含以上指定的请求的未加密的数据包和用定义的响应数据包作出响应。优选地,RSA代理服务器维护ePMS值的最近最少使用的(LRU)高速缓存。在执行解密之前,模块检查高速缓存以查看请求的ePMS是否已被看见。此检查可以利用哈希查找方案执行。如果加密的预主秘密的哈希已经存在于高速缓存中,则坏的状态被返回到RSA代理客户端组件(并且对管理员生成错误或提醒)。优选地,RSA代理服务器的服务器组件对请求进行速率限制以阻止损害的机器利用冲刷攻击来删除先前解密的秘密。优选地,RSA代理服务器的服务器组件也维护它可以充当用于其的代理的证书和密钥对的表。利用此表(其也可以被实施为哈希表)使得代理服务器高效地查找服务器密钥对(例如,通过由客户端组件发送的证书的哈希)。一旦RSA代理服务器的服务器组件已经验证ePMS是新的,它就将它添加到高速缓存,在它的表中查服务器私有密钥,解密ePMS,并且发送响应。
[0036] 这里描述的技术具有许多优点。主要优点是SSL私有密钥不被存储在SSL服务器上。在诸如上面描述的分布式解决方案中,这意味着私有密钥不被存储在终止SSL的分支机构盒中,反而在托管RSA代理服务器的服务器组件的数据中心盒处。在实施重放保护的情况下,攻击者不能使用损害的SSL服务器以解密先前的SSL事务。在正常的SSL服务器上,如果密钥被损害,则其它技术(诸如证书撤回列表或在客户端浏览器处OCSP)必须用于阻止被窃取的SSL密钥的使用。利用RSA代理,服务提供者仅需要做出RSA代理服务器的配置变化。利用此分布式方法,可以在具有数据中心中的定制硬件的机器上进行SSL事务、RSA解密的计算昂贵的部分。
[0037] 如果网络代理节点(在分支机构处)被发现被损害,则管理员简单地需要删除用于损害的节点的验证的证书。对于标准的SSL,将需要在每个终端用户系统上进行撤回,其可能是更难以管理的。另外,密钥轮换仅需要出现在RSA代理机器上,而不是标准SSL所需的所有网络代理机器上。
[0038] 防火墙后实施例不被预期限制此公开。每当企业使用通过互联网链路的CDN技术(诸如上面描述的)作为通过互联网的最优WAN连接分支、数据中心、远程工作和移动用户到应用时可以使用RSA代理方法。更一般地,每当一方(客户端)希望经由基于RSA的SSL加密与另一方(服务器)的通信并且服务器不被信赖直接存储RSA私有密钥时可以使用该方法。
[0039] 在代表性的实施方式中,RSA代理在软件中实施,如由处理器执行的计算机程序指令。
[0040] 一般地说,利用一起便于或提供上面描述的功能的一个或多个计算有关的实体(系统、机器、进程、程序、库、函数等)的集合提供这里描述的技术。在典型的实施方式中,软件在其上运行的代表性的机器包括商品硬件、操作系统、应用运行时环境、和应用或进程和关联数据的集合,其提供给定系统或子系统的功能。如描述的,功能可以在独立的机器中、或跨分布式机器集合实施。功能可以被提供为服务,例如,作为SaaS解决方案。
[0041] 虽然以上描述由本发明的某些实施例执行的操作的特定顺序,但是应当理解这样的顺序是示范性,因为可替换实施例可以以不同的顺序执行操作、组合某些操作、重叠某些操作,等。说明书中对给下实施例的参考指示描述的实施例可以包括特定特征、结构、或特性,但是每个实施例可以不一定包括所述特定特征、结构、或特性。
[0042] 虽然已经在方法或进程的上下文中描述了公开的主题,但是本公开也涉及用于执行这里操作的装置。此装置可以被专门地构造以用于需要的目的,或它可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可以被存储在计算机可读存储介质中,诸如但是不局限于任何类型的盘,包括光盘、CD-ROM、和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、磁或光卡、或适合于存储电子指令的任何类型的介质、并且每个耦接到计算机系统总线。虽然已经单独地描述给出系统的组件,但是普通的技术人员将理解,一些功能可以被组合或分享在给定指示、程序序列、代码部分,等等中。
[0043] 优选地,在应用层解决方案中实施功能,尽管这不是局限性,因为识别的功能的部分可以被内置在操作系统等中。
[0044] 功能可以被利用除HTTP之外的其它应用层协议实施,诸如SSL VPN、或具有类似工作特性的任何其它协议。
[0045] 对计算机构的类型没有局限性,其可以实施连接的客户端方或服务器方。任何计算实体(系统、机器、设备、程序、进程、工具、等)可以充当客户端或服务器。
[0046] 虽然这里的技术在用于SSL通信的RSA代理的上下文中描述,但是这不是限制。此外,方案可以在由加密技术保护的其它传输协议(诸如TLS)中实施。一般地说,这里的技术可以用在其中秘密数据需要利用非对称密码从一个对等方交换到另一个对等方并且其中接收对等方不被信赖具有私有密钥的任何上下文中。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈