利用互联网提示服务加速在线证书状态检查的制作方法

文档序号:15309799发布日期:2018-08-31 21:36阅读:215来源:国知局

本申请要求于2015年9月23日提交的题为“利用互联网提示服务加速在线证书状态检查”的美国临时专利申请号62/222,460的优先权,其全部内容通过引用结合于此。

本申请一般涉及用于安全通信的证书,并且更具体地涉及利用互联网提示服务来加速在线证书状态检查。



背景技术:

网络浏览器允许用户使用加密通信与内容服务器进行通信。在内容服务器已经向网络浏览器认证其身份之后,基于相互同意的密钥在网络浏览器和内容服务器之间建立加密通信。内容服务器的认证可以使用由已知证书机构发布的证书来完成。然后网络浏览器可以通过在与内容服务器建立安全通信信道之前联系发布证书机构来验证证书的真实性。



技术实现要素:

描述了多个利用互联网提示服务来加速在线证书状态检查的示例。一个示例性方法包括由计算装置从提示服务器接收提示信息,所述提示信息包括证书信息;响应于对建立与远程计算装置的安全通信的请求,从远程计算装置接收证书;以及基于证书信息确定证书的有效性。

另一示例性方法包括从第一计算装置接收提示反馈,所述提示反馈包括关于一个或多个证书的证书信息;以及响应于确定证书信息包括新证书信息,将新证书信息存储在高速缓存中,所述一个或多个证书与第一计算装置和远程计算装置之间的网络事务相关,其中所述网络事务包括建立安全通信信道。

一个示例性装置包括存储器;以及处理器,其被配置为执行存储在存储器中的处理器可执行程序代码,所述处理器可执行程序代码被配置为使所述处理器:从提示服务器接收包括证书信息的提示信息;响应于对建立与远程计算装置的安全通信的请求,从远程计算装置接收证书;以及基于证书信息确定证书的有效性。

另一个示例性装置包括存储器;以及处理器,其被配置为执行存储在存储器中的处理器可执行程序代码,所述处理器可执行程序代码被配置为使所述处理器:从第一计算装置接收提示反馈,所述提示反馈包括关于一个或多个证书的证书信息;以及响应于确定证书信息包括新证书信息,将新证书信息存储在高速缓存中,所述一个或多个证书与第一计算装置和远程计算装置之间的网络事务相关,其中所包括的网络事务包括建立安全通信信道。

一个示例性计算机可读介质包括处理器可执行程序代码,所述处理器可执行程序代码被配置为使处理器:从提示服务器接收包括证书信息的提示信息;响应于对建立与远程计算装置的安全通信的请求,从远程计算装置接收证书;以及基于证书信息确定证书的有效性。

另一示例性计算机可读介质包括处理器可执行程序代码,所述处理器可执行程序代码被配置为使处理器:从第一计算装置接收提示反馈,所述提示反馈包括关于一个或多个证书的证书信息;以及响应于确定证书信息包括新证书信息,将新证书信息存储在高速缓存中,所述一个或多个证书与第一计算装置和远程计算装置之间的网络事务相关,其中所包括的网络事务包括建立安全通信信道。

提到这些说明性示例不是为了限制或限定本公开的范围,而是提供用于帮助理解其的示例。在详细描述中讨论了说明性示例,其提供了进一步的描述。通过检查本说明书可以进一步理解各种示例提供的优点。

附图说明

并入本说明书并构成本说明书的一部分的附图示出了一个或多个特定示例,并且与示例的描述一起用于解释特定示例的原理和实现方式。

图1至2示出了利用互联网提示服务来加速在线证书状态检查的示例系统。

图3示出了利用互联网提示服务来加速在线证书状态检查的示例性计算装置。和

图4至9示出了利用互联网提示服务来加速在线证书状态检查的示例方法。

具体实施方式

本文描述了利用互联网提示服务来加速在线证书状态检查的示例。本领域的普通技术人员应当理解,以下描述仅是说明性的,并不意图以任何方式进行限制。现在将详细参考附图所示的示例的实现方式。贯穿附图和以下描述将使用相同的参考指示符来指代相同或类似的项目。

为了清楚起见,并未示出和描述在此描述的示例的所有常规特征。当然,应该理解的是,在开发任何这种实际实现方式时,为了实现开发者的特定目标(例如符合应用和业务相关的约束)必须做出许多特定于实现方式的决定,并且这些具体的目标会因应实现方式和开发人员而有所不同。

在利用互联网提示服务加速在线证书状态检查的一个说明性示例中,用户在其家用计算机上启动网络浏览器并导航到统一资源定位符(“url”)以访问其银行账户以支付账单。当用户选择url时,网络浏览器向银行的网络服务器发出请求以建立通信信道。银行的网络服务器响应,两台计算机建立不安全的通信信道。然后用户的计算机发出对安全通信信道的请求。银行的网络服务器收到请求并部分通过发送声明认证银行网络服务器的证书来响应。这样的证书通常由已知的证书机构创建并发布给特定的计算装置(例如服务器)或网站,并且可以用于验证提供证书的计算装置的身份。稍后可以通过向发布证书机构请求信息并将接收到的证书信息与证书进行比较来验证证书的真实性。

然而,在这说明性示例中,当用户输入银行的url时,网络浏览器向互联网提示服务发出请求。为了响应请求,互联网提示服务为所述url将提示信息发送给网络浏览器。这样的提示信息可以包括帮助预取银行的网络服务器所服务的一个或多个网页中使用的对象的信息。在这个示例中,提示信息包括关于银行的网络服务器的证书的证书信息。因此,当银行的网络服务器向网络浏览器提供其证书时,网络浏览器可以使用提示信息验证证书,而不是向证书机构发出请求。如果网络浏览器确定证书有效,它将接受证书,然后与银行的网络服务器建立安全通信信道。如果证书无效,网络浏览器则将从银行的网络服务器断开连接。但是,如果包含在提示信息中的证书信息不包括关于接收到的证书的信息或者太旧(例如证书信息指示证书信息的到期时间已经过去),网络浏览器则可以向证书机构发送请求以请求验证证书。

