首页> 中国专利> 创建与远程资源的安全交互连接

创建与远程资源的安全交互连接

摘要

本发明的各个实现至少部分地通过在连接建立阶段早期对客户和服务器进行验证,而在该客户和服务器之间有效地建立安全连接。发起与服务器连接的客户标识在该客户处启用的安全通信协议,并在其发送给服务器的连接请求中标识这些协议。服务器处理该消息并且通过用其认为适合该连接的通信协议做出响应。客户和服务器于是交换合适的验证信息,随后建立实现所选通信协议的连接会话,并使用协商的通信协议加密各消息。附加实现涉及重建虚拟互联网协议地址后的丢失连接,而无需重新耗费大量的连接资源开销。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-05-13

    专利权的转移 IPC(主分类):G06F15/16 变更前: 变更后: 登记生效日:20150423 申请日:20060911

    专利申请权、专利权的转移

  • 2013-03-13

    授权

    授权

  • 2008-10-29

    实质审查的生效

    实质审查的生效

  • 2008-09-10

    公开

    公开

说明书

背景

背景技术和相关领域

随着计算机化系统的日益流行,对大型和小型网络内计算机系统的文件和 处理资源分布的需要也日益增加。一般而言,计算机系统和相关设备经由网络 传递信息是出于各种原因,例如交换个人电子消息、出售商品、提供账户信息 等。然而人们会认识到,随着计算机系统及其相关应用程序变得愈发复杂,与 在网络上共享数据和资源相关联的各种挑战(例如,“设备”、“应用”或“应 用组件”)也在增加。

在网络内分布资源的一些现有方法包括集中式计算场景,这会涉及与未本 地安装资源的一个或多个客户共享这些资源的集中式网络服务器。已用于这类 功能的一种协议是远程桌面协议(RDP)。使用远程桌面协议,集中式网络服 务器可以与网络上的其他客户共享感兴趣的数据和资源。在某些情况下,这些 客户随后可以如同这些资源被本地安装一样来与这些资源进行交互(例如,发 送鼠标和键盘事件等)。理想情况下,客户计算机系统和网络服务器之间的这 种交互会无缝地进行,如同该客户计算机系统用其自身安装的资源来在本地处 理这些数据一样。

当用户与集中式服务器发起连接时,该用户的客户计算机系统发起一系列 的协议交换,这最终会使用户登陆到服务器计算机系统。这组交换的一部分是 标准连接“握手”开销,这是大多数安全网络连接类型所固有的。这些开销的 很大一部分是在用户有机会验证个人凭证(例如,用户名和口令)之前在客户 计算机系统和集中式服务器之间建立初始连接的一部分。例如,在某些情况下 可能存在有16种之多的不同交换,它们作为客户登录集中式服务器的一部分 在向用户呈现登录屏幕之前发生。结果,集中式服务器和客户计算机系统通常 耗费大量连接处理资源来生成用户连接会话,这甚至是在用户实际有机会进行 验证之前。

用户验证中的这一相对延迟会导致客户/服务器交互的许多不同的困难。 更具体地,建立这类连接的问题之一在于任何人都可以发起与服务器的连接, 即使最后只有经授权的用户才能得到完全验证。这一初始连接开销可能会引起 集中式服务器潜在地易受某类拒绝服务(“DOS”)攻击,诸如在恶意代理发 起多个连接请求,企图超载并危及集中式服务器安全之时。

连接场景的另一个类似的潜在问题是在客户与服务器变为断开连接时可 能会存在困难。具体而言,通常,对原始连接建立的保存即使存在,也会很少, 因而客户计算机系统和服务器将需要重建该连接,这就意味着再一次的重新启 动先前的建立开销序列。这会使用强度波动的连接(诸如,无线连接)的客户 计算机系统产生问题,并且会抑制对该客户计算机系统所期望的无缝体验。

这还会其中客户计算机系统通过服务器场连接至集中式服务器的情况中 造成困难。例如,一个组织可能配置一组服务器(即,“服务器场”)来分担 负载平衡顾虑,而与此同时这些服务器都可通过单个虚拟互联网协议地址 (“VIP”)来寻址。然而,如果客户计算机系统从服务器场断开,该客户计 算机系统就仅仅知晓VIP,而不知晓服务器场中正处理与其连接的特定服务器 的具体网络地址。于是,客户计算机系统就无法顺利地使用先前建立的连接设 置自动与该集中式服务器重新连接,而是通常需要重新启动所有的常规连接协 议交换才能继续该通信。

