用于认证通信请求的系统和方法转让专利

申请号 : CN200610001468.8

文献号 : CN1809067B9

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : J·B·詹宁斯K·凯克希

申请人 : 国际商业机器公司

摘要 :

一种用于认证从客户端计算设备发送的通信请求的方法、系统和装置。所述通信请求初始被防火墙阻挡,以阻止被传送到服务器。创建对应于所述通信请求的第一记录事件。将所述通信请求和记录事件存储于防火墙中。向服务器通知所述第一记录事件。认证对应于所述第一记录事件的通信请求。如果所述通信请求被认证,则启用所述防火墙中的端口。

权利要求 :

1.一种用于认证从客户端计算设备发送的通信请求的系统,该系统包括:防火墙,该防火墙包括;

操作以执行下述功能的处理单元,所述功能包括:初始阻挡所述通信请求;

创建对应于所述通信请求的第一记录事件;以及存储单元,该存储单元存储所述通信请求和第一记录事件;以及与所述防火墙进行数据通信的服务器,该服务器具有处理单元,该处理单元操作以执行下述功能,所述功能包括:接收由所述防火墙创建的关于所述第一记录事件的通知;

认证对应于所述第一记录事件的所述通信请求;以及如果所述通信请求被认证,则启用所述防火墙中的端口以允许所述客户端计算设备与所述服务器之间的通信;

其中所述通信请求包括:对应于所述客户端的多个地址以及对应于所述客户端的多个地址的散列。

2.如权利要求1所述的系统,其中所述服务器的处理单元通过执行下述功能来认证所述通信请求,所述功能包括:对对应于所述客户端的所述多个地址进行散列;

将由所述服务器进行散列的所述多个地址与所述通信请求中所述已散列的多个地址进行匹配。

3.如权利要求2所述的系统,其中,如果所述由服务器进行散列的多个地址匹配所述通信请求中已散列的多个地址,则所述服务器的处理单元通过向客户端传送对于对应于所述服务器的公钥的请求来进一步认证所述通信请求。

4.如权利要求3所述的系统,其中所迷防火墙从所述客户端接收对应于所述服务器的公钥,以及其中所述防火墙的处理单元创建对应于所述公钥的第二记录事件,并将所述第二记录事件和所述公钥存储于所述防火墙的存储单元中,以及其中服务器的处理单元通过进一步执行下述功能来认证所述通信请求,所述功能包括:接收关于由所述防火墙创建的所述第二记录事件的通知;

从所述防火墙获得所述公钥;以及

测试所述公钥。

5.如权利要求4所述的系统,其中对应于客户端的所述多个地址包括网际协议地址和媒体访问控制层地址。

6.一种用于认证从客户端计算设备发送的通信请求的方法,该方法包括:防火墙初始阻挡所述通信请求被发送到服务器;

创建对应于所述通信请求的第一记录事件;

在防火墙中存储所述通信请求和第一记录事件;

向服务器通知所述第一记录事件;

认证对应于所述第一记录事件的通信请求;以及如果所述通信请求被认证,则启用所述防火墙中的端口以允许所述客户端计算设备与所述服务器之间的通信;

其中所述通信请求包括:对应于所述客户端的多个地址以及对应于所述客户端的所述多个地址的第一散列。

7.如权利要求6所述的方法,其中认证所述通信请求的步骤包括:执行对应于所述客户端的所述多个地址的第二散列;

将所述多个地址的第二散列与所述通信请求中已散列的多个地址进行匹配。

8.如权利要求7所述的方法,其中认证所述通信请求的步骤进一步包括:如果所述已进行第二散列的多个地址匹配所述通信请求中已散列的多个地址,则向所述客户端传送对于对应于所述服务器的公钥的请求。

9.如权利要求8所述的方法,其中认证所述通信请求的步骤进一步包括:接收来自于所述客户端的公钥,所述公钥对应于所述服务器;

创建对应于所接收公钥的第二记录事件;

存储所述第二记录事件和所接收的公钥;

向服务器通知所述第二记录事件;以及

测试所接收的公钥。

10.如权利要求9所述的方法,其中对应于所述客户端的所述多个地址包括网际协议地址和媒体访问控制层地址。

11.如权利要求8所述的方法,其中所述第一散列和第二散列进一步包括对应于所述客户端的位置坐标。

说明书 :

用于认证通信请求的系统和方法

技术领域

[0001] 本发明涉及网络通信安全,并更具体地涉及用于允许服务器认证客户端而不用首先允许这些设备之间的直接通信的方法和系统。

背景技术