在与银行的网络服务器建立安全连接之后,银行的网络服务器将网页发送到网络浏览器以向用户显示。用户然后使用网页支付其帐单,然后导航离开银行的网页。一旦银行的网页已被加载(例如完全加载),网络浏览器基于网页事务而产生反馈信息,包括关于证书的信息。然后网络浏览器将反馈信息发送到互联网提示服务,其使用反馈信息来更新其自己的关于银行的网络服务器及其证书的信息的高速缓存。

通过提示服务获取证书信息,用户的网络浏览器可以加速建立安全通信信道的过程。安全通信信道可以使用加密通信协议,例如安全http(“https”)或任何其他合适的安全通信协议。为了建立安全通信信道,一般过程可以是从银行的网络服务器接收证书,然后向证书机构请求信息。但是相反,由于证书信息是与在用户选择url时(或者甚至可以在用户选择url之前)所请求的提示信息一起接收的,所以可以更快地验证证书。这种改进在通过高等待时间或低带宽通信链路(例如卫星链路)的通信环境中可能特别有用。与证书机构的通信可能需要几百毫秒到几秒的时间。因此,消除对联系证书机构的需要可以减少与服务器建立安全通信信道的时间。

这说明性示例旨在向读者介绍本文所讨论的总体主题,本公开并不限于这示例。以下部分描述了用于利用互联网提示服务加速在线证书状态检查的系统和方法的各种附加非限制性示例。

现在参考图1,图1示出了用于利用互联网提示服务加速在线证书状态检查的示例性系统100。这示例性系统100包括多个客户端装置110a-c、多个内容服务器120a-b、多个证书机构130a-b和提示服务140,其中各自包括一个或多个计算装置,这些计算装置将参照图3更详细描述。另外,这些部件中的每一个都通过由网络150表示的一个或多个通信网络与其他部件进行通信,这将在下面更详细地描述。客户端装置110a-c各自执行互联网使能的应用112a-c(或纯粹是应用),其可包括诸如网络浏览器(例如还与预取器114通信的网络浏览器112c)或移动应用程序的应用。

应用112a-c在操作期间与一个或多个内容服务器120a-b通信以获取信息,例如呈现使用相应应用程序112a-c(例如网络浏览器、移动应用程序、流式视频播放器、电子邮件应用、文字处理应用、数据库软件等)的用户的信息。内容服务器120a-b可以提供应用112a-c所请求的任何种类的信息,并且可以包括诸如新闻、财务信息、零售购物信息或医疗记录之类的信息。由于这些信息中的一些可能是敏感的或机密的,并且受到一个或多个登录或认证要求的保护而不能访问,所以内容服务器120a-b可以在提供对所请求的信息的访问之前要求用户提供登录和密码信息。然而,为了确保登录和密码信息的安全性以及所请求的信息的安全性,应用112a-c可以首先请求与内容服务器120a-b的安全通信信道。

为了与内容服务器进行通信(内容服务器120a),在这示例中客户端装置110a向内容服务器120a发送初始请求,其请求初始的、不安全的连接。内容服务器120a以关于初始连接的特定信息来响应该请求,而客户端装置确认所述内容服务器的响应,这建立了初始连接。可以使用诸如超文本传输协议(“http”)、文件传输协议(“ftp”)、简单邮件传输协议(“smtp”)等任何合适的通信协议来创建这种初始连接,所述通信协议可以通过诸如传输控制协议(“tcp”)和互联网协议(“ip”)(统称为“tcp/ip”)的较低层协议进行通信。应当理解,具体的协商过程将根据建立初始不安全通信连接所涉及的协议而变化。此外,一些协议在建立安全通信连接之前可能不会创建不安全的通信连接。相反,它们可能会立即请求安全通信连接。根据本公开的示例可以与任何这样的协议一起使用。

在建立了初始连接之后,客户端装置110a便向内容服务器120a发送建立安全通信信道的请求。在接收到客户端装置的请求之后,内容服务器120a以用于建立安全通信信道的信息以及用于向客户端装置110a认证内容服务器120a的证书来响应该请求。

由内容服务器120a提供证书以向客户端装置110a认证内容服务器120a由客户端装置110a“相信”它由其控制的实体控制。例如,如果客户端装置110a最初在“www.bank.com”向内容服务器发送通信请求,其可以接收响应并建立与作出响应的服务器的连接,但客户端装置110a不能保证作出响应的服务器实际上是www.bank.com服务器,也不能保证连接已被破坏并重新路由到由另一未知实体运行的服务器。在这种情况下,如果客户端装置110a要向未知实体提供敏感信息(例如登录和密码信息或信用卡信息),未知实体可能能够随后擅自使用这些信息。

在这种情况下,证书由内容服务器120a提供并且包括标识内容服务器120a、控制服务器的实体(例如金融机构)以及发布证书的实体(例如证书机构130a-b之一)的信息,并且可以包括其他信息,例如标识号码、加密密钥或算法、受支持的安全通信协议、到期信息等。在一些示例中,证书可以是符合x.509的证书。

证书机构130a-b是用于提供这种证书的公知实体。诸如操作内容服务器120a的金融机构的实体可以从诸如证书机构130a的证书机构购买证书。然后证书机构130a为内容服务器120a生成证书,所述证书可以用于预定的时间段。在预定的时间段过期后,证书将失效,并且新证书被发布。由于其他原因,证书也可能被撤销,例如证书由第三方破坏。证书机构130a维护先前发布但现在已撤销的证书的记录,使得客户端110a可以确定由内容服务器120a呈现的证书是有效的还是已经被撤销。