因此,在当前可被寻址的连接发起协议中,特别是那些处理集中式计算环 境的协议,存在有诸多困难,

简述

本发明的各个实现通过系统、方法和计算机程序产品来解决本领域中的一 个或多个问题,这些系统、方法和计算机程序产品被配置为在安全客户服务器 通信中建立比以前更加安全的凭证信息。更具体地,本发明的各个实现在不要 求服务器分配大量连接资源的情况下提供验证信息的交换。此外,本发明的各 个实现还能够容易适于允许已丢失安全连接的一致性重建,无论是在典型的一 对一客户/服务器连接下,还是在客户与虚拟IP地址后的多个服务器的服务器 场之间的连接下。

例如,就网络服务器而言,一种在连接过程中相对较早地创建与客户计算 机系统的安全连接的方法,可以包括接收来自远程客户的、与网络服务器上一 个或多个远程服务器资源进行通信的连接请求。一般而言,该连接请求指示了 用以启用该远程客户的多个安全通信协议。本方法还包括向该远程客户发送连 接响应,其中该连接响应指示多个安全通信协议中的优选安全通信协议。此外, 本方法还包括证实优选安全通信协议的使用以及与远程客户的验证证书的交 换,以及通过此优选安全通信协议与远程客户的远程客户资源传递数据。

就客户计算机系统而言,一种创建与网络服务器的安全连接的方法可以包 括在客户计算机系统处标识多个安全通信协议能力。本方法还包括与网络服务 器协商多个安全通信协议能力中优选的一个。由此,客户和网络服务器标识相 互优选的安全通信协议。

此外,本方法还包括使用该优选的安全通信协议与该网络服务器的远程服 务器资源传递验证信息,藉此证实各自的身份。一般而言,客户可以发送其自 身的验证信息,并且客户将收到来自服务器的验证证书。服务器证书可以包括 自签名证书、手动安装证书或从远程证书权威机构收到的证书中的一种。本方 法还包括用一个或多个初始数据分组来证实网络服务器的身份,而这些数据分 组是使用该优选安全通信协议来传递的。

提供本概述以便以简化形式介绍概念的精选,这些概念将在以下的详细描 述中被进一步描述。本概述并不旨在标识要求保护的主题的关键特征或本质特 征,也不旨在用于帮助确定要求保护的主题的范围。

本发明的额外特征和优点将在以下的描述中阐述,并且可从该描述部分地 变得显而易见,或者可以在本发明的实践中习得。各个特征和优点可以通过在 所附权利要求中特别指出的手段和组合来实现和获知。本发明的这些和其它特 征将从以下描述和所附权利要求书中变得更加显而易见,或者可通过如下所述 对本发明的实践而获知。

附图说明

为了描述在其中能够获得本发明的前述和其他优点和特征的方式,将通过 参考在附图中示出的其特定实施例来呈现以上简述的本发明的更具体描述。应 该理解这些附图仅描述了本发明的典型实施例,因此不应被视为是对其范围的 限制,通过使用附图可以用额外的特征和细节来描述本发明,在附图中:

图1A示出了根据本发明一个实现的客户计算机系统和网络服务器之间的 安全协商的总览示意图;

图1B示出了根据本发明一个实现的其中客户计算机系统和网络服务器协 商安全通道并且交换验证信息以最终建立该安全通道的图1A的示意图;

图1C示出了根据本发明一个实现的其中客户计算机系统和网络服务器以 证实它们的安全协议能力和/或选择的方式来交换数据的图1A-1B的示意图;

图1D示出了根据本发明一个实现的另一示意图,其中在图1A-1C中示出 的网络服务器是服务器场的一部分,并且其中客户计算机系统和网络服务器在 失去链接之后尝试重新连接;以及

图2示出了根据本发明一个实现的在客户计算机系统和网络服务器的角 度上用于发起安全网络连接的流程图。

详细说明

本发明的各个实现延及被配置成在安全客户服务器通信中建立比以前更 安全的凭证信息的系统、方法和计算机程序产品。更具体地,本发明的各个实 现在不要求服务器分配大量连接资源的情况下提供验证信息的交换。此外,本 发明的各个实现还能够容易地适于允许已丢失安全连接的一致性重建,无论是 在典型的一对一客户/服务器连接下,还是在客户与虚拟IP地址后的多个服务 器的服务器场之间的连接下。

