CN101263466A - 提供察觉防火墙穿越的相容的应用程序 - Google Patents

提供察觉防火墙穿越的相容的应用程序 Download PDF

Info

Publication number
CN101263466A
CN101263466A CNA2006800332119A CN200680033211A CN101263466A CN 101263466 A CN101263466 A CN 101263466A CN A2006800332119 A CNA2006800332119 A CN A2006800332119A CN 200680033211 A CN200680033211 A CN 200680033211A CN 101263466 A CN101263466 A CN 101263466A
Authority
CN
China
Prior art keywords
resource
client
gateway server
protocol processor
connection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2006800332119A
Other languages
English (en)
Other versions
CN101263466B (zh
Inventor
I·本-沙查
M·玛拉卡帕里
A·帕勒卡
T·巴拉伯伊
D·斯蒂里
J·奇克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/326,992 external-priority patent/US7685633B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101263466A publication Critical patent/CN101263466A/zh
Application granted granted Critical
Publication of CN101263466B publication Critical patent/CN101263466B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明的实现涉及可容易地适用于想要通过防火墙访问的各类资源的通信框架。一般而言,网关服务器处的通信框架能够根据各类资源和/或网络访问策略来提供对请求资源的具体连接。在一个实例中,客户请求对防火墙后的具体资源的连接。通信框架鉴别该连接,并隔离该连接直到判定例如该客户正使用正确的资源功能部件。如果被正确鉴别,该通信框架就把连接控制传递给被正确标识的协议插件处理器,该协议插件处理器促进对通信栈应用层处所请求资源的直接连接。

Description

提供察觉防火墙穿越的相容的应用程序
背景
背景技术和相关领域
随着计算机化系统的日益流行,对大型和小型网络内计算机系统的文件和处理资源分布的需要也日益增加。一般而言,计算机系统和相关设备经由网络通信信息是出于各种原因,例如交换个人电子消息、出售商品、提供账户信息等。然而人们会认识到,随着计算机系统及其相关应用程序变得愈发复杂,与网络上数据和资源(例如,“设备”、“应用”或“应用组件”)的共享相关联的各种难题也增加了。
在网络内管理资源的一些现有方法包括集中计算方案,这会涉及与未在本地安装这些资源的一个或多个客户共享资源的集中网关服务器。这类示例之一涉及允许客户计算机系统登录到本地内联网上的网关服务器,或者通过网络防火墙登录。客户计算机随后能够使用安全连接通过防火墙来访问感兴趣的数据和资源。
在一个防火墙的示例中,客户计算机系统可能使用虚拟专用网(“VPN”)、远程访问服务器(“RAS”)或其他相关类型的穿越防火墙的连接,从客户计算机系统处的网络层从隧道穿越防火墙到达服务器计算机系统处的对应网络层。像这类从隧道穿越式的穿越防火墙的连接包括使用安全超文本传输协议(“HTTPS”)的客户在网关服务器处进行鉴别,其中HTTPS是一种使用安全套接层(“SSL”)或传输层安全(“TLS”)加密机制来交换加密信息的HTTP机制。在网关服务器允许通过防火墙之后,该客户计算机系统随后就能够访问该防火墙之后的所有资源,诸如通过使用一个或多个套接字来与给定资源互连。
使用另一种穿越防火墙的解决方案,诸如连接客户处的应用层和服务器处的应用层的解决方案,用户可能还需要调出与感兴趣资源相关联的协议处理器。协议处理器在此情况下本质上是应用编程接口(“API”),它通常也可由第三方开发者设计为对RPC/HTTPS通信栈的插件(即,“协议处理器插件”)。除了被配置为与某类资源或应用程序通信之外,协议处理器插件通常也可被设计为包括确定的网络策略,以便使用给定的资源(或“应用程序”)。于是,一旦登录,并且一旦传递该协议处理器插件所要求的任何必需的鉴别级别,客户计算机系统就能够与服务器计算机系统处的被请求的资源交换信息。例如,客户可以发送鼠标和键盘事件,这些事件随后被中继给适当的资源。该资源随后处理这些事件,并将处理结果返回给客户以供本地显示。
不幸的是,尽管这些不同类型的穿越解决方案可能具备一些优点,但是多个低效率的特性使得这些通信类型从第三方开发者的观点来看难以实现。例如,当使用网络层而非应用层之间的网络连接时,客户可以有效地禁用本地网络操作。例如,在各网络层之间造出的连接隧道可以禁用某些类型的网络资源,而这些资源本来可用于其他类型的网络连接,于是就使得例如客户可能无法访问局域网打印机,本地网可用的音乐或视频流设备等。
另一个问题是所有的因特网通信量都被引导通过该客户计算机系统所连接的服务器计算机系统。于是,如果该客户使用VPN连接至公司防火墙,并且该客户请求基于外部新闻的网站,该基于新闻的网站将在打通其通向该客户计算机系统的道路之前从隧道穿越该公司防火墙。再一个问题是VPN/RAS可以只检查分组并过滤,但是对复杂的或完全状态的协议是难以这样做的。
作为替代,与应用层类的连接有关的问题包括这一概念,即第三方开发者难以开发出能够控制应用程序-协议在较高级别通过服务器网关的协议处理器插件。更具体地,虽然应用层连接可能允许客户同时连接至其他网络,因为每个连接都是基于应用的身份而非网络的身份,但是这种类型的集成意味着开发者也需要为愿意让客户能够访问的每个独立资源或应用程序创建不同的协议处理器插件。这会导致更多的问题,因为每个不同的协议处理器也需要包括额外的且唯一的访问策略。这些访问策略可以包括例如一用户甚至是一类用户如何、何时或是否应被允许登录(或访问)某一资源。
于是,例如实现应用层连接的开发者可以编写一个使用远程桌面协议(“RDP”)的协议处理器插件,该插件可以实现与网关服务器的一种访问策略;与此同时,编写一个使用服务器信息块(“SMB”)协议的协议处理器插件,而该插件则可以在网关服务器处使用又一种不同的访问策略。除了具有潜在唯一的访问策略,每个协议处理器还具有彼此分开且唯一的脚本,用于其他各类管理和诊断工具。于是,时常会出现这样的情况,即开发者为他们期望其可以通过防火墙进行访问的每个不同的感兴趣的资源不断地创建不同的插件、网络策略以及相关的诊断脚本。
对于开发者和网络管理员而言,完成这些创建将会相当复杂,特别是在考虑到服务器和/或资源在其生存期中可能会遇到的各种代码版本的情况下更是如此。例如,客户计算机系统在与服务器通信之前可能尚未安装某一资源或应用功能部件,而这些功能部件可以确保通信不被截取,或不易出现讹误。然而,现有的安全鉴别协议和协议处理器插件通常不会考虑这类限制。相反地,这些问题会在稍后由连接的资源来处理,但这会导致通信错误、连接的丢失或截取,在最坏情况下甚至会危及网关服务器的安全。更具体地,现有的访问策略控制不能容易地向网络和/或资源管理员提供粒度控制。
因此,现有的客户/服务器通信存在许多要解决的低效问题。
发明简述
本发明的各个实现使用系统、方法和计算机程序产品来解决本领域中的一个或多个问题,这些系统、方法和计算机程序产品被配置为提供一个在其中开发者能够容易地提供客户/服务器应用连接的标准化平台。更具体地,本发明的一个实现包括安全通信框架,它被配置为在通信栈的应用层处有效且安全地穿过防火墙来连接远程客户和任何服务器资源。通信框架可以考虑多种合适的访问策略而促进连接,并且这些访问策略无需开发者分别开发。此外,该通信框架还可以包括某些隔离功能,这些功能可用来确保客户不会连接至尚未安装最低要求软件补丁的资源。
例如,在具有至少一个远程过程调用层和安全超文本传输协议层的网关服务器处,根据本发明一个实现的方法可以包括接收来自一客户的连接请求。一般而言,该连接请求能标识客户期望连接的资源。本方法还包括将连接与该客户隔离,以判定该客户是否支持最小一组的功能部件。此外,本方法还包括基于标识资源的资源类型来标识协议处理器插件,并将与该客户的连接转发给这一标识的协议处理器插件。
此外,在其中客户穿过网关服务器防火墙访问一资源的客户计算机系统处,根据本发明一个实现的方法可以包括发送有关在网关服务器处进行连接的请求。一般而言,该请求能够标识一服务器资源以与对应的客户资源相连接。本方法还包括接收来自网关服务器对于在客户资源处可用的最小一组的功能部件的请求。此外,本方法包括发送版本响应给网关服务器,其中该响应指示客户处支持的一组功能部件。此外,从客户观点看本方法可以包括连接至网关服务器处的通信栈的应用层。由此,客户资源可以与关联于该服务器资源的协议处理器插件传输数据。
提供本概述以便以简化形式介绍选择的概念,这些概念将在以下的详细描述中被进一步描述。本概述并不旨在标识要求保护的主题的关键特征或本质特征,也不旨在用于帮助确定要求保护的主题的范围。
本发明的额外特征和优点将在以下的描述中阐述,并且部分可从该描述中显而易见,或者可以从本发明的实践中习得。各个特征和优点可以通过在所附权利要求中特别指出的手段和组合来认识并获取。本发明的这些和其它特征将从以下描述和所附权利要求书中变得完全显而易见,或者可通过如下所述对本发明的实践而获知。
附图说明
为了描述在其中能够获得本发明的前述和其他优点和特征的方式,将通过参考在附图中示出的特定实施例来呈现以上简述的本发明的更具体描述。应该理解这些附图仅描述了本发明的典型实施例,因此不将其考虑为对本发明的范围的限制,通过使用附图可以用附加的特性和细节来描述本发明,在附图中:
图1A根据本发明一个实现示出了系统的概略图,在所述系统中客户计算机系统与网关服务器通信框架进行通信依此穿越防火墙;
图1B根据本发明一个实现示出了图1A所示系统的概略图,在所述系统中客户计算机系统与指定资源通信;以及
图2示出了方法的流程图,从客户计算机系统和网关服务器的角度所述方法根据由通信框架提供的网络策略用于穿越防火墙,以及用于与指定资源通信。
详细说明
本发明的各个实现延伸至系统、方法和计算机程序产品,这些系统、方法和计算机程序产品被配置为提供一个在其中开发者能够容易地提供客户/服务器应用连接的标准化平台。更具体地,本发明的一个实现包括安全通信框架,它被配置为在通信栈的应用层处有效且安全地穿过防火墙来连接远程客户和任何服务器资源。通信框架可以考虑多种合适的访问策略而促进连接,并且这些访问策略无需开发者分别开发。此外,该通信框架还可以包括某些隔离功能,这些功能可用来确保客户不会连接至尚未安装最低要求软件补丁的资源。
作为这些和其他特征的结果,根据本发明各方面的通信框架简化了延伸点对点应用协议的能力,为此利用了网关。例如,本发明的各方面允许在网关服务器处为客户暴露给知晓应用的协议处理器插件,而这些插件能提供对如何、何时以及由谁访问特定资源的指定管理。因为大多数访问策略都包括在通信框架内,所以粒度配置和传递-通过用策略可由协议处理器插件开发者容易地实现,并使得协议处理器插件的开发变得更为简单和高效。此外,根据本发明各方面的通信框架能够确保只有支持特定功能部件的客户才能从隧道穿越第一实例中的网关服务器防火墙,并最终建立对资源的通道。
作为预备,在此描述的简图和流程图作出对根据本发明各方面可使用的多个应用编程接口(“API”)的引用。能够从客户侧和从网关服务器侧与通信框架一并使用的API的数目可以随着任何实现而有所变化。例如,在一个实现中,可以存在至少两个客户API,以及至少四个网关服务器API。
从客户侧,例如一个客户API能够包括“核心API”,它允许客户协议处理器插件创建和找出隧道,创建通道,并将通信量发送至资源服务器。这一核心API还包括额外的API,这些API依据资源访问策略聚集非默认证书。第二客户API可以包括“配置API”。配置API能够允许客户协议处理器插件存储并载入配置信息用以连接至网关服务器(例如,网关服务器名、授权类型等)并且控制客户适配器的行为。
从服务器侧,一个网关服务器API也包括“核心API”,它允许网关服务器协议处理器插件服务于客户请求以创建通道,并将来自客户的通信量转发给网关服务器并且反之亦然。同样是“配置API”的第二API能够为服务器协议永久性数据提供公共存储。第三API,即“策略API”可以提供对网络和资源访问策略的接口,该接口可由网关服务器协议处理器插件用来判定在通道创建期间,用户是否被授权连接至一特定的资源服务器。第四API,即“运行时状态和控制API”能够允许边缘上的管理工具监视使用情况并对运行时状态做出改变,例如关闭属于行为不端用户的隧道。
这里有几个可以根据本发明的大致原理来使用的具体API类型的例子。这些API的功能可以连同以下各附图的概括引用一并讨论。例如,图1A示出了在其中客户计算机系统100尝试与位于网关服务器150处防火墙后的具体资源(例如,应用或相关组件)通信的本发明一个实现的概略图。为了让这一通信得以发生,客户100和网关服务器150将最终使用类似配置的协议处理器插件(例如,115a-b),它包括了能够在通信框架107(即,“插件”至框架)的上下文中通信和/或操作的一组API(例如,上述API)。
正如将从随后的说明书和权利要求书中更为透彻地理解的那样,通信框架107是包括了各类组件、处理模块、工具、索引等的富功能部件数据结构(例如,包括上述的四个API)。一般而言,通信框架107被设计和/或配置,使得开发者能够容易地设计与通信框架107接口的协议处理器插件(例如,115a-b、117),并且使用在通信框架107内提供的功能部件和策略而无需分开地开发或编写这些功能部件和策略。
更具体地,图1API示出了通信框架107包括通信栈113,它可用于在网络135处的物理边界和网络服务器150处的多个软件组件之间进行接口。一般而言,网关服务器150可以包括任何网络边缘服务器,诸如大型组织的防火墙式的因特网服务器,用来传递通过所有的入站和出站因特网通信量。例如,组织内的工作者期望从家中的办公地点连接到办公室地点处的资源,那么在他访问防火墙后的资源之前,将要连接通过网关服务器150。
由此,通信框架107能够包括任何数量的组件和模块,以便与可用来访问具体资源的防火墙后的各个资源接口。例如,图1A示出了在通信框架107处的通信栈113的一个实现包括安全超文本传输协议(“HTTPS”)层105,以及可插传输层110b。在一个实现中,可插传输层110b(以及层110a)是远程过程调用(“RPC”)层11b,使得层105a-b和层110a-b也可以统称为“HTTPS/RPC”。当被这样使用时,HTTPS层105b解密或解码任何SSL或TLS加密/编码,而可插传输层110b则拆封在客户100的对应可插传输层110a处做出的任何包装(例如,RPC)。
当然,通信栈113内可以包括任何数量的额外层或可选层,这些层可以是传统的7层操作系统互连(“OSI”)模型的一部分或与其相关。例如,虽然在此实现中为了简明示出了HTTPS/可插传输层105b/110b做出的最小一组的层,但是这不是实现本发明各方面的唯一途径。在其他实现中,例如开发者可以省去HTTPS,并且使用基于SSL和/或传输控制协议(“TCP”)解决方案的、也可通过安全连接来连接客户和网关应用层的另一种连接机制。因此,HTTPS/可插传输,特别是HTTPS/RPC组,只是用来提供穿越防火墙的解决原理的一种可能的途径。
特别地,HTTPS和诸如RPC的可插传输层的一个优点是诸如RPC的某些协议可以与HTTP的早期版本(例如,HTTP版本1.0)向后兼容。于是,开发者使用一组HTTPS/RPC可以发现这种穿越防火墙解决方案的原则可以在较早的服务器处更容易地被利用,或者在把通信量的类型限制在更为普通的HTTP类型的通信量的服务器中来利用。
无论如何,图1A还示出了穿越应用接口(“穿越API”)160作为HTTPS/可插传输捆绑栈113的顶层。穿越API 160可以包括任何数量的组件和模块(例如,上述的一个或多个“核心API”、“配置API”、“策略API”和/或“运行时状态和控制API”)用于在客户100和适当的协议处理器插件之间创建适当的连接,并用于确保在连接中实现适当的网络策略。例如,穿越API 160包括访问策略组件170(例如,“策略API”)以及管理工具组件175(例如,“配置API”和/或“运行时状态和控制API”),它们可以为随后具体描述的多个功能所引用。然而更一般地,穿越API 160可以用作为一种补偿片(shim),存在于通信栈113中的HTTPS/可插传输捆绑和用来与一具体资源通信的一个或多个协议处理器插件之间。
例如,图1A示出了网关服务器150至少还包括协议处理器插件115b和117。一般而言,协议处理器插件是由第三方开发者开发的接口,它的一端能够与通信框架107的范围相接口。而另一端则把通过通信框架107接收到的数据传递给一具体资源。此外,协议处理器插件可以依照插件的“类型”是有关一资源还是一类资源而进行定义。例如,通过公共接口来进行交互的一组办公室应用程序可以组成一种类型的应用程序,而通过不同的接口进行交互的一组数据库程序则可组成一种不同类型的应用程序或资源。此外,诸如打印机或硬盘驱动器的硬件可以组成具有其他类型的通信接口的又一种资源。由此,提供资源的开发者也可以为给定资源编写唯一的协议处理器插件。
然而,开发者还需要为客户提供对应的协议处理器插件,这样客户就能够与被请求的资源进行通信。于是,例如图1A示出了客户100具有通信栈103,该通信栈103也包括HTTPS层105a和可插传输层110a。一般而言,可插传输层110a用于根据适当的协议(例如,当使用RPC层时是RPC协议)来包装任何外出的消息(例如,130),而HTTPS层105API则用于诸如使用SSL或TLS加密或编码来加密或编码外出消息。位于客户的HTTPS/可插传输捆绑顶层的是协议处理器插件115a。
一般而言,协议处理器插件115a包括任何接口(例如,“核心API”和/或“配置API”)、创建连接隧道必需的资源或组件、以及与网关服务器150处的适当资源通信的对应通道(在隧道内部)。因此,协议处理器插件115a至少与协议处理器插件115b互补。例如,图1A示出了协议处理器插件115a是对应于客户100本地使用的资源类型(即,资源120a)的某一类型(即,“类型A”),并由此能够使用相同的调用、编码等来与互补的协议处理器插件通信。
沿着这些线路,图1A还示出了通信栈103包括资源120a(例如,应用程序、组件甚至是另一API)。例如,客户打开本地计算机系统上的数据库应用程序,而该应用程序则与位于网关服务器150处防火墙后的数据库的工作版本相同步。虽然资源120a在某些情况下可以是应用程序的完整版本,但是资源120a可以只是应用程序的软件组件,用以允许从网关服务器150流入的数据以某一方式得到显示。因此,诸如资源120a的组件在此情况下提供能够让客户100直接与网关服务器150处的资源相连接的最小一组的资源。
例如,图1A示出了客户100使用资源120a请求130与资源120b的通信。这样,客户100就启用具有适当协议处理器插件(即,115a)的通信栈103,该协议处理器插件是针对所期望的资源(即,资源120a)的适当类型(即,“类型A”)。客户100随后通过通信栈113将连接请求消息130发送给网关服务器150。更具体地,协议处理器插件115a用鉴别信息(例如,用户名和密码、客户身份、数字签名)、对资源120b的具体调用、以及可能在穿越API 160处所必需的任何网络策略信息来准备输出消息130。消息130随后在可插传输层110封装,在HTTPS层105加密(即,经由TLS或SSL),并在随后由协议处理器插件115a经网络135发送。
通信框架107随后接收消息130,并执行初始的拆封和解码功能。例如,HTTPS层105b解密任何SSL或TLS编码,而可插传输层110b拆封来自任何适当编码(例如,RPC编码)的消息。穿越API 160随后可以检查消息130中的鉴别信息,并且判定客户100是否基于公正粒度访问策略而被授权进行所请求的连接。更具体地,在一个实现中,访问策略的粒度是基于将访问策略区分为至少两个独立的组:一种网络访问策略,用于判定在第一实例中客户是否被授权做出对服务器150的网络连接;以及一种资源访问策略,用于判定无论客户被允许创建连接隧道与否,该客户是否被授权具有与所请求资源的连接。这些访问策略(网络或资源)授权可以取决于网络和/或应用程序/资源管理器所期望的任何数量的考虑来配置,诸如鉴别传统的用户名和密码,标识“客户健康状况”等(例如,以下将更为全面讨论的隔离功能部件)。
网络访问策略规则的某些示例包括对客户100的用户是否是与所请求资源相关联的经授权团体一部分的限制。一组网络访问策略还可被配置为将某些服务器连接限定为仅对市场部门的团体,将普通服务器连接隧道的数量限制在最大值之下,限制对防火墙后某一服务器的访问(限制一天中的访问时间、特定用户等),甚至将访问限制为给定服务器上的指定端口。其他的网络访问策略还可被配置为要求客户在连接至服务器150之前出示“智能卡”。
沿着类似的线路,一组资源访问策略可被配置为限制对一资源的连接通道的数量(虽然用户已经穿过防火墙连接至该服务器),一般地限定所有资源,和/或甚至将资源和/或连接限定为仅在一天的某一时段对某些团体的用户开放。至少部分因为网络访问策略和资源访问策略可以用个性化的准则独立配置,所以访问策略组件170可以提供对网关服务器150处的鉴别和访问过滤有精细得多的粒度控制的网络和/或访问管理程序。
更具体地,这两类策略(即,资源访问策略和网络访问策略)可以经由“访问级别”链接,这就允许网络和/或应用程序/资源管理员相当独立地定义和发展他们的策略,特别是在他们同意他们之间的一组具体的访问级别的情况下。例如,用户能够访问在提供特定用户名和密码的情况下在一天的某一时段访问一组资源,但是在同样出示智能卡的情况下也不能在一天的另一时段访问同一组资源。类似地,用户能够在一天的另一时段或者在周末的某一时段访问一组不同的无重叠资源,无论该用户是否出示任何形式的鉴别。
另外,网络和资源访问策略的结合可以用来防止用户在具有对服务器最大连接隧道的特定限制的一天的一个时段一起访问服务器150,或者可以用来连接一个内部服务器之后的资源版本,但不连接至在具体时段内在另一服务器处存留的同一资源的不同版本。当然,由访问策略组件170的网络和资源访问策略内的独立准则提供的这一粒度控制级别可以通过将用户的访问级别从基础级简单地改变为管理性更强的访问类型级别而得到修改。
无论如何,图1A还示出了通信框架107用消息140回复,以请求例如该通信框架107被配置为与其通信的一个或多个功能部件中的任何数量的功能部件。更具体地,本发明的实现还可以包括如上所述的可能的隔离功能部件作为网络访问策略的一部分,在其中通信框架107确保只有具备了资源或功能部件得最小组(例如,特定的资源版本、协议或组件组、软件补丁等)的那些客户才被允许连接至给定的服务器资源。
在可选的实现中,通信框架107简单地关闭不受客户100支持的任何功能部件,使得该客户不会在某些点处尝试与这些不受支持的功能部件进行通信。例如,资源120b的开发者可能已经为该资源提供了多个功能部件或功能部件更新,但是除非客户100(或者由资源访问策略标识的一类用户中的客户)也已具备了最小一组的对应的资源、功能部件或功能部件更新,否则就不应允许客户100访问(或使用)这一资源。这些资源、功能部件和/或相关的功能部件更新可以是功能性的,但是也可以是安全相关的,并且可以对开发者的实施甚为重要的。因此,在一个实现中,通信框架107可以简单地对所请求的连接进行隔离,直到与客户100协商的这些功能部件被验证或鉴别。
客户100随后处理消息140,例如通过检测哪些功能部件客户100正在运行或配备以用来运行,并准备响应。例如,图1B示出了客户100用消息145回复,来指示任何这种标识的、受支持的功能部件。穿越API 160随后可以将响应145与访问策略组件170内的信息进行比较,以判定这些受客户支持的功能部件是否适合于该网络连接,适合于建立通向所请求资源的通道,或者是否还需要不同的功能部件(或者相同功能部件的不同版本)。在一个实现中,如果为了连接至网关服务器150而需要不同的功能部件(即,客户100没有足够的更新,或者不具有某些所需的功能部件),穿越API 160就简单地丢弃这一连接,可以发送错误消息或者发送指向客户100能够下载该功能部件的网络位置的消息。在如上所述的其他实现中,通信框架107简单地关闭那些客户100也不支持的网关服务器150功能部件。
如果消息145指示一组合适的功能部件(当这些功能部件被请求时),并且客户100被授权访问所请求的服务器侧的资源,那么穿越API 160就可以开始将该连接传送给用于该资源的合适的协议处理器插件。例如,穿越API 160可以首先参考所请求的资源“类型”以判定资源120b是否请求一具体协议处理器插件,或者资源120b是否是一类更广资源的一部分。更具体地,图1B示出了协议处理器插件115b至少与资源120b和123相关联,而作为“类型B”处理器的协议处理器插件117则至少与资源125和127相关联。一般而言,决定合适的协议处理器插件的这一动作可以通过审查每个协议处理器插件在安装时都将注册的系统注册表来完成。
无论如何,图1B示出了穿越API 160标识协议处理器插件115b,它是“类型A”处理器并且与所请求的资源120b相关联。穿越API 160随后不再负责对客户100和协议处理器插件115b之间通道的控制。由此,在客户100处的协议处理器插件115a和在网关服务器150处的协议处理器插件115b现在就通过其各自的栈103和113的应用层相连接,由此就能够通过该连接的这一通道来交换数据(例如,155)。更具体地,通信框架107允许隧道内一个或多个通道使用对应的客户和网关服务器协议处理器插件连接至一具体资源,而非通过各自通信栈的网络层手动地进行网络连接。
对穿过该连接隧道的这些通道的控制就允许客户100标识可被访问的任何额外资源,并且允许客户100创建与最初请求资源(即,资源120b)间的额外通道。例如,客户100能够在该连接隧道内通过通信框架107创建与同一资源的多个通道,并且还能够请求穿越API 160将额外的通道(以及其他的隧道和对应的一个或多个其他通道)提供给与用于资源120b的同一协议处理器插件相关联的其他资源,诸如资源123。在某些实现中,客户100还可以要求通信框架107标识与另一资源(例如,125)通信相符合的另一协议处理器插件(例如,117)。无论如何,对连接控制的管理至少部分通过访问策略组件170和/或管理工具组件175(或“工具组件175”)来进行。
一般而言,工具组件175可以包括任何数量的接口(例如,一个或多个“核心API”、“配置API”、“策略API”和/或“运行时状态和控制API”中的任何接口)。管理工具组件175还包括能够由例如网关服务器150的管理员所访问的任何脚本、数据表和相关功能。例如,网络管理员希望影响针对一具体协议处理器插件的网络策略,或是希望分析穿过通信框架107的连接数量,那么他可以打开由工具组件175提供的用户界面(未示出)。
网络管理员随后能够监视普通的因特网使用,改变运行时状态,关闭属于行为不端用户的任何隧道,现在穿越防火墙的连接数量,并且声明用于做出这一连接的加密类型。网络管理员还可以改变这些和其他网络设置或策略中的任何设置和策略,诸如那些还会在本说明书通篇描述的设置和策略。网络管理员还可以使用该界面来设置哪些用户被允许访问哪种类型的资源,哪些资源会是完全可用,那些资源何时可从防火墙外访问,以及哪些服务器可由那些用户访问。
协议处理器插件的开发者还可以访问组件175内的这些工具。更具体地,开发者还可以编写协议处理器插件来访问并设置要与该协议处理器插件一并使用的各种默认网络策略。例如,协议处理器插件的开发者可以将该协议处理器插件设计为与管理工具175内的另一界面相交互,并设置最低的资源或功能部件要求。因此,图1A-1B示出了多个组件、工具和简图,它们可以在通信框架107的上下文中使用并且可被配置为对防火墙设置内的各资源提供粒度、安全且有分寸的访问。
对本发明各实现的描述还可以通过包括一个或多个动作以实现一特定结果的方法来进行。例如,图2示出了从客户100观点和网关服务器150观点来看用于创建穿过防火墙的对一具体资源的连接(例如,通道)的方法的流程图。如下将参考图1A至1B来讨论图2的动作。
更具体地,图2示出的从客户100观点看来的方法包括将连接请求发送给网关服务器的动作200。动作200包括发送用于连接的请求至网关服务器处,其中该请求标识连接至对应的客户资源的服务器资源。例如,客户100例示了带有协议处理器插件115a以访问资源120b的通信栈103。客户100随后准备消息130,并将其发送给网关服务器150,其中该消息130包括鉴别信息以及对访问资源120b的请求。
此外,图2示出的此种从网关服务器150的观点看的方法包括接收客户对一资源的请求的动作210。动作210包括接收客户对一客户连接的请求,其中该客户请求标识了该客户期望连接的资源。例如,网关服务器150接收消息130。网关服务器150随后在HTTPS层105b处解码消息130,在可插传输层110b处拆封任何其他的协议封装,并且评估其内含有的任何包括的鉴别信息。如果鉴别信息不正确,诸如与网络访问策略相冲突,则网关服务器150可以简单地拒绝该连接。换句话说,如果鉴别信息正确,诸如达到了用于通过防火墙连接的最低标准(例如,合适的用户名和密码),网关服务器150就可以隔离该连接直到来自客户100的一组确定功能部件被标识,而这也是依据网络或资源访问策略。
于是,例如图2示出的此种从网关服务器150的观点看的方法还包括隔离该连接的动作220。动作220包括隔离连接与客户,以判定该客户是否已安装了最小一组的一个或多个的功能部件。例如,图1A示出了通信框架107在接收到消息130时,发送一个或多个回复消息140。并非必需在这里准许该连接,回复消息140请求额外的信息来标识在客户100处受支持的功能部件,诸如协议处理器插件115a的版本,客户100和网关服务器150相互支持的连接功能部件,或者最终可用于该连接的任何其他的资源组件120a(或者对应的功能部件、功能部件更新等)。
因此,图2示出的此种从客户100的观点看的方法还包括接收对最小一组的功能部件的请求的动作230。动作230包括接收来自网关服务器的有关受该客户支持的对于该资源的最小一组的一个或多个功能部件的请求。例如,客户100在通信栈103处接收消息140,并且在协议处理器插件115a处诸如通过运行任何脚本或者检查有关所请求功能部件的任何系统注册信息来处理消息140,上述所请求的功能部件包括由服务器150请求的任何其他资源或资源功能部件。更具体地,协议处理器插件115a标识其自身的功能部件信息,或者有关资源120a的功能部件信息,或者有关客户100处其他软件组件或资源(未示出)的功能部件信息。
另外,图2示出的从客户100观点看来的方法包括将功能部件响应发送给网关服务器的动作240。动作240包括发送受支持的功能部件响应给网关服务器,该受支持的功能部件响应指示客户支持的功能部件。例如,图1B示出了客户100发送响应消息145,该消息指示了客户100支持的一个或多个的功能部件组,诸如呈现了所请求软件版本的功能部件。
图2示出的从网关服务器150观点看的方法还包括标识合适的协议处理器插件的动作250。动作250包括基于所标识资源的资源类型来标识协议处理器插件。例如,穿越API 160标识协议处理器插件115b是“类型A”插件,是与客户100处找出的协议处理115a相同的类型,并且与网关服务器150处所请求的资源120b相关联。
图2示出的从网关服务器150观点看的方法还包括将该连接转发给协议处理器插件的动作260。动作260包括将与该客户的连接转发给被标识的协议处理器插件。例如,如图1B所示,一旦穿越API 160标识协议处理器插件115b是合适的,并且标识由客户100提供的信息是依据一特定的资源访问策略,那么穿越API 160就能够把对所请求连接的控制传递给协议处理器插件115b。一般而言,这涉及在客户100处的协议处理器115a和在网关服务器150处的协议处理器插件115b之间建立一个隧道,以及该隧道内的一个或多个通道。客户100处的协议处理器插件115a和在网关服务器150处的协议处理器插件115b随后能够通过该隧道以及对应的一个或多个通道直接在网络栈103和113的应用层上通信。
于是,图2还示出了从客户100的观点看的方法包括连接至网关服务器处的协议处理器插件的动作270。动作270包括连接至网关服务器处的通信栈的应用层,使得该客户资源与关联于该服务器资源的协议处理器插件进行传输数据。例如,现在协议处理器插件115a-b直接穿过防火墙进行通信,并且因为依据网络策略不再负责该连接,所以客户100仅仅获得足以与资源120b通信的穿过防火墙的入口。这样,客户100就不具备自由访问防火墙后所有资源的能力。而且如上所述,客户100能够启动附加通道或对同一资源的连接,到该资源的不同实例的连接,或者到允许客户100通过通信框架107标识的其他资源的连接。
因此,如上所述的各种方法和简图提供了在其中通信框架107能够使用由开发者开发的各类插件来提供对特定资源的访问的多种途径。更具体地,通信框架107提供了可用于简化协议处理器插件开发和实现的多种访问策略(网络和资源)工具和组件。例如,开发者能够避免为了实现特定的资源访问策略或者为了实现特定的诊断工具而独立开发协议处理器插件脚本,因为这些工具已经集成入通信框架107。相反地,开发者仅仅需要开发针对客户和服务器处使用的协议处理器插件,如果开发者期望任何给定资源可经防火墙访问。
类似地,网络管理员在很多情况下能够避免独立编写新的网络连接访问策略,因为这些访问策略已经能够在通信框架中找出,因此能被容易地配置或启用/禁用。因此,在此描述的功能部件能够在一定程度上减轻开发者和网络管理员的责任,并将管理的负担转移给强有力的通信框架。
本发明的实施例可以包括含有各种计算机硬件的专用或通用计算机,这将在以下做出进一步讨论。更具体地,本发明的范围内的实施例还包括用于携带或在其上储存计算机可执行指令或数据结构的计算机可读介质。这类计算机可读介质可以是可由通用或专用计算机系统访问的任一可用介质。作为示例而非限制,这类计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备等物理存储介质、或其它可用来以计算机可执行指令或数据结构的形式携带或储存所期望的程序代码装置并可由通用或专用计算机访问的任何其他介质。
当通过网络或另一通信连接(或者硬连线、无线、或硬连线和无线的组合)向计算机传输或提供信息时,计算机将该连接适当地视为计算机可读介质。由此,任一这类连接适当地称为计算机可读介质。上述的组合也应当包括在计算机可读介质的范围内。
计算机可执行指令例如包括促使通用计算机、专用计算机或专用处理设备执行一个或一组特定功能的指令和数据。虽然已经用具体到结构功能部件和/或方法动作的语言对主题进行了描述,但是应该理解在所附权利要求中定义的该主题不必限于上述具体的功能部件或动作。相反,上述具体功能部件和动作是作为实现权利要求的示例形式而公开。
本发明可以用其它具体形式来实施,而不脱离其精神或本质特征。所描述的实施例被认为在所有方面都仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非以上描述来指示。该权利要求书的等效技术方案的含义和范围以内的所有更改将被包含在其范围内。

Claims (20)

1.在计算机化环境内的网关服务器处,在所述环境中客户计算机系统通过防火墙访问所述网关服务器处的资源,所述网关服务器提供通过防火墙的应用层连接,一种方法包括以下动作:
接收来自客户的连接请求,其中所述连接请求标识所述客户期望连接的资源;
隔离与所述客户的连接,以判定所述客户是否已安装最小一组的一个或多个功能部件;
基于所标识资源的资源类型来标识协议处理器插件;以及
将与所述客户的连接转发给所标识的协议处理器插件。
2.如权力要求1所述的方法,还包括基于在所述客户请求中提供的鉴别信息与一个或多个访问策略的比较来鉴别所述客户。
3.如权力要求2所述的方法,其特征在于,还包括标识来自在所述网关服务器处安装的通信框架的所述一个或多个访问策略的动作。
4.如权力要求1所述的方法,其特征在于,将所述连接转发给所标识的协议处理器插件包括将连接隧道的通道控制提供给所述服务器处的协议处理器插件的动作。
5.如权利要求4所述的方法,其特征在于,还包括以下动作:
接收来自所述客户的对不同资源的不同连接请求;以及
通过同一条连接隧道建立所述客户与所述不同资源之间的不同连接。
6.如权利要求4所述的方法,其特征在于,还包括接收对所述资源的不同连接请求的动作,这样就已经请求了对同一资源的多个连接,所述请求是来自任何所述客户或者所述客户与所述防火墙外部的一个或多个不同客户。
7.如权利要求6所述的方法,其特征在于,还包括将对不同通道的控制提供给做出所述不同连接请求的客户的标识的协议处理器插件的动作。
8.如权利要求6所述的方法,其特征在于,还包括以下动作:
标识来自粒度访问策略的有关所述不同的连接请求是不适当的设置;以及
拒绝所述不同的连接请求。
9.如权利要求8所述的方法,其特征在于,所述访问策略包括用于判定所述客户是否被授权连接至所述服务器的网络访问策略,以及用于判定所述客户是否访问以创建通过所述服务器连接的与所请求资源的通道的资源访问策略。
10.如权利要求8所述的方法,其特征在于,所述访问策略设置包括限制由所述客户在一天的某一时段访问所述资源的指示,并且其中所述不同的连接请求是在该时段之外。
11.如权利要求8所述的方法,其特征在于,所述访问策略设置包括限制由所述客户在防火墙之后的资源服务器的具体端口处访问所述资源的指示,其中所述不同的连接请求请求在所述资源服务器的所述具体端口处连接至所述资源。
12.如权利要求8所述的方法,其特征在于,所述访问策略设置是网络访问策略,所述网络访问策略限制在所述网关服务器处通过所述防火墙连接隧道的数量,这样,所述不同的连接请求要求创建超出所述限制的新的连接隧道。
13.如权利要求8所述的方法,其特征在于,所述访问策略设置要求所述客户请求是由具有智能卡的客户做出的,其中所述不同的连接请求指示所述客户不具有所述智能卡。
14.如权利要求8所述的方法,其特征在于,所述访问策略设置将对同一资源的访问限制在准许的一类用户,其中所述不同的连接请求源自并非所述准许的一类用户的成员的不同用户。
15.在计算机化环境内的客户计算机系统处,其中所述客户计算机系统通过网关服务器防火墙访问资源,所述网关服务器提供通过防火墙的应用层连接,一种方法包括以下动作:
发送用于在网关服务器处的连接的请求,其中所述请求标识与对应的客户资源相连接的服务器资源。
接收来自所述网关服务器的受所述客户支持的最小一组的一个或多个功能部件的请求。
发送功能部件响应给所述网关服务器,所述功能部件响应指示所述一组请求的一个或多个功能部件中的那些受所述客户支持;以及
连接至所述网关服务器处的通信栈的应用层,使得所述客户资源与关联于所述服务器资源的协议处理器插件进行通信。
16.如权利要求15所述的方法,其特征在于,还包括将鉴别信息与对所述连接的请求一并发送,其中所述鉴别信息包括对所述客户具有智能卡的指示。
17.如权利要求15所述的方法,其特征在于,连接至应用层还包括以下动作:
建立通过所述应用层处的网关服务器的防火墙的连接隧道;以及
在所述连接隧道内建立对所述被请求资源的连接通道。
18.如权利要求15所述的方法,其特征在于,还包括以下动作:
将对于所述资源的不同连接请求发送给所述网关服务器;以及
通过不同的通道与所述协议处理器插件通信,所述不同的通道与在网关服务器处的用于所述连接的所述请求中创建的通道不同。
19.如权利要求15所述的方法,其特征在于,还包括以下动作:
发送对于与所述协议处理器插件相关联的不同资源的不同连接请求;以及
通过所述协议处理器插件与所述不同的资源的通信,使得所述协议处理器插件处理在所述客户和所述网关服务器处多个资源之间的多个连接通道。
20.在计算机化环境内网关服务器处,其中客户计算机系统通过防火墙访问所述网关服务器处资源,所述网关服务器至少在通信框架内具有远程过程调用层和安全超文本传输协议层,一种具有计算机可执行指令存储其上的计算机程序产品,所述计算机可执行指令在被执行时,引起所述网关服务器处的一个或多个进程执行一种方法,所述方法包括如下:
接收来自客户的连接请求,其中所述连接请求标识所述客户期望连接的资源;
隔离与所述客户的连接,以判定所述客户是否已安装最小一组的一个或多个功能部件;
基于所标识资源的资源类型来标识协议处理器插件;以及
将与所述客户的连接转发给所标识的协议处理器插件。
CN2006800332119A 2005-09-12 2006-08-15 察觉防火墙穿越的方法和系统 Active CN101263466B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US71629705P 2005-09-12 2005-09-12
US60/716,297 2005-09-12
US11/326,992 US7685633B2 (en) 2005-02-25 2006-01-05 Providing consistent application aware firewall traversal
US11/326,992 2006-01-05
PCT/US2006/031877 WO2007032852A1 (en) 2005-09-12 2006-08-15 Providing consistent application aware firewall traversal

Publications (2)

Publication Number Publication Date
CN101263466A true CN101263466A (zh) 2008-09-10
CN101263466B CN101263466B (zh) 2011-02-09

Family

ID=39662714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800332119A Active CN101263466B (zh) 2005-09-12 2006-08-15 察觉防火墙穿越的方法和系统

Country Status (6)

Country Link
JP (1) JP4972646B2 (zh)
KR (1) KR20080045195A (zh)
CN (1) CN101263466B (zh)
BR (1) BRPI0615752A2 (zh)
NO (1) NO20081455L (zh)
RU (1) RU2422886C2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103561002A (zh) * 2013-10-22 2014-02-05 北京神州泰岳软件股份有限公司 基于防火墙策略的安全访问方法和系统
CN104954462A (zh) * 2015-06-12 2015-09-30 福建新大陆通信科技股份有限公司 一种高并发可扩展的智能家居通信方法和系统
CN110365699A (zh) * 2019-07-29 2019-10-22 北京奇艺世纪科技有限公司 流量处理方法、装置及系统、网关设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9581675B2 (en) * 2012-08-24 2017-02-28 Tektronix, Inc. Virtual model adapter removal and substitution technique for cascaded networks

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1075695C (zh) * 1996-09-02 2001-11-28 北京天融信网络安全技术有限公司 防火墙系统及其控制方法
US6101549A (en) * 1996-09-27 2000-08-08 Intel Corporation Proxy-based reservation of network resources
US6763395B1 (en) * 1997-11-14 2004-07-13 National Instruments Corporation System and method for connecting to and viewing live data using a standard user agent
US7137144B1 (en) * 2000-02-11 2006-11-14 International Business Machines Corporation Technique of defending against network connection flooding attacks
US7631084B2 (en) * 2001-11-02 2009-12-08 Juniper Networks, Inc. Method and system for providing secure access to private networks with client redirection
US8135843B2 (en) * 2002-03-22 2012-03-13 Citrix Systems, Inc. Methods and systems for providing access to an application
JP2004220120A (ja) * 2003-01-09 2004-08-05 Nippon Telegr & Teleph Corp <Ntt> ネットワークセキュリティシステム、アクセス制御方法、認証機構、ファイアウォール機構、認証機構プログラム、ファイアウォール機構プログラム及びその記録媒体
CN2643555Y (zh) * 2003-01-30 2004-09-22 刘燕南 一种安全保密智能信息终端
US7559082B2 (en) * 2003-06-25 2009-07-07 Microsoft Corporation Method of assisting an application to traverse a firewall
JP2005063169A (ja) * 2003-08-13 2005-03-10 Ricoh Co Ltd 情報処理装置、画像処理装置、サーバ装置、セッション接続方法、セッション接続プログラム及び記録媒体
JP4564739B2 (ja) * 2003-11-07 2010-10-20 シャープ株式会社 サーバ装置および通信システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103561002A (zh) * 2013-10-22 2014-02-05 北京神州泰岳软件股份有限公司 基于防火墙策略的安全访问方法和系统
CN103561002B (zh) * 2013-10-22 2017-02-15 北京神州泰岳软件股份有限公司 基于防火墙策略的安全访问方法和系统
CN104954462A (zh) * 2015-06-12 2015-09-30 福建新大陆通信科技股份有限公司 一种高并发可扩展的智能家居通信方法和系统
CN110365699A (zh) * 2019-07-29 2019-10-22 北京奇艺世纪科技有限公司 流量处理方法、装置及系统、网关设备

Also Published As

Publication number Publication date
JP4972646B2 (ja) 2012-07-11
RU2008109223A (ru) 2009-10-10
JP2009508213A (ja) 2009-02-26
KR20080045195A (ko) 2008-05-22
BRPI0615752A2 (pt) 2011-05-24
NO20081455L (no) 2008-04-11
CN101263466B (zh) 2011-02-09
RU2422886C2 (ru) 2011-06-27

Similar Documents

Publication Publication Date Title
EP1934768B1 (en) Providing consistent application aware firewall traversal
CN110572398B (zh) 区块链网络的管控方法、装置、设备及存储介质
JP6656157B2 (ja) ネットワーク接続自動化
US7546360B2 (en) Isolated working chamber associated with a secure inter-company collaboration environment
EP1389752B1 (en) System and method for privilege delegation and control
CN106411857B (zh) 一种基于虚拟隔离机制的私有云gis服务访问控制方法
EP2629557B1 (en) Establishing connectivity between an enterprise security perimeter of a device and an enterprise
CN104718526A (zh) 安全移动框架
CN104838630A (zh) 基于策略的应用程序管理
US11750561B2 (en) Method and apparatus for providing secure internal directory service for hosted services
CN109768965A (zh) 一种服务器的登录方法、设备及存储装置
CN108111473A (zh) 混合云统一管理方法、装置和系统
Berbecaru et al. Providing login and Wi-Fi access services with the eIDAS network: A practical approach
US8291214B2 (en) Apparatus and method for secure remote processing
RU2415466C1 (ru) Способ управления идентификацией пользователей информационных ресурсов неоднородной вычислительной сети
RU2459248C2 (ru) Способ установления защищенной электронной связи между различными электронными устройствами, в особенности между электронными устройствами поставщиков электронных услуг и электронными устройствами потребителей электронной услуги
CN101263466B (zh) 察觉防火墙穿越的方法和系统
KR102142045B1 (ko) 멀티 클라우드 환경에서의 서버 감사 시스템
EP1519540A2 (en) Mobility device server
DE60311328T2 (de) Verfahren und vorrichtung zur netzwerksicherheit
CN108989302A (zh) 一种基于密钥的opc代理连接系统和连接方法
CN100356756C (zh) 实现大规模交互式虚拟专用网教学实验的方法
US11569997B1 (en) Security mechanisms for data plane extensions of provider network services
DE102010030311A1 (de) Verfahren zum Lesen von Attributen aus einem ID-Token über eine Telekommunikations-Chipkarte und ein Server-Computersystem
US20110321163A1 (en) Platform for a computer network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150508

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150508

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.