因此,从内容服务器120a接收到证书之后,客户端装置110a在接受证书并建立与内容服务器120a的安全通信连接之前验证证书是有效的。通常,客户端装置110a将首先检查证书内的某些信息以验证证书的明显真实性,例如数字签名或到期日期。如果这些检查失败,客户端装置110a可以拒绝该证书并且可以终止与内容服务器120a的连接。如果这些检查成功,客户端装置110a便可向在证书中标识的证书机构(在这示例中为证书机构130a)发送对于证书信息(例如证书撤销列表(“crl”))的请求。crl通常与特定的证书机构130a而非特定的一个或多个服务器相关联,因此证书机构130a将用证书机构130a的crl来进行响应,而客户端装置110a将通过搜索其从内容服务器120a接收到的证书的crl来确定证书是否已被撤销。如果证书已被撤销,客户端装置110a通常会终止连接。然而,如果证书保持有效,客户端装置110a则接受证书并建立与内容服务器120a的安全通信信道。

然而,在该示例中,在客户端装置110a启动应用112a之后,应用112a向提示服务140发送对内容服务器120a的提示信息的请求。在应用程序112a是网络浏览器的示例中,预取器(例如预取器114)可以在它检测到网络浏览器已经开始与内容服务器120a进行网页事务(或者如果它期望这种网页事务很可能发生)时发出这样的请求。对于其他类型的应用(例如专用银行或购物应用),当应用112a启动时,应用112a可以向提示服务140发出一个或多个请求。

如下所述,来自应用112a的明确或者甚至隐含的请求仅仅是可以促使提示服务器140向应用112a发送提示信息的触发的一个示例。其他触发的示例包括对应用112a在提示服务器140的浏览历史或浏览习惯的知识,其在一些示例中可以由应用112a周期性地提供给诸如云的外部网络,而提示服务器140可以从所述外部网络接收到这样的信息。提示服务器140可以被配置为利用应用112a的浏览历史或习惯来预测,并因此将提示信息推送至应用112a,而无需首先从应用112a接收请求。另一触发的例子是所请求的搜索结果返回到应用112a。提示服务器140可以被配置为在接收到关于搜索结果的副本或其他信息时推送搜索结果中的一个或多个url的提示信息。另一触发的例子是应用112a从一个特定状态转换到另一个状态。例如,提示服务器140可以被配置为每当应用112a(在该示例中可以是浏览器)被打开时知道应用112a通常请求特定的url或url组。提示服务器140可以被配置为在检测到或以其他方式被通知应用112a已经被打开时将这些url的提示信息推送到应用112a。

然而,对提示服务140的请求通常请求所标识的url的信息,例如用户所输入或点击的链接,或者应用112a从存储器或另一源获得的一个或多个url。提示服务140以提示信息作出响应,所述提示信息可以包括用于协助预取器的信息,但是在这示例中包括证书信息。在这示例中,提示信息包括与证书机构130a相关联的一个或多个crl。应该理解的是,尽管客户端装置110a最初可以与由实体操作的一个内容服务器通信,但是在网页或其他事务的过程中,客户端装置110a可以与由该实体操作的大量不同的内容服务器通信,每个实体可以提供不同的信息作为事务的一部分。因此,在一些示例中,客户端装置110a可以在crl中搜索多个证书。在一些示例中,由内容服务器120a服务的网页可涉及从具有由相同或不同证书机构(例如证书机构130b)发布的一个或多个证书的其他实体获取信息。因此,客户端装置110a还可以获取人每个其他证书机构相关联的crl,所述证书机构与任何接收到的证书相关联。

因此,在接收到提示信息之后,客户端装置110a可以通过使用从提示服务140接收到的crl来认证从内容服务器120a接收到的证书。为此,客户端装置110a首先通过检查包括在证书信息中的信息(例如提示服务140最后一次更新其crl信息的时间)来确定crl的年龄。如果上次更新时间足够近(例如小于10分钟时),客户端装置110a则接受crl并将其存储在高速缓存中以供稍后用于认证任何从内容服务器120接收的证书。然而,如果crl太旧,客户端装置则拒绝crl,并且将在从内容服务器120a接收到一个或多个证书时向适当的证书机构130a-b发送请求。

在验证从内容服务器120a接收到的证书的真实性之后,客户端装置110a响应内容服务器120a,并建立安全连接。

在这示例中,客户端装置110a-c、内容服务器120a-c、证书机构130a-c和提示服务140包括一个或多个合适的计算装置。下面参考图3更详细地描述合适的计算装置的示例。

图1中描述的网络150包括互联网,但也可以包括一个或多个其他局域网或广域网。这些网络可以包括有线或无线通信链路,包括以太网、wifi、蜂窝或卫星通信链路,并且可以使用任何合适的网络协议,包括tcp/ip,基于ip的用户数据报协议(“udp/ip”)、https、tls、ftp、ftps等。

现在参考图2,图2示出了用于利用互联网提示服务加速在线证书状态检查的另一示例性系统200。在这个例子中,系统200类似于图1的系统100;然而,它还包括经由网络250与客户端装置110a通信的客户端代理210以及经由网络252与内容服务器120a通信的服务器代理220。然而,在这示例中,客户端代理210或服务器代理220(或两者)可以向提示服务140发出对提示信息的请求,而不是客户端装置110a向提示服务140发出请求。提示信息可以使相应代理能够响应于来自客户端装置110a对于来自证书机构130a-b的证书信息的稍后请求而获取可以提供给客户端装置110a的证书信息。

例如客户端代理210可以检测由客户端装置110a发送到内容服务器120a的新的网络事务请求。然后客户端代理210可以生成请求,并且向提示服务140发送对与内容服务器120a相关联的提示信息的请求。然后提示服务140可以用包括证书信息的提示信息来响应客户端代理。然后客户端代理210可以高速缓存提示信息,包括证书信息。稍后,客户端装置110a可以从内容服务器120a接收证书,并向证书机构130a发送对与内容服务器120a相关联的证书信息的请求。客户端代理210截取来自客户端装置110a的请求,并检查其高速缓存以获取相关的证书信息。然后它可以利用来自其高速缓存的证书信息来响应来自客户端110a的请求,而不将该请求传送给证书机构130a。然后客户端装置110a可以使用证书信息来验证证书,并且建立与内容服务器120a的安全通信信道。应该理解的是,尽管在这示例中客户端代理210截取证书信息并将证书信息提供给客户端装置110a,但是在一些示例中,服务器代理220而非客户端代理210可以向客户端装置110a请求并提供证书信息。