[0002] 随着诸如因特网的公共访问通信网络的迅速扩散,数据的安全性和完整性成为遍及社会的关注问题。与此关注问题相关的是,在面对恶意的未授权访问的尝试(即黑客)以及摧毁数据和计算资源的尝试(即病毒和蠕虫)时,服务器资源的可用性和对于提供潜在敏感信息的可用性和访问的需要。这些计算机黑客以及病毒和蠕虫持续地探测和分析网络、服务器和其他计算资源中的可以被利用的弱点。
[0003] 存在用于保护数据和对计算资源的未授权访问的许多方案,其范围从一般的口令保护到更复杂的防火墙安排。如在因特网通信中典型地出现的,当客户端计算机寻求访问web服务器时,形式为网际协议(“IP”)包的请求被路由通过一系列网络。诸如传输控制协议(“TCP”)层的IP层使用被分配到每个消息的逻辑端口号,以便接收设备可以确定正被请求/提供的服务的类型。因此,这些逻辑端口是用于定义服务的引用号。逻辑端口号是连续的无符号整数值,其范围最大到值65535。某些逻辑端口已被分配,某些被保留,而许多未分配的逻辑端口可以被应用程序所使用。例如,超文本传输协议(“HTTP”)使用端口80来提供web浏览服务。
[0004] 为了允许使用诸如互联网web浏览的服务,诸如端口80的支持端口典型地不被防火墙阻挡,以使相应数据(例如对信息的请求)可以被web服务器所接收。一旦数据已通过防火墙,则web服务器典型地盲目接受该数据,处理该数据,并把结果发送回始发客户端计算机。上述方式甚至可以是这样的情况,其中web服务器接收请求并通过请求口令和/或ID来答复。
[0005] 这些安排使服务器对于上述攻击很脆弱。这些安排还由于要求管理者在攻击已做出之后不断地更新防火墙规则集,而不利地要求大量的管理。因此,想要有一种系统和方法,其允许客户端计算机经由防火墙与服务器通信,其中防火墙不需要使某些端口被默认允许,即防火墙阻挡所有进入的通信流而不管端口号。

发明内容

[0006] 本发明解决了现有技术关于认证的缺点,并提供了一种用于向服务器认证客户端计算机的新颖和非显而易见的方法、系统和装置。在此方面,使用了多层认证技术来防止病毒/蠕虫和黑客扫描端口。该多层技术通过在防火墙中记录通信请求并通知服务器客户端通信请求正待决,而有利地防止了客户端计算机和服务器之间的初始直接通信(例如通信会话)。
[0007] 根据一个方面,本发明提供了一种用于认证从客户端计算设备发送的通信请求的系统,其中防火墙与服务器进行数据通信。所述防火墙具有处理单元和存储单元。所述处理单元操作以执行下述功能,所述功能包括:初始阻挡所述通信请求,以及创建对应于所述通信请求的第一记录事件。所述存储单元存储所述通信请求和记录事件。所述服务器与所述防火墙进行数据通信。所述服务器具有处理单元,所述处理单元操作以执行下述功能,所述功能包括:接收由所述防火墙创建的所述第一记录事件的通知,认证对应于所述第一记录事件的通信请求,以及如果所述通信请求被认证则启用所述防火墙中的端口。
[0008] 根据另一个方面,本发明提供了一种用于认证从客户端计算设备发送的通信请求的方法,其中:初始阻挡所述通信请求,以防止其被传送到服务器。创建对应于所述通信请求的第一记录事件。在防火墙中存储所述通信请求和记录事件。向服务器通知所述第一记录事件。认证对应于所述第一记录事件的通信请求。如果所述通信请求被认证,则启用所述防火墙中的端口。
[0009] 根据再一个方面,提供了一种机器可读存储设备,在其上存储有计算机程序,该计算机程序用于认证从客户端计算设备发送的通信请求。所述计算机程序包括一组指令,当所述指令被机器执行时使得该机器执行一种方法,其中:初始阻挡所述通信请求,以防止其被传送到服务器。创建对应于所述通信请求的第一记录事件。在防火墙中存储所述通信请求和记录事件。向服务器通知所述第一记录事件。认证对应于所述第一记录事件的通信请求。如果所述通信请求被认证,则启用所述防火墙中的端口。
[0010] 本发明的另外的方面将部分地在以下的描述中被陈述,并且部分地通过这种描述变得明显,或可通过实践本发明而领会。借助于在所附权利要求中特别指出的元素及组合,将实现和达到本发明的这些方面。应当了解,前述一般描述和以下详细描述二者仅为示例性的和说明性的,而不会限制如所要求的本发明。

附图说明

