KR20010041169A - 소프트웨어 에이전트와 에이전트 행동의 검증 방법 - Google Patents

소프트웨어 에이전트와 에이전트 행동의 검증 방법 Download PDF

Info

Publication number
KR20010041169A
KR20010041169A KR1020007009219A KR20007009219A KR20010041169A KR 20010041169 A KR20010041169 A KR 20010041169A KR 1020007009219 A KR1020007009219 A KR 1020007009219A KR 20007009219 A KR20007009219 A KR 20007009219A KR 20010041169 A KR20010041169 A KR 20010041169A
Authority
KR
South Korea
Prior art keywords
agent
software
site
resource
source
Prior art date
Application number
KR1020007009219A
Other languages
English (en)
Other versions
KR100711017B1 (ko
Inventor
프리만마틴
Original Assignee
요트.게.아. 롤페즈
코닌클리케 필립스 일렉트로닉스 엔.브이.
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 요트.게.아. 롤페즈, 코닌클리케 필립스 일렉트로닉스 엔.브이. filed Critical 요트.게.아. 롤페즈
Publication of KR20010041169A publication Critical patent/KR20010041169A/ko
Application granted granted Critical
Publication of KR100711017B1 publication Critical patent/KR100711017B1/ko

Links

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

본 발명은 소프트웨어 에이전트 및 그 행동의 검증을 제공한다. 분포된 컴퓨팅 환경에 원천 자원, 목표 자원, 및 신뢰 자원이 제공된다. 상기 원천 자원은 가장 일반적으로, 에이전트의 정보 및/또는 신뢰 작업이 상기 원천 자원과 관련되어 있는 소프트웨어 에이전트와 연관되어 있다. 상기 목표 자원은 가장 일반적으로, 맡겨진 작업의 성능을 상기 에이전트가 향상시킬 것으로 기대되는 소프트웨어 에이전트와 연관되어 있다. 신뢰 자원은, 상기 신뢰 자원이 상기 소프트웨어 에이전트 및 그 행동들의 검증을 제공하는 역할을 하는 소프트웨어 에이전트와 연관되어 있다. 상기 신뢰 자원은 양호하게 하나의 이상의 선택된 동작들, 예를 들어, 소프트웨어 에이전트의 수신/전송 단계, 소프트웨어 에이전트의 암호화/암호 해제 단계, 소프트웨어 에이전트 지문의 획득, 저장, 검색 및 비교 단계, 상기 목표 자원과의 상호작용의 승인(appropriateness)을 나타내는 TR 규칙들을 실행하는 단계, 복귀 타이머의 확정, 설정, 갱신 및 검사 단계, 에이전트 및 그 행동들의 검증과 관련된 검증 복귀의 발생 및 전송 단계, 상기 신뢰 자원과 상호작용하는 소프트웨어 에이전트를 로깅하는 단계, 및 소프트웨어 에이전트의 부분(들) 또는 모두, 특히 TR 규칙들을 스트리핑, 마스킹, 또는 보호하는 단계를 지원한다.

Description

소프트웨어 에이전트와 에이전트 행동의 검증 방법{Verification of software agents and agent activities}
정보-집약적 컴퓨팅 환경에서, 사용자는 정보 과부하에 걸릴뿐만 아니라 비능률적으로 컴퓨팅 자원을 소모하기 쉬운 경향이 있다. 그러한 과부하와 비능률을 완화하기 위하여, 소프트웨어 프로그래머들은 일반적으로 소프트웨어 에이전트로 알려진 프로그램을 구성하였다. 실제로, 소프트웨어 에이전트는 잘 알려진 사용자 도구이다.
일반적으로, 소프트웨어 에이전트는 하나 이상의 작업을 사용자를 대신하여 수행하도록 위임된다. 예를 들어, 어떤 소프트웨어 에이전트는 정보를 탐색, 여과, 분석, 및 할당 우선 순위를 정하도록 위임된다. 다른 예를 들면, 어떤 소프트웨어 에이전트는 은행 업무와 관련 계정 정보, 전자상거래(e-commerce) 작업, 신용 카드 및 무역상 민감한 정보나 비밀 정보 등의 민감한 작업 및 관련 정보를 위임받게 된다.
작업을 달성하기 위하여, 일반적으로 소프트웨어 에이전트는, 예를 들어, 서버에 의해 관리되는 서비스를 획득하기 위해서 및/또는 다른 에이전트와 상호작용 하기 위해 상기 컴퓨팅 환경(computing enviroment)을 수행한다. 그러한 상태하에서, 소프트웨어 에이전트는 다양하게 오손되기 쉽다. 일례로서, 소프트웨어 에이전트는 바이러스에 감염되거나 다른 불합리한 기능이 제공되어 그 코드가 변형됨으로써(예를 들어, 고의적으로) 오손될 수 있다. 일반적으로 바이러스에 의해 오염된 에이전트는 컴퓨팅 환경(예를 들어, 서버)에 바이러스를 퍼뜨릴 수 있고 상호작용하는 다른 에이전트에도 바이러스를 퍼뜨릴 수 있다.
다른 일례로서, 소프트웨어 에이전트 자체가 위탁받은 작업 또는 작업 관련 정보중 하나에 대해 그 코드의 변화에 의해 오손될 수 있다. 은행 전송 업무를 위탁받은 에이전트의 경우에, 전송의 속성이나 양이 변경되도록 그 코드가 변화되면 에이전트는 오손된다.
또 다른 일례로서, 상기 소프트웨어 에이전트에 오손이 생기지 않을지라도, 상기 에이전트는 수행되고 있는 환경의 부분 내에서 악의 있는(malicious) 오퍼레이션에 의해 기능적으로/간접적으로 오손된다. 이러한 예를 설명해 보면, 적당한 은행 송금 업무를 위탁받은 에이전트는 상기 전송의 양이 고정이고, 제 1 계정에서 제 2 계정으로 전송하라고 요구하는 정보를 이동시킬 것이다. 그러나, 상기 에이전트는 전송 서버 그 자체에 존재하는 적의(maliciousness)에 의해 오손될 수 있다.
상기 경우에 에이전트의 오손은 이를 테면 (i) 다른 양을 전송하는 것에 의해, 또는 (ii) 그 전송량을 제 3의 계정으로 전송하는 것에 의해, 또는 (ⅲ) 두가지 모두에 의해 작업의 실행에 있어서 변할수 있다. 요구된 작업이 적절히 실행되는 잘못된 보고가 수반된다면, -- 또는 에이전트에게 또는 에이전트를 통하거나 또는 다른 방법으로 -- 상기 대리인의 오염이 혼합된다.
일반적으로 에이전트 오손은 암호화 기술에 의해서 불충분하게 보호된다. 즉, 암호화 기술이 소프트웨어 에이전트의 출처을 검증할 수는 있지만, 상기 기술들은 일반적으로 에이전트의 오손을 막기에는 그 특성이 제한된다. 특히, 암호화 기술은 상기 오염이 암호화 전에 또는 해독 후에 발생한다면, 에이전트의 오염을 막는데 미치지 못한다.
그러므로, 당 분야에서는 분배된 컴퓨팅 환경에서 소프트웨어 에이전트와 행동을 검증하는 장치와 방법을 필요로 한다. 특히, 그러한 장치 및 방법은 상기 환경에 악의적인 오퍼레이션이 존재할 수 있는 곳에서 필요하다.
본 발명은 소프트웨어 에이전트와 행동을 검증하는 장치와 방법을 제공한다. 분배된 컴퓨팅 환경에, 원천 자원(origin resource), 목표 자원(destination resource), 신뢰 자원(trusted resource)이 제공된다. 상기 원천 자원은, 거의 일반적으로 에이전트의 정보 및/또는 위임된 작업이 원천 자원과 관련되는 소프트웨어 에이전트와 관련되어 있다. 일반적으로 원천 자원은 정보 및/또는 위임 작업을 소프트웨어 에이전트에게 제공하고, 에이전트의 복귀나 또는 그 반대를 통해, 에이전트의 행동에 대한 정보나 상기 결과에 대한 정보 중 하나를 보고 받기를 기대한다.
일반적으로 상기 원천 자원은 소프트웨어 에이전트를 전송한다. 그러나, 소프트웨어 에이전트는 하나 이상의 원천 자원과 관련될 수 있고, 그러한 점에서, 그러한 자원 중 임의의 그러한 자원이나 몇몇 다른 자원에 의해 처음에 전송된다된다(예를 들어, 소프트웨어 에이전트는 신뢰 또는 목표 자원에 의해 처음에 전송될 수 있다.)
상기 목표 자원은 거의 일반적으로 위임받은 작업의 성능에서 에이전트를 향상시킬 것으로 기대되는 소프트웨어 에이전트와 관련되어 있다. 통상적으로, 상기 목표 자원은 에이전트를 수신하고, 에이전트와 상호작용을 하고, 에이전트의 맡겨진 작업 중 하나 이상을 수행해서 성능 향상에 기여한다. 어떤 하나의 소프트웨어 에이전트는 하나 이상의 관련 목표 자원을 가질 수도 있다.
상기 신뢰 자원은 신뢰 자원이 소프트웨어 에이전트와 행동의 검증을 제공하는 기능을 하는 소프트웨어 에이전트와 관련되어 있다. 상기 신뢰 자원은, 예를 들어, 소프트웨어 에이전트의 수신/전송; 전체 소프트웨어 에이전트 부분(들)의 암호화/암호 해제; 소프트웨어 에이전트의 지문들의 획득, 저장, 수신 및 비교; 가변 정보의 검색하는 규칙들의 실행; 복귀 타이머의 확정, 설정, 갱신 및 검사; 검증 복귀가 통상적으로 원천 자원 및/또는 전송 자원으로 전송되는 것과 같은, 에이전트 및 에이전트의 행동의 검증과 관련된 검증 공지, 보고 또는 다른 복귀의 발생; 상호작용하는 소프트웨어 에이전트의 행동들의 로깅(logging); 및 소프트웨어 에이전트의 부분(들) 또는 전부의 스트리핑, 마스킹, 또는 반대로 보호; 등과 같은 하나 이상의 선택된 오퍼레이션을 지원하는 선택된 메커니즘과 양호하게 관련되어 있다.
상기 신뢰 자원은 오염되기 쉽지않은 자원이다. 그것에 관련하여, 신뢰 자원에 내재하는 하드웨어 및/또는 소프트웨어는 신뢰 자원 자체의 보안을 양호하게 효과적으로 한다. 상기 보안 지향형(security-directed) 하드웨어/소프트웨어는 예를 들어 소프트웨어 에이전트를 통하든지 또는 다른 것을 통해 들어오는, 예를 들어 바이러스 및 다른 오손 영향으로부터 상기 신뢰 자원을 보호한다. 또한, 몇몇 오손이 신뢰 자원에서 발생될 것으로 가정하면, 상기 보안 지향형(security-directed) 하드웨어/소프트웨어는, 신뢰 자원과 관련된 오퍼레이팅 시스템 및 애플리케이션 소프트웨어에 내재하는 그러한 오손을 식별하고 정정할 수 있다.
본 발명은 또한 본 발명의 방법과 장치를 이용해서 검증할 수 있도록 구성된 소ㅍ트웨어 에이전트를 제공한다. 그러한 에이전트는 하나 이상의 고정 필드 및 가변 필드를 가진다. 고정된 필드는 통상적으로 어드레스 규칙, 데이터 또는 다른 고정 정보(에이전트가 수행하도록 위임받은 작업(들)에 관계없이 변경되지 않는 정보)를 지원한다. 가변 필드는 통상적으로 오퍼레이션 플래그(예를 들어, 신/구 플래그), 규칙, 데이터 또는 다른 가변 정보(상기 에이전트가 그 위임받은 작업(들)을 수행하는대로 변하는 정보)를 지원한다. 그러한 에이전트는, 예를 들어 가변 정보의 적절한 수정을 검사하기 위해 선택된 오퍼레이션을 인에이블시키는 규칙들과, TR 규칙들이 스스로 오손되지 않는 것을 보장하는 규칙들을 포함하는 소정의 규칙들도 지원한다.
본 발명은 동일한 부분에 대해서는 동일한 부호가 붙여진 첨부된 도면을 참조해서, 다음에 상세히 후술되는 설명으로부터 더 쉽게 이해될수 있다.
본 발명은 소프트웨어 에이전트(agent)와 그 에이전트들의 행동에 관한 것이며, 특히, 분포된 컴퓨팅 환경(distributed computing enviroment)에서 소프트웨어 에이전트와 행동의 검증에 관한 것이다.
도 1은 본 발명에 따른 분포된 컴퓨팅 환경을 설명하는 블록도.
도 2는 본 발명에 따른 신뢰 자원을 설명하는 블록도.
도 3은 본 발명에 따른 신뢰 자원과 연결하여 소프트웨어 에이전트 및 그 행동들을 검증하는 단계를 설명하는 흐름도.
도 4는 본 발명에 따른 소프트웨어 에이전트를 설명하는 블록도.
* 도면의 주요부분에 대한 부호의 설명 *
102 : 원천 사이트 104 : 신뢰 사이트
106 : 목표 사이트 108 : 컴퓨팅 환경
110 : 통신 경로
소프트웨어 에이전트 및 그 행동들에 대한 검증은 소프트웨어 에이전트 정보와 작업이 오염되었는지를 판단하는 것을 포함한다. 여기서 사용되는 "오손(corruption)", 및 그 변형은, (i) 에이전트의 오전송(misdirection) 및 재전송(redirection), (ii) 바이러스 코드 또는 다른 바람직하지 않은 기능이 에이전트로의 혼합, (iii) 에이전트의 대체 또는 다른 흉내(impersonation), (iv) 부적절하고, 허용할수 없는 또는 권한이 없는 방법으로, 에이전트(예를 들어, 에이전트의 작업 및/또는 정보)의 - 전체 또는 일부-에 대해- 다른 수정, 보충 또는 변경, 및/또는 (v) (실행에 대한 오류 보고를 포함하거나 포함하지 않는) 에이전트 작업의 기대된 실행으로부터의 변경의 일부 또는 전부를 검토없이(without exhaustion) 일컫는다.
소프트웨어 에이전트 및 그 행동의 검증은 에이전트 및 그 행동들이 임계값을 얻는 바에 따라 향상된 값을 갖는 경향이 있다. 임계값은 이를 테면, a) 은행업무 또는 거래와 관련된 정보, b) 전자상거래 업무와 신용 카드와 관련된 정보 c) 매매 기밀 또는 매매에 민감한 정보와 관련된 다른 거래, 등과 같은 민감한/기밀의 작업과 관련된 정보를 위임받는 곳에 존재하는 경향이 있다.
본 발명에 따라, 검증 장치 및 방법은 컴퓨팅 환경 내에서 동작하며, 컴퓨팅 환경의 일부이기도 하다. 그러한 컴퓨팅 환경은 이를 테면 인터넷, 또는 인터넷과 비슷한 시스템, 또는 월드 와이드 웹(world wide web), 또는 월드 와이드 웹(world wide web)같은 시스템, 또는 어떤 개방 통신 네트워크 또는 서비스, 또는 소프트웨어 에이전트가 환경 자체의 일부내의 오동작에 의해 오염받기 쉬운 다른 어떤 환경 등과 같은, 분배된(distributed) 컴퓨팅 환경을 포함한다.
대체로, 상기 발명의 장치 및 방법은 원천 자원, 목표 자원 그리고 신뢰 자원을 고려한다. 원천, 목적 및 신뢰 자원 각각은 어느 하나 또는 더 많은 사이트, 서버, 소프트웨어 애플리케이션, 소프트웨어 에이전트, 네트워크, 펌웨어(firmware), 또는 단독 또는 결합을 이루는 다른 하드웨어, 소프트웨어 또는 네트워크 자원(물리적 및/또는 논리적)를 포함한다(이후로, "하드웨어, 소프트웨어 및/또는 네트워크 자원"으로 칭한다).
각각의 원천, 목적 및 신뢰 자원은 컴퓨팅 환경과 관련한 하나의 물리적 위치에서 실해될 수도 있고, 컴퓨팅 환경과 관련해서 분포된 복수의 물리적 위치에서 실행될 수도 잇다. 일례로서, 신뢰 자원은 네트워크 내의 하나의 사이트에 있는 서버로서 구현될 수 있으며, 상기 사이트는 통상적으로 컴퓨팅 장치를 포함하며, 상기 서버는 선택된 소프트웨어 에이전트와 (직접적으로 또는 간접적으로) 상호작용하도록 구성되며, 그런 점에 있어서, 에이전트는, 예를 들어 원천 자원에서 목표 자원으로 또는 목표 자원에서 원천 자원으로 이동함으로써, 상기 환경을 실행한다. 다른 일례로서, 신뢰 자원은 상기 컴퓨팅 환경의 하나 이상의 네트워크 내에 있는 다양한 사이트 중에 하나에 분포된 거주(residence)를 가지는 하나 이상의 서버로서 구현될수 있다. 이러한 두가지 예에도 불구하고, 신뢰 자원은 이 이외에도 본 발명의 원리를 벗어나는 것 없이 구현될 수 있음을 이해해야 한다.
원천 자원은 거의 일반적으로, 상기 에이전트의 정보와 맡겨진 작업(들)이 원천 자원과 관련되거나 원천자원이 될 수 있는 소프트웨어 에이전트와 관련되어 있다. 원천 자원은 통상적으로 정보 및/또는 위임받은 작업(들)을 소프트웨어 에이전트에 제공함으로써 에이전트를 지정한다. 일반적으로 원천 자원은 (a) 작업을 코드 형으로 제공함으로써, (b) 예를 들어, 에이전트가 다른 자원, 즉 신뢰 자원, 목표 자원 또는 제 2 원천 자원 에 의해 전송되면 제안된 작업(들)을 선택함으로써 (c) (a) 와 (b)의 조합함으로써, 또는 (d) 다르게 함으로써, 작업들을 위임한다. (본 명세서에서는 원천 자원을 가끔 "OR"로서 기재한다.)
일반적으로 원천 자원은 에이전트의 컴퓨팅 환경을 행하는데 기초를 두는 보고를 받으며, 그러한 보고는 에이전트의 행동이나 에이전트 행동의 결과에 관한 정보 중 하나이다. 그러나, 특정한 원천 자원에 의해 제공되거나 특정한 원천 자원을 위해 제공된 작업 또는 정보를 위임받은 소프트웨어 에이전트는 하나 이상의 다른 원천 자원들과 관련된 정보 및/또는 작업들을 또한 위이받을 수 있음을 이해해야 한다.
원천 자원은 소프트웨어 에이전트를 양호하게 전송할 수 있다. 그러나, 특정한 원천 자원과 관련된 소프트웨어 에이전트는 그 원천 자원과는 다른 원천 자원에 의해 처음에 전송될 수 있음을 이해해야 한다. 예를 들어, 제 1 및 제 2 원천과 관련되거나 제 1 원천 자원 대신에 단독으로 관련될 목적으로, 소프트웨어 에이전트는 제 2 원천 자원에 의해 전송될 수도 있다. 다른 예로서는, 상기 소프트웨어 에이전트는, 예를 들어 원천 자원 또는 목표 자원 중 어느 하나에 응답해서, 또는 신뢰 자원 그 자체의 시작에서(예를 들어, 그 서비스를 효과적으로 제공하기 위해), 또는 다른 방법으로, 신뢰 자원에 의해 초기에 전송될 수도 있다. 또 다른 예로서는, 상기 소프트웨어 에이전트는 예를 들어, 원천 자원 또는 신뢰 자원 중 어느 하나에 응답해서, 또는 목표 자원 자체의 시작에서(예를 들어 서비스를 촉진하기위해), 또는 다른 방법으로, 목표 자원에 의해 처음에 전송될 수도 있다. 마지막 후자의 경우에 있어서, 상기 목표 자원 자체는 유효한 원천 자원이 되고, 그 경우에, 원천 자원(또는 신뢰 자원)은 유효한 목표 자원이 된다. -- 즉, 목표 자원은 정보 및/또는 위임받은 작업을, 원천 자원의 행동과 관련되는 에이전트에 제공할 수 있다(예를 들어, 마지막 사용자에 의해).
그러한 예로부터, 소프트웨어 에이전트는 본 발명의 원칙으로부터 벗어나지 않고 하나 또는 여러개의 원천 자원과 관련될 수 있고, 어떤 그러한 자원에 의해 또는 어떤 다른 자원에 의해 처음에 전송될 수 있다는 것을 이해해야 한다. 어떤 경우이든지, 소프트웨어 에이전트는 결국 원천 자원과 관련될 수 있도록 전송된다는 것을 이해해야 한다.
목표 자원은 거의 일반적으로 맡져진 업무를 효과적으로 달성하기를 기대되는 소프트웨어 에이전트와 관련되어 있다. 일반적으로, 목표 자원은 에이전트를 수신하고, 에이전트와 상호 작용하고, 에이전트에 맡겨진 업무들 중 하나 이상의 부분 또는 전체를 수행하고 기여한다(이후로, "실행한다"는 일반적으로 작업과 관련해서, 작업의 실제 수행에 및 작업의 수행의 기여를 나타내는데 사용된다). 그러나, 어떤 하나의 소프트 에이전트라도 하나 이상의 목표 자원과 관련된다는 것을 이해해야 한다. 일례로서, 에이전트의 복수의 목표 자원은, (a) 각각이 어느 하나의 작업 또는 복수의 작업을 수행할 수 있도록 또는 (b) 어떤 특정한 그룹이 복수의 작업 중 어느 하나를 수행할 수 있도록 다양하게 구성된 그룹으로 구성될 수 있다.(본 문헌에서 목표 자원을 "DR"로서 기재한다.)
신뢰 자원은 소프트웨어 에이전트와 신뢰 자원이 소프트웨어 에이전트 및 그 행동의 검증을 제공하는 기능을 하는 소프트웨어 에이전트와 관련되어 있다. 신뢰 자원은 하나 이상의 선택된 검증 작업을 제공한다. 검증 오퍼레이션의 예로서는,소프트웨어 에이전트의 수신/전송; 소프트웨어 에이전트의 부분 또는 전체의 암호화/해독화; 소프트웨어 에이전트 지문의 획득, 저장, 검색 및 비교; 가변 정보의 검사를 포함하는 규칙들의 실행; 복귀 타이머의 확정, 설정, 갱신 및 검사; 검증 복귀가 통상적으로 원천 자원 및/또는 전송 자원으로 전송되는, 에이전트 및 그 행동의 검증과 관련된 검증 공지, 보고 또는 다른 복귀의 발생; 신뢰 자원이 상호작용하는 소프트웨어 에이전트의 행동의 로깅(logging); 및 소프트웨어 에이전트의 일부 또는 전부에 대한 스트리핑, 마스킹, 또는 보호하는 동작들을 들 수 있다. (본 문헌에서 사용되는 용어 "지문(fingerprint)"은, 개별적으로 또는 집합적으로, 소프트웨어 에이전트의 지문, 서명, 프로파일, 또는 다른 표준 정보를 일컬을 뿐만 아니라 그러한 것을 획득하는 동작을 일컫는다.)
신뢰 자원은 오손되지 않는 자원(non-corruptible)이다. 이와 관련해서, 상기 신뢰 자원은 자체적으로 보안(security)를 달성한다. 즉, 신뢰 자원은, 소프트웨어 에이전트를 통하거나 다른 것을 통해 들어오는, 예를 들어 바이러스 및 다른 오염의 영향으로부터 TR을 보호하기 위한 하드웨어, 소프트웨어 및/또는 네트워크 자원을 포함한다. 또한, 상기 신뢰 자원에 오손이 생길 것으로 가정하면, 상기 신뢰 자원은, 신뢰 자원과 관련된 오퍼레이팅 시스템 및 애플리케이션 소프트웨어에 포함되는 그러한 오손을 식별하고 정정할 수 있다.
일실시예에서, 상기 신뢰 자원은 컴퓨팅 환경에서 및/또는 컴퓨팅 환경에 링크된 신뢰 서버를 포함한다. 뿐만 아니라 상기 목표 자원과 초기 자원도 컴퓨팅 환경에 링크되어 있다. 각각의 경우에서, 상기 링크는 각각의 통신 경로(path)를 거쳐서 존재하고, 상기 경로는 또한 경로의 일부를 포함하거나 컴퓨팅 환경과 관련된다. 일례에서, 상기 컴퓨팅 환경은 상기 인터넷을 포함하고, 상기 통신 경로는 광섬유 케이블(fiber optic cables), 트위스트 페어 전화선(twisted pair telephone lines), 동축 케이블(coaxial cabling), 스위칭 및 루팅 회로(swtching and routing circuitry)을 포함하는 복수의 통신 자원을 단독으로 또한 다양한 조합으로 포함하고, 또한 그러한 스위칭 및 루팅을 위한 프로세스, 프로토콜, 펌웨어, 및 펌웨어, 다른 하드웨어, 소프트웨어 및/또는 네트워크 자원을 포함한다.
본 실시예에서, 목표 자원은 인터넷 사이트와 관련된 서버를 포함하며, 상기 사이트는 소정의 오퍼레이션 및 기능(예를 들면, 은행의 월드 와이드 웹 사이트는 사용자 거래로부터 그리고 사용자 거래까지 전송을 포함하는 은행의 서비스에 대한 게이트웨이를 제공한다). 본 실시예에 부가해서, 원천 자원은 인터넷 클라이언트를 포함하고, 상기 클라이언트는 소프트웨어 에이전트를 지정하고 전송할 수 있으며, 최종 사용자에 의해 동작될 수 있다. 원천 자원이 소프트웨어 에이전트를 전송한 후에, 상기 에이전트는 컴퓨팅 환경을 수행하고, 따라서, 상기 원천 자원은 일반적으로 에이전트의 제어를 상실한다. 상기 에이전트가, 사용하는 환경의 어느 부분안에서 오손의 영향과 마주치게 되면, 소프트웨어 에이전트의 위임된 작업(들) 또는 정보는 다양하게 오손된다. 그러나, 일반적으로 그러한 오손은 전송 원천 자원 및/또는 상기 에이전트가 관련되어 있는 다른 원천 자원(들)에게는 알려져 있지 않다. 또한 상기 오손이 원천 자원에 보고되어 있을지라도, 그러한 보고는 일반적으로, 정정 동작이 효과가 없는 오손에 뒤를 이어 계속해서 일어나기에 충분한 시간에 발생될 것으로 예상할 수 있다(예를 들어, 위임된 업무의 적절한 완수와 어떤 악의적인 오퍼레이션 식별 및 근절 중 하나/모두는 배제된다)
본 실시예에서의 컴퓨팅 환경의 수행에 있어서, 일반적으로 소프트웨어 에이전트는 원천 자원, 신뢰 자원, 및 목표 자원사이를 가로지르는 하나 이상의 통신 경로를 사용한다. 상기 인터넷의 경우에 있어서, 그 수행에 따라, 상기 소프트웨어 에이전트는 예를 들어, 프로토콜, 예를 들어 인터넷 프로토콜("IP")의 동작에 기초해서 하나의 사이트 또는 서버에서 다음의 사이트 또는 서버로 루트(routed)/스위치된다. 그러한 경우에, 상기 원천, 목적, 신뢰 자원은 IP를 지원한다. 다양한 프로토콜이 단독 또는 함께 사용될 수 있고, 컴퓨팅 환경에 의존해서 보조 IP 대신에 또는 대용으로 사용될 수 있으며, 일반적으로 원천, 목적, 신뢰 자원은 본 발명의 원리를 벗어나지 않는 범위 내에서, 관련 프로토콜을 지원한다는 것을 이해해야 한다.
상기 자원들 사이에서의 이동과 관련된 시퀀스, 서비스 및 동작이 수행 및/또는 실행에 의해 변화활 수 있을지라도, 소프트웨어 에이전트의 검증은 본 발명에 따라 지원받는다는 것을 이해해야 한다. 특히, 상기 소프트웨어 에이전트는 적어도 두 개의 검증 이벤트에 관련한 검증 오퍼레이션을 거쳐야 하는데, 제 1 검증 이벤트는 작업을 수행하는 자원과 상호작용하지 않는 에이전트의 상태에 의존하고, 제 2 검증 이벤트는 작업을 수행하는 자원과 상호작용하는 에이전트의 상태에 의존한다.
상기 검증 이벤트를 확실하게 하기 위해서, OR, DR 및 TR 간의 각각의 이동은 일반적으로 에이전트의 신뢰자원과/신뢰자원에서 에이전트의 상호 작용을 고려한다. 일반적으로, 상기 소프트웨어 에이전트는 원천 자원으로부터 전송되어 궁극적으로 신뢰 자원에 의해/신뢰 자원에서 수신되고, 그것으로부터 상기 소프트웨어 에이전트는 궁극적으로 목표 자원에 의해/목표 자원에서 수신된다. 또한 상기 소프트 에이전트는 목표 자원으로부터 전송되어 궁극적으로 신뢰 자원에 의해/신뢰 자원에서 수신되며, 그것으로부터, 상기 소프트웨어 에이전트는 궁극적으로 원천 자원에 의해/원천 자원에서 수신되는 것이 일반적이다. 또한, 몇몇 상호작용 후에, 예를 들어, 에이전트와 결합하여 적절한 검증 오퍼레이션들의 신뢰 자원의 수행 후에, 상기 소프트웨어 에이전트가 신뢰 자원으로부터 전송되는 것도 일반적이다.
상기 신뢰 자원은, 하나 이상의 선택된 검증 오퍼레이션을 지원하는 선택된 하드웨어, 소프트웨어 및/또는 네트워크 자원과 관련되어 있다. 상기 하드웨어, 소프트 웨어, 및 네트워크 자원은, 단독으로 또한 다양한 조합으로, 다수의 메카니즘을 포함한다. 일반적인 신뢰 자원 메카니즘은, (a) 수신 메카니즘; (b) 전송 메카니즘; (c) 지문 획득 메카니즘; (d) 지문 저장 메카니즘; (e) 지문 비교 메카니즘; (f) 검증 복귀 메카니즘; (g) 타이머 메카니즘; (h) 신뢰 자원 규칙 메카니즘; (i) 로깅 메카니즘; (j) 하우스키핑(housekeeping) 메카니즘; (k) 관리 메카니즘; (l) 보안 메카니즘; (M) 암호화 메카니즘을 포함한다. 개별적으로 목록되어 있을지라도, 메카니즘들은 본 발명의 원리를 벗어남이 없이, 개별적으로, 또는 하나 이상의 조합 또는 다른방식으로 구현될 수 있다는 것을 이해해야 한다.
신뢰 자원 메카니즘은 다양하게 구현될 수 있다. 통상적으로, 상기 메카니즘들은 하나 이상의 컴퓨팅 장치에서/하나 이상의 컴퓨팅 장치들 사이에서 동작되도록 소프트웨어로서 실시되며, 각각의 컴퓨팅 장치(예를 들어, 개인용 컴퓨터, 워크스테이션 또는 서버 컴퓨터)는 통상적으로 운영 시스템(예를 들어, 유닉스(Unix), 리눅스(Linux), 윈도우 NT(Windows NT) 또는 다른 것들)과, 통신 스택(stack), 통신 하드웨어, 프로세서(들) 및 다른 논리 하드웨어, 메모리 시스템 (예를 들어, 하나 이상의 캐쉬 메모리, 다이나믹 램 액세스 메모리(dynamic random access memory), 대용량 메모리(mass storage), 기록 저장 장치(archival storage) 등)를 그 선택된 조합으로 포함한다. 소프트웨어로 실행된다면, 어느 하나 이상의 신뢰 자원 메카니즘들은 객체 지향 소프트웨어 프로그램에서의 통합 소프트웨어 객체(intergrated software object) 또는 개별의 소프트웨어 객체의 집합으로서, 또는 단일의 통합 소프트웨어 프로그램으로서 또는 다른 것으로서 구현될 수 있다. 유사하게, 자원 메카니즘의 임의의 조합은 소프트웨어 객체, 모듈 또는 다른 소프트웨어 성분을 공유하여 구현될 수 있다. 또한, 어느 하나 이상의 신뢰 자원 메카니즘은 전부, 부분 또는 용량적으로, 소프트웨어 성분(들)과 함께 또는 소프트웨어 성분(들)없이 (예를 들어 펌웨어(firmware)를 포함하는) 하드웨어로 구현될 수 있다. 그 점에 있어서, 신뢰 자원에 관하여 일반적으로 위에서 설명한 바와 같이, 그러한 메카니즘은 컴퓨팅 환경에서 또는 컴퓨팅 환경과 관련해서 하나의 물리적 위치 또는 다수의 물리적 위치에서 실행될 수 있다.
수신 메카니즘은, 신뢰 자원으로 하여금 컴퓨팅 환경에서 수신할 수 있게 하며, 특히 원천 자원과 관련된 소프트웨어 에이전트를 수신할 수 있게 한다. 상기 경우에, 상기 초기 자원은, 비용을 지불하거나 지불하지 않고, 값을 전달하거나 전달하지 않고, 다른 고려를 하거나 하지 않고서, 신뢰 자원의 서비스를 이용하는 것이 가능하다. (이후, 신뢰 자원의 서비스를 이용할 수 있는 원천 자원들을 "가입(subscription)" 또는 몇 가지 다른 의미를 갖는 "가입된(subscribed)"으로 칭하며, 유사하게, 가입을 갖는 원천 자원을 "가입 원천 자원들(subscribing origin resources)"이라 칭하고, 관련 소프트웨어 에이전트를 "가입 에이전트(subscribing agents)"라 칭한다.
소프트웨어 에이전트는 다양한 검증 목적을 포함해서, 다양한 목적으로 컴퓨팅 시스템에 전송된다. 신뢰 자원은 검증 서비스와 관계없는 에이전트를 수신할 수도 있기 때문에, TR의 수신 메카니즘은, 에이전트(예를 들어, 검증 인에이블 플래그)의 구성 및/또는 지정을 분석함으로써 수신된 에이전트들이 가입 에이전트들인지를 판단하는 필터 성분을 양호하게 포함한다. 필터가 실행될 수도 있지만, 특히, 예를 들어 가입 에이전트들만을 수신하기 위해 신뢰 자원이 컴퓨팅 환경에서 실행되는 경우, 필터는 실행될 필요가 없다는 것을 이해해야 한다.
상기 수신 메카니즘은 또한 에이전트가 (예를 들어, 원천 자원으로부터) 수신되는지 또는 (예를 들어, 목표 자원으로부터) 복귀하는지를 결정할수 있다. 상기 수신 메카니즘은 예를 들어, 에이전트와 관련된 수신 플래그를 설정/재설정함으로써 에이전트와 관련해서 그 결정을 나타낸다.
전송 메카니즘은 신뢰 자원이 컴퓨팅 환경에서 통신할수 있게 한다. 특히, 소프트웨어 에이전트를 신뢰 자원으로부터 이동할 수 있게 한다. 일반적으로 그러한 이동은 결국 하나 이상의 적당한 목표 자원 또는 원천 자원으로의 이동이다. 그렇게 하기 위해, 전송 메카니즘은 적용가능한 프로토콜에 따라서 양호하게 작동한다.
전송 메커니즘은 다양한 방법으로 실행될 수 있다. 일례로서, 상기 전송 메커니즘은 수신된 에이전트의 복사를 전송하기 위해, 지문 획득 및/또는 비교 메커니즘이 전송 메터니즘으로 병렬로 진행되도록 하기 위해 수행될 수 있다. 또한, 상기 전송 메커니즘은 하나 이상의 복수의 목표 자원, 복수의 원천 자원 및 보조의 용량적인 또는 다른 추가의 신뢰 자원을 지원하기 위해 실행될 수 있다.
지문 획득 메카니즘은 에이전트의 지문을 획득한다. 상기 지문 획득 메카니즘은 다양한 기술을 사용하여 실행될 수 있다. 임의의 실시예에서, 상기 기술은 실제로 또는 구체적으로 특이한, 에이전트 대 에이전트(agent to agent) 지문을 제공한다. 본 예에서의 기술은 단방향 해쉬 기능(one-way hash function)이며, 에이전트 대 에이전트를 사용하는 단방향 해쉬 기능은, 특이할 뿐만아니라 또한 역 공학(reverse engineering)을 방지하는 경향이 있는 해시 현상(hash signature)을 생성한다.
상기 지문 획득 메카니즘은 소프트웨어 에이전트의 고정 정보에 기초해서 지문을 획들하도록 수행된다. 예를 들면, 상기 지문은 어드레스 정보(예를 들어, 하나 이상의 원천, 목적, 신뢰 자원 어드레스) 및/또는 에이전트와 관련된 정보와 위임된 작업(들)(및/또는 다른 필수적인 처리 정보(transactional information)에 기초를 둘 수 있다. 그러나, 상기 메카니즘은 에이전트의 가변 정보에 기초를 둔 정보를, 단독으로 또는 고정 정보와 함께 실행될 수 있다는 것을 이해해야 한다(본 명세서의 소프트웨어 에이전트의 고정 및 가변 필드에 관한 설명을 참조하라). (후술되는 TR 규칙은 지문 획득에 양호하게 사용되지 못한다.) 실제로, 상기 지문은 전체 에이전트 자체를 포함할 수도 있고 단순히 전체 에이전트 자체가 될 수도 있다.
상기 지문 획득 메카니즘은 상기 실행에 기초에 기초하여, 하나 이상의 접근 방식을 이용해서 트리거될 수 있다. 일 실시예에서, 상기 메카니즘은 선택된 에이전트에 대한 수신 메카니즘에 의해 트리거된다. 예를 들면, 상기 수신 메카니즘은, 수신된 에이전트가 가입된다는 것을 수신 메커니즘의 필터 성분이 결정할 때만, 지문 획득 메커니즘을 트리거하도록 실행될 수 있다. 다른 실시예에서, 지문 획득 메카니즘은 모든 수신 에이전트에 대한 수신 메카니즘에 의해 트리거 된다. 후자의 경우에, 신뢰 자원이 가입 에이전트(subscribing agent)와는 다른 에이전트를 수신할 수 있다면, 상기 지문 획득 메카니즘은, 수신된 에이전트가 가입되는 것을 결정하도록 실행될 수 있거나, 수신된 에이전트가 가입되는지에 대한 결정에 기여하도록 실행될 수도 있다. 다른 실시예들에서는, 지문 획득 메카니즘이 스스로 트리거 되거나, 또는 상기 수신 메카니즘과는 다른 몇몇 메카니즘에 의해 트리거 된다. 어느 경우라도, 적어도 선택된 에이전트를 수신하면, 지문 획득 메카니즘을 트리거한다.
지문 저장 메카니즘은 지문의 저장 및 검색에 효과적이다. 상기 저장 메카니즘은 메모리 시스템(일괄적으로 하든 분류하든간에, 예를 들어, 하나 이상의 캐쉬 메모리, 동적 랜덤 액세스 메모리, 대용량 저장 장치, 기록 저장 장치등)을 사용하여 양호하게 실행된다. 상기 저장 메카니즘은 제어 성분도 양호하게 포함한다. 통상적인 실시예에서, 상기 제어 성분은, 예를 들어 지문 데이터베이스 내의 지문 파일/엔트리와 같은, 메모리 시스템의 소정의 위치에 획득된 지문을 저장하고, 상기 소정의 위치로부터 지문을 검색하기 위해 제공된다. 일 예에서, 지문 저장 메카니즘은, 지문 저장 메커니즘이 실행하는 가입 결정에 기초해서 또는 몇몇 다른 메커니즘이 실행하는 가입 결정에 기초해서(예를 들어 지문 채취와 병행해서), 가입 에이전트들에 대응하는 지문들만을 저장하도록 실행된다.
지문 저장 메카니즘은 상기 실행에 기초에 기초해서, 하나 이상의 접근 방식을 이용해서 트리거 될 수 있다. 일 실시예에서, 상기 메카니즘은 선택된 에이전트에 대한 수신 메카니즘에 의해 트리거 된다. 예를 들어, 상기 수신 메커니즘은, 수신된 에이전트가 가입되는지를 수신 메커니즘의 필터 성분이 결정할 때만 지문 저장 메커니즘을 트리거하도록 실행될 수 있다. 다른 실시예에서는, 상기 지문 저장 메카니즘은 모든 수신된 에이전트에 대한 수신 메카니즘에 의해 트리거된다. 후자의 경우에, 신뢰 자원이 가입 에이전트와는 다른 에이전트를 수신할 수 있다면, 상기 저장 메커니즘은, 수신된 에이전트가 가입되는지를 결정하도록 실행될 수 있거나, 또는 수신된 에이전트가 가입되는지에 대한 결정에 기여하도록 실행될 수 있다. 또 다른 실시예에서는, 상기 지문 저장 메카니즘이 수신 에이전트에 대한 지문 획득 메카니즘에 의해 트리거된다. 이 후자의 실시예에서, 상기 지문 저장 메커니즘은, 예를 들어 지문 저장 메커니즘 또는 몇몇 다른 메카니즘이 수행하는 가입 결정에 기초해서, 가입 에이전트에 대응하는 지문들만을 저장하도록 실행될 수 있다.
지문 비교 메카니즘은 소프트웨어 에이전트의 획득된 지문들을 비교하여, 잠재적 오손을 나타낼 수 있는 차이나 다른 불규칙성을 식별하기 위해 제공된다. 통상적인 실시예에서, 상기 비교 메카니즘은, (a) 신뢰 자원에서 복귀된 소프트웨어 에이전트의 이전에 획득된 지문과 (b) 지문 획득 메카니즘에 의해 새로이 획득된, 에이전트의 현재 지문을 비교한다.
그러나, 다른 실시예에서는, 획득 및 비교의 시간 특징(예를 들어, 위에서 언급한 "이전에 획득한" 및 "현재")아 실제로 또는 전체적으로 사용하지 못할 수도 있다는 것을 인식해야만 한다. 특히, 소프트웨어 에이전트는 적어도 두 개의 검증 이벤트에 관한 검증 오퍼레이션을 거쳐야 하는데, 제 1 검증 이벤트는 작업을 수행하는 자원과 상호작용하지 않는 에이전트의 상태에 의존하고, 제 2 검증 이벤트는 작업을 수행하는 자원과 상호작용하는 에이전트의 상태에 의존한다. 본 발명에 따른 소정의 실시예예서, 상기 두 개의 검증 이벤트는, 전체적으로 또는 실질적으로 시간 차이가 없을 수 있다.
검증 복귀 메카니즘은 상기 에이전트 및 그 행동에 대한 통지, 보고 또는 다른 복귀를 발생한다(본 명세서에서는 개별적 및 집합적으로 "검증 복귀"로서 칭한다). 상기 검증 회답 메카니즘은 다양하게 실행될 수 있다. 일례로서, 상기 검증 복귀 메카니즘은 선택된 검증 복귀(들)을 특정한 자원으로 전송하도록 실행될 수 있다. 또한, 상기 검증 회답 메카니즘은 원천 에이전트의 복귀를 통해 복귀들을 전송하도록 실행될 수 있거나, 또는 상기 원천 에이전트와는 별개인 복귀에 의해 복귀들을 전송하도록 실행될 수 있다. 제 1 의 경우에 대하여, 상기 검증 복귀 메카니즘은 전송 메커니즘으로 제공되는 복귀와 동일한 복귀를 발생한다. 제 2 의 경우에 대하여, 검증 복귀 메카니즘은, (a) 전송이 전송 메커니즘에 의해 이루어지거나 협동하여 양호하게 이루어지는, 자신 소유의 복귀-관계 에이전트(return-bearing agents)의 발생 및 전송, (b) 몇몇 비-에이전트(non-agent) 메지지의 발생 및 전송, 및 (c) 다른 해결(solution)을, 하나 이상의 임의 조합으로 지원한다.
또한, 상기 검증 복귀는 본 발명에 따라서 다양하게 구성될 수 있다. 일례로서, 상기 검증 복귀는 오손이 검출되었는지의 여부(예를 들어, 작업이 성공적으로 완료되었는지의 여부)에 기초하여 설정 또는 재설정되는 검증 플래그를 포함할 수 있다. 다른 일례로서, 상기 검증 복귀는 신뢰 자원에서 행해진 어떤 검증 오퍼레이션의 결과에 관한 상세 사항을 포함할 수 있다. 또 다른 일례로서, 상기 검증 복귀는 상기 에이전트의 행동들에 관한 정보 또는 상기 에이전트의 행동들의 결과에 관한 정보(예를 들어, 위임된 작업들의 수행에 의해 모여진 정보 또는 위임된 작업들의 수행으로부터 생긴 정보)의 일부 또는 전부 또는 대표를 포함할 수 있다. 또 다른 일례로서, 상기 검증 복귀는 정정 행동을 가능하게 하거나 지원하기 위해 정보 또는 전송된 방향을 포함할 수 있다. 상기 검증 복귀는 위에서 언급한 복귀의 조합(들), 또는 위에서 언급한 복귀 중 어느 하나 이상과 다른 복귀와 조합(들)을 포함할 수 있다.
상기 검증 복귀는 통상적으로 원천 자원(들)로 전송된다. 그렇지만, 검증 복귀는 목표 자원들 뿐만 아니라 다른 신뢰 자원들로도 전송될 수 있다. 상세히 설명하면, 상기 검증 복귀는, 상기 에이전트 및 그 행동들과 관련 있는 자원들로 전송된다. 어떤 점에 있어서 원천 자원에 관한 작업 및 관련 정보가 에이전트에 맡겨졌다면, 에이전트 및 그 행동들은 일반적으로 원천 자원과 관련되어 있다.
검증 복귀 메커니즘은 그 실행에 기초한 하나 이상의 접근 방식을 이용해서 트리거될 수 있다. 일실시예에서, 상기 메커니즘은 지문 비교 메커니즘에 의해 트리거되고 검증 복귀는 지문의 비교가 어떤 불규칙성을 나타내는지의 여부를 나타낸다.
타이머 메커니즘은 타이머 성분과 감시 성분을 포함한다. 통상적인 실시예에서, 상기 타이머 성분은 타이머 이벤트 중 하나 이상의 선택된 제 1 클래스의 발생으로부터 타이머 이벤트 중 하나 이상의 선택된 제 2 클래스의 발생때까지 경과된 시간을 유지하며, 타이머 이벤트 중 그러한 제 1 및 제 2 클래스는 전체적으로 동일할 수도 있고, 전체적으로 다를 수도 있고, 부분적으로 동일할 수도 있다. 그러한 타이머 이벤트는 통상적으로 소프트웨어 에이전트, 그 정보 및 작업(들), 및/또는 원천 또는 목표 자원을 반영한다.
감시 성분은 양호하게 경과 시간 동안 관련 타이머 성분을 감시한다. 예를 들어, 감시 성분은 선정된 최대 주기를 초과하는 경과 시간 동안 관련 타이머를 감시하도록 실행될 수 있다(주기는 때때로 "타임아웃 주기"로 칭하며 타이머 이벤트는 때때로 "타임아웃"이라 칭한다). 또한, 타임아웃에 응답해서, 상기 감시 성분은 양호하게 타임아웃 메시지를 유효하게 하는데, 상기 메시지는 양호하게 환경(예를 들어, 에이전트, 그 정보 및 작업(들), 및/또는 원천 또는 목표 자원)을 반영하는 콘텐트 및 파라메터를 갖는다. 일실시예에서, 감시 성분의 타임아웃 메시지는 (a) 타임아웃 플래그, (b) 에이전트의 원천 지문 및/또는 소프트웨어 에이전트를 식별하기 위해 선택된 다른 정보, (c) 예를 들어 컴퓨팅 환경의 상태에 관한 다른 정보, 에이전트의 목표 자원에 관한 임의의 뉴스 또는 그 반대에 관한 임의의 뉴스를 포함한다. 본 실시예 및 다른 실시예에서, 타임아웃 메시지는 양호하게 충분한 정보 및 지시를 포함하기 때문에 정확한 또는 다른 적절한 행동이 가능하다.
타임아웃 메시지는 양호하게 검증 복귀 메커니즘에 전송되며, 그 메시지에 응답해서, 복귀 메커니즘은 적절한 검증 복귀를 발생하여 전송한다. 이 방법에서, 특정한 타임아웃 메시지는, 메시지가 관련성을 유지하기 위한 하나 이상의 자원에 공지되어 있다. 예를 들어, 통상적인 실시예에서, 소프트웨어 에이전트가 상기 타임아웃 주기 내에서 목표 자원과의 상호작용으로부터 적절하게 복귀되지 않으면 검증 복귀가 원천 자원으로 전송되며, 상기 타임아웃 주기는 선정된 이벤트로부터 측정되며, 그러한 선정된 이벤트는 예를 들어, 신뢰 자원에서/신뢰 자원에 의한 소프트웨어 에이전트의 제 1 수신을 포함한다. 그럼에도 불구하고, 본 예 및 이전의 설명과 관련해서, 상기 또는 다른 타임아웃 메시지에 응답하고 적당한 검증 복귀는, 목표 자원들 또는 다른 신뢰 자원(들) 또는 신뢰 자원의 일부를 포함하는 임의의 자원(들)에 전송될 수 있다.
타이머 및 감시 성분은 실행에 기초해서, 하나 이상의 접근 방식을 이용해서 트리거될 수 있다. 실시예에서, 타이머 성분은 에이전트(예를 들어, 가입 에이전트)가 새로이 수신되는지 복귀되는지에 대한 수신 메커니즘의 결정에 의해 활성화된다. 다른 실시예에서, 타이머 성분은 수신된 에이전트의 포워딩 메커니즘의 방향(forwarding mechanism's direction), 예를 들어 목표 자원에 의해 활성화된다.
어떤 실시예에서도 타이머 성분은 양호하게 활성화 해제를 지원받는다. 후자의 실시예를 설명하기 위해, 제 1 에이전트에 양호하게 연관된 타이머 성분은 타이아웃 이전에 에이전트 또는 다른 복귀가 도착하면 활성화 해제된다. 양호하게, 타이머 성분은 상기 에이전트 및 그 도착이 모두 적절하면 활성화 해제된다.
즉, 활성화 해제는 일반적으로 에이전트가 신뢰 자원에 적절하게 복귀되었는지에 대한 결정을 포함하며, 상기 결정은, 수신 메커니즘에 의해(예를 들어 에이전트 보귀 이벤트의 식별하에), 지문 획득 메커니즘에 의해(예를 들어, 에이전트의 현재의 지문의 성공적인 획득하에), 지문 저장 메커니즘에 의해(예를 들어, 에이전트의 이전에 획득된 지문의 성공적인 검색하에) 달성될 수 있다. 그러한 임의의 실시예에서, 관련 감시 성분(들)은 적절하게 트리거되고 제어되는 것이 바람직하다.
규칙 메커니즘은 신뢰 자원 규칙(본 명세서에서는 때때로 "TR 규칙"이라 칭함)을 실행한다. 예를 들어, TR 규칙은 원천 자원에서 생성되어 상기 원천 자원과 관련된 소프트웨어 에이전트를 통해 신뢰 자원으로 제공되고, 상기 제공은 상기 소프트웨어 에이전트가 신뢰 자원과 상호작용할 때 양호하게 발생한다. 다른 예에서, TR 규칙은 신뢰 자원 자체에서 생성될 수 있다. 이 후자의 예에서, TR 규칙은 (a) 수신된 소프트웨어 에이전트의 정보 및/또는 작업(들)에 응답해서, (b) 원천 자원에 의한 TR의 서비스의 이전의 이용에 응답해서, (c) (a)-(b)의 조합 또는 그 반대의 조합에 응답해서 확정될 수 있다.
규칙 메커니즘은 TR 규칙을 수행하기 위해 다양하게 실시될 수 있다. 예를 들어, (a) 신뢰 자원과의 소프트웨어 에이전트의 제 1 상호작용과 관련해서, 또는 (b) 목표 자원으로부터의 에이전트의 수신하에, 또는 (c) 양자와 관련해서 TR 규칙을 실행할 수 있다. 또한, 소프트웨어 에이전트의 고정 또는 가변 정보, 다른 정보, 또는 그것들의 조합을 이용해서 TR 규칙을 실행할 수 있다.
TR 규칙은 선택된 동작들을 인에이블시킨다. 이러한 동작들은 예를 들어, (a) TR 규칙이 오손되지 않음을 보장하는 동작들 및 (b) 예를 들어 가변 정보의 오손(corruption)에 대한 소프트웨어 에이전트를 검사하는 동작들을 포함한다. 후자와 관련한 일실시예에서, 신뢰 서버로의 에이전트의 복귀하에, TR 규칙이 데이터 제약(data constraint)에 대해 실제의 가변 정보를 검사할 수 있도록, 가변 정보에 적용가능한 데이터 제약(예를 들어, 범위, 형태 등)을 지정하도록 TR 규칙이 실행된다.
TR 규칙은 양호하게 컴퓨팅 환경의 선택된 부분들에 액세스되지 어렵다. 통상의 예를 들면, 원천 자원에서 생성되어 전송되는 가입 소프트웨어 에이전트는 TR 규칙들을 가지며, 그러한 규칙들이 목표 자원에서/목표 자원에 의해 액세스되기 어렵게 되도록 OR 은 양호하게 구성되고, 지정되고, 프로세스된다. 그러한 예에서, 신뢰 자원에서/신뢰 자원에 의해 인액세스성(inaccessibility)이 양호학세 유효화된다. 신뢰 자원은 양호하게 스트라이핑, 마스킹, 인코딩, 암호화 또는 다른 적절한 프로세싱에 의해 TR 규칙들이 액세스되기 어렵게 한다. 그렇게 하면 규칙이 보호받으며, 규칙들의 부적절한 조작을 방지하며, 상기 규칙들을 사용하여 위임된 작업들 및 관련 정보가 오손(예를 들어, TR 규칙들로부터 소정의 가변 필드에 대한 허용가능한 값 또는 상태에 대한 결정에 기초한 오손)되는 것을 방지할 수 있다. 요약하면, TR 규칙 및 관련 정보는 액세스되기 어렵게 되어 에이전트 및 그 행동들의 오손를 방지하는데 도움을 줄 수 있다.
로깅 메커니즘은 소프트웨어 에이전트와 연관하여 발생되는 모든 또는 선택된 이벤트에 관한 정보를 로그한다. 그렇게 하기 위해, 로깅 메커니즘은 양호하게 (a) 예를 들어, 개별 로그에, 에이전트 지문 파일(들) 또는 데이터베이스에, 또는 에이전트와 관련된 정보의 몇몇 다른 데이터베이스에 이벤트 정보를 세이브하고, (b) 현재 또는 세이브된 이벤트 정보를 사용하는데 있어서 제공하여 예를 들어, 소프트웨어 에이전트의 내력 활동을 추적하고, 및/또는 (c) 선택된 범주에 기초한 이벤트 정보를 프로세스하여 예를 들어 하나의 에이전트에 관한 또는 에이전트의 그룹 또는 형태에 관한 보고서를 제공한다. 예를 들어, 로깅 메커니즘은 소정의 에이전트 형태가 사용되는 주파수, 전체 에이전트 트래픽 및 내력 복귀 시간(전체 또는 형태에 의한 또는 그 반대)에 관한 보고서를 제공하기 위해 포함되거나 처리될 수 있는 이벤트 정보를 로그하도록 실행될 수 있다. 로깅 메커니즘은 양호하게 다른 목적 중에서, 하우스키핑 및 관리 메커니즘에 입력을 제공하기 위해 실행된다.
하우스키핑 메커니즘은 다양한 메커니즘 및 신뢰 자원을 포함하는 성분 뿐만 아니라, 검증 서비스를 지원하는 다른 유사한 기능의 유지(maintenance)를 제공한다. 예를 들어, 하우스키핑 메커니즘은 선정된 인자들(예를 들어 완료된 검증 서비스 또는 진부(staleness))에 기초해서 엔트리, 기록, 파일들, 데이터베이스 및 다른 저장된 정보를 전체 또는 부분적으로 삭제하도록 양호하게 실행된다. 다른 예에서, 상기 하우스키핑 메커니즘은 선정된 인자들(예를 들어, 정보를 비활성 에이전트 파일로 이동시켜, 상기 정보가 때때로 파일 콘텐츠에 관해 수행된 목적을 보고하기 위해 고려될 수 있도록 하기 위해)에 기초해서 엔트리, 기록, 파일들, 데이터베이스 및 다른 저장된 정보를 전체 또는 부분적으로 갱신하도록 양호하게 실행된다. 또 다른 예에서, 상기 하우스키핑 메커니즘은 예를 들어 소정의 에이전트 형태에 관한 내력 복귀 시간에 기초해서(그러한 정보는 상기 로깅 메커니즘에 의해 통상적으로 제공된다), 및/또는 목표 자원 또는 목표 자원 형태와 같은 다른 파라메터에 기초해서, 및/또는 에이전트가 활성 상태에 있는 연대 콘텍스트 또는 달력 콘텍스트(즉, 시간 날짜, 일주일 또는 계절)에 기초해서, 타이머 메커니즘에 의해 사용된 타임아웃 주기를 수정하기 위해 실행된다.
관리 메커니즘은 검증 서비스에 대한 주변행정 기능을 제공한다. 예를 들어, 관리 메커니즘은 인보이스(invoicing) 및 계정을 제공하기 위해 실행된다. 인보이스와 관해서는, 관리 메커니즘이 다양하게 실행될 수 있다. 설명해 보면, 검증 서비스의 사용과 관련해서 (원천 자원을 통해) 요금이 부과될 수 있고, 그러한 요금은 (ⅰ) 에이전트 단위 당, (ⅱ) 목표 자원 단위 당, (ⅲ) 에이전트의 형태 또는 속성 단위 당, (ⅳ) 원천 자원의 형태 또는 속성 단위 당, (ⅴ) 목표 자원의 형태 또는 속성 단위 당, (ⅵ) TR 규칙의 형태 또는 속성 단위 당, (ⅶ) 이들 단위 중 하나 이상을 조합한 단위 당, (ⅷ) 몇몇 다른 단위 또는 단위들과 관련해서, 단독으로 또는 위에서 언급한 단위들 중 하나 이상과의 조합 단위 당 중 하나 이상을 확정한다. 관리 메커니즘은 통상적으로 로깅 메커니즘으로부터, 적어도 부분적으로 인보이스와 관련된 정보를 얻는다.
다른 예를 들면, 관리 메커니즘은 다양한 성능 통계 또는 컴퓨팅 환경을 특징짓는 다른 파라메터를 액세스하는 서비스를 제공하도록 실행된다. 그렇게 하면, 상기 관리 메커니즘은 가입 원천 자원들(또는 적어도 이들 원천 자원은 임의의 그러한 부과 서비스를 개발하기 위해 선택된다)로부터 입력을 양호하게 수신할 수 있게 되며, 그러한 입력은 예를 들어, 관심 정동의 통계 및 파라메터의 식별 및 그 부과 결과를 달성/보고하기 위한 제한 또는 선택을 포함한다. 예를 들면, 관리 메커니즘은 신뢰 자원의 검증 서비스와 경쟁하거나 대체될 수 있는 다른 검증-규제 신청(verification-directed offerings)을 식별하고 추적하기 위해 실행될 수 있다. 그렇게 하기 위해, 관리 메커니즘은 경쟁/대체 신청과 상호작용하는 에이전트의 선택된 성능 특징(예를 들어 사용법)을 제한할 수 있다. 다른 예를 들면, 관리 메커니즘은 컴퓨팅 환경의 로딩을 부과하도록 실행될 수 있다. 그렇게 하는데 있어서, 원천 자원의 입력은 -- 예를 들어, 우세한 부하의 하나 이상의 레벨들에 기초해서 -- 신뢰 자원으로부터 이동하는 그 에이전트들 중 하나 이상을 지연시키거나 가속시키거나 시간을 맞출 뿐만 아니라, 상기 이동의 상태에 관한 진보 보고서(들) 요구하는 요구를 포함한다(예를 들어, 원ㅊ펀 자원은 진보 보고서를 받지 않도록 선택할 수 있거나, 지연에 관한 보고서 및/또는 이동 초기에 관한 보고서를 갖도록 선택할 수 있다).
보안 메커니즘은 컴퓨팅 환경의 선택된 부분들을 오손(corruption)로부터 보호하기 위해 제공된다. 보안 메커니즘은 다양하게 실행될 수 있다. 예를 들어, 보안 메커니즘은 소프트웨어 에이전트, 원천 자원, 목표 자원 및 신뢰 자원 중 하나 이상을, 소스(예를 들어 컴퓨팅 환경의 실행 중에 일어날 수 있는 소스)에 관계없이, 에이전트 자체에 잠재적으로 내재하는 오손의 영향으로부터 보호하기 위해, 수신된 에이전트를 처리하도록 실행될 수 있다. 이 목적을 달성하기 위해, 보안 메커니즘은 일반적으로, 오손되거나 오손될 수 있는 수신된 에이전트의 부분 또는 전부를 제거하거나, 디스에이블시키거나, 유효하지 못하게 할 수 있다. 그러한 메커니즘은 감시 펌웨어(monitoring firmware) 및/또는 에이전트 및 오손될 수 있는 다른 잠재적 실행가능 코드를 식별하는데 사용되는 다른 하드웨어를 양호하게 포함한다.
다른 예를 들면, 보안 메커니즘은, 신뢰 자원이 특정한 과정만을 실행할 수 있도록 수행될 수 있으며, 또는 처리된 정보에 의해, 과정 중의 단계들 또는 단계들의 조합에 의해, 과정에서 발생되는 결과 등에 의해 식별되는 일련의 과정만을 실행하도록 수행될 수 있다. 그러한 비-오손 시스템(non-corruptible systems)은 예를 들어, 성능에 기초한 시스템 또는 아키텍처(capability-based sysems or architecture)를 포함한다. 그 아래에, 각각 작업이 할당되고 티켓(또는 식별기) 및 적절하게 할당된 작업들만이 실행가능하게 된다. 성능에 기초한 시스템에 관ㄹ한 보다 상세한 정보는 Welbey, M.V. 및 Needham, R.M. 등이 저술한, "The Cambridge CAP Computer and Its Operating System," 오퍼레이팅 및 프로그래밍 시스템 시리즈, ed.P.J. Denning 1979, N.Y., North Holland 를 참조하라. 상기 문헌은 본 명세서에 참조문헌으로서 병합되어 있다.
보안 메커니즘은 메커니즘 자체를 전체적으로 또는 근본적으로 비-오손되도록 하기 위해, 하드웨어(예를 들어 펌웨어를 포함하여) 상에서, 전체적으로, 부분적으로 또는 용량적으로 실행될 수 있다. 그 실행에 있어서, 다른 자원 메커니즘 및 그 소프트웨어 성분들을, 하드웨어(예를 들어 펌웨어를 포함하여) 상에서, 전체적으로, 부분적으로 또는 용량적으로 실행하는 것이 바람직하다. 이러한 메커니즘 (및 성분들)을 그렇게 실행하면, (a) 신뢰 자원을 오손로부터 실질적으로 보호하면서 실행시킬 수 있고, 및/또는 (b) 신뢰 자원의 관련 메커니즘이 때때로 펌웨어 복사물과 비교될 수 있으며, 임의의 오손가 발견되면, 정정 수단은 참여시킬 수 있다. 통상적인 정정 수단은 예를 들어 대상(objects)을 리로딩함으로써, 여분의 코드를 삭제함으로써, 자동으로 또는 시스템 오퍼레이터와 같은 인간의 초기화에 의해, 코드 비교 및 정정 알고리즘 또는 유사한 루틴을 응용하고 및/또는 다른 종래의 접근 방식에 의한 수리 소프트웨어를 포함한다.
암호화 메커니즘은 소프트웨어 에이전트, 검증 복귀 및 신뢰 자원에 의해 수신된 다른 관련 메시지 또는 신뢰 자원에서 전송되는 다른 관련 메시지의 전부 또는 일부를 암호화 및 암호 해제를 위해 제공된다. 암호화 메커니즘은 다양하게 실행될 수 있다. 예를 들면, 암호화 메커니즘은 공공의 키 암호 및 증명서(public key encryption and certificates)를 이용해서 실행될 수 있다. 그렇게 실행하면, 암호화 메커니즘은 컴퓨팅 환경에 고유하게 내재하는 다양한 위험을 어드레싱하는 도움을 줄 수 있으며, 상기 위험으로는 (a) 민감한 또는 비밀의 정보를 얻기 위해 통신을 중간에서 가로채기 당할 위험(이것을 "엿듣기(eavesdropping)"라 칭함), (b) 통신 중에 정보/작업을 중간에서 변경하여 오손되는 위험(이것을 "조작(manipulation)"이라 칭함), (c) 원천 자원 또는 목표 자원이 인증되지 못하는 위험(이를 "흉내냄(impersonation)"이라 칭함)이 있다. 그렇지만, 일반적으로 어떠한 암호화 메커니즘도, 자원으로부터 전송되기 전에 또는 자원에 수신되기 전에(즉, 암호화 전 및 암호 해제 후), 소프트웨어 에이전트를 항상 보호할 수는 없다.
신뢰 자원은 그러한 모든 메커니즘이나 선택된 메커니즘 중에서 동작 조정을 위해 양호하게 실행된다. 이 조정은, 각각의 실행에 기초해서, 메커니즘 중에서 병렬 동작, 시퀀셜 동작, 또는 다른 동작을 생성할 수 있다. 통상적인 실시예에서, 예를 들어, 지문 획득 메커니즘 및 비교 메커니즘과 함께 저장 메커니즘이 사용되는데, 지문 획득 메커니즘은, 에이전트가 신뢰 자원으로 복귀하면, 저장 메커니즘이 이전에 획득된 지문을 비교 메커니즘에 대한 예비를 위해 검색할 수 있도록, 저장 메커니즘이 지문을 (예를 들어 신뢰 자원의 메모리 시스템에) 저장할 때마다 새로 도착하는 에이전트의 지문을 획득하며, 비교 메커니즘은 에이전를 검증하기 위해, 이전에 획득된 지문과 에이전트의 현재의 지문을 비교하며, 그러한 현재의 지문은 상기 비교를 예상하여 지문 획득 메커니즘에 의해 획득된 것이다.
상기 통상적인 실시예에서는 또한, 지문 비교 메커니즘이 검증 복귀 메커니즘을 트리거하여 검증 복귀(들)를 발생한다. 그러한 트리거 및 발생은 상기 비교에서 오손가 발생되었는지의 여부에 따라 제공된다. 그렇지만, 오손가 검출되면, 지문 비교 메커니즘은 검증 복귀 메커니즘에 정보를 양호하게 제공한다. 그러한 정보를 사용해서, 검증 복귀 메커니즘은 오손를 알려주기 위해 구성된 검증 복귀를 발생할 수 있고 또한 정정 동작을 행할 수 있다. 비교 메커니즘의 정보는 비소모적인 예로서, 각각의 비교된 지문들과 그 지문들간의 차이를 포함할 수 있다. 상기 검증 복귀는 이것들을 제공된 또는 처리된 형태(예를 들어 정정 행동에 대한 제안)로 포함할 수 있다. 상기 검증 복귀는 또한 다른 정보, 예를 들어 경과 시간 및 타임아웃, (예를 들어 어드레스에 의한) 목표 자원 및 상기 신뢰 자원이 에이전트에 관해 학습한 다른 데이터 및 상기 오손에 관한 다른 데이터를 포함할 수 있다.
상기 통상적인 실시예에서는 또한, 검증 복귀 메커니즘이 전송 메커니즘과 통상적으로 협동하여, 상기 복귀를 검증과 관련된 원천 자원으로 전송한다. 그러한 전송은 상기 복귀를 검증된 에이전트의 일부로서 전송함으로써 통상적으로 달성되며, 그러한 에이전트 자체는 전송 메커니즘에 의해 전송된다. 그런 동작에 있어서, 원천 자원으로의 이동 중에 상기 에이전트가 오손되는 것을 방지하기 위해 상기 복귀를 이동시키는 에이전트를 암호화 메커니즘에 의해 처리하는 것이 고려되어야 한다. 그런 동작에 있어서, 검증 복귀, 소프트웨어 에이전트, 원천 자원 및 신뢰 자원 중 하나 이상을 복귀된 에이전트 자체에 잠재적으로 내재하는 오손 영향으로부터 보호하기 위해, 오손되거나 오손될 수 있는 임의의 에이전트 또는 모든 에이전트를 삭제, 디스에이블링, 또는 반대로 무효화시킴으로써, 상기 에이전트를 예를 들어 보안 메커니즘에 의해 처리하는 것이 고려되어야 한다.
상기 통상적인 실시예에서, 타이머 메커니즘의 타이머 및 감시 성분들이 사용된다. 타이머 성분은 일반적으로 신뢰 자원에 소프트웨어 에이전트의 제 1 도착(예를 들어, 에이전트의 상태가 목표 자원과의 상호작용이 자유로운 상태일 때)과 연관해서 활성화된다. 설명해 보면, 타이머 성분은 상기 에이전트가 목표 자원으로 전송되는 것에 기초해서 활성화된다.
타이머 성분의 활성화와 함께, 적어도 하나의 관련 감시 성분은 타이머 성분을 감시하기 위해 양호하게 활성화된다. 설명해 보면, 감시 성분은, 적절하게 감시되고 목표 자원으로부터 소프트웨어 에이전트를 적절하게 복귀시키기 위해 활성화되며, 그러한 감시는 선정된 복귀 타임아웃 주기(return time-out period)에 대한 것이다. 만일 복귀 타임아웃이 발생하기 전에 에이전트가 적절하게 복귀되지 않는다면, 감시 성분은 그 환경에 적당한 콘텐트 및 파라메터를 통해 복귀 타임아웃 이벤트를 나타내는 타임아웃 메시지를 유효하게 한다. 상기 타임아웃 메시지는 검증 복귀를 보내는데 통상적으로 사용된다.
협동을 나타내는 다른 예시적 예에서는, (a) 진부한 지문(stale fingerprints)를 제거하기 위해 저장 메커니즘은 하우스키핑 메커니즘과 협동하며, (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에만 가입하면, 가입된 자원은 그 자체가 하나 이상의 부가의, 개재된 신뢰 자원을 사용할 수 있다. 그렇게 하기 위해, TR1 자체는 통상적으로 에이전트의 신뢰 자원 어드레스 정보를 수정하여 상기 에이전트를 예를 들어 그러한 개재된 신뢰 자원에, 병렬, 시퀀셜 또는 다른 방법으로 전송한다. 본 예에서, 상기 에이전트는 통상적으로 복수의 TR의 가능성을 표시하는 플래그를 설정하며, 그렇지만, 그러한 플래그는 본 발명의 원리를 벗어나지 않는 범위 내에서 삭제될 수 있다는 것을 이해해야 한다.
개재된 신뢰 자원(들)의 사용은 일반적으로, 가입된 신뢰 자원(들)에 의해 에이전트의 TR 규칙들의 처리를 나타내는 관련성을 갖는다. 위에서 언급한 바와 같이, 가입된 신뢰 자원은 일반적으로 에이전트의 TR 규칙을 수행하도록 실시된다. 그렇게 하기 위해, 가입된 신뢰 자원은 TR 규칙들에 액세스하도록 인에이블된다. 따라서, 개재된 신뢰 자원(들)이 TR 규칙들을 적용하면, 그러한 자원들에는 양호하게 액세스가 제공된다. 그러한 것으로서, 가입된 신뢰 자원은 에이전트로부터 TR 규칙들이 스트리핑(stripping)되지 않도록 한다. 스트리핑은 일반적으로 적절한 것이 아니지만, 특정한 환경 하에서는(예를 들어, TR 규칙들이 개재된 TR에 국부적으로 제공된 환경이나 TR 규칙들이 가입자 TR에서 실행되는 환경), TR 규칙들의 스트리핑이 실행될 수 있음을 이해해야 한다. 가입된 신뢰 자원에 제공된 TR 규칙들의 마스킹, 인코딩, 암호와, 또는 다른 처리에서와 유사하게, 상기 개재된 신뢰 자원(들)이 TR 규칙들을 수행하도록 된 곳에서는, 그러한 자원(들)이 언마스크(unmask), 디코드, 암호 해제 또는 반대로 리버스 프로세스를 하도록 인에이블되는 것이 양호하다. 또한, 개재된 신뢰 자원(들)이 TR 규칙들을 보호하도록 행동하는 곳에서 조차, 가입된 그리고 개재된 신뢰 자원들은 양호하게 협동하여 가입된 신뢰 자원은 그 액세스를 유지할 수 있다.
에이전트가 복수의 작업들을 지원하는 어느 경우에서든, 신뢰 자원은 임의의 작업이 검증 실패와 관련된 이벤트에서 나머지 작업(들)을 종료, 중단, 또는 디스에이블시키도록 실행된다. 디스에이블의 경우, 신뢰 자원은 에이전트 오손를 정정하도록 양호하게 인에이블된다. 그러한 정정은 통상적으로 에이전트와 관련된 TR 지문 파일들에 기초한다. 또한, 실행된다면, 그러한 정정은 예를 들어 관련된 원천 자원으로부터의 추가 입력에 기초할 수 있으며, 그러한 추가 입력은 일반적으로 검증 실패에 관하여 보내지는 검증 복귀에 응답한다. 정정이 달성되면, 신뢰 자원은 관련 원천 자원 OS 를 양호하게 알려 주며 이전에 디스에이블된, 나머지 작업들을 인에이블시킨다.
그래서, 본 발명은 복수의 신뢰 자원을 사용을 고려하며, 이에 의해 에이전트 및 에이전트 행동의 검증이 신뢰 자원 중에서 검증 오퍼레이션의 협동 및 확산(예를 들어 동적으로)에 기초해서 효과적이고 생산적으로 이루어진다.
도 1을 참조하면, 본 발명의 장치 및 방법을 실행하는 시스템(100)이 도시되어 있으며, 상기 시스템은, 컴퓨팅 환경(108)과 통신하는 (또한 양호하게는 컴퓨팅 환경의 일부분이 되는) 원천 사이트(102), 신뢰 사이트(104) 및 목표 사이트(106)를 포함한다. 상기 사이트들(102, 104 및 106)은 컴퓨팅 환경(108)에서 통신 경로(110)를 통해 통신한다. 상기 사이트들(102, 104 및 106)은 원천 자원, 신뢰 자원 및 목표 자원에 각각 대응한다. 상기 컴퓨팅 환경(108)은 통상적으로 인터넷의 일부이다. (상기 원천 사이트, 신뢰 사이트 및 목표 사이트를 때때로 본 문헌에서는 각각 "OS", "TS" 및 "DS"라 칭한다.)
일반적으로, 상기 신뢰 사이트(104)는 소프트웨어와 함께 서버로서 동작하는 컴퓨팅 장치 또는 컴퓨팅 시스템(둘 이상의 컴퓨팅 장치)이다. 상기 환경(108)은 인터넷이고, 상기 신뢰 사이트(104)는 인터넷 서버이다. 상기 원천 사이트(102) 및 목표 사이트(106)는, 예를 들어, 사용자의 가정용의 독립형 PC 또는 LAN에 기초한 컴퓨팅 환경의 노드, 또는 관련되지 않은 컴퓨터 플랫폼, 환경 또는 다른 설비에 연결시키기 위해 상기 환경(108)에 대한 통신 액세스를 갖는 임의의 다른 로컬/폐쇄 컴퓨팅 환경의 노드를 포함하는 임의의 사이트가 될 수 있다.
도 2를 참조하면, 예시적인 신뢰 사이트(200)가 도시되어 있으며, 프로세서("P")(202)와, 결합 장치(206)를 통해 상기 프로세서(202)와 결합된 메모리 시스템("MEMORY")(204)을 포함한다. 상기 프로세서는, 인텔 주식회사, 모토로라 주식회사, 텍사스 인스트루먼트 주식회사, IBM, AMD, 사이릭스, 또는 디지털 프로세싱 장치를 생산하는 임의의 다른 제조업체에의 의해 제조된 마이크로프로세서, 마이크로콘트롤러, 디지털 신호 프로세서 등을 제한없이 포함하는 임의의 디지털 프로세싱 장치가 될 수 있다.
상기 신뢰 서버(200)는 또한 소프트웨어(212)를 포함한다. 상기 소프트웨어는 메모리 시스템(204)에 양호하게 내장되어 있다. 상기 소프트웨어(212)는 오퍼레이팅 시스템(218)을 포함하며, 이 시스템은 상기 신뢰 서버(200)가 요구하는 필요한 작업을 유효하게 하는 명령들을 실행할 수 있는 임의의 오퍼레이팅 시스템이 될 수 있다. 적절한 시스템으로는, 윈도우 오퍼레이팅 시스템, UNIX에 기초한 오퍼레이팅 시스템 또는 임의의 다른 시스템이 될 수 있으며 제한되지 않는다.
상기 소프트웨어(212)는 또한 소프트웨어 에이전트 및 그 행동들을 검증하는 소프트웨어 에이전트 검증 시스템(220)을 포함한다. 상기 소프트웨어(212)는 또한 바이러스나 오염 소프트웨어 메커니즘으로부터 TS를 보호하는 보안 시스템을 포함할 수 있다. 상기 보안 시스템은 본 발명의 원리를 벗어나지 않는 범위 내에서 검증 시스템에 통합될 수 있음을 이해해야 한다.
TS(200)는 입력 포트(224) 및 출력 포트(230)도 포함한다. 입력 포트(224)는 (결합 장치(226)를 통해) 프로세서(202)와 결합하고 (경로(228)를 통해) 환경(108)과 결합한다. 출력 포트(230)는 (결합 장치(232)를 통해) 프로세서(202)와 결합하고 (경로(234)를 통해) 환경(108)과 결합한다.
도 3을 참조하면, 신뢰 서버(220)에서 검증 시스템(220)을 실행하는 양호한 일련의 단계들이 흐름도(300)로 도시되어 있다. 흐름도(300)는 통상적으로 시스템 개시에서 초기화되는 명목상의 개시(302)를 포함한다. 검증 시스템(220)은 로그 갱신 단계(304)에서 로그 파일에 모든 소프트웨어 에이전트 행동들을 로그할 수 있다. 상기 신뢰 서버(200)에 소프트웨어 에이전트가 보내지면, 검증 시스템(220)은 수신 단계(306)에서 상기 소프트웨어 에이전트를 수신하고, 그 에이전트에 대한 보아 검사를 선택적으로 실행하며, 단계(308)에서 TS 완전성(integrity)을 유지한다.
수신된 에이전트에 대한 보안 검사가 선택적으로 실시되었다면, 검증 소프트웨어는 단계(309)에서, 에이전트의 고정 코드부의 일부를 형성하는 TR 규칙들을 실행하고(또는 세이브하고), TR 규칙들의 에이전트들을 제거한다(또는 그렇지 않으면 그러한 규칙들을 보호한다).
단계(310)에서, 시스템(220)은 상기 에이전트를 지문 채취한다.
단계(312)에서, 검증 소프트웨어(220)는 수신된 소프트웨어 에이전트(들)에 대한 복귀 타이머(return timer)를 활성화시킨다. 시스템(220)은 지문 파일에 있는 에이전트(들)에 대한 타임아웃 조건을 검사하는 타임아웃 단계(314)를 실행한다. 상기 타임아웃 단계(314)는 타임아웃 조건이 해당될 때 활성화되는 인터럽트 루틴일 수 있고, 또한 몇몇 선정된 구간에서 타임아웃 조건에 대한 지문 파일을 스캔하는 루틴일 수도 있다. 타임아웃 조건이 해당되면, "예" 브랜치(316)를 따라 타임아웃 통지 발생 단계(318)와 통지 전송 단계(320)에 제어가 전달된다. 단계(318 및 320)에서 타임아웃 통지가 발생되어 적절한 자원(예를 들어, 원천 사이트(102))으로 전송된다.
단계(314)에서 타임아웃 조건이 해당되지 않는다면, "아니오" 브랜치(322)를 따라 단계(324)로 제어가 전달되며, 단계(324)에서는 수신된 에이전트가 "새로운" 에이전트인지를 검사한다. "새로운" 에이전트이면, "예" 브랜치(326)를 따라 지문 세이브 단계(328)로 제어가 전달되며, 이 세이브 단계에서는 에이전트 지문, 예를 들어 지문 파일을 저장한다. 지문 저장 후, 시스템(220)은 에이전트 복귀 타이머를 ON 상태로 복귀시키는 타이머 설정 단계(330)를 실행한다. 다음, "예" 브랜치(326)는 옛것 설정 단계(set old step)(322)를 실행하며, 이 단계에서는 에이전트에 정보가 부가되어, 시스템으로 에이전트의 복귀가 실행되면 시스템은 상기 에이전트를 옛 에이전트로서 식별할 수 있다. 상기 옛것 설정 단계(332)에서는, "오프"에서 "온"으로의 플래그 비트(0→1 또는 1→0)를 에이전트에 설정한다. (부가적으로, 상기 플래그는 탬퍼링(tampering)을 방지하기 위해 자물쇠·열쇠(lock and key)와 같은 보안 알고리즘을 포함한다.) 그런 다음, "예" 브랜치(326)는 에이전트 전송 단계(334)에서 상기 에이전트를 목표 사이트로 보낸다. 그런 다음 로그 갱신 단계(304)로 제어가 재전달되어 에이전트들을 감시하는 프로세스가 계속된다.
단계(324)에서, 에이전트가 "옛것"이면(즉, 옛 에이전트 플래그가 단계(332)를 통해 이미 설정되어 있기 때문에 "새로운" 에이전트가 아니면), "아니오" 브랜치(336)를 따라 제 2 타이머 설정 단계(338)로 제어가 전달되며, 이 단계에서는 에이전트 복귀 타이머를 OFF 상태로 복귀시킨다. "아니오" 브랜치(336)는 원천 지문 검색 단계(340)를 실행하며, 이 단계에서는, 상기 에이전트와 연관된 이전에 획득된/저장된 지문을 탐색하고, 그 지문이 위치해 있으면, 원천 에이전트 지문을 검색한다. 그런 다음 지문 비교 단계(342)에서 원천 지문과 현재의 지문을 비교한다. 비교 단계(342)에서는 원천 지문의 정보와 복귀 지문의 정보가 충분히 일치하는지를 판단한다.
단계(343)에서, 복귀된 데이터 값들에 대해 TR 규칙을 실시한다. 규칙들을 만족하고 지문들의 비교가 합당하다면, 에이전트의 작업(들)이 성공적으로 완료되었음을 표시한다. 양호하게, 목표 사이트가 완료 정보를 에이전트에 기록함으로써, 지문들의 비교 및 가변 데이터를 검사하는 규칙들의 실행은 에이전트의 작업에 대한 성공적 완료를 확정할 수 있다.
에이전트는 클라이언트의 뱅크에서, 즉 MYBANK에서 한 계정으로부터 다른 계정으로 소정의 합이 전달되도록 설계되어 있다. 에이전트는 TS 어드레스, MYBANK 어드레스, 전달되는 계정 번호 및 계정 양을 포함한다. 에이전트가 TS에 도착하면, TS 검증 시스템은 에이전트에 대한 고유의 식별기를 포함하는 파일을 생성하고 상호작용 정보를 저장한다. 양호하게, 목표 사이트에는, 검증을 위해 에이전트를 TS로 되돌려보내기 전에, 목표 사이트에 의해 실행된 상호작용에 대한 기록을 소프트웨어 에이전트에 기록하도록 설계된 소프트웨어가 포함되어 있다. 에이전트가 복귀되면, TS 검증 시스템은, 원천 상호작용 정보를, 복귀 에이전트에 잇는 에이전트 상호작용 정보와, 목표 사이트에 의해 에이전트에 첨부된 로그 정보와 비교한다.
소프트웨어 에이전트의 지문, 프로파일 또는 기호(signature)는 에이전트에 대한 고정 정보(즉, 비-가변 필드들에 대한 정보 또는 소프트웨어 에이전트가 행동하는 동안 수정되어서는 안되는 필드들에 대한 정보)를 거의 독점적으로 포함하기 때문에, TS 내에 있는 검증 검사 알고리즘은 에이전트의 고정 필드들의 임의의 부분들에 대한 오류 또는 불일치를 검사할 수 있다. 부가적으로, 특정한 가변 필드들은, 예를 들어 목표 사이트에서/사이트에 의해 변형될 수 있는 방법에 관한 정보를 포함하는 고정 규칙들을 포함할 수 있다. 상기 규칙들은, 가정할 수 있는 가변 데이터의 허용 범위를 TS에 알려 줄 수 있고, 에이전트가 획득할 수 있는 추가 코드의 형태를 TS에 알려 줄 수 있고, 에이전트로부터 추출되었어야만 하는 코드 형태를 TS에 알려 줄 수 있고, 또는 에이전트의 가변 필드가 수정될 수 있는 방법에 관한 임의의 다른 관련 정보를 TS에 알려 줄 수도 있다.
비교 단계(342)에서 두 개의 에이전트 지문을 비교하여 그 비교 결과를 판단한 후에, 그 결과는 규칙 검사 단계(343)와 메시지 발생 단계(344)로 통과되어, 비교 결과와 검사 결과에 의거해서 적절한 통지가 발생된다. 상기 비교 및 검사에서 불규칙성이 나타나지 않는다면, 메시지 발생 단계(344)에서, 성공적으로 완료된 메시지 또는 통지(즉, 검증 복귀)를 발생한다. 상기 비교 및 검사에서 불규칙성이 나타난다면, 메시지 발생 단계(344)에서, 그 불규칙성을 알리는 메시지 또는 통지를 예를 들어 원천 사이트로 발생하게 된다.
상기 성공적으로 완료된 메시지는 상기 에이전트에 관한 상세 정보를 포함할 수 있고, 또는 원천 사이트가 그 기록 내용을 갱신할 수 있도록 하는 에이전트 식별기를 간단하게 포함할 수도 있다. 양호하게, 원천 사이트에 불규칙성을 알려 주는 메시지에는, 원천 사이트가 중간의 정정 행동을 취하는데 필요한 모든 정보가 충분히 포함되어 있다. 그러한 정보에는 검증 시스템이 추적한 모든 타이밍 정보와 지문 채취법이 포함될 수 있다. 상기 TS는 또한, 뱅크 커미션(bank commissions), 연합 에이전시(federal agencies), 국가 에이전시(state agencies) 등과 같은 그러한 불규칙성을 취급하는데 있어서, 적절한 권한 통지 루틴을 포함할 수도 있다.
적절한 통지가 발생되었다면, 상기 "아니오" 브랜치(336)는 에이전트의 지문을 지문 파일에서 삭제하거나, 그 지문을 불활성 에이전트 파일로 이동시키거나, 파일을 탐색하는 동안 검색 단계(340)에서 그 지문을 건너 뛰도록(skip) 에이전트를 플래그시킬 수 있으며, 그렇지 않으면, 파일 수정 단계(346)에 모든 것을 제공할 수 있다. 그런 다음, 상기 통지는 예를 들어 통지 전송 단계(348)에서 원천 사이트로 전송된다. 그런 다음, 로그 갱신 단계(304)로 제어가 다시 전달되고 에이전트를 감시하는 프로세스가 계속된다.
이러한 많은 단계들은 결합되거나, 전체적으로 되거나, 또는 분할해서 이루어질 수 있다는 것에 유의하라. 예를 들어, 전송 및 수신 단계는 결합될 수 있다. 또한, 상기 프로그램의 흐름은 재설계될 수 있으며, 참여되거나 불려지거나, 트리거되는 개별의 대상 또는 모듈, 및 실행 중에 정보를 변경하는 개별의 대상 또는 모듈로 분할될 수 있다. 어느 경우이든지, 상기 흐름도(300)의 주요 동작은 충분히 효과적으로 실행된다.
도 4를 참조하면, 본 발명에 따른 예시적인 소프트트웨어 에이전트의 구성이 도시되어 있다. 예시적 에이전트(400)는 고정 필드들(410)과 가변 필드들(450)을 포함한다. 고정 필드들(410)은 어드레스 필드들(412)을 포함한다. 본 예에서, 어드레스 필드들(412)은 원천 사이트 어드레스(들)(414)와, 신뢰 사이트 어드레스(들)(416)와, 목표 사이트 어드레스(들)(418)를 포함한다. 고정 필드들(410)은 또한 규칙 필드들(420)과, 보안 필드들(422)과, 고정 필드 에이전트 실행가능 코드 필드들(424) 및 고정 데이터 필드들(426)을 포함한다. 가변 필드들(450)은 신/구 플래그(452)와, 규칙 필드들(454)과, 결과 필드들(456)과, 가변 소프트웨어 에이전트 실행가능 코드 필드들(458) 및 가변 데이터 필드들(460)을 포함한다.
보안 필드들(422)은 통상적으로 원천 사이트, 신뢰 사이트, 목표 사이트, 에이전트(예를 들어 신/구 플래그), 또는 이것들의 임의의 조합의 보안성을 향상시키기 위한 정보/프로토콜들을 포함한다. 예를 들어, 보안 필드들은 암호를 가지거나 가지지 않은, 자물쇠 및 열쇠 프로토콜(들)을 제공할 수 있다. 보안 프로토콜이 실행될 때마다, 원천 사이트, 신뢰 사이트 및 목표 사이트는 보안 프로토콜을 유효하게 하기 위해(에이전트 또는 그 일부를 잠금 해제 및 암호 해제시키기 위해, 각각의 충당하는 바에 따른 고유의 정보/코드 사이트를 갖는다.
본 발명을 몇 가지의 실시예를 참조해서 설명하였지만, 본 설명의 이해로부터 당 분야에 익숙한 기술인들은 위에서 설명한 바와 같은 또한 다음에 청구하는 바와 같은 본 발명의 범주 및 정신을 벗어남이 없이 이루어질 수 있는 변경 및 변형을 고려할 수 있음을 이해해야 한다.
본 발명은 분포된 컴퓨팅 환경에서 소프트웨어 에이전트와 행동의 검증에 적용가능하다.

Claims (20)

  1. 컴퓨팅 환경에 있어서,
    소프트웨어 에이전트(400)를 생성 및 전송할 수 있는 원천 사이트(102)와,
    소프트웨어 에이전트(400)를 수신, 실행, 및 복귀시킬 수 있는 목표 사이트(106)와,
    실행 소프트웨어를 가지고 있으며, 상기 원천 사이트(102)로부터 소프트웨어 에이전트(400)를 수신하고, 상기 소프트웨어 에이전트(400)에 대해 지문 채취법을 수행하고, 상기 소프트웨어 에이전트(400)를 상기 목표 사이트로 전송하고, 상기 원천 사이트의 소프트웨어 에이전트 지문과 상기 목표 사이트의 소프트웨어 에이전트 지문을 비교하며, 상기 원천 사이트(102)에 검증 통지를 전송하는 신뢰 사이트(104)와,
    상기 사이트들이 서로 통신하는 개방형 통신 네트워크(110)를 포함하는 컴퓨팅 환경.
  2. 제 1 항에 있어서, 상기 네트워크(110)는 인터넷인 컴퓨팅 환경.
  3. 제 1 항에 있어서, 상기 네트워크(110)는 월드 와이트 웹 프로토콜을 사용하여 동작하는 컴퓨팅 환경.
  4. 제 1 항에 있어서, 상기 지문은 단방향 해쉬 기능(one way hash function)인 컴퓨팅 환경.
  5. 제 1 항에 있어서, 상기 소프트웨어 에이전트(400)는 복수의 고정 필드(410)와 복수의 가변 필드(450)를 포함하며, 상기 지문은 실질적으로 상기 고정 필드(410)들로부터 취해진 정보를 포함하는 컴퓨팅 환경.
  6. 제 5 항에 있어서, 상기 고정 필드(410)들은 일련의 규칙들을 포함하며,
    상기 일련의 규칙들은 상기 신뢰 사이트로 하여금 가변 정보가 상기 목표 사이트에서 적절하게 수정되었는지를 검사할 수 있게 해주는 컴퓨팅 환경.
  7. 분포된 컴퓨팅 환경의 신뢰 사이트에서 실행된 방법에 있어서,
    원천 사이트(102)로부터 소프트웨어 에이전트(400)를 수신하는 단계와,
    상기 소프트웨어 에이전트(400)의 원천 에이전트 지문을 발생하는 단계와,
    상기 소프트웨어 에이전트(400)를 목표 사이트(106)에 전송하는 단계와,
    상기 목표 사이트(106)로부터 복귀하는 소프트웨어 에이전트(400)를 수신하는 단계와,
    상기 소프트웨어 에이전트(400)의 복귀 에이전트 지문을 발생하는 단계와,
    상기 원천 에이전트 지문과 상기 복귀 에이전트 지문을 비교하는 단계, 및
    상기 원천 사이트(102)에 검증 복귀(verification return)를 전송하는 단계를 포함하는 방법.
  8. 제 7 항에 있어서,
    에이전트 복귀 타이머를 발생하는 단계와,
    상기 에이전트의 복귀를 감시하는 단계와,
    상기 에이전트 복귀 타이머가 실행되면 상기 원천 사이트(102)에 타임아웃 통지를 전송하는 단계와,
    신뢰 사이트(104)에 공지하기 위해 설계된 에이전트 규칙들을, 가변 에이전트 정보를 적절하게 취급하여 실행하는 단계와,
    상기 규칙들에 대한 상기 가변 에이전트 정보를, 그 목적 사이트(104)로부터의 에이전트의 복귀에 기초해서 검사하는 단계와,
    상기 가변 정보가 적절하게 수정되었는지를 상기 원천 사이트가 결정할 수 있도록 상기 원천 사이트(102)에 통지(notification)를 전송하는 단계를 포함하는 방법.
  9. 제 7 항에 있어서, 상기 환경은 개방형 통신 네트워크(110)을 포함하는 방법.
  10. 제 9 항에 있어서, 상기 통신 네트워크(110)는 인터넷인 방법.
  11. 제 6 항에 있어서, 상기 지문은 단방향 해쉬 기능인 방법.
  12. 분포된 컴퓨팅 환경의 신뢰 사이트에서 실행된 방법에 있어서,
    원천 사이트(102)로부터 소프트웨어 에이전트(400)를 수신하는 단계와,
    원천 에이전트 지문을 발생하는 단계와,
    에이전트 복귀 타이머를 발생하는 단계와,
    상기 소프트웨어 에이전트를 목표 사이트(106)에 전송하는 단계와,
    상기 에이전트의 복귀를 감시하는 단계와,
    상기 에이전트 복귀 타이머가 실행되면 상기 원천 사이트에 타임아웃 통지를 전송하는 단계와,
    상기 에이전트 복귀 타이머가 타임아웃되기 전에 상기 에이전트가 상기 목표 사이트(106)로부터 복귀하면, 복귀 에이전트 지문을 발생하는 단계와,
    상기 원천 에이전트 지문과 상기 복귀 에이전트 지문을 비교하여 검증 결과를 형성하는 단계와,
    상기 원천 사이트(102)에 검증 결과를 전송하는 단계를 포함하는 방법.
  13. 제 12 항에 있어서, 에이전트 지문을 발생하는 단계는 에이전트(400) 자체를 전체적으로 또는 부분적으로 이용하는 취득 단계를 생성하는 방법.
  14. 제 12 항에 있어서, 다른 단계들에서 시작하는 행동들을 로깅(logging)하는 단계를 포함하는 방법.
  15. 제 12 항에 있어서, 상기 환경은 개방형 통신 네트워크(110)를 포함하는 방법.
  16. 제 15 항에 있어서, 상기 통신 네트워크(110)는 인터넷인 방법.
  17. 신뢰 사이트에서 실행된 소프트웨어 에이전트에 있어서,
    일련의 루팅 필드와,
    상기 에이전트가 목표 사이트에서 신뢰 사이트로 복귀할 때, 상기 신뢰 사이트에 의해 실시되도록 정리된 일련의 고정 규칙들과,
    상기 신뢰 사이트가 상기 에이전트를 복귀 에이전트로서 식별할 수 있는 새로운 에이전트 플래그 필드와,
    작업을 수행하는 동안 수정되지 않은 채 유지되도록 설계된 실시가능 코드 및 고정 데이터를 포함하는 고정 코드 필드, 및
    작업을 수행하는 동안 수정되지 않도록 설계된 가변 실시가능 코드 및 가변 데이터를 포함하는 가변 코드 필드를 포함하는 소프트웨어 에이전트.
  18. 제 17 항에 있어서, 사용자 사이트를 식별하며 다른 특정한 정보는 로크아웃시키는 보안 필드를 더 포함하는 소프트웨어 에이전트.
  19. 제 17 항에 있어서, 상기 일련의 규칙들은, 상기 에이전트가 상기 신뢰 사이트에 복귀하면, 규칙에 기초한 정보와 가변 필드들에 있는 정보를 비교하여, 소정의 에이전트 작업이 선정된 방법 내에서 실행되었는지를 결정하도록 설계된 소프트웨어 에이전트.
  20. 제 19 항에 있어서, 상기 규칙에 기초한 정보는 상기 에이전트와 관련된 각각의 가변 데이터에 대해 수용가능한 범위 값들을 포함하는 소프트웨어 에이전트.
KR1020007009219A 1998-12-21 1999-11-29 소프트웨어 에이전트와 에이전트 행동의 검증 방법 KR100711017B1 (ko)

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
KR20010041169A true KR20010041169A (ko) 2001-05-15
KR100711017B1 KR100711017B1 (ko) 2007-04-25

Family

ID=22810978

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007009219A KR100711017B1 (ko) 1998-12-21 1999-11-29 소프트웨어 에이전트와 에이전트 행동의 검증 방법

Country Status (10)

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

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
US7243230B2 (en) 2001-11-16 2007-07-10 Microsoft Corporation Transferring application secrets in a trusted operating system 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
EP1315066A1 (en) * 2001-11-21 2003-05-28 BRITISH TELECOMMUNICATIONS public limited company Computer security system
AUPS169002A0 (en) 2002-04-11 2002-05-16 Tune, Andrew Dominic An information storage system
AU2003213875B2 (en) * 2002-04-11 2009-05-28 Endresz, Allan An information storage system
US7890771B2 (en) 2002-04-17 2011-02-15 Microsoft Corporation Saving and retrieving data based on public key encryption
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
US20030216927A1 (en) * 2002-05-17 2003-11-20 V. Sridhar System and method for automated safe reprogramming of software radios
US7676541B2 (en) * 2002-05-30 2010-03-09 Microsoft Corporation Peer communication channel partitioning
US7043522B2 (en) * 2002-05-30 2006-05-09 Microsoft Corporation Unbounded computing space
US7478233B2 (en) * 2002-05-30 2009-01-13 Microsoft Corporation Prevention of software tampering
US7634806B2 (en) * 2002-05-30 2009-12-15 Microsoft Corporation Peer assembly inspection
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
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
US7469418B1 (en) 2002-10-01 2008-12-23 Mirage Networks, Inc. Deterring network incursion
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
US7624110B2 (en) * 2002-12-13 2009-11-24 Symantec Corporation 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
US7739337B1 (en) 2005-06-20 2010-06-15 Symantec Corporation Method and apparatus for grouping spam email messages
US8010609B2 (en) * 2005-06-20 2011-08-30 Symantec Corporation Method and apparatus for maintaining reputation lists of IP addresses to detect email spam
US8090945B2 (en) * 2005-09-16 2012-01-03 Tara Chand Singhal Systems and methods for multi-factor remote user authentication
WO2007038245A2 (en) 2005-09-23 2007-04-05 Widevine Technologies, Inc. Method for evolving detectors to detect malign behavior in an artificial immune system
US8065733B2 (en) 2005-09-23 2011-11-22 Google, 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 三菱電機株式会社 ソフトウェア配布サービス方式
ATE305682T1 (de) * 1994-07-19 2005-10-15 Certco Llc Verfahren zur sicheren anwendung digitaler unterschriften in einem kommerziellen verschlüsselungssystem
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
EP1057097B1 (en) 2004-10-27
WO2000038034A1 (en) 2000-06-29
CN1298499A (zh) 2001-06-06
DE69921454T2 (de) 2005-10-13
JP4553491B2 (ja) 2010-09-29
TWI223738B (en) 2004-11-11
AU1387400A (en) 2000-07-12
US6330588B1 (en) 2001-12-11
JP2002533799A (ja) 2002-10-08
EP1057097A1 (en) 2000-12-06
CN1174302C (zh) 2004-11-03
DE69921454D1 (de) 2004-12-02
KR100711017B1 (ko) 2007-04-25
ES2230919T3 (es) 2005-05-01

Similar Documents

Publication Publication Date Title
KR100711017B1 (ko) 소프트웨어 에이전트와 에이전트 행동의 검증 방법
US7046995B2 (en) Mobile application peer-to-peer security system and method
US6944772B2 (en) System and method of enforcing executable code identity verification over the network
US5919258A (en) Security system and method for computers connected to network
US6393568B1 (en) Encryption and decryption system and method with content analysis provision
US7058968B2 (en) Computer security and management system
US7415509B1 (en) Operations architectures for netcentric computing systems
US6785821B1 (en) Intrusion detection system and method having dynamically loaded signatures
US7836174B2 (en) Systems and methods for grid-based data scanning
US20100287271A1 (en) System and Method for Restricting Data Transfers and Managing Software Components of Distributed Computers
US20060026422A1 (en) Method, apparatus, and product for providing a backup hardware trusted platform module in a hypervisor environment
JP2016201115A (ja) マルウェアに対処するための方法及び装置
US20070094323A1 (en) Managed resource sharing method and apparatus
Safford et al. The TAMU security package: An ongoing response to internet intruders in an academic environment
US7143441B2 (en) Wireless device mobile application security system
CN113179271A (zh) 一种内网安全策略检测方法及装置
US7603452B1 (en) Networked computer environment assurance system and method
Bishop et al. The threat from the net [Internet security]
KR100456512B1 (ko) 커널 백도어 탐지 시스템, 이를 이용한 커널 백도어 탐지방법 및 커널 데이터 복구 방법
US7269845B1 (en) Mobile application security system and method
CN100555237C (zh) 用于检测和防止回放攻击的方法和系统
AU2001267054B2 (en) Mobile application peer-to-peer security system and method
US7669207B2 (en) Method for detecting, reporting and responding to network node-level events and a system thereof
KR102364737B1 (ko) 동적 url을 이용한 에이전트 자동설치 방법
AU2001267054A1 (en) Mobile application peer-to-peer security system and method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130415

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140418

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160406

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170411

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180412

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190416

Year of fee payment: 13