现在参考图3,图3示出了适用于利用互联网提示服务加速在线证书状态检查的示例性计算装置300。示例性计算装置300可以适合用作图1和图2中的任何计算装置。计算装置300包括处理器310、存储器320、网络接口330、显示器340,以及一个或多个用户输入装置350。这些部件中的每一个都通过一个或多个通信总线360与其他部件通信。本说明书稍后会讨论合适的处理器和存储器的示例。应该理解,尽管这示例计算装置300包括用户输入装置350和显示器340,但是这样的部件是可选的,并且在一些示例中可能不存在,例如在一些示例中用作内容服务器120a-b、证书机构130a-b、代理210-220或在提示服务140处。合适的网络接口330可以使用无线以太网,包括802.11a、g、b或n标准。在一个示例中,网络接口330可以使用射频(rf)、蓝牙、cdma、tdma、fdma、gsm、wi-fi、卫星或其他蜂窝或无线技术进行通信。在其他示例中,网络接口330可以通过有线连接进行通信,并且可以与一个或多个网络(例如以太网、令牌环、usb、火线1394、光纤等)进行通信。

现在参考图4,图4示出了用于利用互联网提示服务加速在线证书状态检查的示例性方法400。将针对图1所示的示例性系统100来描述该示例性方法400。然而,根据本公开的这个方法和其他示例性方法不限于与图1的系统100一起使用,而是可以与根据本公开的任何合适的系统(包括图2的示例性系统200)一起使用。

在框405中,客户端装置110a向提示服务140发送对提示信息的请求。如上所述,在客户端装置110a上执行的应用112a可以向提示服务140发送对与内容服务器120a相关联的提示信息的请求。当应用112a启动并尝试连接到内容服务器120时,可以自动生成和发送对提示信息的这种请求。然而,在一些示例中,发起与内容服务器120a的网页事务可以使得提示请求被客户端装置110a或除了客户端装置110a之外的计算装置(例如通过网络浏览器、预取器、代理等)发送到提示服务140。

例如,预取器114可以观察或截取与由应用112a生成或发送对与内容服务器120a的通信信道的请求,并标识该请求的预期接收者,例如内容服务器120a。然后预取器114可以生成提示请求并将其发送给提示服务140。在一些示例中,诸如客户端代理210或服务器代理220之类的代理可以观察或拦截对与内容服务器120a的通信信道的请求,并且作为响应,生成提示请求并将其发送到提示服务140。

应该理解的是,在一些示例中,提示请求可能不是专门用于获取证书信息。相反,提示请求可以更一般地用于请求关于网络事务或计算装置的信息,而不是对证书信息的特定请求。另外,提示信息可以包括不同类型的信息,例如关于可以被预取的子对象的信息、关于可用于建立安全通信的一个或多个证书的信息、用于生成动态url的信息等。

在框410中,客户端装置110a从提示服务器接收包括证书信息的提示信息。这示例中的证书信息包括来自证书机构130a的crl,所述证书机构发布了与内容服务器120a相关联的证书;然而,在一些示例中,证书信息可以包括其他信息,例如证书信息的最后修改日期或时间或到期日期或时间。还可以包括其他类型的证书信息,例如与其他证书机构相关联的一个或多个crl或者ocsp或ocsp装订的响应。例如,当与由实体操作的内容服务器进行通信时,实体可以提供在事务的情况下提供不同功能的多个不同的内容服务器。例如,银行可以提供客户端装置110a可以在向客户端装置110a提供在线银行服务的过程期间与之通信的许多不同的服务器。在这示例中和贯穿本公开,“证书信息”可以包括标识、指示证书状态或者以其他方式包含关于证书的信息的任何一条或更多条信息。证书信息的例子包括证书的序列号、crl/url分发点、发布者的公钥、证书到期时间等。在某些情况下,证书信息可以包括证书本身。在其他情况下,证书信息不包括证书本身。

此外,在一些示例中,内容可以从其他实体操作的一个或多个服务器中检索。因此,证书信息可以包括与证书机构相关联的crl,所述证书机构向客户端装置110a与之通信的第一内容服务器(例如登录服务器)发布证书,也包括来自与经常涉及此类事务的其他服务器相关联的证书机构的一个或多个crl,所述其他服务器例如提供银行账户信息、账单支付信息、贷款信息、促销信息、图像等的服务器,不论是由同一实体还是不同实体运营。因此,随着客户端装置110a的用户导航在线银行系统,而不同的内容服务器被联系,客户端装置110a可能已经通过随同提示信息接收到的证书信息接收了与这些不同的内容服务器中的一个或多个相关联的crl信息。

在框420中,客户端装置110a从远程计算装置接收证书。在这示例中,远程计算装置是指客户端装置110a试图与之建立连接的计算装置。在一些情况下,远程计算装置可以在物理上远离客户端装置110a。然而,远程计算装置更一般地涉及通过网络连接与客户端装置110a通信的计算装置。

如上所述,当客户端装置110a尝试与远程计算装置建立通信连接(或信道)时,客户端装置通常会向远程计算装置发送初始请求以建立通信信道。然后,远程计算装置可以响应于客户端装置110a可确认的请求来建立通信信道。这种通信信道最初可能是不安全的。

例如,为了建立安全通信信道,使用诸如传输层安性全(“tls”)协议的安全通信协议来建立https连接,客户端装置110a便可以发起与内容服务器120a的进一步协商。因此,在建立不安全的通信信道之后,客户端装置110a可以发出tls请求(例如“clienthello”消息)给内容服务器120a。如果内容服务器120a支持tls,内容服务器120a便可以用关于内容服务器120a所支持的安全协议的信息以及认证内容服务器身份的一个或多个证书来响应客户端装置110a,例如通过发送“serverhello”消息。

