用于确定预定义数据是否被复制到客户端机器的方法和系统的制作方法

文档序号:7653260阅读:182来源:国知局
专利名称:用于确定预定义数据是否被复制到客户端机器的方法和系统的制作方法
技术领域
本发明涉及用于确定预定义数据是否被复制到客户端机器的方法和系统。
背景技术
保护诸如财政、制造、研究和开发、产品、客户、销售和定价信息等的敏感信息是重要的商业目的。雇员通常在位于雇主所拥有的受保护建筑物中的办公室工作时访问敏感信息。雇员在离开办公室的时候,诸如在商务出差或者因其它原因旅行或者在家工作时,可能需要访问敏感信息。如果当雇员位于受保护的公司建筑物之外时将敏感信息从公司服务器传送到客户端机器,则存在敏感信息可能会丢失、被非雇员看到或者以其它方式泄密的风险。例如,客户端机器可能丢失或被盗。

发明内容
本发明提供一种用于确定预定义数据是否被复制到客户端机器的方法、计算机程序产品和数据处理系统。接收来自客户端机器的对预定义数据的请求。确定客户端机器是否处在用于接收该预定义数据的可接受的位置,即安全位置。如果客户端机器处在可接受的位置,则将所请求的预定义数据复制到客户端机器,并且如果该客户端机器处在不可接受的位置,则防止复制该预定义数据。