因此,如从以下说明书和权利要求所能更透彻理解的,这些原理的至少一 个优点在于远程客户和网络服务器能够建立安全网络连接而不必将客户或计 算机置于某类DOS攻击之下。例如,客户计算机系统和网络服务器能够在交 互登录连接序列早期交换安全和凭证信息,诸如在最初的多组请求和响应消息 中,而非在创建连接会话之后。此外,本发明的各实现还提供要在随后采用经 协商的安全通信协议进行通信时在客户和服务器处被证实的请求和响应消息。 于是,该客户和服务器就能够避免分配大量资源给不合格的请求实体,这些请 求实体要么无法在连接创建早期提供验证信息,要么在连接创建的一个或多个 证实阶段中失败。

例如,图1A示出了根据本发明一个实现的在客户计算机系统和网络服务 器之间的安全协商的总览示意图。如图所示,客户100包括远程客户应用程序 105。一般而言,远程客户应用程序(本文中也称为“远程资源”或“远程客 户资源”)是能够连接至另一远程应用程序或相关组件(例如,远程服务器应 用程序140)并能够共享数据的应用程序或相关组件。例如,在一个实现中, 远程客户应用程序105是使用远程桌面协议(RDP)在建立安全连接会话之后 最终与网络服务器的MICROSOFT TERMINAL SERVICES(微软终端服务) 应用程序相连接的MICROSOFT TERMINAL SERVICES客户。在此情况下, 远程客户资源可以访问服务器资源以提供某些应用程序功能(例如,文字处理、 电子数据表等),该功能在随后会显示在客户计算机系统100的显示屏(未示 出)上。

图1A还示出了远程客户应用程序105与安全选项组件120以及与凭证管 理器109和证书存储110之间的通信,而这将在下文中更为详细地讨论。一般 而言,安全选项组件120是在客户计算机系统100处启用(例如,安装的、活 动的)的所有安全通信协议的列表(例如,系统配置表)。安全通信协议的这 一列表可以包括任何数量的已知和可用的协议。然而,图1A示出的客户机100 处的安全选项120例如可以包括安全套接字层(“SSL”)组件130和“Cred-SSP” (“证书安全服务提供者”,也被称为“证书安全支持提供者”)组件135。 Cred-SSP组件135是将其他安全通信协议的各方面(诸如SSL、WINDOWS NT LAN MANAGER(“NTLM”)和Kerberos)捆绑在一起的相对较新的WINDOWS (视窗)安全服务提供者(“SSP”)。虽然未示出,但是客户100也可以被配置成 使用传统的RDP安全基础结构。

作为解释,虽然将组件125、130和135示为已知用于微软操作系统环境 的安全通信协议(或基础结构-例如,传统的RDP),但是应该理解在此描述 中概述的原理不限于特定类型的安全通信协议,也不限于特定的操作系统环境 或应用程序。也就是说,本文描述的原理可以容易地应用于其他的相关安全客 户/服务器或共享应用程序以及相应的通信协议,并且能够在任何其他的操作系 统环境中轻松实现。因此,对微软操作环境中常用名称的具体列举主要是为了 描述方便。

无论如何,图1A还示出了远程客户应用程序105能够通过验证界面103 来接收客户凭证(例如,用户名和口令107)。例如,当从某些用户输入收到 初始化远程客户应用程序105的请求时,或当诸如在计算机启动期间收到一般 登陆请求时,客户100就向用户呈现验证界面103。验证界面103要求用户出 示诸如用户名和口令、智能卡或某些其他验证信息。由用户提供的这些和其他 客户验证信息随后被存储在例如凭证管理器109中。其他类型的客户验证信息 可以包括诸如智能卡和个人身份号码(“PIN”)111。

在某些情况下,客户100还具有客户证书113形式的存储在客户证书存储 110中的验证信息。然而更典型地,作为验证对象的证书可由服务器150使用, 如下文更完整的讨论。一般而言,存在有多种不同种类的安全证书,这些安全 证书可以从某些形式的输入中创建,存储在证书存储中,并最终用于标识用户 或计算机系统。在某些情况下,证书可以只是提供加密密钥的占位符。然而, 某些类型的证书包括“自签名的证书”,这是由创建者签名的基本数字签名, 但没有必要由第三方背书。

其他类型的证书包括手动安装的证书,诸如其中用户访问服务器并手动安 装用户可能已经创建的优选证书。其他类型的证书包括用户通过第三方证书服 务器背书基础结构接收的证书,诸如已由认可的验证方背书的数字签名。无论 如何,这些证书类型的任何或全部都可以在任意给定时刻存储在证书存储110 (或存储155)内。然而,图1A示出了证书存储110持有证书113,并且如下 文更完整的描述,证书存储110最终将持有从服务器150发送的服务器证书117 (例如,图1B-1C)。