在框430中,客户端装置110a基于证书信息来确定所接收的证书的有效性。为了确定证书的有效性,客户端装置110a从证书中提取信息,例如发布证书的证书机构的身份、证书的到期日期或时间、固定在证书上的一个或多个签名、一个或更多的“装订”在线证书状态协议(“ocsp”)响应等。在不同的例子中,还可以从证书中提取其他信息。

从证书提取信息之后,客户端装置110a可以使用所提取的信息来确定证书的有效性。例如,客户端装置110a可以确定证书已经过期,或者固定到证书的签名没有通过使用相关联的加密方法来正确解密。这些问题可以独立于从提示服务140接收到的crl或其他证书信息来确定。然而,如果这样的内部认证检查成功完成,客户端装置110a便将证书与从提示服务140接收到的证书信息进行对照。

从提示服务140接收的证书信息可以包括不同示例中的不同类型的信息。例如,证书信息可以包括crl,并且在一些示例中包括crl的到期日期或时间,或者可以指示crl的年龄或者上次提示服务140更新其crl的高速缓存版本的时间。在一些示例中,证书信息可以包括所有已知的“好”或已知的“坏”证书而非crl。例如,提示服务可以从一个或多个客户端装置110a-c接收指示来自内容服务器的证书是否被成功认证的反馈信息。然后提示服务140可以存储和发送证书信息,所述证书信息指示证书的已知有效性和证书上次被指示为有效的时间。在一些示例中,证书信息可以包括所有证书(不论好坏)和每个证书的状态的指示的列表。在一些示例中,证书信息可以根据一个或多个工业标准格式(例如作为crl)或根据诸如ocsp或ocsp装订的行业标准协议来格式化。

在这示例中,从提示服务140接收到的证书信息包括来自与发布给内容服务器120a的证书相关联的证书机构的crl以及crl的到期日期和crl的年龄。客户端装置110a检查crl以确定crl是否有效。如果到期日期或时间已过,或者crl的年龄大于预定阈值(例如1小时),客户端装置110a便可以使crl无效,并且不能确定证书的有效性,而无需向发布证书机构请求进一步的信息。

如果crl有效,客户端装置110a则搜索crl以找到与从内容服务器120a接收到的证书相匹配的条目。如果找到匹配条目,客户端装置110a则确定证书已被撤销,并确定它是无效的。但是如果找不到匹配的条目,客户端110a装置则确定证书保持有效。

因此,在检查证书本身和证书信息之后,客户端装置110a能够确定证书是否有效、无效,或者是否需要进一步的信息。

在框440中,客户端装置110a根据证书的有效性来选择下一个适当的步骤。如果证书有效,方法400则进行至框450。如果证书无效,方法400则进行至框442。然而,如果客户端装置110a不能基于从提示服务140接收到的证书信息来确定证书的有效性,方法400则进行至框444。

在框442中,在这示例中客户端装置110a拒绝证书,并终止安全通信信道。在一些示例中,客户端装置110a还可以终止到内容服务器120的不安全通信信道。然而,在一些示例中,客户端装置110a可以改为通知用户证书是无效的,并且请求用户干预。例如,客户端装置110a可以询问用户是否在没有有效证书的情况下继续进行或者继续进行不安全的连接。

在框444中,无法用证书信息确定证书的有效性的客户端装置110a向发布证书机构(例如证书机构130a)发送请求以验证证书。然后,客户端装置110a可以使用来自证书机构130a的响应信息来确定证书的有效性。如果证书有效,客户端装置110a则可以建立安全通信信道,如下面参照框450所述;否则,客户端装置110a可以如上面参照框442所述那样操作。

在框450中,客户端装置110a接受证书并且响应内容服务器120a建立安全通信信道。在一些示例中,在确定证书有效之后,客户端装置110a可以向提示服务140提供证书信息以用新的或更新的证书信息来更新提示服务,如下面参照图7更详细描述那样。

虽然从客户端装置110a的角度讨论了图4的示例性方法400,但应该理解客户端代理210、服务器代理220、预取器114、网络浏览器112c或其他应用112a-b或计算装置可以根据不同的示例执行这样的方法400。

现在参考图5,图5示出了用于利用互联网提示服务加速在线证书状态检查的示例性方法500。将参考图2示出的示例性系统200来描述这示例性方法500。然而,根据本公开的这个方法和其他示例性方法不限于与图2的系统200一起使用,而是可以与根据本公开的任何合适的系统(包括图1的示例性系统100)一起使用。

在框510中,客户端代理210接收与内容服务器(例如内容服务器120a)的证书相关联的证书信息。在这个示例中,证书信息是从发布一个或多个证书给内容服务器120a的证书机构130a接收的。客户端代理210响应于由客户端代理210发送的对证书信息的请求,从证书机构130a接收证书信息。在这个示例中,客户端代理210截取从内容服务器120a到客户端装置110a的响应,并从所述响应中提取证书。然后,客户端代理210检查证书以提取一个或多个发布证书机构的身份(在这种情况下只有一个),并向证书机构130a发布对证书信息的请求。

在框520中,客户端代理210高速缓存证书信息的至少一部分。例如,客户端代理210可以基于从证书机构收到的证书信息,高速缓存证书的状态,例如“有效”或“无效”。在一些示例中,客户端代理210可以高速缓存从与证书相关联的证书机构接收的到期日期或时间、年龄、crl或其他信息。在一些示例中,证书信息可以包括ocsp响应或ocsp装订响应。

此外,如果客户端代理已经接收到指示在特定网络事务中使用了多个证书的反馈信息,包括在框510中接收到的证书信息,客户端代理则可高速缓存证书与其他证书之间的关系,例如指示每个证书都涉及在单个网页事务中。因此,客户端代理稍后能够提供该特定网页事务的所有相关证书的证书信息。所述关系信息可以作为对其他相关证书的明确参考而存储在每个高速缓存中,或者可以创建标识与网站网页、内容服务器或其他实体相关联的所有高速缓存证书的进一步记录。