图1描述客户端机器、服务器和通过主机定义的网络的图形表示;图2是定义了根据本发明第一实施例的由服务器使用来确定客户端机器是否处在可接受的位置的算法的流程图;
图3是示例性的跟踪路由;图4是定义了根据本发明第二实施例的由服务器使用来确定客户端机器是否处在可接受的位置的算法的流程图;图5是示例性的跟踪路由;图6是定义了根据本发明第三实施例的由服务器使用来确定客户端机器是否处在可接受的位置的算法的流程图;图7是定义了根据本发明第四实施例的由服务器使用来确定客户端机器是否处在可接受的位置的算法的流程图。
具体实施例方式
本领域技术人员将明白,本发明可以具体实现为一种方法、系统或计算机程序产品。因此,本发明可以采用的形式有完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或者结合软件和硬件方面的实施例,其可以在此处统称为“电路”、“模块”或“系统”。此外,本发明可以采用在计算机可用存储介质上的计算机程序产品的形式,其中在该介质中包含计算机可用程序代码。
可以利用任何合适的计算机可用或计算机可读介质。计算机可用或计算机可读介质可以是例如电子的、磁的、光的、电磁的、红外的或半导体系统、装置、设备或传播介质,但不限于此。计算机可读介质的更特定的例子(非穷举列表)将包括以下具有一根或多根线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式致密盘只读存储器(CD-ROM)、光存储设备、传输媒体(诸如支持因特网或内联网的传输媒体)、或磁存储设备。注意,计算机可用或计算机可读介质甚至可以是纸或在其上打印程序的其它适合的介质,因为程序可以经由例如对纸或其它介质的光扫描而被电捕获,如果需要,接着可进行编译、解释或者否则以合适的方式进行另外的处理,并且接着存储在计算机存储器中。在本文档的上下文中,计算机可用或计算机可读介质可以是可以包含、存储、传递、传播或传送程序以由指令执行系统、装置或设备使用或者结合指令执行系统、装置或设备使用的任何介质。计算机可用介质可以包括这样的传播数据信号,无论是在基带内还是作为载波的一部分,该信号中包含计算机可用程序代码。计算机可用程序代码可以使用任何合适的介质来传输,其中合适的介质包括但不限于因特网、有线线路、光纤光缆、RF等。
用于执行本发明的操作的计算机程序代码可以以面向对象的编程语言,诸如Java、Smalltalk、C++等来编写。然而,用于执行本发明的操作的计算机程序代码还可以以诸如“C”编程语言或类似编程语言的传统程序编程语言来编写。程序代码可以完全在用户的计算机上执行、部分地在用户的计算机上执行、作为单独的软件包来执行、部分地在用户的计算机上执行、部分地在远程计算机上执行、完全在远程计算机或服务器上执行。在后一情形中,远程计算机可以通过局域网(LAN)或广域网(WAN)连接到用户的计算机,或者该连接可以连接到外部计算机(例如,使用因特网服务供应商通过因特网连接)。
下面参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程示和/或框图来说明本发明。应该理解,流程示和/或框图的每个框以及流程示和/或框图中的框的组合可以由计算机程序指令来实现。可以将这些计算机程序指令提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器以产生一种机器,使得该指令在经由计算机或其它可编程数据处理装置的处理器执行时,创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。
这些计算机程序指令还可以存储在计算机可读存储器中,其可以指示计算机或其它可编程数据处理装置以特定的方式运行,从而存储在计算机可读存储器中的指令产生一种制品,其包括用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。
计算机程序指令还可以加载到计算机或其它可编程数据处理装置上,以使得在计算机或其它可编程装置执行一系列操作步骤以产生计算机实现过程,使得在计算机或其它可编程装置上执行的指令提供用于实现流程图和/或框图的一个或多个框中指定的功能/动作的步骤。
现在参考附图,图1描述客户端机器110、服务器120(此处也称为系统)和通过一个或多个主机135定义的因特网130的图形表示。客户端机器110可以包括诸如个人计算机或笔记本计算机之类的具有web浏览器的计算机,或者诸如个人数字助理(PDA)或无线(或蜂窝)电话之类的无线设备。到因特网130的无线连接可以经由红外、光或无线电连接来实现。客户端机器110可以运行文件传输协议客户端软件。服务器120可以包括服务器计算机120A,其运行例如文件传输协议服务器软件,并且存储数据。客户端机器110可以发起与服务器120的连接,并且一旦连接后就可以请求来自服务器120的数据。数据可以包括文本文档、图、照片等。可以预期,服务器120可以替代地包括彼此耦合的多个服务器计算机。
在所图示的实施例中,服务器120为公司A所拥有,并且在物理上位于公司A所拥有和控制的建筑物B内,参见图1。因此,公司A能够维护服务器120和存储在服务器120内的数据的安全。公司A可以包括任何营利的或非营利的组织,包括具有一个或多个雇员的企业、医院、政府和大学。
在所图示的实施例中,由服务器120所存储和控制的数据的至少一部分可以包含“敏感信息”。“敏感信息”可以包括公司希望维持机密的信息,诸如财政、制造、研发、产品、客户、销售和/或定价信息等。“敏感信息”还可以包括医疗、学术和/或税务记录/信息。包含敏感信息的数据部分在此处也被称为“预定义数据”。
雇员通常在位于公司A所拥有和控制的建筑物(诸如建筑物B,参见图1)中的办公室工作时访问包括敏感信息的数据。然而,雇员在商务出差或者因其它原因旅行或者在家工作时,可能需要访问包含敏感信息的数据。在图1中,客户端机器110被示为位于远离公司A所拥有和控制的地产的地方。当在办公室之外工作的时候,对客户端机器110具有控制的雇员可能希望将包含敏感信息的数据下载到客户端机器110。然而,出于安全原因,如果机器110位于不理想的或不可接受的地理位置,则公司A可能希望防止将包含敏感信息的数据复制(即下载)到客户端机器110。例如,公司A可确定如果机器110位于机场,则不应该将包含敏感信息的文档下载到客户端机器110。然而,如果机器110位于该机器110所分配给的雇员的家中,则公司A可允许将包含敏感信息的文档下载到客户端机器110。
现在参考图2,提供了流程图140,该流程图140定义了根据本发明第一实施例的由服务器120使用来确定客户端机器110是否处在可接受的位置的算法。
在步骤142,服务器120响应于接收到来自客户端机器110的针对包括敏感信息的数据的请求,执行TCP/IP网络跟踪路由命令,以便确定信息包在从服务器120通过因特网130行进到客户端机器110时所采用的路由。如现有技术中所熟知的,从服务器120发送到客户端机器110的文件可以以多个信息包的形式来发送。信息包在从服务器120行进到客户端机器110时跨一个或多个网络行进。主机135(诸如路由器、服务器等设备)被提供在沿路由的每对网络之间,并且用于在该对网络之间传送信息包,参见图1。跟踪路由定义了信息包在从服务器120行进到客户端机器110时可以遍历的主机135。图3示出了从Yahoo.com处的服务器到具有IP地址192.168.1.1的客户端机器的示例性跟踪路由T1。
在步骤144,服务器120确定信息包在从服务器120行进到客户端机器110时可以遍历的主机135的数目。在步骤146,服务器142确定跟踪路由中包括初始服务器和客户端机器在内的主机的数目是否小于预定义数目,例如20个主机。如果是,则服务器120确定客户端机器110处在可接受的位置,参见步骤149。在图3示出的示例性跟踪路由T1中,主机的数目等于17,其包括在Yahoo.com处的服务器和在地址192.168.1.1处的客户端机器。因为示例性T1中的主机的数目小于20,所以由服务器120将所请求的包含敏感信息的数据下载到客户端机器110。然而,如果服务器142确定主机的数目不小于预定义数目,则服务器142将该位置定义为不可接受,参见步骤148,并且不将所请求的包含敏感信息的数据下载到客户端机器110。
现在参考图4,提供了流程图150,该流程图150定义了根据本发明第二实施例的由服务器120使用来确定客户端机器110是否处在可接受的位置的算法。
在步骤152,服务器120响应于接收到来自客户端机器110的针对包括敏感信息的数据的请求,执行TCP/IP网络跟踪路由命令,以便确定信息包在从服务器120通过因特网130行进到客户端机器110时所采用的路由。服务器120存储这样的列表,其标识被预定义为不安全的并且其可位于沿着服务器120与客户端机器110之间的可能路由上的主机。主机135可以由其IP地址或通过域名服务器映射到该IP地址的全称域名来标识。在不安全主机列表上列出的每个不安全主机可以根据其IP地址、其全称域名或其全称域名的任何部分(例如,主机名或域名)来定义。
在步骤154,服务器120确定沿跟踪路由发现的任何主机135是否在定义为不安全的主机的列表上被列出。如果是,则客户端机器110的位置被发现是不可接受的,参见步骤156。如果在定义为不安全的主机的列表上没有发现沿着该跟踪路由的主机135,则服务器120确定客户端机器110处在可接受的位置,参见步骤158。
出于说明的目的,假设具有对应域名“oar.net”的任何IP地址是不安全的,并且因此被放置在定义为不安全的主机的列表上。另外,定义为不安全的主机的列表可以包括由一排三个星号标识并且没有相关联的IP地址的任何主机。三个星号和没有相关联的IP地址可对应于没有对跟踪路由查询进行响应的主机。在图5中列出的示例性跟踪路由T2中,4号主机具有域名“oar.net”。因为在所说明的例子中,在定义为不安全的主机的列表上发现了域名“oar.net”,所以服务器120不将所请求的文档下载到客户端机器110。还应该注意,在图5列出的跟踪路由T2中,7号主机由三个星号定义并且没有相关联的IP地址。因此,出于该附加原因,服务器120不将所请求的文档下载到客户端机器110。
现在参考图6,提供了流程图160,该流程图160定义了根据本发明第三实施例的由服务器120使用来确定客户端机器110是否处在可接受的位置的算法。
在步骤162,服务器120响应于接收到来自客户端机器110的针对包括敏感信息的数据的请求,执行TCP/IP网络跟踪路由命令,以便确定信息包在从服务器120通过因特网130行进到客户端机器110时所采用的路由。服务器120存储这样的列表,其标识被预定义为可信的或安全的并且其可位于沿着服务器120与客户端机器110之间的可能路由上的主机。在可信主机的列表上列出的每个主机可以由其IP地址、其全称域名或其全称域名的任何部分(例如,主机名或域名)来定义。
在步骤164,服务器120确定沿跟踪路由发现的所有主机135是否都在定义为可信主机的主机列表上被发现。如果是,则客户端机器110的位置被发现是可接受的,参见步骤166。如果在定义为可信的主机的列表上没有发现沿着该跟踪路由的单个主机135,则服务器120确定客户端机器110处在不可接受的位置,参见步骤168。
例如,可信主机列表可以包括在跟踪路由T2中发现的除了具有域名“oar.net”的主机之外的所有主机。因此,在该例子中,因为在可信主机列表上没有发现4号主机,所以服务器120不将所请求的文档下载到客户端机器110。
现在参考图7,提供了流程图170,该流程图170定义了根据本发明第四实施例的由服务器120使用来确定客户端机器110是否处在可接受的位置的算法。
服务器120存储这样的列表,其标识对应于每个不安全的或不可接受的位置的IP地址、全称域名或全称域名的任何部分。在步骤172,服务器120响应于接收到来自客户端机器110的针对包括敏感信息的数据的请求,确定分配给客户端机器110的IP地址、全称域名或全称域名的有关部分是否在根据IP地址、全称域名或全称域名的部分而定义的不可接受的位置的列表上。如果该列表根据全称域名或全称域名的一部分来定义,则服务器120可以采用其接收的客户端机器110的IP地址,并且在名称服务器中查询全称域名或全称域名的一部分。例如,不可接受的位置的列表可以通过包括“.iq”的对应域名来定义。因此,服务器120不会将包含敏感信息的数据下载到具有包括“.iq”的域名的客户端机器110。还可以预期,列表可以指示在IP地址的4个数字中的第一个数字中不包括“9”的所有IP地址是不安全的。因此,在IP地址的4个数字中的第一个数字中包括“9”的任何IP地址(例如9.x.x.x)将被认为是可接受的和安全的,即,如果客户端机器110具有包括9.x.x.x的IP地址,则服务器120将把包含敏感信息的数据下载到该客户端机器110。还可以预期,不可接受的位置的列表可以根据对应的主机名来定义。例如,列表可以指示具有包括“foobar”的对应主机名的任何位置是不安全的。因此,具有全称域名“foobar.ibm.com”的客户端机器(其中主机名包括“foobar”并且域名包括“ibm.com”)将不能从服务器120接收包含敏感信息的数据。
可以预期,可以定义两组或更多组的安全位置。例如,公司A可以将第一组安全位置定义为对应于包含高级敏感信息的高级安全数据,而将第二组安全位置定义为对应于包含中级敏感信息的中级安全数据。因此,可接受的IP地址或全称域名(即,对应于可接受的位置)的第一列表可以被定义用于接收包括高级敏感信息的数据,而可接受的IP地址或全称域名(即,对应于可接受的位置)的第二列表可以被定义用于接收包括中级敏感信息的数据。落在第一组中的安全位置可以包括公司A的高级职员的家。落在第二组中的安全位置可以包括公司A的中级管理人员的家以及高级职员的家。第二列表可以包括在第一列表中列出的所有IP地址或全称域名。
作为替代,在对于接收包含高级敏感信息的数据而言被认为是不可接受的主机的IP地址或全称域名的列表上可以发现对应于中级管理人员的家的IP地址或全称域名。然而,在对于接收包括中级敏感信息的数据而言是不可接受的IP地址或全称域名的列表上可以不会发现对应于高级职员和中级管理人员的家的IP地址或全称域名。
附图中的流程图和框图说明了根据本发明的各个实施例的系统、方法和计算机程序产品的体系结构、功能以及可能实现的操作。在这方面,流程图或框图的每个框可以表示模块、段或代码的一部分,其包括一个或多个用于实现指定逻辑功能的可执行指令。还应该注意,在某些替代实现中,框中标注的功能可以不以图中标注的次序发生。例如,顺序示出的两个框实际上可以基本同时执行,或者有时多个框可以以相反的次序执行,这取决于所涉及的功能。还应该注意,框图和/或流程示的每个框以及框图和/或流程示的框的组合可以由执行指定功能或动作的专用的基于硬件的系统或者专用硬件和计算机指令的组合来实现。
此处使用的术语仅出于描述具体实施例的目的,并且并不旨在限制本发明。如此处所用的,单数形式“一”、“一个”和“该”意在也包括复数形式,除非上下文中另外有明确的指示。还应该理解,术语“包括”和/或“包含”在本说明书中使用时指定所陈述的特征、整体、步骤、操作、单元和/或组件的存在,但是不排除一个或多个其它特征、整体、步骤、操作、单元、组件和/或它们的组的存在或增加。
权利要求中的所有装置或步骤加功能单元的对应的结构、材料、动作和等同物旨在包括如特别主张那样的用于执行结合其它主张的单元的功能的任何结构、材料或动作。已经出于说明和描述的目的给出了本发明的描述,但是其并不旨在穷举或者将本发明限制在所公开的形式。对于本领域普通技术人员而言,在不背离本发明的范围和精神的情况下,许多改进和变型是显然的。实施例的选择和描述是为了最佳地解释本发明的原理和实际应用,并且使得本领域普通技术人员能够理解本发明的适于预期的具体使用的具有各种改进的各种实施例。
已经详细地描述了本申请的发明并且参考本发明优选实施例,显然在不背离权利要求限定的本发明的范围的情况下,改进和变型都是可能的。
权利要求
1.一种用于确定由服务器控制的预定义数据是否被复制到客户端机器的方法,包括接收来自所述客户端机器的对所述预定义数据的请求;确定所述客户端机器是否处在用来接收所述预定义数据的可接受的位置;以及如果所述客户端机器处在可接受的位置,则将所述所请求的预定义数据复制到所述客户端机器,并且如果所述客户端机器处在不可接受的位置,则防止将所述预定义数据复制到所述客户端机器。
2.根据权利要求1所述的方法,其中确定所述客户端机器是否处在可接受的位置包括跟踪信息包从所述服务器到达所述客户端机器所采取的路由。
3.根据权利要求2所述的方法,其中如果沿着所述服务器与所述客户端机器之间的所述路由的主机的数目小于预定义数目,则确定所述客户端机器处在可接受的位置。
4.根据权利要求2所述的方法,进一步包括存储标识每个能够位于沿着所述服务器与所述客户端机器之间的所述路由的不安全主机的列表,并且其中如果在所述列表上没有发现沿着所述路由的主机,则确定所述客户端机器处在可接受的位置。
5.根据权利要求2所述的方法,进一步包括存储标识每个能够位于沿着所述服务器与所述客户端机器之间的所述路由的可信主机的列表,并且其中如果在所述列表上发现沿着所述路由的所有主机,则确定所述客户端机器处在可接受的位置。
6.根据权利要求1所述的方法,进一步包括存储包括对应于至少一个不安全位置的IP地址、全称域名和全称域名的一部分中的至少之一的列表,并且其中所述确定所述客户端机器是否处在可接受的位置包括确定所述客户端机器的全称域名、所述全称域名的一部分、或者IP地址,并且将所述所确定的全称域名、所述全称域名的一部分、或者IP地址与所述列表进行比较,并且如果在所述列表上没有发现所述客户端机器的所述全称域名、所述全称域名的一部分或者所述IP地址,则确定所述客户端机器处在可接受的位置。
7.根据权利要求1所述的方法,其中所述预定义数据包括高级安全数据和中级安全数据中的一种,并且所述确定所述客户端机器是否处在可接受的位置包括定义对应于所述高级安全数据的第一组可接受的位置和对应于所述中级安全数据的第二组可接受的位置。
8.一种用于确定预定义数据是否被复制到客户端机器的系统,包括用于接收来自所述客户端机器的对所述预定义数据的请求的模块;用于确定所述客户端机器是否处在用来接收所述预定义数据的可接受的位置的模块;以及用于在所述客户端机器处在可接受的位置的情况下将所述所请求的预定义数据复制到所述客户端机器,以及在所述客户端机器处在不可接受的位置的情况下防止将所述预定义数据复制到所述客户端机器的模块。
9.根据权利要求8所述的系统,其中所述用于确定所述客户端机器是否处在可接受的位置的模块跟踪信息包从所述系统到达所述客户端机器所采取的路由。
10.根据权利要求9所述的系统,其中所述用于确定所述客户端机器是否处在可接受的位置的模块在沿着所述系统与所述客户端机器之间的所述路由的主机的数目小于预定义数目的情况下确定所述客户端机器处在可接受的位置。
11.根据权利要求9所述的系统,进一步包括用于存储标识每个能够位于沿着所述系统与所述客户端机器之间的所述路由的不安全主机的列表的模块,并且其中所述用于确定所述客户端机器是否处在可接受的位置的模块在所述列表上没有发现沿着所述路由的主机的情况下确定所述客户端机器处在可接受的位置。
12.根据权利要求9所述的系统,进一步包括用于存储包含每个能够位于沿着所述系统与所述客户端机器之间的所述路由的可信主机的列表的模块,并且其中所述用于确定所述客户端机器是否处在可接受的位置的模块在所述列表上发现沿着所述路由的所有主机的情况下确定所述客户端机器处在可接受的位置。
13.根据权利要求8所述的系统,进一步包括用于存储包括对应于至少一个不安全位置的IP地址、全称域名和全称域名的一部分中的至少之一的列表的模块,并且其中所述用于确定所述客户端机器是否处在可接受的位置的模块确定所述客户端机器的所述全称域名、所述全称域名的一部分、或者IP地址,并且将所述所确定的全称域名、所述全称域名的一部分、或者IP地址与所述列表进行比较,并且在所述列表上没有发现所述客户端机器的所述全称域名、所述全称域名的一部分或者所述IP地址的情况下确定所述客户端机器处在可接受的位置。
14.根据权利要求8所述的系统,其中所述预定义数据包括高级安全数据和中级安全数据中的一种,并且所述用于确定所述客户端机器是否处在用于接收所述预定义数据的可接受的位置的模块定义对应于所述高级安全数据的第一组可接受的位置和对应于所述中级安全数据的第二组可接受的位置。
全文摘要
接收来自客户端机器的对预定义数据的请求。确定客户端机器是否处在用于接收该预定义数据的可接受的位置。如果该客户端机器处在可接受的位置,则将所请求的预定义数据复制到该客户端机器,并且如果该客户端机器处在不可接受的位置,则防止复制该预定义数据。
文档编号H04L29/06GK101067838SQ20071010471
公开日2007年11月7日 申请日期2007年4月25日 优先权日2006年5月2日
发明者A·沙克拉, D·M·奥格尔, D·卡明斯基 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1