当在远程客户应用程序105处的用户想要发起与服务器150的安全交互登 录连接时,客户应用程序105首先执行内部安全检测。例如,客户应用程序105 可以标识安全选项组件120内的每个已启用的可用安全通信协议。客户应用程 序105随后能够标识:至少存在组件125、130和135,这些组件各自在安全网 络通信中使用。客户应用程序105还检测其在某些情况下会优选使用的现有的 安全基础结构,诸如传统的RDP基础结构。

远程客户应用程序105随后准备连接请求消息137,该消息指示所标识的 不同安全通信协议(即,125、130、135等)或相关安全基础结构的每一个。 值得注意的是,连接请求消息137可以是不请求对特定资源进行访问(诸如通 常在交换登录中进行)的一般连接请求。然而人们将会认识到,本发明的原理 也可应用于指向服务器150的特定资源的登录连接请求。然而,连接请求137 在至少一个实现中可以是“X224”连接请求消息,它可被扩展成包括所标识的 不同安全通信协议(即,“客户能力”)。远程客户应用程序105随后经网络 发送连接请求137,并最终到达远程服务器应用程序140。

在可选实现中,客户100不准备X224连接请求消息,而是使用SSL向服 务器端的Cred-SSP 175直接发送消息137。服务器150随后在最初的一个或多 个消息137的分组中标识SSL和Cred-SSP指示。在某些情况下,这允许客户 100和服务器150更快地完成安全协商阶段,而没有原本与创建X224连接请 求和响应消息相关联的某些开销。

无论如何,假设使用X224或其他相关方法发送消息137,远程服务器应 用程序140就接收并处理消息137。服务器150随后标识由客户100提出的安 全通信能力,并且确定对安全通信协议(或安全基础结构)的适当选择。例如, 图1A示出了服务器150经由应用程序140的判定模块145标识:服务器150 也启用了SSL组件170和/或Cred-SSP组件175中的任一个。虽然未示出,但 是服务器150还可以启用传统的RDP安全基础结构。在一个实现中,判定模 块145通过查看在某些方面与客户端组件120相类似的服务器端安全选项组件 (例如,组件160)来确定使用具体的安全通信协议。当然,服务器150可以 启用比客户100呈现的更多或更少的安全通信协议。在此情况下,判定模块145 可以标识与客户100共用的那些通信协议,并且挑选出优选的通信协议(或基 础结构)。

判定模块145可以基于任何数量的因素来做出该判定,这些因素包括但不 限于系统设置、网络管理员或其他用户的偏好和/或其他网络条件。然而,图 1A示出了远程服务器应用程序140决定使用Cred-SSP安全通信协议139来通 信。更具体地,图1A示出了远程服务器应用程序140准备连接响应信息139, 该消息包括服务器150想要使用Cred-SSP(在客户100和服务器150处分别为 组件135和137)进行通信的指示。在一个实现中(例如,消息137是X224 连接消息),连接响应消息139也是X224格式的连接响应消息。服务器150 随后发送消息139给客户100,而客户100的接收则完成所请求连接的初始安全 协商阶段。

如果消息139不包含优选安全通信协议的指示,则客户100可以标识:服 务器150是无法执行前述的安全协商阶段的老式服务器。在此情况下,客户100 可以简单地断掉连接,提示用户进行附加动作,或者调整到服务器150可能理 解的默认安全通信协议。如同其他判定一样,这些默认设置可以基于用户、网 络管理员或其他系统范围内的默认设置中的任一个。在一个实现中,在没有安 全通信协议偏好的指示的情况下接收连接响应消息139会使得远程客户应用程 序105默认RDP通信协议。

在完成前述的安全协商阶段之后,图1B示出了客户计算机系统100和服 务器150能够建立安全通信通道。在这一特定情况下,客户100和服务器150 使用它们各自通信堆栈的安全层中的“Cred-SSP”组件来初始化安全通信通道, 以彼此通话。这意味着客户100处的Cred-SSP组件135可以与服务器150处 的Cred-SSP组件175通信(例如,如图1B中虚线双向箭头所指示的)。例如, 图1B示出了远程客户应用程序105准备将要发送到远程服务器资源,即远程 服务器应用程序140的消息167。在此情况下,消息167包括待使用的一个或 多个安全通道建议(例如,通道136)。服务器100随后查看消息167并确定 要使用哪条提议通道。服务器100随后发送证实消息169,该消息证实由客户 100建议的通道之一(例如,通道136)的使用。