在框530中,客户端代理210接收对证书信息的请求。在这示例中,客户端代理210截取从客户端装置110a发送到证书机构130a的请求,所述请求关于与内容服务器120a相关联的证书。客户端代理210检查所述请求以标识请求内的一个或多个证书。如果证书(或多个证书)被标识,方法500则进行至框540。

在框540中,客户端代理210搜索其高速缓存以确定其是否具有与在框530中标识的一个或多个证书相关联的证书信息。如果找到证书信息,客户端代理210则确定高速缓存证书信息是否有效。例如,客户端代理210可以检查最后更新的日期或时间以确定证书信息的年龄。如果年龄大于阈值(例如72小时),客户端代理可能会使高速缓存证书信息无效。然而,如果一个或多个证书的高速缓存信息有效,方法500则进行至框550。否则,方法500进行至框542。

在框542中,客户端代理210将一个或多个对证书信息的请求发送到证书机构130a-b,所述证书机构130a-b发布了在框530中标识的没有找到有效高速缓存证书信息的证书。如上所述,每个证书包括标识发布证书机构130a-b的信息。因此,客户端代理210能够从每个证书中提取发布证书机构130a-b,并向对应的证书机构130a-b发送请求。

在框544中,客户端代理210从一个或多个证书机构130a-b接收证书信息。例如,客户端代理210可以从证书机构130a-b接收crl或证书的状态。在一些示例中,证书信息可以指示证书的到期日期或时间。在一些示例中,证书信息可以指示证书的暂时撤销或“保持”状态,这可以指示证书当前无效,但可能在稍后时间有效。在一些示例中,证书信息可以包括ocsp响应或ocsp装订响应。

在框546中,客户端代理210高速缓存所接收的证书信息的至少一部分,如以上参照框520所讨论那样。

在框550中,客户端代理210将证书信息提供给请求证书信息的计算装置,例如客户端装置110a。此外,在这个示例中,由于客户端代理210已经满足了客户端装置对证书信息的请求,所以客户端代理210可以丢弃客户端装置的请求。

虽然从客户端代理210的角度讨论了图5的示例性方法500,但应该理解客户端代理210、服务器代理220、预取器114、网络浏览器112c或其他应用112a-b或计算装置可以根据不同的示例执行这样的方法500。

现在参考图6,图6示出用于利用互联网提示服务加速在线证书状态检查的示例性方法600。将针对图1所示的示例性系统100来描述这示例性方法600。然而,根据本公开的这个方法和其他示例性方法不限于与图1的系统100一起使用,而是可以与根据本公开的任何合适的系统(包括图2的示例性系统200)一起使用。

在框610中,客户端装置110a将对安全连接的请求发送到诸如内容服务器120a的远程计算装置。在这示例中,客户端装置110a向内容服务器120a发送“clienthello”消息以协商使用tls的安全连接。但是,根据不同的示例,可以采用其他安全通信协议。

在框620中,客户端装置110a从内容服务器120a接收对安全连接的请求的响应。在这示例中,客户端装置110a从内容服务器120a接收包括由证书机构130a发布的证书的“serverhello”消息。在一些示例中,证书可以根据任何合适的证书标准来提供。

在框630中,客户端装置110a检查其高速缓存以确定其是否具有指示接收到的证书的有效性的新鲜状态信息。例如,客户端装置110a可以高速缓存其从一个或多个内容服务器接收到的证书的状态信息。在这示例中,客户端装置110a先前接收到包括证书信息的提示信息,其一般可以以与上面参照图4的框405和410描述的方式类似的方式执行。然而,在其他示例中,客户端装置110a可以为共同访问的内容服务器(例如用于在线购物网站、银行网站或社交媒体网站)维护高速缓存的证书状态。

在框640中,如果标识了高速缓存的证书状态信息,客户端装置110a则确定高速缓存的状态信息是否新鲜。例如,客户端装置110a可以确定是否已经过了到期日期或时间,或者高速缓存的证书状态信息的年龄是否超过阈值(例如1小时)。如果高速缓存的状态信息是新鲜的,方法600则进行至框650,否则方法600进行至框642。此外,如果未找到高速缓存的证书状态信息,方法600则进行至框642。

在框642中,客户端装置110a从证书中提取指示发布证书机构的信息,并向发布证书机构发送请求证书状态的请求,这通常可以以类似于上面参照图5的框542所述的方式执行。

在框644中,客户端装置110a从发布证书机构接收证书信息,这通常可以以类似于上面参照图5的框544所述的方式执行。

在框646中,客户端装置110a高速缓存至少一些证书信息,这通常可以以类似于上面参照图5的框546所述的方式执行。

在框650中,客户端装置110a确定证书的有效性,这通常可以以类似于上面参照图4的框430所讨论的方式执行。

在框660中,客户端装置110a根据证书的有效性来选择下一个适当的步骤。如果证书有效,方法600则进行至框670。如果证书无效,方法600则进行至框662。

在框662中,客户端装置110a终止安全通信信道的协商,并且在一些示例中与内容服务器120a断开连接,如以上参照图4的框442所讨论那样。

在框670中,客户端装置110a继续协商安全通信信道,包括在一些示例中生成和共享加密密钥。

现在参考图7,图7示出了用于利用互联网提示服务加速在线证书状态检查的示例性方法700。将针对图1所示的示例性系统100来描述这示例性方法700。然而,根据本公开的这个方法和其他示例性方法不限于与图1的系统100一起使用,而是可以与根据本公开的任何合适的系统(包括图2的示例性系统200)一起使用。

在框710中,客户端装置从远程计算装置接收证书。在这示例中,客户端装置110a请求与内容服务器120a的安全通信信道。作为响应,客户端装置110a如以上参照图5的544所讨论的那样接收内容服务器的证书。响应于接收到证书信息,客户端装置110a首先检查其高速缓存以查找与证书相关联的证书信息(这通常可以以类似于上面参照图6的框630所述的方式执行),并且在找不到新鲜的高速缓存证书信息的情况下,向发布证书机构发出对关于证书的信息的请求。

