防止消息重放攻击的安全性的制作方法

文档序号:7620111阅读:204来源:国知局
专利名称:防止消息重放攻击的安全性的制作方法
技术领域
本发明涉及防止通过网络发送的消息的重放攻击的安全性。更具体地说,本发明涉及防止重放一则被拦截消息的安全性,它通过把和消息包括在一起的一个特有消息启动码与存储在接收设备中的一个特有消息启动码列表进行比较,以便确定是否启动该消息的处理。
背景技术
很遗憾,通过网络发送的消息的重放攻击已经变成一件经常发生的事件。一个重放攻击通常包括黑客拦截通过网络发送的一则消息,然后在稍后某个时刻第二次重发该消息给预定的设备(或者重放该消息)。作为一个示例,为了从一个帐户转帐到另一帐户,可以通过互联网从家中或商业用户那里发送一则消息给金融机构。拦截该消息的黑客可以在稍后某个时刻第二次发送该消息给金融机构,从而导致第二次资金转送。作为另一示例,通过网络向一台打印机发送机密打印作业可能会被黑客拦截,然后他可以在一个稍后时刻把该打印作业重放给打印机,从而获得机密信息。
虽然类似上述通过网络的许多传输可以应用诸如数字签名之类一些类型的保密操作来验证消息是真的,但是这样一个签名很少能防止重放攻击。关于这点,黑客通过拦截消息可以获得必要的签名来在一个稍后时刻重放该消息。因为签名在该消息的第一次播放中被验证,所以它也可能在该消息的第二次播放(回放)中被验证。
已经被建议来处理重放攻击的一个技术(所谓的Kerberos)涉及把一个票和一个时间戳加到一则发送消息上。当一则消息被接收设备接收时,这个票和时间戳在接收设备中被临时保存一段规定的时间(例如5分钟)。当另外的消息被接收时,最新接收消息的票和时间戳被提取以便确定它们是否与临时保存的票和时间戳相同。如果是,那么返回一则错误信息。因此,虽然此系统提供防止重放攻击的一些安全性,但是它还是有一些问题。
上述系统的一个问题是当时间戳被使用作为一则消息的有效性度量时,相同的时间戳可以给不同的消息。因此,由于时间戳不识别消息本身,而是识别发送消息的时间,所以如果与正式消息相同的时间戳存在时,一则重放的消息可以被认为是有效的。
上述系统的另外一个问题是开销增加,因为每个接收设备必须提供足够的存储空间存储所使用的票和时间戳。随着越来越多的消息被接收到,则需要一个更大的存储空间量来保存所使用的票。此外,随着票数目增长得越来越大,则需要更多处理时间来搜索所使用的票,从而由于时间而降低了系统的性能。
另外,黑客也许能从接收设备中删除一个临时保存的票和时间戳然后重放消息。因此,虽然票和时间戳可能已被使用过一次,但是因为这个票和时间戳已从临时保存的信息中删除,所以重放的消息将被视为有效;假定在时间戳的一个可允许期限内消息被重放。结果,临时保存所使用的票和时间戳的Kerberos过程虽然提供某些保护但是仍然在防止重放攻击方面有一些弱点。

发明内容
本发明的目的是解决至少一个上述问题。本发明通过如下操作来解决上述问题在接收并处理作业的设备中存储一个有效代码或令牌列表,把与接收消息包括在一起的特有消息启动代码(令牌)与存储的列表进行比较,以便确定所述代码(令牌)是否有效,然后从存储的列表中删除接收到的代码(令牌)。因此,根据本发明,一个特有消息启动代码的列表被存储在接收设备中。在主机设备中生成的一则消息包括来自生成的列表中的至少一个特有消息启动代码,该消息被发送给接收设备。接收设备在接收到消息后,把与接收消息包括在一起的特有消息启动代码与包含在存储列表中的代码进行比较以便确定是否拒绝该消息的处理。因此,在一个实施例中,如果与消息一起被接收的特有消息启动代码包括在存储的列表中,那么该消息被认为是有效的并且从存储的列表中删除相应的特有消息启动代码。可是,如果与消息一起被接收的特有消息启动代码未包括在存储的列表中,那么该消息的处理被拒绝。
结果,如果黑客想要拦截该消息并企图通过在一个稍后时刻重发该消息给接收设备来第二次回放该消息时,则由于特有启动代码不再包含在存储的列表中所以接收设备将拒绝该消息。此外,与上述Kerberos系统不同,如果黑客想要从接收设备中删除存储的代码列表,则由于该代码不被包括在列表中所以重放的消息将被拒绝。当然,在这种情况下,消息的第一次播放也将被拒绝,但是消息发送方可以只须获得一个新的代码并发送一则新消息与新代码即可。另外,可以把一个设备建入该系统中以便在黑客删除当前存储的列表时自动地获取新的代码列表。因此,通过在接收设备中提供该接收设备特定的一个特有消息启动代码列表并从列表中删除使用过了的代码,则能够很容易地提供防止拦截消息回放的安全性。
因此,在一个方面中,本发明通过把第二设备从第一设备接收到的一则消息的特有消息启动代码与存储在第二设备中的特有消息启动代码的列表进行比较以便确定与消息一起被接收的特有消息启动代码是否包括在存储的列表中,来提供防止从第一设备向第二设备发送的一则消息的重放的安全性。基于比较,确定是否拒绝第二设备对该消息的处理。
在确定与消息一起被接收的特有消息启动代码包括在存储的列表中的情况下,该消息的处理不被拒绝并且相应的特有消息启动代码从存储的列表中被删除。另一方面,在确定与消息一起被接收的特有消息启动代码未包括在存储的列表中的情况下,该消息的处理被拒绝。
优选地,特有消息启动代码列表由第三设备或第一设备生成,生成的列表被发送给第二设备并存储在其中。可替代地,特有消息启动代码可以由第二和第三设备互相地生成而不是在设备之间发送列表。因此,消息可以在第一设备中生成,以使消息包括来自生成的列表中的至少一个特有消息启动代码。当然,消息和特有消息启动代码然后可以从第一设备被发送到第二设备。
作为生成消息的一部分,第一设备可以向第三设备请求一个要被包括在消息中的特有消息启动代码,因此第三设备将所述要被包括在消息中的特有消息启动代码发送给第一设备。对于这个方面,一个安全的服务器可以为第二设备保存有效代码列表,并且多个第一设备可以请求一个代码用于使用来与消息一起发送给第二设备。
在本发明的另外一个方面中,第二设备可以确定预定数量或更少数量的特有消息启动代码是否包含在存储的列表中。如果确定所述列表包含预定数量或更少数量的特有消息启动代码,那么第二设备可以为该列表获取补充的特有消息启动代码。例如,一旦列表被消耗到一个预定数量或更少数量时,第二设备可以通知第一设备或第二设备需要补充的代码。从而,补充的特有消息启动代码可以被发送给第二设备,因此第二设备能够启动一个新的列表代替当前存储的列表,或者可以只是把补充的代码添加到当前列表中以便形成一个累积的列表。可替代地,如果实施例中使用代码的相互生成,则第二设备可以只须它自己生成一个新的列表。
虽然上文描述了在本发明中应用三个设备的情况,但是可以很容易知道可以改为使用更少或更多的设备。例如,一个只应用第一和第二设备的系统可以被使用,其中,代码列表在第一设备本身之中被生成并且列表被转送给第二设备。然后,当第一设备想要发送一个作业给第二设备时,它可以只须从它自己的内部列表中获取与作业包括在一起的一个代码,而无须与第三设备通信以便获取代码。
以上内容用以使本发明的特性可以被迅速理解。通过结合附图参考本发明优选实施例的如下详细说明,则能够获得本发明的一个更完整的理解。