客户100和服务器150还可以交换验证信息以结束对协商的安全通道(例 如,在此情况下的通道163)的建立。例如,图1B示出了客户100还发送客 户验证消息168(与消息167同时,或稍后)至服务器150,而服务器150则 回复服务器验证信息171。客户验证信息可以包括各类验证机制,诸如用户名 和口令107、智能卡和PIN111、以及在某些情况下甚至可以是客户证书113。

作为对比,服务器验证信息171可以包括各类验证机制,诸如特别选择的 服务器证书以及Kereros账户凭证和/或权证。在服务器150,判定模块145可 以判定要使用哪一个可用的服务器证书。在一个实现中,判定模块145被配置 成优选服务器管理员选择的证书,随后进行核对以查看服务器150系统设置是 否指示了证书偏好。如果服务器管理员和服务器150都没有指示证书偏好,判 定模块145随后使服务器145为消息171自动生成自签名的证书。无论如何, 远程服务器应用程序145准备消息171,而选定的安全组件(即,Cred-SSP 175) 能够将所确定的服务器证书插入到消息171中。服务器150随后通过经协商的 安全通道(例如,163)发送消息171,并将服务器证书117的拷贝放置在客户 端的证书存储110中。

人们将会认识到可能存在有在其中由客户或由服务器发送的验证被接收 方拒绝的事件。被拒绝的原因很多,包括接收方判定为无效、验证上的时间戳 过期、标识信息与初始连接建立消息137和139提供的信息不一致等。在这些 情况下,由相应的接收应用程序(例如,分别为105、140)使用的安全组件(例 如,Cred-SSP 135、175)可被配置成基于拒绝的原因执行一特定的动作。例如, 判定模块115或判定模块145可以咨询其配置设置,并请求新的证书,断掉连 接,提示用户进行附加动作等。在某些情况下,合适的动作会取决于默认的系 统设置或取决于用户偏好,这指示了各应用程序被配置如何处理这类问题。

无论如何,一旦客户100和服务器150完成安全通道建立(即,协商安全 通道;发送、接收和接受验证),客户100和服务器150就能够建立用户连接 会话,并开始发送数据分组(例如,图1C)。结果,图1A和1B示出了客户 100和服务器150在建立给定的用户连接会话之前彼此进行验证。这种早期验 证能够提供多方面优点,其中至少部分优点可用来减轻DOS攻击。例如,如 果从一客户接收的初始连接请求消息组(例如,137、167和168)不包括适当 的客户验证信息,或者对客户安全能力的指示,服务器150就可被配置成简单 地丢弃该连接请求,由此避免耗费任何连接处理开销。

除了这些初始连接请求之外,响应于建立安全通道,图1C示出了客户100 和服务器150能够发送增加系统安全能力的附加消息。例如,客户100和服务 器150可以证实安全协议中的选择,并进一步在用户连接会话期间交换数据分 组的最初各组时彼此验证。更具体地,图1C示出了客户应用程序105准备消 息177,该消息包括根据远程应用协议(例如,RDP)格式化的数据,以及哪 个客户100想要被远程服务器应用程序140处理。图1C还示出了消息177可 以包括附加其上的消息137和/或139中的任一个,该消息证实在初始验证中选 定的安全协议实际上就是客户和服务器想要选择的协议,并没有受到另一方的 篡改。

当接收到消息177时,远程服务器应用程序140就开始处理相应的数据。 然而在某些实现中,远程服务器应用程序140直到证实了有附加消息与服务器 150所期望的相匹配才开始处理消息177的数据。然而,图1C示出了当处理 消息177时,远程服务器应用程序140准备响应消息179,该消息也被格式化 为远程应用协议(例如,RDP)数据分组。此外,图1C示出了消息179可以 类似地包括附至其上的消息137和/或139中的任一个,作为在协商安全协议时 证实由服务器150提出的能力的方法。服务器150随后向客户100发送消息 179。

一旦接收,远程客户应用程序105就处理消息179中所包含的数据。然而, 在可选实现中并且如上所述,远程客户应用程序105可以在处理数据之前首先 核对包含在消息179内的信息(例如,附加消息或其他)就是客户100期望的 信息。如果期望信息丢失,客户100就断掉该连接,提示用户进行额外动作和 /或发送新的连接请求。类似地,如果包括在消息179内的信息与所期望的在某 些方面不同,则客户100可以断掉该连接,请求来自服务器的校正或者简单地 开始发出新的连接请求(例如,图1A)。