在框715中,客户端装置110a确定其是否已经高速缓存了可用于验证证书的证书信息。如果是,方法700则进行至框730;否则,则进行至框720。

在框720中,客户端装置110a如上面参照图5的框542和544所讨论的那样从证书机构请求并接收证书信息。在一些示例中,客户端装置110a还可以高速缓存所接收的证书信息,这通常可以以类似于上面参照图5的框546所述的方式执行。

在框730中,客户端装置110a根据证书的有效性选择下一个适当的步骤。如果证书有效,方法700则进行至框740。如果证书无效,方法700则进行至框732。

在框732中,客户端装置110a拒绝证书,并终止安全通信信道的协商,并且在一些示例中从内容服务器120a断开连接。

在框740中,客户端装置110a接受证书,并继续协商安全通信信道。

在框750中,客户端装置110a生成反馈信息,并将其发送给提示服务140。在这示例中,在与内容服务器120a协商期间,客户端装置收集关于协商的信息,包括由内容服务器120a呈现的证书、用于认证证书的证书信息,例如提示信息或从发布证书机构接收到的信息,以及客户端装置110a接受还是拒绝证书。然后,客户端装置110a将反馈信息发送到提示服务140,提示服务140可以使用反馈信息向来自客户端装置110a或其他客户端装置的后续提示请求提供提示信息,例如下文参考下面的图8所述那样。

在以上参照图1-7讨论的许多示例中,提示服务140响应于对提示信息的请求(例如来自客户端装置110a-110c、客户端代理210或服务器代理220等的请求),提供包括证书信息的提示信息。提示信息可以被认为是从提示服务140“拉出”的。可选地或附加地,提示服务140可以“推送”提示信息。例如,提示服务140可以响应于客户端装置110a采取的动作,客户端装置110a进入特定状态等,将提示信息推送到客户端装置110a。例如,响应于被通知(例如被客户端装置110a、客户端代理210或服务器代理220通知)客户端装置110a已经接收到包括网站a、网站b和网站c的搜索结果,提示服务140可以被配置为向客户端装置110a推送网站a、网站b和/或网站c的提示,包括证书信息。在前述示例中,提示服务140可以被配置为提供搜索结果中的少于所有网站的提示。例如,提示服务140可以被配置为仅针对提示服务140知道客户端装置110a之前已经访问过或者在最近时间段期间已经访问超过阈值次数的网站推送提示。可触发提示服务140向客户端装置110a推送提示的另一示例是当客户端装置110a被激活时。例如,提示服务140可能已经随时间得知客户端装置110a经常在客户端装置110a浏览器打开之后不久请求特定网页或特定页面集。在这个示例中,提示服务140因此可以被配置为响应于被通知(例如被客户端装置110a、客户端代理210或者服务器代理220通知)客户端装置110a的浏览器被打开,向客户端装置110a推送针对该特定网页或特定页面集的提示。

现在参考图8,图8示出用于利用互联网提示服务加速在线证书状态检查的示例性方法800。将针对图1所示的示例性系统100来描述这示例性方法800。然而,根据本公开的这个方法和其他示例性方法不限于与图1的系统100一起使用,而是可以与根据本公开的任何合适的系统(包括图2的示例性系统200)一起使用。

在框810中,提示服务140从远程计算装置(例如客户端装置110a)接收包括证书信息的反馈信息。在这个例子中,客户端装置110a与内容服务器120a参与了网页事务,其包括建立安全通信信道。在网页事务期间,客户端装置110a收集与网页交易相关的反馈信息,例如标识在事务期间请求的网络对象以及由内容服务器120a提供的证书,例如以上参照图7的方法700所述那样。然后,客户端装置110a将反馈信息发送到提示服务140,所述提示服务140接收反馈信息,包括在网页事务期间由客户端装置110a接收的关于证书的信息。

在框820中,提示服务140确定从客户端装置110a接收的证书信息是否涉及提示服务140未知的一个或多个证书。例如,提示服务140可以维护一个或多个证书信息的高速缓存,并且因此可以在高速缓存中搜索对应的证书信息。如果证书信息涉及提示服务140先前未知的证书,例如在高速缓存中找不到证书,方法继续进行至到框830。先前对提示服务140未知的证书在本文中有时被称为“新证书”。否则,方法800进行至框860。

在框830中,提示服务140从发布证书机构请求并接收关于新证书的证书信息。证书信息可以包括证书的有效性信息,并且通常可以以类似于上面参照图5的框542所讨论的方式来执行。

在框840中,提示服务140利用从发布机构获取的证书信息来确定新证书是否已被撤销。

在框850中,提示服务140为新证书创建新的高速缓存条目并关联证书信息,包括撤销状态。

在框860中,提示服务140标识反馈信息中与提示服务140已知的证书有关的证书信息,例如提示服务的高速缓存中已经存在的证书。如果在反馈信息中找到与已知证书相关联的证书信息,方法800则进行至框870。否则,方法800完成,直到接收到额外的反馈信息。

在框870中,提示服务140确定由提示服务140高速缓存的证书信息是否不同于从发布证书机构接收的证书信息。如果证书信息没有不同,提示服务140则可以不修改高速缓存证书信息,或者它可以将“最后更新的”日期或时间更新为当时的日期或时间。然而,如果从发布证书机构接收的证书信息不同于高速缓存证书信息,提示服务140则更新高速缓存证书信息和关联信息,例如最近更新的日期或时间。或者,在框870中,提示服务140可以从证书发布机构(例如130a)请求高速缓存证书的新证书信息。然后提示服务140可以使用从证书发放机构接收的证书信息来更新高速缓存证书信息。

应该理解,在一些示例中,框840和850可以是可选的或者完全省略。例如,提示服务140可以如上面参照框810-830所描述那样接收并高速缓存新证书,而不是进行至框840,提示服务140可以替代地高速缓存在与新证书相关的反馈信息中接收到的任何证书状态信息,而不是分别从一个或多个证书机构请求信息。因此,根据本公开的一些示例性方法可以从框830直接进行至框860。