[0011] 被并入和组成本说明书的一部分的附图说明了本发明的实施例,并连同描述一起用来解释本发明的原理。这里所说明的实施例是当前优选的,不过需要了解,本发明并不限于所示的精确安排和装置,在附图中:
[0012] 图1是根据本发明原理而构建的示例性系统的图;
[0013] 图2是本发明的整体过程的流程图;
[0014] 图3是图2的客户端内容请求准备和传输过程(步骤S200)的流程图;以及[0015] 图4是图2的认证客户端计算机通信请求的过程(步骤S204)的流程图。

具体实施方式

[0016] 本发明有利地提供了一种方法、系统和装置,用于以允许服务器使用多层认证和数据交换技术来认证客户端计算机的方式而允许服务器(例如web服务器)和客户端计算机(例如运行web浏览器软件的计算机)之间的通信。此技术不要求防火墙响应请求,并且不初始允许客户端计算机直接与服务器通信。如这里所使用的,对客户端计算机的认证的提及意在包括对实际的客户端计算机和/或计算机的用户的认证。
[0017] 现在参照附图,其中相同的标号指相同的单元。在图1中示出了根据本发明原理所构建的并被一般地标明为“100”的系统。系统100包括通过网络106和防火墙108连接于服务器104的客户端计算机102。网络106可以是能够在客户端计算机102和防火墙108之间传送数据的任何计算机网络。如这里所使用的,术语“数据”包括所有形式的数字通信,包括但不局限于:字母数字信息、音频、视频以及其他任何形式的经编码或加密的信息。另外,尽管在图1中防火墙108和服务器104被示出为分开的单元,并在这里被分别描述,但应了解,防火墙108和服务器104可以被实现为单个物理单元,其具有由一个或多个物理机架中的一个或多个处理单元和相关联的计算硬件所执行的、每个设备的功能。
[0018] 客户端计算机102可以是能够请求来自服务器的信息(例如可由web浏览软件提供的信息)的任何计算设备。例如,客户端计算机102可以是台式或膝上型计算机、个人数字助理(“PDA”)等等。客户端计算机102包括本领域所公知的并为实现这里所述的本发明的功能所可能需要的硬件部件。例如,客户端计算机102可以包括由操作系统和/或一个或多个应用软件程序所控制的存储单元(例如易失性或非易失性存储器)、中央处理单元、输入和输出设备、网络接口硬件、显示单元等等。
[0019] 类似地,服务器104一般地包括以上关于计算机102所描述的相同类型的硬件部件。服务器104被安排为基于客户端102所发起的请求向客户端102提供信息。例如,服务器104可以是web服务器。服务器104的硬件单元可以被安排为提供这里所述的关于认证对信息的请求(即,客户端102发起的内容请求)的功能。
[0020] 防火墙108一般地包括以上关于客户端计算机102所描述的包括存储单元和处理单元的硬件,并包括实现这里所述的功能所需的程序性软件。应注意,认为本领域普通技术人员可以使用已知计算软件语言写出程序性软件,以实现可由客户端计算机102、服务器102和/或防火墙108执行的这里所述的本发明的功能。由客户端计算机102、服务器102和/或防火墙108执行认证过程110。
[0021] 参照图2描述了本发明的整个过程,即认证过程110。首先,客户端计算机102准备对内容的请求并将其发送到服务器104(步骤S200)。所述请求的预定目的地被定址为客户端计算机102所相信的地址,例如服务器104的TCP/IP地址。防火墙108操作以初始阻挡由客户端计算机102发送的通信请求,并在其存储单元中记录所述请求以及体现所述请求的数据和/或包(步骤S202)。向服务器104通知在防火墙108中已制作了用于通信的记录条目,并且服务器104评估所述请求(步骤204)以确定客户端是否应该被认证(步骤S206)。如果客户端被认证,则接受所述通信请求,而且服务器104指示防火墙108启用防火墙中的一个或多个端口,以允许客户端102和服务器104之间的通信(步骤S208)。
[0022] 例如,客户端102可以从服务器104请求web内容。如果该通信请求被认证,则服务器104可指示防火墙108启用TCP/IP端口80,以允许客户端102使用此公知的http端口与服务器104通信,因为此端口通常被用于TCP/IP web通信。
[0023] 如上所述,关于步骤S204,服务器104接收防火墙108已记录来自客户端102的对于内容的通信请求的通知。考虑此通知可以用任意种方式被接收。例如,服务器104可以监视防火墙108中的记录,以确定何时已制作了用于通信请求的条目。作为另一示例,防火墙108可以主动地通知服务器104创建了通信请求记录条目。换句话说,可以将对通信请求记录条目的通知推向服务器104或可以将其从防火墙108中拉出。用于推和拉数据和用于监视计算机记录条目的技术是已知的,并且在这里不予描述。
[0024] 参照图3描述了步骤S200的客户端内容请求准备和传输过程的详细示例。本发明的多层认证技术的第一层是对对应于请求客户端计算机102的地址的散列的匹配。因而,客户端计算机102将其IP和MAC地址进行散列(步骤S300)。可以使用预先确定的散列协议或动态改变的协议来执行所述散列,例如由SECUREID系统进行的散列。还考虑也可将使用全球定位系统(“GPS”)增强的计算机的位置坐标包括为散列算法中的因子,从而使该系统增加一特定于位置的安全性的附加层。
[0025] 因此,由客户端102所传输和在防火墙108的存储单元中所存储的通信请求包括已散列的地址(和可选的GPS位置坐标)以及明文的(即未经散列的)这些相同地址和坐标。所述通信请求以预定顺序被传输到预先定义的端口或一系列端口(步骤S302)。如上所述,关于图2中的步骤S202。有状态的防火墙108截取目地的为服务器104的请求。
[0026] 通过在防火墙108处阻挡所有通信请求,本发明阻挡所有黑客和病毒/蠕虫到达服务器104。起初,服务器104所具有的、来自客户端102的通信请求的唯一知识是关于记录条目的通知。
[0027] 参照图4详细解释了图2的对通信请求的认证(步骤S204)。起初,服务器104检测到防火墙108中的记录已被更新(步骤S400)。以上描述了用于通知服务器104防火墙记录更新的方法。服务器104获得存储于防火墙108中的通信请求以及记录数据,并使用由客户端计算机102所使用的相同散列算法将所述通信请求中的明文的IP和MAC地址进行散列(步骤S402)。服务器104将经它散列的地址与由客户端计算机102创建的并包括在所述通信请求中的已散列的地址(以及可选的GPS位置信息)进行比较,以确定两个散列是否匹配(步骤S404)。如果两个散列不匹配,则认证失败(步骤S406),并且服务器104不会接受所述通信请求。匹配的散列是客户端计算机102未被“欺骗”(spoof)的强烈指示,即,所述通信请求确实是由客户端计算机102而非冒名顶替者发起的。
[0028] 如果两个散列匹配,则多层认证过程的第一层被认为成功,并且服务器104将单播请求发送给客户端计算机102,请求服务器的公开加密密钥(步骤S408)。该公钥可以是对应于每个IP端口或每个服务的。公钥典型地在安装相应通信软件和/或应用和/或操作系统之时被分发到客户端计算机102。一旦接收了请求,客户端计算机102就将公钥传输到服务器104。
[0029] 不过,如对于上述初始通信请求一样,由于没有打开任何端口以允许从客户端计算机102到服务器104的直接通信,包含了公钥的包被防火墙108所阻挡。防火墙108记录接收到公钥,并在其存储单元中存储此记录条目以及相应公钥。如对于初始通信请求一样,向服务器104通知该记录条目。服务器104从防火墙108获得公钥,并测试该公钥(步骤S410)。可以由服务器104例如通过用该公钥加密测试数据并接着尝试用其私钥解密同一数据来测试该公钥。如果解密成功,则客户端(通信请求)被认证(步骤S414)。如果解密不成功,则认证失败(步骤S406)。
[0030] 本发明可以用硬件、软件或硬件和软件的组合来实现。本发明的方法和系统的实现能够在一个计算机系统中以集中的方式实现,或者以分布的方式(其中不同的元件跨若干互连计算机系统分布)实现。适于执行这里所描述的方法的任何种类的计算机系统或其他装置都适合于执行这里所述的功能。
[0031] 硬件和软件的典型组合可以是具有计算机程序的通用计算机系统,所述计算机程序在被加载和执行时控制该计算机系统,使得该计算机系统执行这里所描述的方法。本发明还可以被嵌入到计算机程序产品中,该计算机程序产品包括使这里所述的方法能够实现的所有特征,并且在其被加载到计算机系统中时能够执行这些方法。
[0032] 本文中的计算机程序或应用指的是在任何语言、代码或符号形式下的一组指令的任何表达,所述一组指令旨在使具有信息处理能力的系统直接地或在经过下述操作中的任何一个或两者之后执行特定功能,所述操作包括:a)转换到另一语言、代码或符号;b)以不同的物质形式再现。显著地,本发明可以体现于其他特定形式中,而不会背离本发明的精神和基本属性,并且因此,应该参照以下权利要求而不是前述说明书来指明本发明的范围。