假设客户100和服务器150已适当协商并建立起一安全通信通道,证实了 所协商的协议,并且证实它们各自的身份,那么相应的应用程序105和140就 能够使用选定的安全通信协议继续通信。例如,客户100的应用程序105可以 接收、格式化(例如,RDP)并发送诸如鼠标或键盘命令的用户选择事件,而 远程服务器应用程序140能够处理这些事件并且经由安全通道163向客户100 发送相应的响应数据。这一通信可以长期进行,或者直到任一方有意或无意地 关闭通道163。因此,下表简要概述了诸如上文所述的这一初始建立过程的实 现。

  客户100 服务器150   标识所支持的协议(例如,经由图1A中   的115)   发送带有可用协议列表的X224连接请求

(例如,137) 标识哪些客户告知的协议是可用的(例如,经 由图1A中的145) 发送带有优选安全协议的X224连接响应(例 如,图1A中的139) 发起安全通道建立(例如,图1B中的167) 接受安全通道建立(例如,图1B中的169) 交换安全通道建立所要求的数据(例如, 168) 交换安全通道建立所要求的数据(例如,图 1B中的171) 安全通道建立完成(图1B) 安全通道建立完成(图1B) 证实可用安全协议的列表(例如,图1C 中的177) 证实优选安全协议(例如,图1C中的179) RDP数据交换(图1C) RDP数据交换(图1C)

在本发明的一个实现中,客户100还可以在无需就凭证或其他验证信息再 次提示用户的情况下重新启动用户连接会话。更具体地,就客户100在连接断 掉之后重新启动该连接(诸如,经由自动或手动重新连接)而言,客户100可 以简单地提交重申其在前有效连接上下文(即,用户凭证上下文或句柄)的重 新连接请求。一般而言,连接上下文(例如,图1D中的111)包括客户连接 设置信息,诸如先前中继给服务器150的客户验证信息(例如,168)、以及 在安全通信协议中的选择和允许客户和服务器方便地彼此标识的任何其他适 当的设置。如上所述,这些设置通常包括用户名和口令、和/或智能卡和PIN 验证组件。于是,当连接丢失且该连接的上下文仍然有效(即,没有过期或变 更)时,客户100可以在无需就验证信息提示用户的情况下向服务器150重新 提交其连接上下文,并且在客户100和服务器150断掉该连接的那一点通过协 商通道163继续通信。

然而,类似刚才描述的重新连接在有服务器场的情况下可能更为复杂,诸 如被配置成用于负载平衡目的而在单个IP地址之后的一组服务器。例如,如 图1D所示,对于远程客户计算机,可以经由相同的IP地址,即虚拟IP地址 190(“VIP 190”)对服务器148、149、150和151的服务器场180进行寻址。至。 一般而言,VIP是由另一边缘服务器,甚至由服务器场180内每个服务器的配 置提供服务。作为替代,服务器场180中的每个服务器都被配置为处理同一 VIP的不同方面,并且还中继并路由分组至服务器场中的其他服务器。尽管如 此,虽然所有的服务器可以通过VIP共享一部分连接负载,但是在给定时刻只 有一个服务器能够处理与另一台计算机(例如,客户100)的特定会话。

为了确保对连接责任的知晓被适当处理,图1D示出了每个服务器148、 149、150和151具有对应的“会话目录代理”183、185、187和189,用来跟 踪在安装了对应的会话目录代理的相应服务器上的连接会话。例如,处理给定 连接的服务器具有基于用于连接客户(例如,有关上述客户100)的给定连接 上下文(包括用户验证信息)的一个或多个连接会话。服务器经由相应的会话 目录代理以及中央会话目录代理服务器153也将具有由服务器场(例如在VIP 190后的服务器场180)内其他服务器所服务的所有会话位置的目录列表。也 就是说,通常没有一个服务器能具有通过服务器场服务的所有连接的所有用户 会话,但是能够成功地把其不具有合适信息的连接(即,与给定客户上下文相 对应的会话)引向该场内的确具有该信息的服务器。