现在参考图9,图9示出了用于利用互联网提示服务加速在线证书状态检查的示例性方法900。将针对图1所示的示例性系统100来描述这示例性方法900。然而,根据本公开的这个方法和其他示例性方法不限于与图1的系统100一起使用,而是可以与根据本公开的任何合适的系统(包括图2的示例性系统200)一起使用。

在框910中,提示服务140为其证书信息的高速缓存中的一个或多个条目建立新鲜度窗口。例如,如上面参照图8所讨论那样,提示服务140可以在高速缓存中为新标识的证书创建新条目。提示服务140可以存储与证书相关联的其他信息,例如从发布证书机构接收的信息。在这示例中,提示服务140还为条目建立新鲜度窗口。这示例中的新鲜度窗口不一定指示证书到期的时间,而是如果它尚未被更新,则指示提示服务140必须刷新高速缓存证书信息的时间。

例如,对于每个高速缓存证书信息高速缓存条目,提示服务140可以维护与该条目相关联的单独的新鲜度窗口。在这示例中,新鲜度窗口为1小时或相应证书的到期日期或时间中较早的那个。然而,在一些示例中,可以基于证书或相关证书信息的到期时间来建立新鲜度窗口。例如,提示服务140可以确定客户端装置或提示服务140需要认证证书的预期时间量(例如3秒钟),并建立在证书信息到期前3分钟过期的新鲜度窗口。新鲜度窗口可以向提示服务140指示如果在新鲜度窗口期间尚未从客户端装置接收到关于证书的反馈信息,则应当请求更新的证书信息。如果提示服务140确实从客户端接收到证书的反馈信息,提示服务140则可以如上面参照图8所讨论的那样更新高速缓存证书信息。另外,在一些示例中,提示服务140还可以重置新鲜度窗口。

因此,提示服务140可以定期检查一个或多个高速缓存证书的新鲜度。如果在新鲜度窗口内没有更新一个或多个高速缓存证书条目,方法900则进行至框930。

在框930中,提示服务140为超出新鲜度窗口的任何条目向发布证书机构请求更新的证书信息,如上面参照图5的框542所讨论那样。

在框940中,提示服务140接收并高速缓存更新后的证书信息,如以上参照图8的框840所讨论那样。然而,在框940中,虽然提示服务140在没有任何变化的情况下可以不更新高速缓存的信息,但是在本示例中,提示服务140更新新鲜度窗口。例如,提示服务140可以重置新鲜度窗口,例如重置至1小时或相应证书的到期日期或时间中较早的那个。

在框950中,提示服务140可以可选地处理过期证书。例如,高速缓存条目可以基于证书内的到期日期与已经到期的证书相关联。在一个示例中,提示服务140可以从高速缓存中删除条目。然而,在一些示例中,提示服务140可以联系网站或远程计算装置以获得新的证书。例如,过期证书可以包含标识提供证书的网站或计算装置的信息。提示服务140可以提取这样的信息并且尝试建立与网站或计算装置的安全通信以获得新证书,如上面参照图6的方法600所讨论那样。在接收到新证书之后,提示服务140可以用新证书更新其高速缓存,并且可以向发布证书机构请求证书信息,并将这些信息与新证书一起存储在高速缓存中。

图9的方法900可以使提示服务140能够帮助确保其始终具有高速缓存证书的新证书信息,并且因此能够响应于提示信息而提供新证书信息。

尽管本文的方法和系统是根据在各种机器上执行的软件来描述的,但是这些方法和系统也可以被实现为专门配置的硬件,例如专门执行各种方法的现场可编程门阵列(fpga)。例如,可以在数字电子电路中,或在计算机硬件、固件、软件或其组合中实现示例。在一个示例中,装置可以包括一个或多个处理器。处理器包括计算机可读介质,例如耦合到处理器的随机存取存储器(ram)。处理器执行存储在存储器中的计算机可执行程序指令,例如执行用于编辑图像的一个或多个计算机程序。这样的处理器可以包括微处理、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)和状态机。这样的处理器可以进一步包括诸如plc、可编程中断控制器(pic)、可编程逻辑器件(pld)、可编程只读存储器(prom)、电子可编程只读存储器(eprom或eeprom)之类的可编程电子装置或其他类似的装置。

这样的处理器可以包括介质(例如计算机可读存储介质)或与其通信,所述介质可以存储指令,所述指令在被处理器执行时可以使得处理器执行本文所述的由处理器执行或辅助的步骤。计算机可读介质的示例可以包括但不限于能够向处理器(例如网络服务器中的处理器)提供计算机可读指令的电子、光学、磁性或其他存储装置。介质的其他示例包括但不限于软盘、cd-rom、磁盘、存储器芯片、rom、ram、asic、配置的处理器、全部光学介质、全部磁带或其他磁性介质,或计算机处理器可从中读取的任何其他介质。所述处理器和处理可以在一个或多个结构中,并且可以通过一个或多个结构分散。处理器可以包括用于执行本文描述的一个或多个方法(或方法的部分)的代码。

以上对一些实施例的描述仅出于说明和描述目的而呈现,并且不旨在穷举或将本公开限制为所公开的精确形式。在不脱离本公开的原理和范围的情况下,对本领域技术人员来说,许多修改和改变是显而易见的。例如,尽管提示服务140提供提示的事务的许多示例是其中客户端装置110a-110c请求网页的网络事务,但本文讨论的实施例和示例同样适用于其他交易,其示例包括其他应用,例如游戏和通信。

这里对示例或实施方式的引用意味着结合该示例描述的特定特征、结构、操作或其他特性可以被包括在本公开的至少一个实施方式中。本公开不限于这样描述的特定示例或实施方式。在说明书中出现的短语“在一个示例中”、“在示例中”、“在一个实施方式中”或“在实施方式中”或其变化形式不一定指代相同的示例或实施方式。本说明书中关于一个示例或实施方式描述的任何特定特征、结构、操作或其他特性可以与参照任何其它示例或实施方式描述的其他特征、结构、操作或其他特性组合。

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