图1是可以实现本发明的一个网络计算环境的典型视图。
图2是示出个人计算机内部构造示例的框图。
图3是示出服务器内部构造示例的框图。
图4描述了根据本发明在各个组件之间通信的软件体系结构。
图5描述了用于由一个目录组件处理命令的软件体系结构。
图6描述了根据本发明用于通信的软件体系结构,包括授权请求和授权响应。
图7描述了功能提供者和安全应用之间的通信示例。
图8描述了功能提供者内的软件体系结构。
图9是根据本发明用于发送作业到一个功能提供者以及功能提供者处理该作业的处理步骤流程图。
图10是功能提供者确定与作业一起被接收的令牌有效性的处理步骤流程图。
图11是功能提供者确定与作业一起被接收的令牌有效性以及确定是否需要补充的令牌的处理步骤流程图。
图12是功能提供者从一个安全性应用中获取补充的令牌的处理步骤流程图。
具体实施例方式
本发明通常针对防止消息的重放攻击。正如将在下面更详细描述的那样,在一个网络计算环境中实现本发明,其中诸如个人计算机、多功能设备和服务器之类的各个设备通过网络彼此通信。在下面提供的详细描述虽然针对执行从主计算机向多功能设备发送一个打印作业并防止打印作业在多功能设备上重放的这样一个打印操作,但是它不限制为这样一个实施例。相反,本发明可以被实现在防止越权用户重放消息的任何各种环境中。同样,附加到此的权利要求不被限制为打印环境,而是被概括解释为包含防止电子通信重放攻击的任何环境。
图1提供了可以实现本发明的一个网络计算环境的系统视图。如图1所示,网络计算环境可以包括网络100,连接到网络100的是台式机10、服务器40、多功能设备30和打印机50。虽然对于其它类型的网络(包括互联网)也可以应用本发明,但是优选地,网络100是一个由总线型物理构造组成的以太网网络媒体。
优选地,台式机10是一个个人计算机,比如具有诸如个人计算机典型的微软视窗2000之类的视窗环境的IBM PC-兼容计算机,优选地,台式机10具有显示屏11(比如彩色显示器)、键盘12、鼠标13或其它定点设备、以及诸如软盘/硬盘/CD-ROM等等之类的存储媒体14。
还示出的连接到网络100的是多功能设备30,它能够通过网络接收要被设备30处理的命令和数据。例如,设备30可以接收来自个人计算机10的一个打印作业用于处理该打印作业以便打印一张图像。多功能设备30还可能能够接收和发送传真、执行复印操作、或者扫描图像。多功能设备30经由网络接口(未示出)通过网络100与其它设备通信以使设备30能够接收并处理来自网络上其它设备中的命令和数据。本发明中涉及多功能设备30的一个特征是为设备30存储特有消息启动代码(在下文中也被称为″令牌″或″TAT″)的列表,正如在下面将更详细描述的那样,代码例如由服务器40提供给设备30,并被利用来防止网络上的其它设备对发送至设备30的消息的重放或者传输。因此,设备30不仅包括与个人计算机10通信的能力而且包括与服务器40通信的能力。
关于这点,服务器40还连接到网络100。优选地,服务器40包括一个服务器类型的计算机,它具有各种类型的服务器操作系统中的任何之一,比如DOS,微软视窗2000服务器,Novell,UNIX,Linux等等。服务器40有一个存储设备480,优选地,存储设备480是一个用于存储众多文件的大容量硬盘。服务器40因此能被网络100上的其它设备利用为文件服务器。服务器40也可以为网络100上其它设备担当对诸如互联网之类的另一网络的网关。本发明更特定的是服务器40优选地包括一个安全性应用(SA),它生成特有消息启动代码或TAT(事件接入令牌),其被利用在实践本发明之中。即,服务器40的安全性应用包括以一个安全的方式生成可以被发送给网络上其它设备(比如多功能设备30)的TAT列表的能力,安全的方式例如可以是SSL连接或者可以是被加密。这些过程将在下面关于服务器的安全性应用而被更详细地描述。
打印机50也连接到网络100并且优选地是激光或喷墨打印机。打印机50包括沿着多功能设备30的线路的功能,但是更具体地说,被引导来仅仅执行打印操作。因此,打印机50在它涉及本发明时以与多功能设备30相同的方式操作,并且因此,设备30的描述同样应用于打印机50。
图2是示出台式机10内部构造概述的框图。图2中,看到台式机10包括诸如可编程微处理器之类的中央处理器(CPU)210,它与计算机总线200接口。也耦合到计算机总线200上的是用于接口到键盘12的键盘接口220、用于接口到鼠标13的鼠标接口230、用于接口到软盘14的软盘接口240、用于接口到显示屏(显示器)11的显示屏接口250、用于接口到网络100的网络接口260、以及用于与本地外围设备(未示出)接口的外围设备接口265。随机访问存储器(″RAM″)270接口到计算机总线200以便向中央处理器(″CPU″)210提供对内存存储器的访问,从而担当CPU 210的主运行时刻存储器。具体地说,当执行存储程序指令序列时,CPU 210把那些指令序列从硬盘280(或其它内存媒体)载入到随机访问存储器(″RAM″)270中并执行出自RAM270的那些存储程序指令序列。还应当指出按照窗口操作系统可用的标准磁盘交换技术允许内存分段以与RAM270和硬盘280交换。只读存储器(″ROM″)290存储不变的指令序列,比如CPU 210的启动指令序列或附加到计算机10上的外围设备操作的基础输入输出操作系统(″BIOS″)序列。
硬盘280是计算机可读介质的一个示例,它存储中央处理器(″CPU″)210可执行的程序指令序列。一些存储程序指令包括视窗操作系统281、打印机驱动器282、本地外围设备驱动器283、加密/解密逻辑284、应用程序285和网络外围设备驱动器286。如上所述,虽然对于本发明可以使用其它类型的操作系统,但是优选地,操作系统281是视窗操作系统。打印机驱动器282被利用来准备用于在诸如多功能设备30或打印机50之类的至少一个图像形成设备上打印的图像数据。本地外围设备驱动器283被利用来驱动并控制用于与本地(即,本地连接到计算机10上的设备)外围设备进行接口的本地外围设备接口265。加密/解密逻辑284提供用于执行要被计算机10发送给网络上其它设备的数据的加密,以及执行计算机10从网络上其它设备中接收到的加密数据的解密。应用程序285例如可以包括用于创建文档和图像的标准文字处理器程序,例如Microsoft Word、PowerPoint或者Corel WordPerfect。网络外围设备驱动器286包含计算机10与网络外围设备通信(诸如在多功能设备30上执行远程操作(例如,远程扫描、拷贝、传真等等)之类的)所必需的驱动器。
图3是示出服务器40内部构造概述的框图。图3中,看到服务器40包括中央处理器(″CPU″)410,键盘接口420,鼠标接口430,显示屏接口450,用于接口到网络100的网络接口460,随机访问存储器(″RAM″)470,硬盘480,以及只读存储器(″ROM″)490,其中所有的组件都耦合到计算机总线400上。每一个上述组件的功能和操作类似于关于图2所描述的相同组件。因此,关于图2描述的这些组件的操作的详细描述同样适于图3中描述的组件,因此为了简洁在此省略了它们的描述。
硬盘480是计算机可读介质的一个示例,它存储CPU410可执行的程序指令序列。具体地说,诸如操作系统411、网络接口驱动器412、安全性应用413和目录服务414之类的软件应用可以被存储在硬盘480上。网络接口驱动器412被利用来驱动用于把服务器40与网络100进行接口的网络接口460。在下面将更详细地描述安全性应用413,它提供各种安全性功能用于实践本发明。可是,简要地说,安全性应用413从网络上的各个设备(包括计算机10、多功能设备30和打印机50)中接收命令,并相应地处理那些命令。例如,安全性应用413可以接收来自多功能设备30中的命令以便发布设备信息到目录服务414中,或者请求一个TAT块的下载。安全性应用413还可以接收来自计算机10中的命令以便请求授权发送一个作业给设备30(将在下面更详细地描述)。授权请求可以包括计算机10的任何必需的与安全性相关的信息(也将在下面被更详细地描述)的一个请求以便能够以一种能阻止作业重放的方式提交一个作业给多功能设备30。优选地,目录服务414是一个基于LDAP(轻量级目录访问协议)的目录服务,它执行各种目录功能,比如存储连接到网络的各个设备的设备信息。应该指出虽然目录服务414被示出为位于硬盘480内,但是目录服务可以改为位于服务器40外部。例如,目录服务可以被实现在另一服务器(图1中未示出)中,以使服务器40经由网络接口460通过网络与目录服务服务器通信。
现在将用在实践本发明中所利用的软件体系结构来进行描述。简要地说,该体系结构包括如下组件诸如计算机10之类的一个功能用户(在下文中被称为″FU″),诸如多功能设备30之类的一个功能提供者(在下文中被称为″FP″),诸如安全性应用413之类的一个安全性应用(在下文中被称为″SA″),以及诸如目录服务414之类的一个目录服务(在下文中被称为″DS″)。每个组件包括提供根据本发明用于执行作业提交处理功能的各个模块。例如,在执行一个打印操作时,功能用户想要发送一个打印作业给多功能设备30,发送一个作业授权请求命令给安全性应用。该请求可以是安全性应用向功能用户提供一个授权响应,授权响应包括一个TAT(事件授权令牌),在此,该响应要被用于发送打印作业给设备30。正如将在下面被更详细地描述的那样,包括在授权响应中的TAT被利用在防止打印作业的重放攻击中。安全性应用处理授权请求并用授权响应对功能用户进行响应。功能用户在接收授权响应之后,把打印作业和授权响应一起提交给设备30,在此,功能提供者(设备30)相应地处理打印作业。正如将在下面被更详细地描述的那样,功能提供者对打印作业的处理可以包括验证包括在与打印作业一起被接收的授权响应中的TAT是否有效以便防止一个重放攻击。现在将更详细地描述这些过程。
图4给出了具有所述安全性应用组件内部说明的一个系统的总体软件体系结构。如图4所示,安全性应用组件113(SA)与可以包括计算机10的功能用户110(FU)通信、与诸如多功能设备30之类的功能提供者130(FP)通信、与管理用户(示出为,AU’)160以及与诸如目录服务414之类的目录服务114(DS)通信。优选地,在SA 113和FU 110、AU 160以及DS 114之间的通信在诸如SSL(安全套接层)之类的安全传输协议上。在图4中用斜纹箭头描述一个SSL通信,而用普通箭头描述非SSL通信。可是,SA 113和FP 130之间的通信可以既在SSL链路上又在非SSL链路上。例如,在从SA 113中下载令牌(TAT)列表给FP 130的情况下可以利用SSL链路,而当设备是一个新设备的时候FP 130向DS 114发布设备信息时或者当利用加密要从SA中向FP下载令牌(TAT)列表时可以利用非SSL链路。
如图4中所看到的,安全性应用113包括SSL组件120、命令处理组件121、安全性组件122和目录组件123。SA中的SSL组件120提供用于套接通信的SSL支持。在套接上外出的所有数据都通过SSL组件。当然,如果一个非SSL连接被用于通信,则SSL组件将包括与被利用的连接类型对应的一个通信组件,而不是包括SSL。
命令处理组件121处理对SA的呼入命令。命令处理模块的主要功能是把来自不同源的呼入命令翻译为适于SA中的组件。命令处理模块可以识别的一个命令示例是一个设备发布命令。设备发布命令用于发布一个新设备的设备信息(即,MIB(管理信息库)信息等等)到DS 114中。命令处理组件为此命令而与目录组件123和安全性组件122通信。
安全性组件122执行各种操作,包括安全信息的生成以及向新设备的递送,比如TAT的生成以及向网络上的设备的递送;以及把一个数字签名施加到被包括在授权响应中的一个TAT上(在下面被更详细地描述)。TAT被利用在本发明中以便通过确保一个给定事件(是一个打印作业或者任何其它类型的事件)将只被处理一次来阻止重放攻击。TAT在重放防止中的基础应用如下。
一个TAT或者一个TAT列表由SA生成。优选地,TAT具有这样的特性(例如一个简单的随机值或者与时间和日期的表示法合并的一个随机值),其担保它是特有的(从不重复)并且它不会被攻击者合理预测或推测。TAT被安全地递送给FP(例如,经由SSL或者通过被加密),优选地,和其它TAT一起作为TAT块的一部分而被安全地递送,在此,它们被存储在FP中。即,一个TAT块由SA生成并预先(或者以合宜的时间间隔)分发给FP,以使FP保存将被用于将来操作的TAT块。因此,SA可以预先生成一个TAT块并把它们发送给FP,在此,直到被需要之前它们将被安全地存储。想要发送作业给FP的FU发送一个授权请求给SA。SA处理该请求并生成一个授权响应。与TAT块一起递送的TAT之一被SA包括在授权响应中,因此该响应然后被返回给发送授权请求的FU。FU把作业和包括TAT的授权响应一起递送给FP。FP通过把TAT与它早先从SA中接收到的TAT列表匹配来确认与作业一起包括的TAT是否有效。如果发现该TAT有效(即,它包含在存储的块中),则FP处理这件作业然后从存储的列表中删除该TAT,以使包含同一TAT的任何将来的作业将不被重视。这种基于令牌的授权系统确保每个事件将只被处理一次。因此,如果事件的一点图像被攻击者重放,则FP将不能发现在它的本地存储器中的一个匹配TAT,并将拒绝该事件。此实施的一个附加优点是FP不需要为将来的参考而存储已使用令牌的拷贝。这个方法防止正如在设备的功率循环期间可能发生的通过破坏FP存储的令牌可以设制然后发送事件的重放给设备的那些攻击,在此,一个已使用过的令牌将不会被发现。另一方面,依靠令牌存储器的易变性,可能需要遵循一个功率循环重新分发有效TAT给设备。正如将在下面被更详细地描述的那样,在正态分布机构的边界内可以很容易管理任何这样的分发。
现在将关于SA向FP的TAT生成和分发、以及SA和FP相互独立的TAT生成来提供一个简短的描述。
在一个优选实施例中,所有令牌由SA生成,并且在按需基础上生成并分别地转送给FP,或者在单个操作中作为一个令牌块被生成并转送给FP。无论它们是分别地还是作为一块被生成,则对于令牌结构都能使用相同的方法。关于这点,通过只是生成适当长度的一个加密强随机值(rv)或者通过为了最精确可用的分辨率而合并日期的时间和随机值,则SA可以生成TAT。发生器的结果输出(例如rv,与rv合并的tod等等)可以被直接使用作为一个TAT。因此,如果TAT只包括一个随机值(rv),则SASA利用任何已知的发生器生成一个加密强随机值。在合并实施中,每个TAT可以由SA使用下列方法而分别地生成TATn=tod‖rv
在此tod是日期的时间,rv是一个加密强随机值,和‖表示级联。
对于初始令牌,一个简单的发生器可以被实现为TAT0=tod‖rv在此tod是日期的时间,rv是一个加密强随机值,和‖表示级联。
由于有在SA上的实时时钟中的一个足够精确的分辨率,特有性(唯一性)可以被确保。
一旦生成TAT,它们可以在按需基础上各个地或者更优选地作为一个TAT块被SA安全地分发给FP。如上所述,TAT可以经由一个SSL连接被SA分发给FP,或者块可以被SA数字标记,所述块然后被SA加密并发送给FP。
作为上文的一个替代方案,TAT可以由SA和FP相互独立地生成。即,SA可以独立地生成一个TAT块而FP也可以独立地生成一个相应的TAT块。这个方法消除了对于通过网络从SA发送TAT块给FP的需要,从而减少了攻击者拦截所述块的可能性。在生成过程期间,相互的生成例如可以使用散列法或者加密。使用这个实施例,SA和FP独立地生成一个完全相同的TAT值序列,它们无法被攻击者预测--即使攻击者知道前一数值序列。完成这个任务的一种方法是使用一个简单的发生器,它使用散列函数来混合输入。使用这种方法,合并实施中的初始令牌可以由SA生成如下TAT0=tod‖rv在此tod是日期的时间,rv是一个加密强随机值。
后来,完全相同的令牌可以由SA和FP使用如下方法独立地生成TATn=tod‖Hk(TATn-1‖n在此H是一个键控散列函数,比如HMAC-SHA1,
tod是在初始令牌中由SA提供的日期的时间,k是由SA在当前块初始化期间生成的随机密钥,和n是一个计数器的数值,在此n>0。
对于这个实施例,由于等式以右的所有变量可以被攻击者已知,所以需要散列密钥的存在。如果不知道k,尽管拥有tod、TATn-1和n,则攻击者不能生成TATn。
因此,正如从上文可以看到的,在各个实施的任何一个中,TAT可以在SA和FP之间生成和分发。可是,优选地,TAT由SA作为一块而被生成,TAT块被分发给FP,为了将来使用而把它们存储在此。当然,TAT块还被SA保存以使当FU请求在FP上执行一个操作时,SA可以确定哪些TAT对应于FU想要使用的FP并且能够为FU提供一个适当的TAT给FU以便包括在发送给FP的作业中。
返回到图4,目录组件123与命令处理组件121和目录服务114通信。图5描述了目录组件123的一个更详细的框图。
正如在图5中看到的,目录组件123包括与命令处理组件121和规划管理器模块131通信的设备发布模块126。设备发布模块126处理由SA从FP中接收到的设备发布命令以便设置任何新的设备。当一个新的设备被启动并执行一个发现操作以便发现SA时,设备发布模块根据设备规划从FP中获取设备配置信息并把收集的信息存储在目录服务114中。规划管理器模块131处理目录访问请求并知道目录规划,因此它能够把任何目录访问请求映射到目录规划以便(优选地经由LDAP)拉出存储在目录服务中的适当信息。
图6描述了根据本发明在FU、SA和DS之间的通信示例。在如下描述中,如图6所示的已编号箭头描述各个模块之间的通信并且已编号箭头将被归于一个括弧中(例如,箭头编号1为(箭头1))。在图6中,假定FU和SA之间的链路经由SSL,则FU 110连接到收听SA的SSL端口(箭头1)。FU和SA之间的验证过程可以在这个时候被执行以使SA接受连接并为FU产生一个线程和一个新数据通信套接。因此,在SA和FU之间建立一个安全的(SSL)连接(箭头2)。然后FU发送一个授权请求给SA(箭头3)。授权请求例如可以是这样一个请求由FU在FP 130上执行一个打印操作并且SA向FU提供一个TAT。命令处理组件121处理该请求,调用判断模块127,并把请求传递给判断模块127(箭头4)。判断模块处理该请求以便构造授权比特并把授权比特传递给安全性组件(箭头5)。安全性组件处理授权比特以便提供一个被加密了的(优选地被数字标记了的)TAT返给判断模块(箭头6)。判断模块127以授权响应的形式发送被加密了的TAT返给FU(箭头7和8)。FU和SA之间的套接连接然后关闭。
图7描述了在FP 130和SA 113之间的通信的软件体系结构示例。正如在图7中看到的,FP可以发出与SA的一个非安全通信。非安全通信例如可以被使用于网络上一个新设备的初始设置,或者请求SA向FP提供一个新的TAT块。因此,FP连接到SA正在收听的一个非SSL端口。SA接受该连接并为这个FP产生一个线程和一个新数据通信套接。在初始建立模式中,FP把一个设备发布命令以及一个命令信息块一起发送给SA,SA规定它是一个新设备(箭头1)。如果FP正在请求一个新的TAT块,则箭头1表示请求所述新块的一个命令。命令处理组件121处理接收到的命令并把它传递给安全性组件122(箭头2)。如果FP是一个新设备,安全性组件122生成被下载给新设备的安全信息。更具体地说,SA的安全性组件为所述新设备生成一个公共/专用密钥对,并为SA生成一个已标记的证书。安全性组件还利用上述任何一种方法生成一个TAT块。在命令是用于设置一个新设备的情况下或者命令是用于获取一个新TAT块的情况下都执行这个过程。可替代地,为了设置一个新设备,在使用相互生成TAT的实施例中,安全性组件可以生成一个初始TAT,其被两个设备使用来生成将来的TAT。安全信息或者新的TAT块然后被下载到FP(箭头3)。应该指出不同于箭头1,箭头3的通信是一个安全通信。即,安全信息或新的TAT块通过如下方法被下载1)通过SA与FP建立一个SSL链路然后经由SSL把安全信息发送给FP,或者2)通过SA加密安全信息然后把加密了的安全信息发送给FP。FP然后断掉连接并且套接关闭。
图8描述了FP的一个内部软件体系结构。正如在图8中看到的,FP优选地通过安全性组件132提供的安全信道连接与SA通信。安全性应用发现组件133处理SA发现过程。当设备被加电时,这个模块使用DNS服务来发现组织SA组件并在SA和FP之间建立安全连接。
图9是用于从功能用户(FU)向功能提供者(FP)提交一个作业的处理步骤流程图。作为作业提交的一个示例,一个打印作业可以从计算机10(形成FU)提交给多功能设备30(形成FP),在此,打印作业通过服务器40(形成SA)被处理。可是,打印作业不是可以被提交的唯一作业类型,作业可以包括各种功能的任何一个,比如执行远程拷贝操作、传真操作、扫描操作、从一个帐户转帐到另一帐户等等的一个请求。而且,虽然FP优选地是能够执行上述操作的任何一个或多个的一个多功能设备,但是它不必是一个多功能设备,而可以改为任何其它类型的设备,比如服务器、打印机、复印机、传真设备等等。现在参考图9,在步骤S901,用户执行一些类型的动作来发出一个授权请求以便在FP上执行一个操作。在打印作业要从计算机10提交给多功能设备30的情况下,用户在计算机10处执行发出动作。可是,用户可以在任何FU设备处发出所述请求动作并且本发明不限制为与FP分开的计算机。例如,FP本身可以包括一个诸如与网络通信的多功能设备上的触板显示屏之类的操作单元,以使用户可以在FP自己那里发出该请求。在FU是个人计算机10的情况下,请求动作可以由在应用程序中执行操作的用户发出以便提交给FP。正如用于执行打印操作所公知的那样,用户可以通过选择诸如文字处理程序之类的应用程序内的一个打印选项来发出打印处理,因此激活一个打印驱动器用于提交打印作业以便打印出来。
在本发明中,当打印驱动器被激活时,由打印驱动器为打印作业生成作业数据。例如,打印驱动器可以生成包括所执行的操作类型(即,打印)、作业页数、以及各种打印选项(彩印、双面打印等等)在内的打印数据。另外,FU(计算机10)和FP(多功能设备30)的信息可以被包括在作业数据中。例如,诸如FU和FP的MAC地址或IP地址之类的标识信息可以被获取并包括在作业数据中。一旦作业数据已被获取,则它优选地以一则授权请求消息的形式而被封装用于传输给SA。
然后FU与SA建立一个连接以便把授权请求发送给SA(步骤S902)。优选地,所述连接是一个安全的连接,比如SSL。这可以被视为对应于图6的箭头1和2。可是,代替经由SSL被发送,则授权请求还可以以加密的形式被发送给SA。一旦安全的连接已被建立,则FU发送授权请求命令给SA(步骤S903)。这可以被视为对应于图6的箭头3。SA在接收授权请求后,处理该请求以便构造一则授权响应(步骤S904)。在构造授权响应时,SA为授权请求中识别的FP获取一个TAT,并对该TAT进行数字标记。被加密了的(被数字标记了的)TAT然后被包括在授权响应内并且SA向FU提供授权响应(步骤S905)。优选地,SA以一种安全的方式(即,SSL或经由加密)向FU提供授权响应。
在FU接收来自SA的授权响应之后,FU以作业请求的形式构造一个FP命令包,其包括作业数据和授权响应。即,FU从KSA中接收到的授权响应只按照与它被接收时相同的形式被插入到作业请求中。优选地,利用一个对话密钥加密该作业请求(它包括作业数据和授权响应),加密了的作业然后被FU发送给FP(步骤S906)。在接收加密了的作业请求后,FP利用对话密钥来解密接收数据并且从授权响应中提取TAT。FP确定提取的TAT是否有效(步骤S907),并且如果是,则相应地处理作业数据(步骤S908)(即,如果它是一个打印作业则打印出该作业)。如果TAT被确定为无效,则该作业被拒绝(步骤S909)。在下面关于图10和11更详细地描述步骤S907的TAT有效性过程。
图10是FP确定与作业一起被接收的TAT有效性的处理步骤流程图。正如图10中看到的,FP的安全性组件132接收来自FU的作业(步骤S1001)。如上所述,优选地,作业包括作为授权响应一部分的TAT。安全性组件132从接收到的授权响应中提取TAT并把它与预先存储在FP中的TAT块进行比较(步骤S1002)。如上所述,优选地,TAT块被预先存储在FP中。基于比较,确定与作业一起被接收到的TAT是否被包括在存储的TAT块中(步骤S1003)。如果否,那么TAT被确定为无效(步骤S1004)并且该作业被拒绝(步骤S909)。如果一个相应的TAT被包括在存储的块中,那么TAT被确定为有效(步骤S1005)并且相应地该作业被处理。
一旦一个TAT已被使用,则从存储的TAT块中删除该TAT(步骤S1006)。流程然后继续到图9的步骤S908。因此,可以很容易看出通过使用每个消息唯一的一个特有消息(启动)代码,由于基于每个消息唯一的该代码进行确定,所以重放消息将不被认为是有效的。
图11是类似于图10的一个流程图,但是包括可以被包括在TAT有效性过程内的另外的步骤。因此,步骤S1101到S1106与上述步骤S1001到S1006相同。可是,在图11中,一旦TAT从存储的TAT块中被删除,则确定是否有足够数量的TAT保存于存储的决中。因此,在步骤S1107中,确定保存在存储的块中的TAT数目是否小于一个预定数量(n),在此n可以是任何整数。例如,n可以等于一(1),以使如果没有(零)TAT保存在存储的块中时,FP可以执行一个过程来获取补充的TAT。因此,如果足够数量的TAT仍然保存在存储的块中,则TAT有效性过程停止(步骤S1108)并且流程继续到步骤S908来处理作业。可是,如果没有足够数量的TAT保存在存储的块中,那么FP执行一个过程来为存储的块获得补充的TAT(步骤S1109)。应该指出在开始获得补充TAT的处理之前,作为S1107步骤的一部分可以进行一个补充的确定,借此可以确定下载或获取补充的TAT的过程是否早已在进行中。如果处理早已在进行中,则将不需要执行步骤S1109并且流程将继续到步骤S1108。在TAT块被SA生成并被SA发送给FP的情况下,在下面将关于图12描述的一个过程可以被使用。可是,在TAT由SA和FP相互生成的实施例中,FP的安全性组件132可以只基于相互的TAT生成算法在内部生成一个新的TAT块并把补充的TAT存储在块中。
图12是在TAT块由SA生成(而不是相互生成TAT)并被发送给FP的情况下功能提供者从SA中获得补充的TAT的处理步骤流程图。图12的处理步骤对应于步骤S1109的过程。正如在图12中看到的,当FP确定存储的块需要补充的TAT时,FP与SA建立一个连接(步骤S1201)。优选地,连接是一个安全的SSL连接,但是如果SSL不被利用而是改为利用一个基于加密的TAT通信,那么连接可以是一个非安全的连接。在与SA建立连接之后,FP发送一个命令给请求补充的TAT的SA(步骤S1202)。SA在接收请求后,首先可以执行各种验证检查以便验证发送该请求的FP。当FP已被验证时,SA处理该请求并生成一个新的TAT块(步骤S1203)。按照与上述关于TAT生成相同的方法来生成新的TAT块。新的TAT块然后被安全地发送给FP(步骤S1204)。如上所述,TAT块可以经由SSL被SA安全地发送给FP,或者TAT块可以被加密(并且作为选择被进行数字标记),然后通过非SSL信道发送给FP。一旦FP接收到新的TAT块,所述新块被存储在FP中(步骤S1205)。在步骤S1205中,通过从当前存储的块中删除任何剩余的TAT并用新近接收到的TAT块替代它们,则新的TAT块可以被存储在安全性组件132中,或者,新近接收到的TAT块可以被添加到任何剩余的存储TAT上使得形成一个累积的块。
因此,正如可以从图9到12的上述描述中可以看到的那样,FU发送一个授权请求给SA。SA处理该请求并生成一个包括TAT的授权响应,并把授权响应发送给FU。FU在接收授权响应后,发送一个作业给FP,其中该作业包括授权响应。FP在接收作业和授权响应后,提取TAT并把接收到的TAT与存储的TAT列表进行比较以便确定TAT是否有效。如果接收到的TAT未被包括在存储的列表中,那么该作业被拒绝。即,由于包括的TAT早已被接收并从列表中被删除,所以FP确定现在的作业请求是先前提交的作业的一个重放。可是,如果发现接收到的TAT被包括在存储的列表中,那么TAT被认为是有效的并且相应地该作业被处理。然后从存储的列表中删除该TAT以使使用同一TAT重放作业请求的任何企图将被拒绝。正如可以很容易看到的,上述处理提供一个相对自动的方式用于阻止消息的重放攻击。
上述处理步骤可以被实现为由一个或多个计算机设备执行的计算机可执行处理步骤。计算机可执行处理步骤可以被存储在计算机可读介质上,比如软盘、磁盘、CD-ROM、硬盘等等。因此,本发明可以被实现为计算机可执行处理步骤本身或者可以被实现为存储计算机可执行处理步骤的计算机可读存储介质。而且,具有存储在其中的计算机可执行处理步骤的诸如计算机之类的一个装置可以包括本发明。
结合特定的说明性实施例已经描述了本发明。应该理解的是本发明不限制为上述实施例并且不偏离本发明的精神和范围本领域普通技术人员可以进行各种改变和修改。
权利要求
1.一种防止从第一设备发送到第二设备的消息被重放而提供安全的方法,包括如下步骤把第二设备从第一设备接收到的消息的特有消息启动代码与存储在第二设备中的特有消息启动代码的列表进行比较,以便确定与消息一起被接收的特有消息启动代码是否被包括在所存储的列表中;和基于上述比较步骤,确定是否拒绝第二设备对消息的处理。
2.根据权利要求1的方法,其中在比较步骤确定与消息一起被接收的特有消息启动代码包括在存储的列表中的情况下,该消息的处理不被拒绝并且从存储的列表中删除相应的特有消息启动代码,和其中,在比较步骤确定与消息一起被接收的特有消息启动代码未包括在存储的列表中的情况下,该消息的处理被拒绝。
3.根据权利要求2的方法,还包括如下步骤生成特有消息启动代码的列表;和把生成的列表存储在第二设备中。
4.根据权利要求3的方法,其中所述特有消息启动代码列表在第三设备中生成,并且该列表被发送给第二设备以便存储在其中。
5.根据权利要求3的方法,其中所述特有消息启动代码列表在第一设备中生成,并且该列表被发送给第二设备以便存储在其中。
6.根据权利要求3的方法,其中所述特有消息启动代码列表由第二设备和第三设备互相地生成。
7.根据权利要求3的方法,还包括如下步骤在第一设备中生成要被发送给第二设备的消息,该消息包括来自所生成的列表中的至少一个特有消息启动代码;把生成的消息和所述特有消息启动代码一起从第一设备发送给第二设备;和由第二设备接收发送的消息和所述特有消息启动代码。
8.根据权利要求7的方法,还包括如下步骤第一设备向第三设备请求要被包括在所述消息中的一个特有消息启动代码;和第三设备将所述要被包括在消息中的特有消息启动代码发送给第一设备。
9.根据权利要求2的方法,其中第一设备和第二设备通过网络进行通信。
10.根据权利要求2的方法,还包括如下步骤在第二设备中确定一个预定数量或更少数量的特有消息启动代码是否包含在存储的列表中,在确定所述列表包含所述预定数量或更少数量的特有消息启动代码的情况下,第二设备为该列表获取补充的特有消息启动代码。
11.根据权利要求10的方法,其中所述补充的特有消息启动代码包括存储在第二设备中代替当前存储列表的一个新列表。
12.根据权利要求3的方法,其中所述补充的特有消息启动代码被添加到当前存储的列表中。
13.根据权利要求4或5的方法,其中生成的特有消息启动代码列表以一种安全的方式被发送给第二设备。
14.根据权利要求2的方法,其中特有消息启动代码包括随机数。
15.根据权利要求2的方法,还包括第二设备对接收到的特有消息启动代码执行一个验证检查。
16.根据权利要求7的方法,其中由第一设备发送给第二设备的所述消息和特有消息启动代码在被发送之前经过散列算法处理。
17.根据权利要求1的方法,其中所述消息的处理包括打印处理。
18.一个从主机设备接收并处理消息的装置,包括一个接口,用于接收来自主机设备的消息和发送消息到主机设备;一个处理器,该处理器执行计算机可执行处理步骤;和一个存储介质,该存储介质存储包括由处理器执行的计算机可执行处理步骤在内的信息,其中计算机可执行处理步骤包括(a)把由该设备从主机设备中接收的一则消息的特有消息启动代码与存储在存储介质中的特有消息启动代码的列表进行比较,以便确定与消息一起被接收的特有消息启动代码是否包括在存储的列表中;和(b)基于比较步骤,确定是否拒绝该设备对该消息的处理。
19.根据权利要求18的装置,其中在比较步骤确定与消息一起被接收的特有消息启动代码包括在存储的列表中的情况下,该消息的处理不被拒绝并且从存储的列表中删除相应的特有消息启动代码,和其中,在比较步骤确定与消息一起被接收的特有消息启动代码未包括在存储的列表中的情况下,该消息的处理被拒绝。
20.根据权利要求19的装置,其中在除所述装置以外的一个设备中生成特有消息启动代码列表,并且生成的列表被发送给所述装置以便存储在存储介质中。
21.根据权利要求20的装置,其中所述特有消息启动代码列表在第三设备中生成并且该列表被第三设备发送给所述装置以便存储在其中。
22.根据权利要求20的装置,其中所述特有消息启动代码列表在主机设备中生成并且该列表被主机设备发送给所述装置以便存储在其中。
23.根据权利要求20的装置,其中所述特有消息启动代码列表由第二设备和第三设备互相地生成。
24.根据权利要求20的装置,其中接收到的消息在主机设备中生成并且生成的消息包括来自生成的列表中的至少一个特有消息启动代码。
25.根据权利要求24的装置,其中主机设备向第三设备请求要被包括在消息中的一个特有消息启动代码;第三设备将所述要被包括在消息中的特有消息启动代码发送给主机设备。
26.根据权利要求19的装置,其中所述装置和主机设备通过网络进行通信。
27.根据权利要求19的装置,其中所述处理步骤还包括所述装置确定一个预定数量或更少数量的特有消息启动代码是否包含在存储的列表中,和在确定所述列表包含预定数量或更少数量的特有消息启动代码的情况下,则所述装置为该列表获取补充的特有消息启动代码。
28.根据权利要求27的装置,其中补充的特有消息启动代码包括存储在所述装置中代替当前存储列表的一个新列表。
29.根据权利要求27的装置,其中补充的特有消息启动代码被添加到当前存储的列表中。
30.根据权利要求21或22的设备,其中生成的特有消息启动代码列表以一种安全的方式被发送给所述装置。
31.根据权利要求19的装置,其中特有消息启动代码包括随机数。
32.根据权利要求19的装置,其中所述处理步骤还包括所述装置对接收到的特有消息启动代码执行一个验证检查。
33.根据权利要求25的装置,其中由主机设备发送给所述装置的所述消息和特有消息启动代码在被发送之前经过散列算法处理。
34.根据权利要求3的方法,其中特有消息启动代码列表由第一设备和第二设备互相地生成。
35.根据权利要求20的装置,其中特有消息启动代码列表由所述装置和第二设备互相地生成。
36.根据权利要求7的方法,其中由第一设备发送给第二设备的该消息和特有消息启动代码在被发送之前经过数字签名算法处理。
37.根据权利要求25的装置,其中由主机设备发送给所述装置的该消息和特有消息启动代码在被发送之前经过数字签名算法处理。
38.根据权利要求18的装置,其中消息的处理包括打印处理。
全文摘要
通过在第一设备中生成特有消息启动代码列表并把列表存储在第二设备中来防止消息重放的安全性。在第一设备中生成的一则消息包括来自列表中的至少一个特有消息启动代码,该消息被发送给第二设备。接收消息的特有消息启动代码与存储在第二设备中的列表进行比较,以便确定是否启动第二设备对该消息的处理。
文档编号H04L29/06GK1713563SQ20051008094
公开日2005年12月28日 申请日期2005年6月24日 优先权日2004年6月25日
发明者罗伊斯·E·斯莱克, 内尔·I·伊瓦莫托, 马丁·马丁内兹 申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1