CN1174302C - 用于软件代理和代理活动的验证的系统和方法 - Google Patents

用于软件代理和代理活动的验证的系统和方法 Download PDF

Info

Publication number
CN1174302C
CN1174302C CNB998053139A CN99805313A CN1174302C CN 1174302 C CN1174302 C CN 1174302C CN B998053139 A CNB998053139 A CN B998053139A CN 99805313 A CN99805313 A CN 99805313A CN 1174302 C CN1174302 C CN 1174302C
Authority
CN
China
Prior art keywords
agency
resource
commissioned
ageng
fingerprint
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.)
Expired - Lifetime
Application number
CNB998053139A
Other languages
English (en)
Other versions
CN1298499A (zh
Inventor
M
M·弗雷曼
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1298499A publication Critical patent/CN1298499A/zh
Application granted granted Critical
Publication of CN1174302C publication Critical patent/CN1174302C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供对软件代理及其活动的验证。在分布式计算环境中,提供起源资源、目的地资源和受托资源。代理的信息和/或托管任务与起源资源相关。目的地资源促进代理执行托管任务。受托资源验证软件代理及其活动,例如支持:接收/传递软件代理;加密/解密软件代理;获取、存储、检索和比较软件代理指纹;执行表明与目的地资源交互的合适性的TR规则;建立、设置、更新和检查返回定时器;生成和传递与验证有关的验证回复;登录受托资源与之交互的软件代理的活动;剥离、屏蔽或软件代理的部分或全部,特别是TR规则。

Description

用于软件代理和代理活动的验证的系统和方法
本发明涉及软件代理和它们的活动的验证,特别是涉及在分布式计算环境的软件代理和它们的活动的验证。
在信息密集的计算环境中,用户往往既遭受信息过量又低效地消耗计算资源。为了缓解这种过量和低效,软件程序设计人员编制了通常称为软件代理的程序。软件代理确实是公知的用户工具。
软件代理通常被委托例如代表用户去完成一个或多个任务。例如,有些软件代理被委托检索、筛选、分析信息和赋予信息优先级。再例如,有些软件代理被委托以敏感任务及相关信息,诸如银行任务及相关帐户信息、电子商务任务及相关信用卡信息,以及其它具有商业秘密或商业敏感信息的事务处理。
为了完成这些任务,软件代理通常运用计算环境来例如获得由服务器管理的服务和/或与其它代理交互。在这种条件下,软件代理易遭受到各种破坏。例如,诸如用添入病毒或提供无益功能的手段改变其代码,软件代理就可能被损坏。遭病毒破坏的代理通常能在计算环境中扩散病毒(例如扩散到服务器)和/或将病毒扩散到它与其交互的其它代理。
再例如,软件代理自身也能因诸如其代码中在托管任务(entrusted task)或与任务相关的信息方面的改变而被破坏。就受托以银行转帐任务的代理来说,如果其代码被改变得要修改转帐的性质和金额,则代理就被破坏。
再例如,软件代理没有破坏,但是代理在功能上/间接地被正在使用的环境的一部分内的恶意操作破坏。为了解释这个例子,假设受托以银行转帐任务的代理可能将携带请求进行某固定金额的转帐并从第一帐户转往第二帐户的信息。然而,代理可能会遭到转帐服务器本身中出现的恶意的破坏。在这种情况下代理的损坏可能是任务的执行中的变化,诸如因为(1)转移不同的金额或(2)将该金额转向第三帐户,或者(3)兼有这两种情况。如果与此同时还有向代理或通过代理或其它方式的虚假报告—声称所请求的任务得到正确执行,则代理的损坏就严重了。
代理损坏一般是因为通过加密技术得到的保护不充分。就是说,尽管加密技术能验证软件代理的起源,这些加密技术阻止破坏的能力通常有限。特别是如果这种破坏能在加密之前或加密后发生,则加密技术一般不能阻止代理破坏。
所以,本领域中需要在分布式计算环境中验证软件代理和它们的活动的方法和装置。特别是在环境中可能出现恶意操作的地方需要这种方法和装置。
本发明提供一种验证软件代理和它们的活动的装置及方法。在分布式计算环境中,提供起源资源、目的地资源和受托资源(trustedresource)。起源资源与软件代理的关联性在于—最概括地说—代理的信息和/或托管任务是与起源资源有关的。起源资源一般向软件代理提供信息和/或托管任务,并期待通过代理的返回(return)或其它方式接收含有关于代理的活动的信息或代理的活动的结果的信息的报告。
起源资源通常启动软件代理。然而,软件代理可以与一个或多个起源资源相关联,所以,可以由任何这种资源或者由其它某个资源初始启动(例如软件代理可由受托资源或目的地资源初始启动)。
目的地资源与软件代理的关联性在于—最概括地说—期待推动代理执行托管任务。目的地资源通常接收代理,与代理交互并执行和/或帮助执行代理的一个或多个托管任务。任何一个软件代理可以有一个或多个相关联的目的地资源。
受托资源与软件代理的关联性在于,受托资源的作用是提供对软件代理及其活动的验证。受托资源最好有一些选定的、支持一个或多个选定操作的机构与之关联。这些操作诸如有:软件代理的接收/转发;加密/解密部分或整个软件代理;软件代理指纹的获取、存储、检索和比较;执行包括用于检查可变信息的规则;建立、设置、更新和检查返回定时器(return timers);生成验证通知、报告或其它有关代理及其活动的验证的回复,这种验证回复一般被传送到起源资源和/或启动资源;记录其与之交互的软件代理的活动;剥离(stripping)、屏蔽或以其它方式保护软件代理的部分或全部。
受托资源最好是不可破坏的。为此,受托资源的固有硬件和/或软件最好实现受托资源本身的安全。这种以安全为导向的硬件/软件保护受托资源不遭受无论是通过软件代理还是其它方式导入的例如病毒或其它破坏性影响。此外,假设发生对受托资源的某种破坏时,以安全为目标的硬件/软件最好能确定并更正任何这种破坏,包括对受托资源相关的操作系统和应用软件的破坏。
本发明也提供为能用本发明的装置及方法进行验证而配置的软件代理。任何这种代理最好有一个或多个固定的和可变的字段。固定字段一般支持地址、规则、数据或其它固定信息(不管受委托要完成的是什么任务都不改变的信息)。可变字段一般支持操作标志(例如新/旧标志)、规则、数据或其它可变信息(当代理完成其托管任务时改变的信息)。任何这种代理最好也支持某些规则,包括能用以实现所选择的操作的规则—这些操作诸如有,校验对可变信息的适当修改和/或保证TR规则本身不被破坏。
参照以下结合各附图的详细说明能更好地理解本发明。下列附图中类同的成分有相同的编号:
图1是表示按照本发明的一个分布式计算环境的框图;
图2是表示按照本发明的一个受托资源的框图;
图3的流程图表示按照本发明的与受托资源相联系的验证软件代理及其活动的步骤;
图4是表示按照本发明的一个软件代理的框图。
对软件代理及它们的活动的验证包含确定软件代理信息和任务是否被破坏。术语“破坏”及其同义词在这里所指的情形,并非穷举,包含下述任何或所有情形:(1)代理的误定向或重定向,(2)代理中含有或具有病毒代码或其它无益的功能,(3)对代理的代换或其它体现(4)以不适当的、不允许的或非授权的方式对代理(例如其任务和/或信息)的其它修改、补充或改变—无论是全部的还是部分的,(5)偏离对代理的任务的预期执行(提供或不提供虚假的执行报告)。
对软件代理及它们的活动的验证往往随着代理及其活动的重要程度的逐渐增加而增值。重要程度往往存在于例如如下情形中:代理被委托以敏感/秘密任务及相关信息,诸如a)银行任务及相关帐户信息;b)电子商务任务及相关信用卡信息;c)其它具有商业秘密或商业敏感信息的事务处理。
按照本发明,验证装置和方法在计算环境中运行,或者是计算环境的一部分。这种计算环境最好包含一个分布式计算环境,诸如因特网或类似因特网的系统,或万维网或类似万维网的系统,或任何开放式通信网络,或软件代理在其中会遭受破坏、包括被环境本身一部分内的恶意操作破坏的其它环境。
概括地说,本发明的装置和方法设想有起源资源、目的地资源和受托资源。起源资源、目的地资源和受托资源每个包含任何一个或多个站点、服务器、软件应用程序、软件代理网络、固件、或其它硬件、软件或网络资源(物理的和/或逻辑的)、无论是单独的还是组合的(以下通称为“硬件、软件和/或网络资源”)。
应当明白,每个这种起源资源、目的地资源和受托资源都能或者在计算环境中的或者在与计算环境相关联的一个物理位置或多个分布的物理位置中实现。例如,受托资源可以以在网络中一个网址驻留的服务器的形式实现,该站点一般包含一个计算设备,其中服务器被配置得能(直接或间接)与选定的软件代理交互—软件代理诸如是通过从起源资源出发(或者以起源资源为目标)和从目的地资源出发(或者以目的地资源为目标)的转移而使用环境的代理。另一个例子是,受托资源可以以一个或多个在计算环境的一个或多个网络中不同网址中有分布的驻留地(residence)的服务器的形式实现。尽管举了这两个例子,应当明白在不偏离本发明原则的情况下受托资源可以以其它方式实现。
目的地资源与软件代理的关联性在于—最概括地说—代理的信息和托管任务是与起源资源有关的,或者能够变得与起源资源有关。起源资源通常通过向软件代理提供信息和/或托管任务来指定代理。起源资源委托任务的方式是(a)提供例如形式为代码的任务;(b)例如如果代理被另一个资源(诸如受托资源、目的地资源或第二个起源资源)启动,就在所提供的任务中选择;(c)(a)和(b)的组合,(d)其它方式。(起源资源在本文中有些被缩写为“OR”)。
起源资源通常期待接收根据代理使用计算环境的报告,这种报告是关于代理的活动的信息或者是代理的活动的结果的信息。然而应当明白,被委托以特定起源资源提供的、或者特定起源资源的任务或信息的软件代理,也可以被委托以与一个或多个其它起源资源有关的信息和/或资源。
起源资源最好能够启动软件代理。然而应当明白,与特定起源资源有关的软件代理可以被该起源资源以外的资源初始启动。例如,软件代理可以被第二个起源资源—为了与第一和第二起源资源有关的目的或者完全代表第一起源资源—初始启动。再例如,软件代理可以被某受托资源—根据某起源资源或某目的地资源,或者根据该受托资源自身的要求(例如为了有效地提供其服务)—初始启动。再例如,软件代理可以被某目的地资源—根据某起源资源或某受托资源,或者根据该目的地资源自身的要求(例如为了促进其服务)—初始启动。在最后这个例子中,目的地资源本身可能就是一个有效的起源资源,在这种情况下,起源资源(或受托资源)可能是有效的目的地资源—即目的地资源可以向代理提供信息和/或委托暗示在起源资源处(例如由最终用户进行的)行动的任务。
由这些例子应当明白,软件代理可与一个或多个起源资源相关联,可由任何这种资源或由任何其它资源初始启动,这些都不偏离本发明的原则。在任何情形中,应当明白,软件代理被启动是为了能够最终变得与某起源资源有关。
目的地资源与软件代理的关联性在于—最概括地说—期待它实现托管任务。通常,目的地资源接收代理,与代理交互并执行和/或帮助执行代理的一个或多个托管任务的部分或全部(以下用“执行”概括地表示对任务的实际执行和帮助执行任务这两层意思)。然而应当明白,任何一个软件代理可以有一个或多个相关联的目的地资源。例如,某代理的多个目的地资源的组织结构可能是(a)单个的,这样,每个都能执行任何一个或多个任务;(b)形成各种组成的分组,这样,每个分组都能执行任何一个或多个任务。(目的地资源在本文中有些被缩写为“DR”)。
受托资源与软件代理的关联性在于,软件代理和受托资源的作用是提供对软件代理及其活动的验证。受托资源最好支持一个或多个选定的验证操作。验证操作包括—但不限于:软件代理的接收/传递;加密/解密部分或整个软件代理;软件代理指纹的获取、存储、检索和比较;执行包括用于检查可变信息的规则;建立、设置、更新和检查返回定时器;生成验证通知、报告或其它有关代理及其活动的验证的回复,这种验证回复的目标一般是起源资源和/或启动资源;记录其与之交互的软件代理的活动;剥离、屏蔽或以其它方式保护软件代理的局部或全部。(术语“指纹”在本文件中指的是软件代理的指纹、签名、个人简档(profile)或其它检验信息,无论是单个的还是联合的;也指获取这些的行为。)
受托资源最好是不可破坏的。为此,受托资源的固有硬件和/或软件最好实现受托资源本身的安全。就是说,受托资源最好包含以保护受托资源不遭受无论是通过软件代理还是其它方式导入的例如病毒或其它破坏性影响为目标的硬件、软件和/或网络资源。此外,假设发生对受托资源的某种破坏时,以安全为目标的硬件/软件最好能确定并更正任何这种破坏,包括对受托资源相关的操作系统和应用软件的破坏。
在一个实施例中,受托资源包含一个与计算环境相连和/或在计算环境中的受托服务器。目的地和起源资源也与计算环境相连和/或在计算环境中。在每种情况中,连接经过相应的通信路径,这些路径也包含该计算环境的一部分或者与该计算环境相关联。在一例情况中,计算环境包含因特网,通信路径包含任何或多个—无论是单独的还是组合的一通信资源,包括光纤电缆、双扭双线电话线、同轴电缆、交换和路由电路、用于这种交换和路由的过程、协议、固件、以及其它硬件、软件和/或网络资源。
在该实施例中,目的地资源包含一个与某因特网站点相关联的服务器,该站点支持某些操作和功能(例如,某银行的的万维站点点,提供连接该银行的业务的网关,业务例如包括用户帐户的转帐)。另外在该实施例中,起源资源包含一个因特网客户机,客户机能够指定和启动软件代理并且通常由最终用户操作。在起源资源启动软件代理后,代理使用计算环境,于是,起源资源一般就失去对代理的控制。如果代理遇到其使用的环境的任何部分内的破坏影响,软件代理受托的任务或信息可能会受到各种破坏。然而一般来说,对任何这种破坏,在启动起源资源处和/或代理与之有关的任何其它起源资源处一直是一无所知的。此外,即使破坏情况被报告给起源资源,这种报告一般要在遭破坏后的相当长的时间以后才会发生,此时已经没有补救措施(例如进行预先处理,正确结束托管任务,查明并消除恶意操作)。
在使用本实施例中计算环境时,软件代理一般使用一个或多个通信路径来在起源资源、受托资源和目的地资源之间游历。就因特网而言,这种使用导致软件代理被根据例如网际协议(“IP”)的协议的已知操作从一个站点或服务器路由/交换到下一个。在这种情况中,起源、受托和目的地资源支持IP。应当明白,在不偏离本发明原则的情况下,可以使用各种协议,无论是单独使用还是一起使用,无论是替代IP还是补充IP,这要视具体的计算环境而定;并且一般来说,起源、受托和目的地资源支持这些没有指明的协议。
尽管遍历各资源的或者与遍历各资源相关联的次序、业务、操作会因实践和/或实现而不同,应当明白,按照本发明,软件代理的验证要得到支持。特别地,设想某软件代理要接受与至少两个验证事件有关的验证操作:第一个验证事件依赖于代理的没有与执行任务的资源的任何交互的状态,第二个验证事件依赖于代理的必须与执行任务的资源的任何交互的状态。
为了确保验证事件,在OR、DR和TR之间的每次遍历一般考虑到代理与/在受托资源的交互。一般来说,软件代理被从起源资源传送到受托资源,并最终被受托资源接收/在受托资源被接收。一般来说,软件代理也被从目的地资源传送到受托资源,并最终被受托资源接收/在受托资源被接收,由此,软件代理也被传送到起源资源,并最终被起源资源接收/在起源资源被接收。软件代理通常也在某个交互(例如受托资源对代理执行适当的验证操作或受托资源执行适当的与代理有关的验证操作)之后被从受托资源传送。
受托资源最好有一些选定的、支持一个或多个选定的验证操作的硬件、软件和/或网络资源与之关联。这些单独的或各种组合形式的硬件、软件和/或网络资源包含多个机构。典型的受托资源机构包括:(a)接收机构;(b)转发机构;(c)指纹获取机构;(d)指纹存储机构;(e)指纹比较机构;(f)验证回复机构;(g)定时器机构;(h)受托资源规则机构;(i)记录机构;(j)内务机构;(k)管理机构;(l)安全机构;(m)加密机构。尽管是逐个列举的,应当明白,这些机构可以单独地、以一种或多种组合形式或者以其它方式实现,这些都不偏离本发明的原则。
受托资源各机构可以以不同方式实现。各机构一般是以在一个或多个计算设备(例如个人电脑、工作站或服务器计算机)上/之间运行的软件的形式实现的,每个计算设备通常—以选定的组合—包含操作系统(例如Unix、Linux、Windows NT或其它)、通信堆栈、通信硬件、处理器和其它逻辑硬件、存储系统(例如一个或多个高速缓冲存储器、动态随机存储存储器、海量存储器、档案库存储器和其它)。如果以软件的形式实现,应当明白,任何一个或多个受托资源的机构都能以面向对象的软件程序中的一个集成软件对象或一系列分立软件对象的形式,或者以单一的集成软件程序的形式,或者以其它形式实现。类似地,可以实现资源机构的任何组合,来共享软件对象、模块或其它软件部件。此外,应当明白,任何一个或多个受托资源的机构,都能全部地、部分地或冗余地以带有或不带有软件部件的硬件(例如包括以固件的形式)实现。就此而言,如上文对受托资源概括说明的那样,任何机构都能在计算环境中的或与计算环境相关联的一个物理位置中/处或多个物理位置之间实现。
接收机构使受托资源能在计算环境中接收—特别是接收与起源资源相关联的软件代理。起源资源在这种情况中通常被允许利用受托资源的服务—这种服务需要付费、价值转移或其它考虑,或者不需要付费、价值转移或其它考虑。(以下有时将这样被允许利用受托资源的服务的起源资源称为已经“预订过”、有“预订”及其某个同义词;类似地,有预订的起源资源有时被称为“预订起源资源”,相关的软件代理有时被称为“预订代理”)。
软件代理因各种目的—包括因各种验证目的—而被启动到计算环境中。由于受托资源可以接收与其验证服务无关的代理,TR的接收机构最好包含一个过滤程序部件,该过滤程序部件通过分析(对应某验证使能标志的)代理的配置和/或规格(例如)来确定哪些被接收的代理是预订的。尽管可以执行一个过滤程序,应当明白,尤其例如如果受托资源在计算环境中的实现是仅仅为了接收预订代理时,是不需要执行过滤程序的。
接收机构最好也被赋予—能判定某代理是(例如从起源资源)新接收的还是(例如从目的地资源)返回的—的功能。接收机构例如通过设置/重新设置代理中的或与该代理相关的接收标志来表示其对该代理的判定。
转发机构使受托资源能在计算环境中通信。特别地,它使软件代理能从受托资源开始遍历。这种遍历一般最终要去往一个或多个适当的目的地资源或起源资源。为此,转发机构最好以符合适用协议的方式运行。
转发机构可以以各种方式实现。例如,转发机构能被实现用来转发所接收代理的一个副本,以便使指纹获取和/或比较机构能与转发并行地进行。此外,转发机构还能被实现用来支持多个目的地资源、多个起源资源、和补充的、冗余的或其它额外的受托资源的一个或多个。
指纹获取机构获取代理的指纹。指纹获取机构能用各种技术实现。在任何实现中,该技术最好提供在代理与代理之间实际上是独特的指纹。一例技术是单向散列函数(例如MD5)。单向散列函数用代理作为输入,产生的散列签名不仅是独一无二的,也往往能防止反求工程。
指纹获取机构最好被实现用来根据软件代理的固定信息印指纹。例如,指纹可以是基于地址信息(例如一个或多个起源、目的地和受托资源地址)和/或与代理相关联的信息和托管任务(和/或其它基本的事务信息)。然而应当明白,机构能被实现用来根据代理的可用信息—单独的或与固定信息一起的—印指纹(参看本文关于软件代理的固定和可变字段的讨论)。(以下所述的TR规则最好不在获取指纹时采用。)确实,指纹可包括或者就是整个代理本身。
可以根据实现用一个或多个方法来触发指纹获取机构。在一个实施例中,该机构被接收机构为选定的代理触发。例如,接收机构能被实现用来仅当在接收机构的过滤程序部件判定所接收代理是预订的时触发指纹获取机构。在另一个实施例中,该机构被接收机构为所有的代理触发。在后一种情况中,如果受托资源预订该代理以外的代理时,指纹获取机构可以被实现用来判定或帮助判定所接收代理是否是预订的。在其它实施例中,指纹获取机构是自触发的,或者是由接收机构以外的某个机构触发的。无论哪种情况,对至少选定代理的接收最好导致触发指纹获取机构。
指纹存储机构实现指纹的存储和检索。该存储机构最好是用某个存储系统(例如一个或多个高速缓冲存储器、动态随机存储存储器、海量存储器、档案库存储器和其它—无论是集中式的还是分布式的)来实现。该存储机构最好也包括控制部件。在典型的实施例中,控制部件便于将所获取指纹例如以指纹文件或指纹数据库中条目的形式存储在存储系统的预定存储单元中,或者从存储系统检索指纹。在一个例子中,指纹存储机构被实现用来根据其进行的或(例如与印指纹并行的)其它机构进行的预订判定,只存储与预订代理对应的那些指纹。
可以根据实现,用一个或多个方法来触发指纹存储机构。在一个实施例中,该机构被接收机构为选定的代理触发。例如,接收机构能被实现用来仅当在接收机构的过滤程序部件判定所接收代理是预订的时触发指纹存储机构。在另一个实施例中,该机构被接收机构为所有的代理触发。在这后一种情况中,如果受托资源预订代理以外的代理时,指纹存储机构可以被实现用来判定或帮助判定所接收代理是否是预订的。在另一个实施例中,指纹存储机构被指纹获取机构为所接收的代理触发。在这后一种实施例中,指纹存储机构可被实现用来根据其进行的或其它机构进行的预订判定,只存储与预订代理对应的那些指纹。
指纹比较机构对所获取的软件代理的指纹进行比较,以便确定可能说明有潜在破坏的差异或其它不正常。在典型的实施例中,该比较机构将(a)以前获取的在受托资源处返回的某软件代理的指纹与(b)指纹获取机构新获取的该代理的当前指纹进行比较。
然而应当认识到,在其它实施例中,获取和比较的时间特征(例如上述的“以前获取的”、“当前的”)可能是基本上或完全不适用的。特别地,设想某软件代理要接受与至少两个验证事件有关的验证操作:第一个验证事件依赖于代理的没有与执行任务的资源的任何交互的状态,第二个验证事件依赖于代理的必须与执行任务的资源的任何交互的状态。在按照本发明的某些实施例中,这两个验证事件可能完全或基本上没有时间差别。
验证回复机构生成验证通知、报告或其它有关代理及其活动的验证的回复(以下单个地或总地称为“验证回复”)。验证回复机构可以不同方式实现。例如,验证回复机构可被实现用来将选定的验证回复传送给特定的资源。此外,验证回复机构能被实现用来通过原始代理的返回来如此地传送回复,或者由独立于原始代理的回复来如此地传送回复,或是以其它方式来如此地传送回复。就第一种情况而言,验证回复机构最好生成回复,并向转发机构提供该回复。就第一种情况而言,验证回复机构最好支持下列的任何验证或多种组合:(a)生成并启动其自己的回复承载代理,这种启动最好由转发机构或者与转发机构协作进行;(b)生成并发送某个非代理消息(c)其它解决方案。
此外,按照本发明,验证回复能被以各种方式配置。例如,验证回复可包含一个根据是否检测到破坏(例如任务是否成功地完成)而置位或复位的验证标志。再例如,验证回复可包含关于在受托资源处进行的任何验证操作的结果的消息内容。再例如,验证回复可包含部分的或全部的关于代理的活动的信息或代理的活动的结果,或这种信息或结果的表示(例如由受托资源的执行而收集的或产生的信息)。再例如,验证回复可包含旨在使得能进行或支持校正行动的信息或指示。应当明白,验证回复可包含以上的组合,或者以上任何一项或多项与其它回复的组合。
验证回复一般被传送到起源资源。然而,验证回复也能被传送到目的地资源以及其它受托资源。更确切地说,验证回复被传送到那些与该代理及其活动有关的资源。一般来说,如果某代理在某时刻被委托以与某起源资源有关的任务及相关的信息,则该代理是与该起源资源有关的。
验证回复机构能根据实现被用一种或多种方法触发。在一个实施例中,验证回复机构被指纹比较机构触发,无论指纹的比较是否产生不正常,验证回复都被传送。
定时器机构包含定时器部件和监控部件。在典型的实施例中,定时器部件记录从发生一个或多个选定的第一类定时器到发生一个或多个选定的第一类定时器期间所消逝的时间,这种第一和第二类定时器事件可以完全相同、完全不同或是部分相同。这种定时器事件一般反映软件代理、其信息和任务、和/或起源或目的地资源。
监控部件最好监控相关定时器部件的消逝时间。例如,监控部件可被实现用来监控相关定时器的超过预订的最大时段的消逝时间(该时段有时被称为“超时时段”,该定时器事件有时被称为“超时”)。此外,当超时时,监控部件的反应最好是产生一个超时消息,该消息最好有反映该情形的内容和参数(例如代理、其信息和任务、和/或起源或目的地资源)。在一个实施例中,监控部件的超时消息包含(a)时间标志,(b)代理的原始指纹和/或其它选定的标识软件代理的信息,(c)其它信息,例如关于计算环境的状态的信息,关于该代理的目的地资源的任何新闻,或其它。在这个和其它实施例中,超时消息最好包含足够的信息和指示,以便于能采取校正或其它适当的行动。
超时消息最好被传送给验证回复机构,该回复机构对此的反应是生成并传送适当的验证回复。这样,任何特定超时消息都被告知该消息与之相关的一个或多个资源。例如在典型的实施例中,如果软件代理在超时时段内未能从与目的地资源的交互中返回验证回复就被传送到起源资源;超时时段是从预定事件开始计量的,这种预定事件例如包含该软件代理首次在受托资源处被接收/被受托资源接收。撇开本例,继续前面的说明,应当明白,因上述或其它超时消息产生的相应的验证回复能被传送到任何资源,包括目的地资源、其它受托资源或受托资源的其它部分。
定时器和监控部件根据实现能被用一种或多种方法触发。在一个实施例中,定时器部件因接收机构对代理(例如预订代理)是新接收的或是返回的的判定而被激活。在另一个实施例中,定时器部件因转发机构将接收的代理例如向到目的地资源的传送而被激活。
在任何实施例中,定时器部件最好支持被去激活。例如在这后一个实施例中,如果某第一代理或其它代理在超时之前到达,则将与该代理相关联的定时器部件去激活。该定时器部件最好在如果该代理及其到达都正确时被去激活。
就是说,去激活一般意味着判定某代理已经正确地返回到受托资源,这种判定可以由接收机构(例如在确定某个代理返回事件时)完成,可以由指纹获取机构(例如在成功获取代理的当前指纹时)完成,可以由指纹存储机构(例如在成功提取以前存储的代理的指纹时)完成,或者以其它方式完成。在任何这种实施例中,恰当地触发和控制相关的监控部件是可取的。
规则机构执行受托资源规则(有时称作“TR规则”)。例如,TR规则出自起源资源,在受托资源处通过与起源资源有关的软件代理被提供,这种提供最好发生在软件代理首次与受托资源交互时。再例如,TR规则可出自受托资源自身。在后一个例子中,TR规则可以根据下列而被建立:(a)所接收的软件代理的信息和/或任务,(b)以前由起源资源对TR的服务的使用,(c)其它输入、配置(d)(a)-(c)的组合或其它。
规则机构可以以各种方式实现,以执行TR规则。例如它能(a)由于与软件代理与受托资源的首次交互而执行TR规则,或者(b)在代理从目的地资源返回时而执行TR规则,或者(c)兼有这两种情况。此外,它还能用软件代理的固定或可变信息、其它信息或它们的组合来执行TR规则。
TR规则便于能实现选定的操作。这些操作例如包括(a)保证TR规则本身不受破坏的操作,(b)检查软件代理中例如可变信息的破坏情况的操作。就后者而言,在一个实施例中,TR规则被实现用来规定适用于可变信息的数据约束(例如范围、类型等等),以便在代理返回到受托服务器时,执行TR规则,对照这类约束检查实际的变量信息。
TR规则最好是计算环境的选定部分不能访问的。举一个典型的例子,最好将由某OR启动的、具有出自该OR的TR规则的预订软件代理配置、规定或处理得使得这类规则不能在/被目的地资源访问。在这种例子中,这种不可访问性最好在/由受托资源实现。受托资源最好通过剥离、屏蔽、编码、加密或其它适当的处理使TR规则变得不可访问。这样做是为了保护规则,避免对规则的不当操作和防止用规则来破坏托管任务和相关信息(例如在根据规则确定给定的可变字段的允许值或状态的基础上进行的破坏)。简而言之,将TR规则和相关信息变得不可使用,有助于防止(以及确定)对代理及其活动的破坏。
记录机构记录有关与某软件代理相联系而发生的所有或选定事件的信息。为此,记录机构最好(a)将事件信息保存在例如单独的日志中,代理的指纹文件或数据库中,其它有关代理信息的数据库中;(b)提供当前的或保存的事件信息用于例如跟踪软件代理的历史活动;和/或(c)根据选定标准处理事件信息,以便提供例如关于一个代理或关于各代理分组或各类代理的报告。例如,记录机构能被实现用来记录包含—或者经处理后能提供关于—给定代理类型被使用的频率、总体的代理业务量和(总体的或按类别或其它的)历史返回时间—的事件信息。除了其它目的,记录机构最好也被实现用来向内务和管理机构提供输入。
内务机构负责维护受托资源中包含的各种机构和部件,以及支持验证服务的其它类似功能部件。例如,内务机构最好被实现用来根据预定的因素(例如验证服务完成或停滞),全部地或部分地删除指纹项、记录、文件、数据库和其它存储的信息。再例如,内务机构被实现用来根据预定的因素(例如为了将信息转移到不活动的代理的文件,以便该信息能在不时对文件内容进行的报告中得到考虑),全部地或部分地更新指纹项、记录、文件、数据库和其它存储的信息。再例如,内务机构被实现用来—例如根据给定代理类型的历史返回时间(这种信息一般是由记录机构提供的)和/或根据其它参数(诸如目的地资源或目的地资源类型和/或代理活动时所在的时间或日期范围(即时刻、星期几或日期)—修改定时器机构所采用的超时时段。
管理机构负责管理对验证服务来说是外部的功能部件。例如管理机构最好被实现用来负责开发票和记帐。就开发票而言,管理机构能以各种方式实现。举例来说,对验证服务的使用,可以(通过起源资源)收取费用,这种费用是根据以下的一个或多个标准制定的:(i)按代理(ii)按目的地资源,(iii)按代理的类型或性质,(iv)按起源资源的类型或性质,(v)按目的地资源的类型或性质,(vi)TR规则的类型或性质,(vii)其它标准—单独的或者与一个或多个上述标准组合的。管理机构一般从记录机构获得至少一部分有关开发票的信息。
再例如,管理机构最好被实现用来提供评估描述计算环境的特点的各种性能统计或其它参数的服务。为此,最好使管理机构能从预订起源资源(或者至少从那些选择使用任何这种评估服务的起源资源)接收输入,这种输入例如包括感兴趣的统计/参数的标识和对完成/报告评估结果的任何限制或选择。举例来说,管理机构能被实现用来标识和跟踪可能与受托资源的验证服务竞争或替代受托资源的验证服务的其它以验证为导向的服务产品。为此,管理机构可以限制与竞争/替代服务产品交互的代理的选定的工作特性(例如使用)。再举例来说,管理机构能被实现用来评估计算环境的负荷。为此,起源资源的输入可包含一个请求,例如根据一个或多个主要负荷量,请求对其一个或多个代理从受托资源开始的(例如到目的地资源或起源资源的)遍历延迟或加速或定时,以及请求关于遍历的状态的进展报告(例如,起源资源可选择不要进展报告,或者可选择有关于延迟的报告和/或关于遍历起始的报告)。
安全机构负责保护计算环境的选定部分不受破坏。安全机构可以以各种方式实现。例如,安全机构能被实现用来处理所接收的代理,以保护软件代理、起源资源、目的地资源和受托资源的一个或多个不遭受代理本身中潜在的破坏影响—不管是何来源(例如使用计算环境时附随的来源)。为此,一般使安全机构能去除、停用或以其它方式无效所接收的可能被破坏或破坏性的代理的部分或全部。这种机构最好包括监控固件和/或其它硬件,用来标识代理和其它可能遭破坏的有可能能执行的代码。
再例如,安全机构能被实现得使受托资源能只执行特定的过程或过程的集合,这些过程是由被处理信息、由过程中的步骤或步骤的组合、由它们生成的结果或者由其它方式标识的。这种不可破坏的系统例如包括基于功能的系统或体系结构。据此,为每个任务分配一个标记(或其它标识符),只有被适当标记的任务才是可执行的。关于基于功能的系统的另外信息可参考M.V.Welbey和R.M.Needham的剑桥CAP计算机及其操作系统(操作系统和程序设计系统丛书,P.J.Denning编辑,1979,纽约,North Holland出版),本文引用作为参考。
安全机构可以全部地、部分地或冗余地以硬件(包括以固件的形式)实现,以便使该机构本身完全或基本上是不可破坏的。在该实现中,最好将其它受托资源及其软件部件(例如操作系统和通信堆栈)也全部地、部分地或冗余地以硬件(包括以固件的形式)实现。这样实现这些机构(和部件),使(a)受托资源的运行能得到基本不受破坏的保护,并且/或者(b)受托资源的所牵涉的机构能不时地被与例如固件副本比较,使得如果发现任何破坏,可以实行校正措施。通常的校正措施包括修改软件,修改方法例如是重新加载对象、删除外加的代码、引用代码比较和校正算法或类似的例程和/或其它常规方法,不管是自动执行的还是由人工(例如由系统操作员)启动的。
加密机构负责加密和解密软件代理的全部或局部、验证回复和受托资源所接收或要从受托资源传递的其它相关消息。加密机构能以各种方式实现。例如,加密机构能用公共密钥加密加证书来实现。如此实现的加密机构有助于避免计算环境中往往固有的各种风险,包括(a)中间体为获得敏感或秘密信息而截获通信(经常称为“窃听”)的风险;(b)因中间体改变通信中的信息/任务而破坏(经常称为“操纵”)的风险;(c)起源资源或目的地资源不真实(经常称“假冒”)的风险。然而任何加密机构一般都不能在软件代理从资源被传递之前或在软件代理在资源被接收之后(即加密之前和解密之后)的所有时间有效地保护软件代理。
受托资源最好被实现用于在所有的或选定的这些机构之间进行操作协调。这种协调,根据各机构的相应的实现,能产生各机构之间并行的、顺序的、或其它操作。例如在一个典型实施例中,将存储机构与指纹获取和比较机构协同使用:指纹获取机构获取新到达的代理的指纹后,存储机构(例如在受托资源的存储系统中)存储该指纹,这样,当代理返回到受托资源时,存储机构能检索出以前获取的指纹,提供给比较机构,比较机构则将以前获取的指纹与代理的当前指纹比较,这种当前指纹是由指纹获取机构在预期例如为验证代理而比较时获取的。
也是在这个典型设施例中,指纹比较机构触发验证回复机构生成验证回复。最好不管比较结果是否检测出破坏,都提供这种触发和生成。然而,如果检测到破坏,指纹比较机构最好向验证回复机构提供信息。最好使验证回复机构能用这种信息来生成通知这种破坏的验证回复,也使得能采取校正行动。比较机构的信息中例如可包括每个被比较指纹以及与该指纹的差异。验证回复可包括所提供的形式的这些信息或者处理过的形式的这些信息(例如建议采取校正行动)。验证回复也可包括其它信息,例如消逝的时间和任何超时、(例如以地址为形式的)目的地资源和受托资源可能了解到的关于代理或关于破坏的任何其它信息。
另外在这个典型实施例中,验证回复机构一般与转发机构协调,以便将回复传送给与验证相关的起源资源。这种传送一般是通过将回复作为被验证代理的一部分传递而完成的,这种代理本身是由转发机构传递的。为此,设想由加密机构对携带回复的代理进行处理,以便保护代理在向起源资源的移转的过程中不遭受破坏性影响。为此,也设想例如由安全机构对代理进行处理,例如通过去除、停用或以其它方式无效代理的可能遭到破坏的或破坏性的任何部分或全部,以便保护验证回复、软件代理、起源资源和受托资源的一个或多个不遭受返回代理本身潜在有的破坏性影响。
在这个典型实施例中,采用定时器机构的定时器和监控部件。定时器部件一般是由于软件代理首次到达受托资源(例如当代理的状态没有与目的地资源的任何交互时)而被激活的。举例来说,最好根据代理向目的地资源的传递来激活定时器部件。
随着定时器部件的激活,最好激活至少一个监控部件,以便监控该定时器部件。例如,激活监控部件来监控软件代理从目的地资源的及时和正确返回这种监控最好是对照预定的返回超时时段进行的。这样,如果代理没能在返回超时发生时正确地返回,监控部件就生成超时消息,该消息通过与具体情况相称的内容和参数指出该返回超时事件。超时消息一般在传递验证回复时被使用。
在关于协调的其它示意例子中:(a)存储机构与内务机构协调,以便清除陈旧的指纹,(b)记录机构最好被实现用来(除其它用途外)向内务机构和管理机构提供输入,以便后两个机构有使它们能分别设置/更新超时时段和计算发票的信息。
本发明的软件代理被实现用来启用采用本发明的装置及方法的验证。任何这种代理最好有一个或多个固定的和可变的字段。固定字段一般支持地址、规则、数据、代码、安全协议或其它固定信息(不管代理被委托要完成的是什么任务都不改变或不应当改变的数据)。例如,固定字段地址可包括起源、目的地和受托资源的地址,这种地址是与计算环境相称的。通过这些地址,软件代理适当地使用计算环境,以便往返于OR、DR和TR之间。
可变字段通常支持操作标志(例如新/旧标志)、时间标志(例如接收、转发和/或返回的时间/日期)、规则、数据(例如验证回复数据)、与任务有关的信息、与任务有关的代码或者其它可变信息。可变信息一般包括可以响应或由于代理的活动而在可允许限度内改变的信息。这种活动例如包括一个或多个代理到达DR、代理完成托管任务或代理(从OR或DR)到达TR。尽管可变信息可以改变,这种改变一般受一定的、可允许限度的限制。
按照本发明的代理最好也支持TR规则。TR规则通常启用选定的操作。这些操作例如包括保证TR规则本身不被破坏和/或查验可变信息的适当修改。对于后一种情况来说,在一个实施例中,TR规则被实现用来规定适用于可变信息的数据约束(例如范围、类型等等),以便在代理返回到受托服务器时,这些TR规则被执行用来对照这些约束校核实际的可变信息。
通过其字段,软件代理含有信息和托管任务。任何托管任务一般都以代码的形式包含在固定字段中,在目的地资源或由于目的地资源而被执行。这种执行通常导致一个或多个可变字段的内容的变化。例如,执行代码可修改选定的信息或者向代理添加新数据,包括从目的地资源获得的或与目的地资源相关联的数据。执行代码也依赖软件代理中含有的关联信息。这种关联信息一般也以数据的形式包含在固定字段中。然而,这种信息可以相反地(或者也)包含在可变字段中。
按照本发明的软件代理能被实现用来完成一个以上的任务和/或与一个以上的目的地资源交互。相应地,代理的转发能以各种方式完成。例如,软件代理有与之关联的任务T1、T2、T3和T4,每个分别要在目的地资源DR1、DR2、DR3和DR4被执行。在一个实现中,受托资源TR1将代理的副本并行地转发到这些目的地资源的每一个。在另一个实施例中,受托资源TR1将代理顺序地转发到这些目的地资源的每一个,这样各任务或者以预定顺序被执行,或者根据资源的可用性而被执行。在另一个实施例中,受托资源TR1综合并行和顺序转发。
验证具有多个任务和/或目的地资源的代理中所涉及的受托资源,就验证操作来说可以以各种方式实现。例如,管理在目的地资源处的任务的顺序执行的受托资源可以被实现得能(通过验证回复)发出关于—(a)在任何任务都与失败的验证相关联时的整个序列、(b)与失败的验证相关联的顺序任务或(c)与失败的验证相关联的顺序任务以及序列中随后的所有任务—的破坏的信号。再例如,管理在目的地资源处的任务的并行执行的受托资源可以被实现得能发出关于—(a)只是与失败的验证相关联的那些任务或(b)在任何任务都与失败的验证相关联时的所有任务—的破坏的信号。
特别在涉及与多个任务和/或目的地资源相关联的代理的实施例中,可以使用多个受托资源。这种使用一般可以通过对代理的适当配置(例如通过启用多个TR和/或多个TR的地址的标志)和/或对代理预订的受托资源的适当配置来实现。例如,如果代理只预订一个受托资源TR1,该被预订资源本身能使用一个或多个额外的插入的(interposed)受托资源。为此,TR1一般自己修改代理的受托资源地址信息,以便将代理传递给例如每个这种无论为并行的、顺序的还是其它方式的执行而插入的资源。在这个例子中,代理一般将设置过表示启用多个TR的标志,不过应当明白,这种标志可以省略,这并不偏离本发明的原则。
插入的受托资源的使用一般对由预订受托资源对代理的TR规则的处理有意义。如前文所述,预订受托资源一般被实现用来履行代理的TR规则。为此,要使预订受托资源能得到TR规则。于是,如果插入的受托资源要使用TR规则,则最好提供对这种资源的使用。因此,预订受托资源最好不要从代理剥离TR规则。尽管剥离一般是不可取的,应当明白,在特定的情形中(例如TR规则是在插入的TR处本地提供的或者TR规则最终在预订TR处执行的),可以实行对TR规则的剥离。类似地,对于在预订受托资源处提供的TR规则的屏蔽、编码、加密或其它处理来说,如果插入的受托资源要执行TR规则,最好使这种资源能去屏蔽、解码、(例如用公用密钥技术)解密或进行其它方式的反向处理。此外,即使如果任何插入的受托资源的作用是保护TR规则的,预订和插入的受托资源也最好要协调,以便预订受托资源保持使用权。
在代理支持多个任务的任何情形中,受托资源能被实现用来在有任务与验证失败相关联时终止、暂停或以其它方式停用其余的任务。在停用的情况中,最好使受托资源能尝试对代理破坏的校正。这种校正一般根据的是代理的相关TR指纹文件。此外,如果如此实现的话,这种校正可以根据例如来自所牵涉的起源资源的额外输入进行,这种输入一般是因传送到起源资源的有关验证失败的验证回复而产生的。如果校正完成,受托资源最好通知所牵涉的起源资源OS并启用以前被停用的其余任务。
所以,本发明设想使用多个受托资源,由此在各受托资源之间验证操作的协作和(例如动态地)扩散(spreading)基础上使对代理及代理活动的验证高效而富有成果。
参看图1,所示的实现本发明的装置和方法的系统100包括起源站点102、受托站点104和目的地站点106,这些站点与计算环境108通信(最好是后者的一部分)。在计算环境108中,站点102、104和106通过通信路径110通信。站点102、104和106分别对应于起源资源、受托资源和目的地资源。计算环境108通常是因特网的一部分。(本文中分别称起源资源、受托资源和目的地资源为“OS”、“TS”和“DS”)。
一般来说,受托站点104是一个与软件一起起着服务器作用的计算设备或计算系统(两个以上的计算设备)。如果计算环境108是因特网,受托站点104就是因特网服务器。起源和目的地资源102和106可以是任何站点,例如包括用户家中的独立的PC或者基于LAN的计算环境或任何其它能与环境108通信、以便将其连接到无关的计算机平台、环境或其它装置的本地化/封闭式计算环境中的节点。
参看图2,所示的一例受托资源200包括处理器(“P”)202、通过连接206与处理器202相连的存储系统(“存储器”)204。处理器可以是任何数字处理设备,包括但不限于英特尔公司、摩托罗拉公司、德州仪器公司、IBM、AMD、Cyrix或任何其它数字处理设备制造商所制造的微处理器、微控制器等等。受托站点200也可以包括各种外围设备,包括但不限于打印机、显示终端、电池后备设备和电源调节设备。
受托服务器200也包括软件212。该软件最好驻留在存储系统204中。软件212包括操作系统218,它可以是能够执行用来启动受托服务器200所要求的必要任务的指令的任何操作系统。合适的操作系统包括但不限于视窗操作系统、基于UNIX的操作系统或任何其它操作系统。
软件212也包括用于验证软件代理和它们的活动的软件代理验证系统220。软件代理212也能包括用于保护TS不受病毒或其它破坏性软件机构的侵害的安全系统222。要认识到,该安全机构可以与验证系统集成在一起,这并不偏离本发明的原则。
TS 200也包括输入端224和输出端230。输入端224(通过连接226)与处理器202相连并且(通过路径228)与环境108相连。输出端230(通过连接232)与处理器202相连并且(通过路径234)与环境108相连。
现在参看图3,流程图300给出用于实现受托服务器200上的验证系统220的一组最佳步骤。流程图300包括名义上的起始步骤302,它一般在系统启动时被启动。在记录更新步骤304中,使验证系统220能在记录文件中记录所有的软件代理活动。当软件代理被传送到受托服务器200时,验证系统220在接收步骤306中接收该软件代理,并且,为了维护TS的完整性,在步骤308中可选地进行对代理的安全检查。
验证软件被接收并被可选地进行安全测试后,就执行(或保存)构成代理的固定代码部分的一部分的TR规则,并在步骤309中也剥离代理的TR规则(或以其它方式保护这种规则)。
在步骤310中,系统220打下代理的指纹印。
在步骤312中,验证软件220为所接收的软件代理激活返回定时器。系统220执行一个检查指纹文件中的代理的超时条件的超时步骤314。超时步骤314可位于如果并且在遇到超时条件时就激活的中断例程中,但是也可是一个以某预定间隔在指纹文件中搜索超时条件的例程。如果遇到超时条件,控制就沿“是”分支316移转到生成超时通知步骤318,然后移转到发送通知步骤320。步骤318和320生成超时通知并发送到适当的资源(例如起源站点102)。控制然后移转回登录更新步骤304,过程继续监控代理。
如果在步骤314中没有遇到超时条件,控制就沿“否”分支322移转到检测所接收代理是否是“新的”的步骤324。如果代理是“新的”,控制就沿“是”分支326移转到将代理的指纹存储在例如指纹文件中的保存指纹步骤328。指纹存储之后,系统220执行将代理的返回定时器转为开(ON)状态的设置定时器步骤330。下一步,“是”分支326执行设置旧的步骤332,该步骤将代理添加信息,使系统220将能够在代理返回到系统使将代理标识为旧的代理。然后移转到发送通知步骤320。设置旧的步骤332最好将代理中的标志位从“关”(off)设置为“开”(0→1或1→0)。(此外,该标志可包括加密算法,诸如用来防卫捣乱的锁和密钥。)“是”分支326然后在发送代理步骤334中将代理传递给其目的地。控制然后被移转回更新记录步骤304,过程继续监控代理。
在步骤324中,如果代理是“旧的”(即不是“新的”,例如因为通过以前在步骤332设置了旧的代理标志),控制就被沿“否”分支336移转到将代理返回定时器转为“关”状态的第二设置定时器步骤338。“否”分支336执行检索原始指纹步骤340,检索以前获取/存储的与代理相关联的指纹,如果找到指纹,就提取原始代理指纹。然后在指纹比较步骤342将原始指纹与当前指纹作比较。比较步骤342判定原始指纹中的信息是否充分地与信息返回指纹一致。
在步骤343中,对照返回的数据信息执行TR规则。如果规则被满足并且指纹比较得有利,则表明代理的任务已经成功地完成。目的地站点最好已经将完成信息写入代理,以便指纹的比较和为检查可变数据而对规则的执行能确立代理的任务的成功完成。
假设代理被设计得从客户银行MYBANK的一个帐户向另一个帐户转移一定的款额。代理要有TS地址、MYBANK地址、帐号和要转移的金额。当代理到达TS时,TS验证系统创建一个含有代理的独有标识符并存储交易信息的文件。目的地站点最好设计有软件,用来在将代理发送回TS供验证之前向软件代理写入由目的地站点所执行的交易的记录。当代理返回时,TS验证系统将原始交易信息与返回的代理中的交易信息作比较并与由目的地站点附加到代理的记录信息作比较。
由于软件代理的指纹、签名、特征数据包含的几乎都是代理的固定信息(即非可变字段或在软件代理活动期间不得修改的字段中的信息),TS上/中驻留的验证检查算法将能够查验代理的固定字段的任何部分中的错误或偏差。此外,代理还可包括包含关于某些可变字段能以何种方式例如在/被目的地站点改变的可变字段。规则能告诉TS数据变量可取的允许范围,能告诉TS代理能获取什么类型的额外代码,能告诉TS本应从代理析取什么类型的代码,或能告诉TS关于某些代理的可变字段能以何种方式被改变的相干信息。
在比较步骤342比较两个代理指纹并判定比较结果之后,结果被传送到规则检查步骤343,后者的结果被传送到生成信息步骤344,该步骤接纳比较结果和检查结果并生成适当的通知。如果比较和检查表明没有异常,生成消息步骤344就生成一个成功完成的消息或通知(及验证回复)。如果比较和检查表明没有异常,生成消息步骤344就生成一个向例如起源站点告知异常的消息或通知。
成功完成的消息可包括关于代理的消息信息或者只包括代理标识符,以便起源站点能更新其记录。告知起源站点异常的消息最好含有起源站点立即采取校正行动所必需的和充分的所有信息。这种信息可包括指纹以及验证系统所跟踪记录的所有定时信息。TS也可包括用于汇报专门负责处理这种异常的诸如银行委员会、联邦机构、州立机构之类的主管部门的例程。
生成适当的通知后,“否”分支336能可选地将代理的指纹从指纹文件去除,将指纹转移到不活动的代理文件或对代理作标志,这样,检索步骤340将在文件检索中忽略它;或相反,所有的都在修改文件步骤346中提供。然后,在发送通知步骤348中,通知被发送到例如起源站点。控制然后被移转到更新记录步骤304,过程继续监控代理。
应当认识到,这些步骤许多都能被组合起来、变成全局性的或被共享。例如,发送和接收步骤可以组合起来。此外,可以将程序流重新设计和分割成被调用或触发的和在执行期间交换信息的分立的对象或模块。在任何情形中,流程图300的主要操作被充分地和有效地实现。
转至图4,该图表示了按照本发明的一例软件代理的配置。代理的例子400包括固定字段410和可变字段450。固定字段410包括地址字段412。在这个示意例中,地址字段412包括:起源站点地址字段414、受托站点地址字段416和目的地站点地址字段418。固定字段410也包括规则字段426。可变字段450包括:新/旧标志452、规则字段454、结果字段456、可变的软件代理可执行代码字段458和可变数据字段460。
安全字段422一般包含用于加强起源站点、受托站点、目的地站点、代理(例如新/旧标志)或它们的任意组合的安全的信息/协议。例如,安全字段能准备加密或不加密的锁和密钥协议。无论实行什么安全协议,起源站点、受托站点和目的地站点都分别有适当的、用于实现安全协议(例如用于对代理或其一部分进行解锁或解密)的驻留信息/代码站点。
尽管结合若干个实施例公开了本发明,应当明白,本领域的熟练人员通过阅读本说明会知道,可以作出不偏离上述的和后文要求权利的本发明的范围和精神的改变和修改。

Claims (17)

1.一种系统(100),包含:
一个能创建和发送软件代理(400)的起源站点(102);
一个能接收、执行和返回软件代理(400)的目的地站点(106);
一个具有在其上可执行的软件的受托站点(104),用于从起源站点(102)接收软件代理400,打下软件代理(400)的指纹印,向目的地站点(106)转发该代理(400),比较原始的和返回软件代理的指纹和向原始站点(102)发送验证通知;和
一个开放的通信网络(110),其中各站点通过该网络互相通信。
2.权利要求1的系统,其中,网络(110)是因特网。
3.权利要求1的系统,其中,网络(110)用万维网协议操作。
4.权利要求1的系统,其中,指纹是单向散列函数。
5.权利要求1的系统,其中,软件代理(400)包含多个固定字段(410)和多个可变字段(450),和指纹包含基本上从固定字段(410)采集的信息。
6.权利要求5的系统,其中,固定字段(410)包括一个规则集合(420),受托站点(104)在代理(400)从目的地站点(106)返回到受托站点时执行该规则集合。
7.权利要求6的系统,其中所述规则集合(420)使受托站点(104)能查验可变字段(450)中的可变信息已经在目的地站点(106)被适当修改。
8.权利要求7的系统,其中所述规则集合(420)包括每个与代理(400)相关联的数据变量的值的可接受范围。
9.权利要求5的系统,其中固定字段(410)包括使能受托站点(104)通过开放式通信网络(110)路由代理(400)的路由字段集合(414,416,418)。
10.权利要求5的系统,其中可变字段(450)包括新的代理标志字段(452),使得受托站点(104)识别代理(400)作为返回代理。
11.权利要求5的系统,其中固定字段(410)包括固定数据(426)和/或固定可执行代码(424),其被设计成在任务执行期间保持不变。
12.权利要求5的系统,其中可变字段(450)包括可变数据(460)和/或可变可执行代码(458),其被设计成在任务执行期间要被改变。
13.权利要求5的系统,其中软件代理(400)包括安全字段(422),用于标识用户站点和用于锁定其它指定信息。
14.一种在分布式计算环境的受托站点(104)上实现软件代理验证的方法,该方法包含的步骤为:
从起源站点(102)接收软件代理(400);
生成代理(400)的原始代理指纹;
向目的地站点(106)传递代理(400);
接收从目的地站点(106)返回的代理(400);
生成代理(400)的返回代理指纹;
比较原始代理指纹与返回代理指纹以便形成验证结果;和
向原始站点(102)发送验证结果。
15.权利要求14的方法,进一步包含的步骤为:
生成代理返回定时器;
监测代理从目的地站点(106)的返回;
如果代理返回定时器显示一个超时条件,就向起源站点(102)发送超时通知,否则就响应从目的地站点(106)返回的代理(400),产生返回代理指纹。
16.根据权利要求14的方法,进一步包含的步骤为:
执行被设计用来通知受托站点(104)正确处理可变代理信息的代理规则;
在代理从目的地站点(106)返回后对照规则检查可变代理信息;
向起源站点(102)发送通知,使起源站点能判定可变信息是否作过适当修改。
17.权利要求14的方法,进一步包含的步骤为:
记录在其它步骤中开始的活动。
CNB998053139A 1998-12-21 1999-11-29 用于软件代理和代理活动的验证的系统和方法 Expired - Lifetime CN1174302C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/217,413 US6330588B1 (en) 1998-12-21 1998-12-21 Verification of software agents and agent activities
US09/217,413 1998-12-21

Publications (2)

Publication Number Publication Date
CN1298499A CN1298499A (zh) 2001-06-06
CN1174302C true CN1174302C (zh) 2004-11-03

Family

ID=22810978

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB998053139A Expired - Lifetime CN1174302C (zh) 1998-12-21 1999-11-29 用于软件代理和代理活动的验证的系统和方法

Country Status (10)

Country Link
US (1) US6330588B1 (zh)
EP (1) EP1057097B1 (zh)
JP (1) JP4553491B2 (zh)
KR (1) KR100711017B1 (zh)
CN (1) CN1174302C (zh)
AU (1) AU1387400A (zh)
DE (1) DE69921454T2 (zh)
ES (1) ES2230919T3 (zh)
TW (1) TWI223738B (zh)
WO (1) WO2000038034A1 (zh)

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430618B1 (en) * 1998-03-13 2002-08-06 Massachusetts Institute Of Technology Method and apparatus for distributing requests among a plurality of resources
US7194092B1 (en) 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
US7174457B1 (en) 1999-03-10 2007-02-06 Microsoft Corporation System and method for authenticating an operating system to a central processing unit, providing the CPU/OS with secure storage, and authenticating the CPU/OS to a third party
US6609199B1 (en) * 1998-10-26 2003-08-19 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US7139915B2 (en) 1998-10-26 2006-11-21 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
AU3307800A (en) 1999-03-31 2000-10-16 British Telecommunications Public Limited Company Distributed software system visualisation
US6651171B1 (en) 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US6775779B1 (en) * 1999-04-06 2004-08-10 Microsoft Corporation Hierarchical trusted code for content protection in computers
US7146505B1 (en) 1999-06-01 2006-12-05 America Online, Inc. Secure data exchange between date processing systems
US7743089B2 (en) 1999-10-13 2010-06-22 Intel Corporation Method and system for dynamic application layer gateways
US7401115B1 (en) 2000-10-23 2008-07-15 Aol Llc Processing selected browser requests
TW503355B (en) * 1999-11-17 2002-09-21 Ibm System and method for communication with mobile data processing devices by way of ""mobile software agents""
US6757824B1 (en) 1999-12-10 2004-06-29 Microsoft Corporation Client-side boot domains and boot rules
FI111567B (fi) * 1999-12-27 2003-08-15 Nokia Corp Menetelmä ohjelmamoduulin lataamiseksi
JP3755394B2 (ja) * 2000-09-29 2006-03-15 日本電気株式会社 電子商取引監査システム、電子商取引監査方法及び電子商取引監査プログラムを記録した記録媒体
US6938164B1 (en) 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
US7150045B2 (en) * 2000-12-14 2006-12-12 Widevine Technologies, Inc. Method and apparatus for protection of electronic media
US8200818B2 (en) * 2001-07-06 2012-06-12 Check Point Software Technologies, Inc. System providing internet access management with router-based policy enforcement
GB2377783B (en) * 2001-07-20 2005-04-27 Ibm A method, system and computer program for controlling access in a distributed data processing system
JP3772102B2 (ja) * 2001-07-30 2006-05-10 株式会社東芝 情報処理方法、情報処理装置及びプログラム
WO2003029934A1 (en) * 2001-09-28 2003-04-10 British Telecommunications Public Limited Company Agent-based intrusion detection system
US7376625B2 (en) * 2001-11-15 2008-05-20 Nokia Corporation System and method for activating individualized software modules in a digital broadcast environment
US7159240B2 (en) * 2001-11-16 2007-01-02 Microsoft Corporation Operating system upgrades in a trusted operating system environment
US7137004B2 (en) * 2001-11-16 2006-11-14 Microsoft Corporation Manifest-based trusted agent management in a trusted operating system environment
US7243230B2 (en) 2001-11-16 2007-07-10 Microsoft Corporation Transferring application secrets in a trusted operating system environment
EP1315066A1 (en) * 2001-11-21 2003-05-28 BRITISH TELECOMMUNICATIONS public limited company Computer security system
AU2003213875B2 (en) * 2002-04-11 2009-05-28 Endresz, Allan An information storage system
AUPS169002A0 (en) 2002-04-11 2002-05-16 Tune, Andrew Dominic An information storage system
US7890771B2 (en) 2002-04-17 2011-02-15 Microsoft Corporation Saving and retrieving data based on public key encryption
US20030216927A1 (en) * 2002-05-17 2003-11-20 V. Sridhar System and method for automated safe reprogramming of software radios
US20070118899A1 (en) * 2002-05-17 2007-05-24 Satyam Computer Services Limited Of Mayfair Centre System and method for automated safe reprogramming of software radios
US7478233B2 (en) * 2002-05-30 2009-01-13 Microsoft Corporation Prevention of software tampering
US7676541B2 (en) * 2002-05-30 2010-03-09 Microsoft Corporation Peer communication channel partitioning
US7634806B2 (en) * 2002-05-30 2009-12-15 Microsoft Corporation Peer assembly inspection
US7043522B2 (en) * 2002-05-30 2006-05-09 Microsoft Corporation Unbounded computing space
US7509679B2 (en) 2002-08-30 2009-03-24 Symantec Corporation Method, system and computer program product for security in a global computer network transaction
US7832011B2 (en) * 2002-08-30 2010-11-09 Symantec Corporation Method and apparatus for detecting malicious code in an information handling system
US7331062B2 (en) * 2002-08-30 2008-02-12 Symantec Corporation Method, computer software, and system for providing end to end security protection of an online transaction
US7748039B2 (en) * 2002-08-30 2010-06-29 Symantec Corporation Method and apparatus for detecting malicious code in an information handling system
US7469418B1 (en) 2002-10-01 2008-12-23 Mirage Networks, Inc. Deterring network incursion
US7506360B1 (en) 2002-10-01 2009-03-17 Mirage Networks, Inc. Tracking communication for determining device states
US8819285B1 (en) 2002-10-01 2014-08-26 Trustwave Holdings, Inc. System and method for managing network communications
US7735134B2 (en) * 2002-10-16 2010-06-08 Aramira Corporation Jumping application security system
US7287052B2 (en) * 2002-11-09 2007-10-23 Microsoft Corporation Challenge and response interaction between client and server computing devices
AU2003293501A1 (en) * 2002-12-13 2004-07-09 Wholesecurity, Inc. Method, system, and computer program product for security within a global computer network
US8145710B2 (en) * 2003-06-18 2012-03-27 Symantec Corporation System and method for filtering spam messages utilizing URL filtering module
US7243245B2 (en) * 2003-06-20 2007-07-10 International Business Machines Corporation Method and system for performing automatic startup application launch elimination
US7530103B2 (en) 2003-08-07 2009-05-05 Microsoft Corporation Projection of trustworthiness from a trusted environment to an untrusted environment
US8271588B1 (en) 2003-09-24 2012-09-18 Symantec Corporation System and method for filtering fraudulent email messages
US7269758B2 (en) * 2004-01-20 2007-09-11 International Business Machines Corporation Method and system for identifying runaway software agents
CN100429601C (zh) * 2004-03-04 2008-10-29 日本电气株式会社 数据更新系统、数据更新方法和机器人系统
BRPI0400265A (pt) * 2004-03-10 2006-02-07 Legitimi Ltd Sistema de controle de acesso a serviços de informação baseado em assinatura de hardware e software do dispositivo solicitante
US20050235284A1 (en) * 2004-04-14 2005-10-20 International Business Machines Corporation Systems and methods for tracking processing unit usage
US7941490B1 (en) 2004-05-11 2011-05-10 Symantec Corporation Method and apparatus for detecting spam in email messages and email attachments
GB2415580B (en) * 2004-06-24 2006-08-16 Toshiba Res Europ Ltd Network node security analysis method
US7596690B2 (en) * 2004-09-09 2009-09-29 International Business Machines Corporation Peer-to-peer communications
US20060248522A1 (en) * 2005-04-15 2006-11-02 Microsoft Corporation Deploying agent software to managed computer systems
US8010609B2 (en) * 2005-06-20 2011-08-30 Symantec Corporation Method and apparatus for maintaining reputation lists of IP addresses to detect email spam
US7739337B1 (en) 2005-06-20 2010-06-15 Symantec Corporation Method and apparatus for grouping spam email messages
US8090945B2 (en) * 2005-09-16 2012-01-03 Tara Chand Singhal Systems and methods for multi-factor remote user authentication
US8065733B2 (en) 2005-09-23 2011-11-22 Google, Inc. Method for evolving detectors to detect malign behavior in an artificial immune system
WO2007038245A2 (en) 2005-09-23 2007-04-05 Widevine Technologies, Inc. Method for evolving detectors to detect malign behavior in an artificial immune system
US8689016B2 (en) * 2005-12-02 2014-04-01 Google Inc. Tamper prevention and detection for video provided over a network to a client
US20080010538A1 (en) * 2006-06-27 2008-01-10 Symantec Corporation Detecting suspicious embedded malicious content in benign file formats
DE602007000681D1 (de) * 2007-01-19 2009-04-23 Sap Ag Verfahren und System zur sicheren Erweiterung des Weges eines Mobilagenten innerhalb eines Netzwerksystems
US8176473B2 (en) * 2007-05-14 2012-05-08 Microsoft Corporation Transformations for software obfuscation and individualization
JP4993733B2 (ja) * 2007-09-28 2012-08-08 東芝ソリューション株式会社 暗号クライアント装置、暗号パッケージ配信システム、暗号コンテナ配信システム及び暗号管理サーバ装置
US8752008B2 (en) * 2009-09-02 2014-06-10 Advanced Micro Devices, Inc. Lightweight service based dynamic binary rewriter framework
US9098333B1 (en) 2010-05-07 2015-08-04 Ziften Technologies, Inc. Monitoring computer process resource usage
US10600219B2 (en) * 2015-06-26 2020-03-24 Idex Asa Pattern mapping
EP3115932A1 (en) * 2015-07-07 2017-01-11 Idex Asa Image reconstruction
US10289456B2 (en) 2017-06-01 2019-05-14 International Business Machines Corporation Software bot conflict-resolution service agent
US11822951B2 (en) * 2020-06-10 2023-11-21 Vmware, Inc. Hypercall authentication in a guest-assisted virtual machine introspection (VMI) implementation

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3115157B2 (ja) * 1993-06-29 2000-12-04 三菱電機株式会社 ソフトウェア配布サービス方式
CZ11597A3 (en) * 1994-07-19 1997-09-17 Bankers Trust Co Method of safe use of digital designation in a commercial coding system
US6157721A (en) * 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US5633931A (en) * 1995-06-30 1997-05-27 Novell, Inc. Method and apparatus for calculating message signatures in advance
US5638446A (en) * 1995-08-28 1997-06-10 Bell Communications Research, Inc. Method for the secure distribution of electronic files in a distributed environment
FR2744818B1 (fr) * 1996-02-12 1998-03-27 Bull Sa Procede de verification de la conservation de l'integrite d'une requete emise sans protection par un client vers un serveur au moyen de l'integrite de la reponse
JPH09288469A (ja) * 1996-04-22 1997-11-04 Sharp Corp 液晶表示装置
WO1997043717A1 (en) * 1996-05-13 1997-11-20 Corporation For National Research Initiatives Identifying, managing, accessing, and tracking digital objects and associated rights and payments
SG67354A1 (en) * 1996-06-27 1999-09-21 Inst Of Systems Science Nation Computationally efficient method for trusted and dynamic digital objects dissemination
US5958051A (en) * 1996-11-27 1999-09-28 Sun Microsystems, Inc. Implementing digital signatures for data streams and data archives
US6108420A (en) * 1997-04-10 2000-08-22 Channelware Inc. Method and system for networked installation of uniquely customized, authenticable, and traceable software application
US6065040A (en) * 1997-07-07 2000-05-16 International Business Machines Corporation Computer system having agent retracting method and agent returning method
US6112304A (en) * 1997-08-27 2000-08-29 Zipsoft, Inc. Distributed computing architecture
US6144739A (en) * 1998-01-20 2000-11-07 Motorola, Inc. Computer network protection using cryptographic sealing software agents and objects
US6115699A (en) * 1998-12-03 2000-09-05 Nortel Networks Corporation System for mediating delivery of a document between two network sites

Also Published As

Publication number Publication date
AU1387400A (en) 2000-07-12
JP2002533799A (ja) 2002-10-08
WO2000038034A1 (en) 2000-06-29
ES2230919T3 (es) 2005-05-01
KR20010041169A (ko) 2001-05-15
CN1298499A (zh) 2001-06-06
KR100711017B1 (ko) 2007-04-25
DE69921454T2 (de) 2005-10-13
TWI223738B (en) 2004-11-11
DE69921454D1 (de) 2004-12-02
JP4553491B2 (ja) 2010-09-29
US6330588B1 (en) 2001-12-11
EP1057097B1 (en) 2004-10-27
EP1057097A1 (en) 2000-12-06

Similar Documents

Publication Publication Date Title
CN1174302C (zh) 用于软件代理和代理活动的验证的系统和方法
JP7199775B2 (ja) スマートコントラクトに基づくデータ処理方法、データ処理装置、ノード機器、及びコンピュータプログラム
JP6522707B2 (ja) マルウェアに対処するための方法及び装置
CN111543031B (zh) 用于控制和/或监控装置的方法和控制系统
CN111492624B (zh) 用于控制和/或监控装置的方法和控制系统
EP2550768B1 (en) System and method for remote maintenance of client systems in an electronic network using software testing by a virtual machine
US8769296B2 (en) Software signature tracking
RU2424552C2 (ru) Расщепленная загрузка для электронных загрузок программного обеспечения
US6581093B1 (en) Policy validation in a LDAP directory
US20090138699A1 (en) Software module management device and program
CN1694032A (zh) 自举具有冗余可信平台模块的可信服务器的方法和系统
CN111492355B (zh) 用于控制和/或监控装置的方法和控制系统
Zeng et al. Computer operating system logging and security issues: a survey
CN109885790A (zh) 获取满意度评价数据的方法和装置
CN116583833A (zh) 自审计区块链
CN111869165A (zh) 用于控制和/或监控装置的方法和控制系统
CN115514470B (zh) 一种社区矫正数据安全性的存储方法及系统
CN115567218A (zh) 基于区块链的安全证书的数据处理方法、装置和服务器
CN110677483B (zh) 信息处理系统和可信安全管理系统
KR102561341B1 (ko) 엣지 클라우드 환경에서의 데이터 추적 장치 및 방법
KR101764290B1 (ko) 개인정보 보안 시스템 및 방법
US20210294909A1 (en) Real-time escalation and managing of user privileges for computer resources in a network computing environment
CN116781357A (zh) 一种提升数据交换安全性的方法
Huang A technology framework of dynamic software upgrading

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
CX01 Expiry of patent term

Granted publication date: 20041103

CX01 Expiry of patent term