于是,例如图1D示出了客户100在诸如客户100或服务器150无意间断 开连接之后的某一点处准备重新连接消息193,并通过VIP 190发送该消息。 图1D还示出了消息193包括诸如包括服务器150的名称和/或网络地址的 cookie的在前连接信息、和/或某些用户信息。一般而言,VIP管理基础结构(例 如,经由服务器153)能够识别所包含的在前连接信息,因此能够将消息193 准确路由至服务器150。服务器150随后建立与客户100的安全通道,经由会 话目录代理187(或会话目录服务器153)证实它正对与有关在前连接的连接 上下文111提供服务,并在随后重建在前连接会话。

在自动重新连接没有发生的情况下,该过程会因为重新连接消息193可能 不包括足够的服务器标识信息而略有不同。于是,例如重新连接消息193可以 首先到达服务器148,该服务器在此情况下没有服务于在前连接。然而,当建 立安全通道之后,服务器148通过会话目录代理183或者通过参考会话目录服 务器153可以对消息193进行充分处理,从而确定服务器148不具有合适的信 息以使用会话191来进行连接。也就是说,服务器148不能识别消息193中的 用户或服务器的身份,或者标识为它不具有关于在前连接的连接上下文。

在这样的处理中,会话目录代理183与会话目录服务器153通信,并且向 服务器148指示服务器150具有关于该用户会话的记录(即,经由上下文111)。 于是,服务器148准备响应消息195,该消息指示该连接不可用,并且还指示 该连接可由服务器150处理。客户100随后接收并处理消息195,并在随后准 备新的重新连接消息197。再一次,客户100附加在前连接信息,而这一次则 表明使用服务器150(例如,服务器名和/或网络地址等)。

因此,如图1D所示,重新连接请求消息197通过VIP 190适当路由至服 务器150。例如,与因特网和服务器场180进行接口的边缘服务器标识对服务 器150的经修改的请求,并将连接请求消息197转发给服务器150。当服务器 150收到连接请求197时,服务器150开始处理该消息,以了解会话目录代理 187是否具有有关连接上下文111的记录。因为会话目录代理187具有有关上 下文111的记录,所以服务器150用合适的重新连接消息(即,消息199)做 出响应。这一简明的交换序列在客户100和服务器150之间重建了先前协商的 通信通道163,并且允许客户和服务器如同之前一样进行通信,而无需重新分 配资源来初始化新的连接会话。

因此,图1A至1D提供了用于在创建安全连接的相对早期验证连接序列 的多个图示和组件。更具体地,图1A至1D示出了如何在安全连接请求的最 先几个数据分组中建立安全连接,并以此方式提供客户和服务器之间的多层证 实。这样,客户和服务器两者就都能避免将宝贵的资源耗费在原本会导致成功 的DOS攻击的伪造连接上。

本发明的各个实现还可以被描述成在一种用于实现期望结果的方法中的 动作(和/或包括一个或多个非功能性动作的功能性步骤)序列。例如,图2 分别示出了在客户100和服务器150的角度上用来初始安全连接的方法中各动 作的流程图。如下将参考图1A-1D所示的示图描述图2中示出的动作。

例如,图2示出一种在客户100的角度上的方法,包括标识多个安全通信 协议的动作200。动作200包括在客户计算机系统处标识多个安全通信协议能 力。例如,如图1A所示,远程客户应用程序105经由判定模块115标识组件 125、130和135是在客户100处启用的有效的安全通信协议。

此外,图2示出在客户100的角度上该方法包括与网络服务器协商优选安 全通信协议的动作210。动作210包括与网络服务器协商多个安全通信协议能 力中优选的一个,从而标识相互优选的安全通信协议。例如,客户应用程序105 执行准备并发送消息137给服务器150的动作,其中消息137包括对安全连接 的请求,并且还指示了协议125、130和135可用于该连接。

由此,图2示出在服务器150的角度上该方法包括接收标识了安全能力的 连接请求的动作220。动作220包括从远程客户接收与网络服务器处一个或多 个远程服务器资源通信的连接请求,该连接请求指示远程客户启用的多个安全 通信协议。例如,如图1A所示,服务器应用程序140接收消息137,并且在 处理时标识客户100启用了“SSL”和/或“Cred-SSP”通信机制中的任一种。

此外,图2示出在服务器150的角度上该方法包括发送指示了优选安全通 信协议的连接响应的动作230。动作230包括发送连接响应给该远程客户,该 连接响应指示多个安全通信协议中的优选安全通信协议。例如,如图1A所示, 服务器应用程序140判定它具有与客户100中所指示的相同的启用安全选项。 服务器应用程序140于是基于任何数量的偏好或系统设置来确定优选的安全通 信协议,在此情况下是来自组的“Cred-SSP”175。服务器应用程序140随后 准备并发送连接响应消息139给客户100,其中消息139指示了使用Cred-SSP 的偏好。在一个实现中,这样就完成了由客户在动作210中开始的安全协商的 初始阶段。

因此,图2示出在客户100的角度上该方法包括与远程服务器资源交换验 证证书的动作240。动作240包括使用优选的安全通信协议与该网络服务器的 远程服务器资源交换验证信息,其中该服务器验证信息包括自签名证书、手动 安装证书或接收自远程证书权威机构的证书中的任一种。例如,如图1B所示, 远程客户应用程序105标识一个或多个合适的客户验证信息组件(例如,用户 名和口令107、智能卡和PIN 111、或证书存储110中的客户证书113),并且 将选定的验证信息经由消息137发送给远程服务器应用程序140。作为响应, 远程服务器应用程序经由消息171接收来自服务器150的服务器证书117。

图2还示出在服务器150的角度上该方法还包括证实该优选安全通信协议 的使用的动作250。动作250包括通过与远程客户计算机系统交换初始数据分 组来证实对优选安全通信协议的使用。例如,图1C示出了当服务器应用程序 140发送消息179时,服务器150还诸如通过包括在前发送的消息137和139 的副本来向客户100附加证实消息,或者重申先前在消息139中声明的设置。

此外,图2示出在客户150的角度上该方法包括与远程客户资源传递数据 的动作260。动作260包括通过优选的安全通信协议与远程客户的远程客户资 源传递数据。例如,如图1C所示,服务器应用程序140在经协商的通信通道 163上接收消息177(例如,RDP数据分组),并且发送消息179(例如,响 应于消息177的RDP数据分组)或者到远程客户应用程序105的任何其他数 据通信。

这样,图2示出在服务器100的角度上该方法还包括证实该优选安全通信 协议的使用的动作270。动作270包括用一个或多个初始数据分组证实网络服 务器的身份。例如,远程客户应用程序经远程应用协议接收消息179(例如, 使用RDP准备的消息),其中消息179包括来自服务器150的某些期望信息, 诸如在前发送的消息137和/或139的副本。因此,消息179就向客户100证实 了对经同意的所选安全通信协议的使用。

因此,各示意图和本文描述的方法提供了多种组件和机制,用来创建安全 通信通道和连接会话,并用来在连接过程的早期验证这些安全通信通道和会 话。更具体地,相比先前可用技术,本发明的各个实现能够在交互登录和远程 资源通信中提供更高级别的安全。例如,客户和服务器可以在连接过程早期彼 此验证,这样就避免了将连接会话分配给那些未在期望时刻提供这种验证信息 的请求。此外,客户和服务器还可以在连接序列中的任意数量的点处附加先前 发送的消息和/或设置,从而提供对客户和/或服务器各自身份的额外担保。

本发明的实施例可以包括含有各种计算机硬件的专用或通用计算机,如下 文更详细描述。更具体地,本发明的范围内的实施例还包括用于承载或具有储 存其上的计算机可执行指令或数据结构的计算机可读介质。这类计算机可读介 质可以是可由通用或专用计算机系统访问的任何可用介质。作为示例而非限 制,这类计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光 盘存储、磁盘存储或其它磁存储设备、或可用来以计算机可执行指令或数据结 构的形式承载或储存所期望的程序代码装置并可由通用或专用计算机访问的 任何其他介质。

当通过网络或另一通信连接(硬接线、无线、或硬接线和无线的组合)向 计算机传输或提供信息时,计算机将该连接适当地视为计算机可读介质。由此, 任何这类连接适当地称为计算机可读介质。上述的组合也应当包括在计算机可 读介质的范围内。

计算机可执行指令包括例如促使通用计算机、专用计算机或专用处理设备 执行一个或一组特定功能的指令和数据。虽然已经用具体到结构特征和/或方法 动作的语言对主题进行了描述,但是应该理解在所附权利要求中定义的主题不 必限于上述具体的特征或动作。相反,上述具体特征和动作作为实现权利要求 的示例形式而公开。

本发明可以用其它具体形式来实施,而不脱离其精神或本质特征。所描述 的实施例被认为在所有方面都仅是说明性而非限制性的。因此,本发明的范围 由所附权利要求书而非以上描述来指示。该权利要求书的等效技术方案的含义 和范围以内的所有更改将被包含在其范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号