KR20000068092A - 방법 및 장치 - Google Patents

방법 및 장치 Download PDF

Info

Publication number
KR20000068092A
KR20000068092A KR1019997001101A KR19997001101A KR20000068092A KR 20000068092 A KR20000068092 A KR 20000068092A KR 1019997001101 A KR1019997001101 A KR 1019997001101A KR 19997001101 A KR19997001101 A KR 19997001101A KR 20000068092 A KR20000068092 A KR 20000068092A
Authority
KR
South Korea
Prior art keywords
terminal user
user system
program
data
execution
Prior art date
Application number
KR1019997001101A
Other languages
English (en)
Other versions
KR100473022B1 (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
Priority claimed from GBGB9616783.8A external-priority patent/GB9616783D0/en
Priority claimed from GBGB9703773.3A external-priority patent/GB9703773D0/en
Application filed by 사이트릭스 시스템스(캠브리지) 리미티드 filed Critical 사이트릭스 시스템스(캠브리지) 리미티드
Publication of KR20000068092A publication Critical patent/KR20000068092A/ko
Application granted granted Critical
Publication of KR100473022B1 publication Critical patent/KR100473022B1/ko

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/009Trust

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Glass Compositions (AREA)
  • Diaphragms For Electromechanical Transducers (AREA)
  • Stored Programmes (AREA)
  • Preparation Of Compounds By Using Micro-Organisms (AREA)
  • Selective Calling Equipment (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Debugging And Monitoring (AREA)
  • Saccharide Compounds (AREA)
  • Seal Device For Vehicle (AREA)
  • Sink And Installation For Waste Water (AREA)

Abstract

본 발명은 외부 소스로부터 하나 또는 그 이상의 모빌 프로그램 성분을 포함하거나 그들에 연관된 입력 데이터에 따라 동작하도록 프로그램된 단말 사용자 컴퓨터 시스템을 제공하는데, 단말 사용자 컴퓨터 시스템은
a. 상기 입력 데이터 스트림은 그 데이터 스트림과 연관되거나 그 스트림에 존재하는 모빌 프로그램 성분을 확인하기 위해 스크린되며;
b. 모빌 프로그램 성분의 선택된 일부 또는 전부가 소정의 방법으로 작동을 실행하기전 상기 단말 사용자 시스템 내 또는 그것으로부터 선택적으로 분리된 하나 또는 그 이상의 프로그램 실행 로케이션에 패스되며;
c. 상기 실행 로케이션은 하나 또는 그 이상의 프로그램 성분이 보유된 것이며 데이터 스트림의 외부 소스와 하나 또는 그 이상의 인터페이스를 가지며 상기 단말사용자 시스템과 하나 또는 그 이상의 인터페이스를 가져 그로인하여 외부 소스 데이터 및/또는 상기 사용자 시스템에 의해 유지된 데이터 및/또는 프로그램과 대화하기 위하여 상기 실행 로케이션 내의 프로그램 성분이 상기 실행 로케이션 내에서 실행되며,
d. 상기 실행 로케이션 및 상기 단말 사용자 시스템간의 인터페이스 동작은 지정된 제어방법 및/또는 지정된 방법으로 동작되는 프로그램 으로 상기 실행 로케이션 내에서 프로그램 성분에 의해 인터페이스된 데이터만이 상기 단말 사용자 시스템으로 및 상기 단말 사용자 시스템으로부터 패스될 수 있도록 프로그램된 것을 특징으로 한다.

Description

단말 사용자 컴퓨터 시스템 및 그 동작방법{METHOD AND APPARATUS}
〈2〉 독립형 시스템(stand alone) 혹은 네트워크 컴퓨터 시스템의 사용자는 단말사용자시스템을 집합적으로 호출하는데 프로그램의 일부 또는 전체 또는 데이터를 가져올 필요성을 종종 갖고 있으며, 외부 소스로부터 프로그램의 성분을 집합적, 개별적으로 호출하여 단말 사용자 시스템이 원하는 방법으로 작동할 수 있게 한다. 텀 프로그램 성분(term program component)은 여기서 지정 방법으로 시스템을 작동하기 위하여 컴퓨터 시스템에 의하여 해석된 재료를 표시하기 위하여 사용되고, 반면 데이터는 컴퓨터 시스템이 프로그램 성분의 지시 하에 작동하는 정보 재료이다.
〈3〉 특히 은행과 다른 금융기관 등의 사용자는 인커밍 프로그램 성분과 데이터를 검사할 수 있는 필요성을 갖는데 이는 그와 같은 성분들이 훼손되지 않도록 하기 위한 것이거나 또는 그들의 단말 사용자 시스템 내에서 유지되는 동작 프로그램과 데이터에 역으로 영향을 주지 않기 위함이다. 이는 특히 네트워크 내에 동작하는 컴퓨터 시스템이 많이 있고, 네트워크 또는 컴퓨터 시스템에서 네트워크가 외부 데이터와 프로그램 소스에의 접근이 이루어지는 수많은 포인트를 가지고 있는 곳에서 중요하다.
〈4〉 시스템이 폐쇄 네트워크이고 데이터 또는 프로그램 성분가 동일한 네트워크 내에서 다른 유닛으로부터 제공되는 곳에서 사용자는 데이터와 프로그램 성분가 네트워크의 지정유닛에서 유지되는 데이터와 프로그램과 역으로 상호작용 할 수 있는 재료를 포함하지 않는 것을 스스로 만족할 수 있다. 그와 같은 만족은 전형적으로 프로그램 내에 에라(errors) 또는 잘못된 성분(adverse components)이 없다는 것을 확신하는 컴퓨터 리스팅(listings)의 검사를 포함한다. 그러나, 프로그램 또는 입력된 프로그램 성분가 크고 복잡한 곳에서 그와 같은 검사와 실증(inspection and verification)은 과도하게 시간을 소비하고 비용이 비싸므로 실질적이지 못하다는 문제가 있다.
〈5〉 단말 사용자 네트워크 또는 독립형 시스템이 네트워크의 외부 소스로부터 데이터 혹은 프로그램 성분을 받는 곳에서, 예를 들면 인터넷 혹은 외부 데이터 베이스, 단말 사용자 시스템 내에 이미 유지된 데이터 혹은 프로그램과 역으로 작용할 수 있는 프로그램 성분의 고의적인 또는 우발적인 도입의 위험이 증가한다. 외부 데이터 소스는 하나 이상의 크고 복잡한 프로그램 하에서 작동되어질 수 있고 계속적인 업데이팅(updating)과 교정(revision)이 이루어지므로 단말 사용자 시스템이 역으로 작동 재료(acting material) 가져오는 것을 확증하기 위하여 프로그램과 프로그램의 모든 교정을 효율적으로 검사하는 것은 불가능하다.
〈6〉 단말 사용자 시스템에서 유지되는 데이터 또는 프로그램의 손상 혹은 훼손을 일으키는 또는 단말 사용자 시스템 내로 가져올 때 다른 악영향을 미칠 수 있는 프로그램 성분의 수많은 형태가 있다. 그와 같은 프로그램 성분은 단말 사용자 시스템의 동작 프로그램 또는 데이터를 교정하기 위하여 일부러 디자인된 것들; 단말 사용자시스템으로부터 기밀 데이터를 수집하고 단말 사용자가 그와 같은 비 권한적인 전송 혹은 데이터의 절도가 발생한다는 것에 대한 인식 없이 외부위치로 데이터를 전송하는 것들; 그리고 단말 사용자 시스템의 사용자의 완전하고 적절한 사용을 부정하는 프로그램, 예를 들면 단말 사용자 시스템의 컴퓨팅 용량을 소비하는 폐쇄 회로 동작을 반복적으로 도입하거나 또는 단말 사용자 시스템의 영역에 접근하는 것을 부인하는 등의 것을 포함한다. 그와 같은 프로그램 성분은 바이러스, 제퍼스(zappers), 호스틸 어플렛(hostile Applets), 트로잔 호스(Trojan Horses) 그리고 서비스 부인자(service deniers)로 알려져 있고, 지금부터는 바이러스로 언급되어질 것이다. 시스템의 적절한 동작에 훼손을 일으키거나 또는 역으로 상호작용 하는 곳에서 그와 같은 바이러스 프로그램 또는 프로그램 성분의 단말 사용자시스템 내로의 고의적인 배포에 대한 관심이 증대되어가고 있다. 그와 같은 바이러스들은 계획적인 손상을 주지 않을 수 도 있지만 우연하게 경제적인 손실과 피해를 야기할 수 있다. 단말 사용자는 그런 바이러스를 찾기 위하여 폐쇄 네트워크 내에서 반복적으로 데이터와 프로그램을 검사할 수 있는 반면에, 그런 바이러스를 위하여 외부 데이터와 프로그램 소스를 검사할 수 없고 시스템 내로 바이러스를 가져올 수 있는 외부소스로부터 데이터나 프로그램 성분의 입력에 대한 위험을 감수하여야만 한다.
〈7〉 단말 시스템과 해로운 작용을 할 수 있는 외부소스로부터 재료를 입력하는 위험을 감소하기 위하여, 그 재료의 소스를 확인하기 위하여 입력데이터와 프로그램 또는 프로그램 성분 전부를 스크린 하는 것은 극히 보통이다. 오직 지정소스로 부터의 재료만 단말 사용자 시스템 내로 접근이 허용된다. 단말 사용자는 단말 사용자 또는 소스에 의하여 검사되어진 데이터 및/또는 프로그램을 그런 소스가 제공하는 것을 스스로 만족할 수 있다. 또, 사용자는 단말 사용자에게 이용될 수 있는 어떤 프로그램 성분에서 프로그램 성분에 가능한 불리한 작용을 하는 존재를 감소하고, 프로그램을 컴파일 하는데 있어서 정확성에 대한 평판으로 재료의 소스에서 확신을 가질 수 있다. 그와 같은 스크린은 컴퓨터 분야에서 파이어월(firewalls)으로 알려져 있고 인커밍 재료(incoming material)가 지정 통신 어드레스로부터 온다면 패스하는 것을 허용하기 위하여, 또는 지정 소스로부터 오지 않는다면 인커밍 재료를 파괴하는 것을 허용하기 위하여 통신 하드웨어 레벨에서 일 방향으로 작용한다.
〈8〉 그러나, 파이어월은 지정되지 않은 소스로부터의 데이터와 프로그램이 단말 사용자시스템의 작동자에 의하여 접근되는 것을 막는다. 이는 검사되고 권한을 가질 때까지 다른 소스에 사용자가 접근하는 것을 제한한다. 더 나아가 외부소스가 크고 복잡한 프로그램 하에서 작동되는 곳에서, 그와 같은 검사는 실질적이지 않고 외부소스로의 접근에 대한 권한은 단말 사용자 시스템의 완전성을 파괴할 수 있다.
〈9〉 이들 문제들은 단말 사용자 시스템으로부터 접근 가능한 데이터와 프로그램의 외부소스가 많을 경우 악화될 수 있다. 그리하여 단말 사용자 시스템에서 그 와같은 억세스 포인트의 수를 제안하여 모든 인커밍 재료가 완전히 승인된 억세스 포인트에서 완전히 스크린 되도록 하는 것이 제안되어 왔다. 이는 예를 들어 웹 프록시(web proxy)로 알려져 있는 위치에 인커밍 재료를 분산 시키므로서 이루어질 수 있는데 그 위치에서 시스템 매니저는 단말 사용자에 패스되기 전에 이를 검사할 수 있다. 그러나, 이는 시스템의 동작에서 과도한 병목현상(bottle necks)을 일으킬 수 있고 네트워크에서 어떤 주어진 단말 컴퓨터 시스템으로부터 외부로스를 억세스하는 것을 지연시킬 수 있다. 더 나아가, 인커밍 재료의 검사는 올바르게 동작하도록 의도되었으나 잘못되게 동작할 수 있는 프로그램 요소를 확인(identify)할 수 없다. 이들은 종종 웹 프록시를 우회 하므로서 단말 사용자 시스템에 직접적으로 패스되고 여기서 이는 잠정적인 해로운 효과를 가지고 실행된다. 부가적으로, 인커밍 데이터의 수용은 수용 소스(accepted source)로서 그런 데이터의 소스의 동일성(identification)에 기초하는 곳에서 에라 또는 문제가 없이 재료를 발생하는 능력과 그 소스의 완전성에 좋지 않은 신뢰성을 발생한다.
〈10〉 또한, 단말 사용자 시스템 내에 하나 또는 그 이상의 바이러스 검사 프로그램을 제공하는 것은 보통이다. 이들은 단말 시스템 내에서 바이러스 프로그램이 실행되기 전에 바이러스 프로그램의 특성 패턴을 인식하고 바이러스 프로그램을 파괴시키도록 작동한다. 이 탐지 프로그램은 또한 바이러스가 부착하여 잠복중인 동작 프로그램상의 지정 사이트를 인식한 다음에 그와 같은 사이트에서의 바이러스가 존재하여 변화가 생길 때 실행되어 탐지한다. 그러나, 이는 탐지 프로그램이 지정된 특징이나 패턴을 인식할 것을 요구하고, 확인되고 중립화될 수 있기 전에 단말 사용자 시스템 내로 바이러스가 입력될 필요가 있다. 더 나아가, 바이러스는 바이러스 탐지프로그램에 의하여 인식되어지지 않는, 예를 들면 새로운 바이러스 또는 이미 존재하는 것의 변이등의 것(variants), 곳에서 바이러스는 탐지되지 않을 수 있고 단말사용자 시스템 내에서 실행될 수 있다.
〈1〉 많은 에플리케이션에서, 프로그램 성분으로부터 단말 사용자 시스템 내에 유지된 프로그램의 실행을 강화하기 위하여 데이터 소스로부터 프로그램 성분을 제공하는 것이 바람직하다. 예를 들면, 자바(JAVA) 또는 자바스크립트(JAVASCRIPT) 언어로 씌여진 많은 데이터 소스는 모빌 프로그램 성분 또는 애플릿(Applets)을 이용한다. 이 프로그램 성분는 단말 사용자 시스템이 데이터를 효율적으로 다루기 위하여 외부 소스로부터 데이터 스트림 내에 포함될 수 있다. 예를 들면, 에플렛(Applets)은 예를 들면 단말 사용자 시스템에서 이미 유지된 데이터로부터 단말 사용자 시스템 비디오 스크린 상에서 그래픽 이미지의 애니메이션을 얻기 위한 액션의 스크립 화된 시퀀스(scripted sequence)를 수행하기 위하여 리얼 타임(real time)으로 단말사용자가 외부 데이터 소스와 상호작용 할 수 있게 할 수 있다. 이는 외부 소스로부터 각 이미지를 위한 데이터를 전송할 필요성을 없애주고 따라서 단말 사용자 시스템의 동작을 촉진시킨다. 또한, 그런 프로그램 성분은 외부 소스에서 지정 어드레스에 유지되고 인커밍 정보 스트림은 특성 플래그(characteristic flag) 또는 단말 사용자 시스템을 경고하는 타 식별자(identifier)를 포함하여 외부 소스와 프로그램 성분가 다운로드 되어야 할 어드레스로부터 프로그램 성분을 다운로드할 필요가 있다. 그런 프로그램 성분은 여기서 외부 소스로부터 인커밍 데이터 스트림과 연합되어지는 것으로 언급된다. 단말 사용자 시스템의 오퍼레이터(oprerator)는 실행되어야 할 단말 사용자 시스템 내로 필요한 프로그램 성분을 다운로드한다.
〈12〉 그와 같은 프로그램 성분은 단말 사용자 시스템 내로 입력되어 그 시스템 내에서 실행되고 단말 사용자 시스템 내에서 유지되는 데이터와 프로그램 성분와 이로운 방법으로 상호작용 하도록 되므로 텀 모빌(termed mobile) 이다. 그것들은 단말 사용자 시스템에 의하여 수용되어야할 필요가 있다. 그들은 어떤 파이어월을 통과하고 바이러스 탐지 프로그램에 의하여 거절되거나 파괴되지 않는다. 권한을 가진 소스로부터 들어오는 것과 같이 ,예를 들면 성분가 개별적으로 검사되어진 곳, 프로그램 성분을 확인하기 위하여 암호법 적으로 프로그램 성분을 사인하고 봉인하는것이 제안되어 왔다. 그러나, 이는 단말 사용자에게 완정성에서의 전적인 신뢰와, 그들이 제공하는 프로그램 성분을 사인하고 봉인하는 암호법적인 조직의 권능을 주는 것이 필요하다.
〈13〉 외부소스로부터 입력된 프로그램 혹은 프로그램 성분가 크고 복잡하며 및/또는 계속적으로 업데이트(update)되는 곳에서, 네트워크 브라우저 프로그램에서와 같이, 그런 프로그램 혹은 프로그램 성분에 높은 신뢰를 제공하는 것은 가능하지 않다. 이는 그런 프로그램 성분의 사용이 주어진 곳에서의 잇점에 대하여 균형이 잡힐 때 단말 사용자 시스템의 오퍼레이터에게 승인될 만한 위험이 존재할 수 있다.
〈14〉 더 나아가, 확실성(autentification) 또는 확인된 소스 기준(identified source criteria)을 만족하는 반면, 그런 모빌 프로그램 성분은 단말 사용자 시스템 내에서 부정확하게 해석되어질 수 있고, 및/또는 고의로 또는 우연히 단말 사용자 시스템에 의하여 이미 유지된 프로그램 성분 및/또는 데이터와 불리하게 작용할 수 있다. 이는 단말 사용자 오퍼레이터에(operator) 문제를 일으킨다. 반면, 모빌 프로그램 구성 요소의 입력은 단말 사용자 시스템의 적절한 동작을 위하여 바람직하다. 그러나 단말 사용자 시스템에 의하여 유지된 다른 프로그램 과 동작에 손상과 데이터의 훼손을 일으킬 수 있다. 종래의 파이어월 혹은 바이러스 탐지 프로그램은 시스템의 적절한 동작을 막지 않고 단말 사용자 시스템을 보호할 수 없다. 상술한데로, 입력된 데이터 스트림을 고정위치로 분산하는 것, 예를 들어 데이터 스트림 내의 어떤 프로그램 성분은 검사되어 설치되고 그들은 이행될 단말 사용자 시스템에 패스되기 전에 단말 사용자 시스템에 수용될 수 있는, 단말 사용자 시스템 매니저에 의하여 작동되는 터미널은 전체적으로 양호한 프로그램 성분과 이상하게 작동될 수 있는 프로그램 성분 사이에서 구별을 할 수 없다.
〈15〉 외부 소스로부터 바람직한 모빌 프로그램 성분의 고의적인 또는 우연한 상호작용의 문제는 컴퓨터 산업에서 중요한 문제로 인식되어져 왔으나, 아직까지 효과적인 해결책이 제시되지 못하였다.
〈16〉 우리는 여기서 외부소스로부터 입력된 그와 같은 다른 바람직한 모빌 프로그램 성분의 잘못된 효과로부터 단말 사용자 시스템이 보호될 수 있는 방법과 장치를 개발하였다. 본 발명에 관한 방법은 또한 프로그램 성분 또는 성분과 같은 타입을 실행하기 위하여 지정하여 지정된 서버에 인커밍 데이터 스트림으로부터 선택적으로 프로그램 성분을 지시하기 위하여 사용될 수 있다. 이 방법에서, 큰 프로그램 성분은 단말 사용자 시스템의 나머지와 단말 사용자 시스템에 전달된 실행의 결과로부터 분리된 서버에서 실행될 수 있다. 이는 크고 복잡한 프로그램 성분가 이 목적만을 위한 서버에서 실행되게 하며 이들 프로그램 성분을 실행할 수 있는 단말 사용자 시스템에서 단말 사용자에게 크고 복잡한 터미널을 제공하기 위한 필요성을 없애준다. 더 나아가, 동일 인커밍 데이터 스트림으로부터 복수의 선택된 프로그램 성분가 서로 분리된 상이한 실행 로케이션으로 향해질 수 있고 그래서 프로그램 성분의 상이한 타입을 다루는 안정성이 강화된다. 지정 타입의 프로그램 성분가 실행되는 서버를 선택하므로서 실행되어야 할 프로그램 성분에 그 서버가 동작하도록 맞추는 것이 가능하고 그래서 실행 로케이션이 단말 사용자 시스템에 제공되는 정책 혹은 안정 방법에서 더욱 분명하게 된다.
〈1〉 본 발명은 내부에서 인커밍 스트림(incoming stream)이 해석되어지고 실행되어질수 있는 프로그램 성분에서 데이터의 인커밍 스트림의 일부분을 외부 소스에서 선택된 위치로 선택적으로 지시(directing)하기 위한 방법 및 그 장치에 관한 것이다. 이는 외부 소스로부터 시스템 내부로 가져오는 모빌 프로그램 성분에 의하여 컴퓨터 시스템의 단말 사용자 네트워크(an end user network)에서 유지되는 프로그램 혹은 데이터의 붕괴 또는 손상의 위험을 감소시킨다. 본 발명은 또한 인커밍 데이터 스트림에서 대용량의 프로그램 성분을 지정 서버상에서 해석할 수 있고 실행할 수 있게 하여 다운스트림 단말 사용자 컴퓨터 시스템(downstream end user computer system)에서 프로세서(processors)상의 로드를 감소시킨다. 이는 다운스트림 시스템에서 개개 터미널에 큰 프로세싱 용량에 대한 필요성을 감소시킨다. 본발명은 또한 본 발명에 관한 방법을 사용하여 작동하기 위한 프로그램화된 또는 개량된 컴퓨터 시스템에 관한 것이다.
〈17〉 발명의 요약
〈18〉 따라서, 본 발명은 데이터 스트림과 연합되거나 혹은 포함된 외부 소스로부터 하나 혹은 그 이상의 모빌 프로그램 성분을 가진 입력된 데이터 스트림에 대하여 동작하기 위하여 프로그램된 단말 사용자 컴퓨터 시스템을 제공하는 것에 관한 것으로서,
〈19〉 a. 데이터 스트림과 연합하거나 혹은 내부 존재하는 모빌 프로그램 성분를 확인하기 위하여 인커밍 데이터 스트림을 스크린하고,
〈20〉 b. 원하는 방법으로 동작을 실행하기 앞서서 단말 사용자 시스템내에서 또는 시스템으로부터 선택적으로 분리된 하나 혹은 그 이상의 프로그램 실행 로케이션에 선택된 일부 혹은 전부의 모빌 프로그램 성분을 패스하고,
〈21〉 c. 실행 로케이션에 하나 혹은 그 이상의 선택된 프로그램 성분가 유지되고, 데이터 스트림의 외부 소스에 하나 혹은 그 이상의 인터페이스를 구비하고 단말 사용자 시스템에 하나 혹은 그 이상의 인터페이스를 구비 하므로서 실행 로케이션내의 프로그램 성분은 데이터의 외부소스와 및/또는 데이터와 및/또는 단말 사용자 시스템에 의하여 유지된 프로그램과 상호작용하기 위하여 실행 로케이션 내에서 실행되어질 수 있게 하며,
〈22〉 d. 실행 로케이션과 단말 사용자 시스템사이의 인터페이스의 동작은 프로그램 되어 지정되고 조정된 방법으로 실행 로케이션 내에서 프로그램 성분에 의하여 유일하게 상호작용 하는 데이터, 및/또는 지정방법으로 동작하는 프로그램 성분가 단말사용자 시스템으로부터 그리고 시스템으로 패스되어지는 것을 특징으로 한다.
〈23〉 본 발명의 바람직한 실시예 에서, 인커밍 데이터 스트림에 프로그램 성분을 대체하기 위한 스탠드(stand)는 편의상 프록시 애플릿(proxy Applet)으로 알려져 있으며, 단말 사용자 시스템에 존재하고 실행 로케이션으로부터 데이터를 수용하고 활동한다. 프폭시 애플릿은 단말 사용자 시스템상에서 분리되어 선택된 프로그램 성분의 활동을 모방하고 브라우저 프로그램에 접근하는 형태일 수 있으며 프로그램 성분으로서 동일언어로 제공될 수 있어 브라우저의 광범위한 교정에 대한 요구 없이 모방하는 프로그램 성분인 것처럼 브라우저 프로그램에 의하여 보여질 수 있다.
〈24〉 분리된 실행 로케이션은 단말 사용자 시스템이 프록시 애플릿에 제공하는 것처럼 동일 인터페이스를 분리된 프로그램 성분에 제공하여 둘을 위한 오퍼레이팅 환경이 실질적으로 동일하다. 분리된 프로그램 성분에 의하여 실행 로케이션내에서 인터페이스에 만들어진 오퍼레이팅 요청은 단말 사용자 시스템상에서 동일한 인터페이스에 오퍼레이팅 요청을 재 발행하는 단말 사용자 시스템에서 존재하는 프록시 애플릿에 통신 프로토콜을 넘어 전달된다. 이 방법에서 완전히 검사되고 확증된 단말사용자 인터페이스의 서브 세트(sub-set) 만이 실행 로케이션에서 조정된 방법으로 이용되어질 수 있다. 이들 오퍼레이팅 요청을 중재하는 데이터 스트림은 또한 엄격하고 정확하게 지정되고 확증된 명세서(specification)로부터 이탈을 탐지하기 위하여 스크린 되어질 수 있다.
〈25〉 본 발명에서 실행 로케이션은 예를 들면 단말 사용자 시스템에 억세스게이트웨이(access gateway)와 연합한 단말 사용자 시스템의 일부 혹은 전부로서 동일한 물리적 사이트상에 위치될 수 있다. 또한, 단말 사용자 시스템의 다운스트림 잔류자(downstream remainder)로부터 떨어져 위치할 수 있다. 게다가, 실행 로케이션는 단말 사용자 시스템 자체 내에 위치될 필요가 없으며 데이터와 프로그램 성분의 외부 소스와 다운스트림 단말 사용자 시스템 사이에서 방어 분리 스크린으로서 위치될 수 있다. 편리하게, "단말 사용자 시스템내에(within the end user system)"란 문구는 여기서 단말 사용자 시스템의 하나 혹은 그 이상의 컴퓨터 유닛내에 실행 로케이션이 제공되는 경우를 나타낼 것이며, "단말 사용자 시스템의 외부(external to the end user system)"란 문구는, 단말 사용자 시스템으로서 동일한 지리적 사이트상에 위치될 수 있는 반면, 단말 사용자 시스템으로부터 분리된 컴퓨터 유닛 혹은 다른 수단을 나타내는 데 사용될 것이다.
〈26〉 단말 사용자 시스템의 잔류자로부터 분리된 실행 로케이션을 제공하므로서, 인커밍모빌 프로그램 성분은 단말 사용자 시스템 내에서 혹은 단말 사용자 시스템으로부터 선택적으로 분리되어 포함된다. 비록, 프로그램 성분은 실행 로케이션 내에서 잘못되게 동작할 수 있지만, 이는 지정되고 조정된 방법으로 단말 사용자 시스템과 상호작용하는 것만이 오직 허용되는데 예를 들면 오직 선택된 데이터를 패스하는 일반적인 유틸리지 인터페이스 오퍼레이팅을 거친다. 프로그램 오퍼레이팅 실행 로케이션은 비교적 작으므로, 단말 사용자는 원하는 기준을 달성하는 것을 확인하기 위하여 프로그램용 프로그램 리스팅(listing)을 검사할 수 있다. 오퍼레이터는 그래서 높은 수준의 신뢰를 갖을 수 있어 지정되고 원하는 방법으로 처리된 데이터만 혹은 원하는 방법으로 동작하는 프로그램 성분만 실행 로케이션로부터 단말 사용자시스템에 전달될 수 있다. 실행 로케이션을 위한 오퍼레이팅 프로그램은 또한 실행로케이션으로부터 단말 사용자 시스템에 프로그램 성분의 통과를 막을 수 있어서 단말 사용자 시스템내로 들어가는 바이러스 혹은 바람직하지 못한 프로그램 성분에 대한 위험을 최소화한다. 게다가, 실행 로케이션은 단말 사용자 시스템내에서 실행로케이션으로부터 지정 자원에 프로그램 성분의 접근을 제한하는 작용을 할 수 있다. 예를들면 서비스 부인 바이러스의 효력을 최소화하기 위하여 중앙 프로세서에 억세스 타임을 제한하는 것, 통신 억세스의 대역폭(bandwidth)을 제한하는 것, 혹은 하드 디스크 메모리내에서 어떤 디스크 블록의 억세스를 제한하는 것등이 있다.
〈27〉 실행 로케이션을 오퍼레이팅하는 프로그램은 단말 사용자 시스템 및/또는 지정 외부 소스내에서 지정 소스로부터만 혹은 지정 소스로만 데이터의 전달 혹은 수용을 허용하기 위하여 선택적으로 작성될 수 있다. 그래서 실행 로케이션에서 실행된 입력된 프로그램 성분은 단말 사용자 시스템에서 데이터베이스의 어떤 영역을 억세스할 수 없다. 예를 들면, 실행 로케이션은 구입 레저 데이터(purchase ledger data)상에서만 작용하기 위하여 프로그램될 수 있고 다른 것은 오직 개인 데이터에서만 작동되도록 프로그램 될 수 있다. 그러므로 일련의 실행 로케이션을 제공하는 것이 필요할 수 있고, 지정 데이터 소스와 데스티네이션상에서 개별적인 방법으로 작동하기 위하여 고안될 수 있다. 이는 각 실행 로케이션에 대한 오퍼레이팅 프로그램이 더 작아지게 할 수 있고 더 명확하게 할 수 있고 따라서 검사와 확증에 더욱 용이하다. 더 나아가, 본 발명의 범위내에는 서로 시리즈로 오퍼레이팅 하는 실행 로케이션의 많은 수의 타이어(tiers)을 제공하여 인커밍 데이터 스트림이 프로그램 성분의 정체, 그들의 소스 및/또는 기능이 확인되어지는 초기 실행 로케이션에 보내진다. 이 초기 실행 로케이션은 그 다음 지정 프로그램 성분이 보내지는 등의 다음 타이어에서 실행 로케이션을 선택할 수 있다. 이 방법에서, 한층 진보적이며 더욱 엄격한 안정 요청 또는 인커밍 데이터 스트림으로부터 프로그램 성분을 이용하기 위한 단말 사용자 시스템의 적절한 부분의 선택이 이들 프로그램 성분을 실행하기 위하여 명확하게 형성된 실행 로케이션에 일련의 단순한 스텝 및/또는 큰 프로그램 성분가 분리되어지고 지시되어 짐에 따라 응용될 수 있다.
〈28〉 편리하게, 본 발명은 여기서부터 단말 사용자 시스템의 외부 데이터의 데스티네이션 혹은 단일 외부 소스로 작동하고 단말 사용자 시스템 내에서 단일 데스티네이션로부터 또는 단일 데스티네이션으로 데이터를 전달하거나 수용하기 위한 프로그램된 실행 로케이션의 용어로 기술될 것이다. 그러나, 본 발명은 어떤 조합에서 복수의 외부 및/또는 단말 사용자 소스와 데스티네이션으로 오퍼레이팅하는 실행 로케이션에 응용되어질 수 있다.
〈29〉 실행 로케이션은 선택적으로 단말 사용자 시스템내 또는 시스템으로부터 분리된다. 즉 실행 로케이션은 오직 외부 소스와 단말 사용자 시스템과 인터페이스를 선택되고 조절된 방법으로 데이터 및/또는 프로그램 성분을 오직 수용하고 전달할 수 있다. 그래서, 실행 로케이션은 전형적으로 인텔리전스 레벨과 데이터 저장을 요구하여 외부 소스로부터 인커밍 모빌 프로그램을 수용하고 저장할 수 있으며, 그다음 외부소스로부터 및/또는 단말 사용자 시스템으로부터 데이터와 상호작용하기 위하여 실행 로케이션 내에서 이미 유지된 오퍼레이팅 프로그램의 조절하에 이들 프로그램 성분을 실행할 수 있다. 원한다면, 실행 로케이션에 필요한 오퍼레이팅 프로그램은 외부 소스로부터 훼손을 최소화하기 위하여 단말 사용자 시스템내에서 유지될 수 있고 단말 사용자 시스템의 절차를 시작하는 부분으로서 실행 로케이션에 전달된다. 하기에 설명한 바와 같이, 몇 개의 오퍼레이팅 프로그램은 다루어야할 타입의 데이터와 그 데이터상에서 수행되어지는 타입의 오퍼레이션에 의존하는 실행로케이션에 이용될 수 있다. 이 단말 사용자 혹은 시스템 관리자는 여러 가지 대체수단사이에서 선택이 이루어지는 실행 로케이션에 적절한 오퍼레이팅 프로그램을 로드하는, 예를 들어 지정 키보드 오퍼레이션의 수단이 구비되어질 수 있다.
〈30〉 실행 로케이션을 위한 필요한 처리와 데이터 저장 기능은 단말 사용자 시스템 네트워크 내에서 컴퓨터 유닛의 하나에 의하여 제공되거나 컴퓨터 유닛의 하나의 분리된 부분으로 제공되어져서 실행 로케이션은 단말 사용자 시스템내에 위치한다. 그러나 현재의 컴퓨터 아키택쳐(architecture)로 프로그램 성분가 실행되는 충분히 분리된 환경을 제공하는 것이 가능하지 않다. 그러므로 제한된 억세스 루트 혹은 실행 로케이션 유닛을 오퍼레이팅 하는 프로그램의 조절하에서 작동되는 단말 사용자 시스템과 실행 유닛사이에서 인터페이스를 제공하고 상호작용 하는 단말 사용자시스템으로부터 선택적으로 분리된 분리 피지컬 유닛(separate physical unit)으로서 실행 로케이션을 제공하는 것이 바람직하다. 이는 종래의 파이어월과 통신 프로토콜을 단말 사용자 시스템으로부터 실행 로케이션을 분리하기 위하여 사용될 수 있게 한다. 전형적으로 실행유닛은 자신의 프로세서와 메모리 용량(memory capability)을 갖는 종래의 컴퓨터가 될 것이다.
〈31〉 편리하게, 본 발명은 여기서 단말 사용자 시스템으로부터 물리적으로 분리된 그러나, 단말 사용자 시스템 네트워크에 데이터가 억세스 포인트를 입력하는 바와 같이 형성된 실행 로케이션으로서 작용하는 분리된 컴퓨터의 용어로 언급될 것이다.
〈32〉 실행 로케이션이 바람직하기로는 단말 사용자 시스템의 나머지로부터 그리고 나머지로 오직 데이터만 전송하는 반면, 단말 사용자 시스템에 프로그램 성분의 전송을 허용하도록 프로그램될 것이다. 그런 프로그램 유닛은 단말 사용자가 검사한 또는 높은 레벨의 신뢰를 갖는 프로그램에 의하여 실행 로케이션 내에서 검사되도록 될것이므로, 그런 전송된 프로그램 성분가 단말 사용자 시스템 내에서 이상하게 작동될 위험을 최소화한다. 실행 로케이션은 그래서 단말 사용자 시스템 내로 다운로드될 인커밍 프로그램 성분을 검사하고 확증하는데 사용되고 그들이 단말 사용자 시스템에 이르기 전에 바이러스 프로그램을 인터셉트(intercept)하는데 사용될 수 있다. 단말 사용자가 지정 프로그램 성분가 수용될 수 있다는 것을 확신할 수 있는 반면, 이 경우 그는 실행이치 내에서 검사되어질 필요가 없으며 단말 사용자 시스템으로 직접적으로 패스되어질 수 있다는 것을 느낄 수 있을 것이나, 이는 단말 사용자 시스템이 이들 프로그램 성분의 가능한 이상한 동작을 드러낼 것이다. 그러므로 인커밍 데이터 스트림과 연합하거나 혹은 내에서 모든 프로그램 성분을 실행 로케이션으로 통과할 것을 결정하는 것이 바람직하다.
〈33〉 편리하게, 본 발명은 여기서 단말 사용자 시스템에 데이터의 유일한 전송의 용어로 언급될 것이다.
〈34〉 상술한 바와 같이, 실행 로케이션이 단말 사용자 시스템과 실행 로케이션으로 데이터의 교환을 조절하기 위하여 기지정된 기준에 맞출때만 실행 로케이션과 단말 사용자 시스템사이에서 데이터를 전송한다. 외부소스로부터 데이터 스트림과 연합하거나 데이터 스트림에서 프로그램 성분의 존재를 확인하고 이를 성취하는데 요구되는 오퍼레이팅 프로그램은 초기 데이터와 결과적인 처리된 데이터에 필요한 단말사용자 시스템 내에서 소스와 데스티네이션에 관한 것을 갖는 종래의 프로그래밍기술을 사용하여 작성되어질 수 있다. 실행 로케이션을 오퍼레이팅 하는 프로그램은 실행 로케이션 내에서 전체적으로 유지되고 보충되어지는 반면에, 어떤 다른 위치에서 그 오퍼레이팅 프로그램의 일부를 위치 정하기 위한 것도 본 발명의 범위내이다. 그래서, 인커밍 재료에서 프로그램 성분을 확인하고 그것을 실행 로케이션(스내어, the snare)로 전환하는 프로그램의 일부는 단말 사용자 시스템의 각 오퍼레이팅 유닛에 위치될 수 있고, 예를 들면 브라우저 프로그램의 부분으로서, 또는 파이어월용 오퍼레이팅 프로그램에서 합병될 수 있다. 그러나 브라우저 프로그램에서 스내어 프로그램의 위치는 단말 사용자 시스템에서 각 오퍼레이팅 유닛이 필요한 스내어 프로그램이 제공될 것을 필요로 하고; 단말 사용자 시스템의 어떤연장(extension) 혹은 브라우저 프로그램의 변형(variation)이 스내어 프로그램이 오든 단말 사용자 오퍼레이팅 유닛에 존재하는 것을 확인하기 위하여 전체 단말 사용자 시스템의 재 프로그래밍(re-programming)을 필요로 한다는 것이 요구된다. 그러므로 실행 로케이션에서 작동되어질 오퍼레이팅 프로그램에서 외부 데이터 소스로부터 수용되어질 각 데이터 스트림을 위한 스태어 성분을 합병하는 것이 바람직하다.
〈35〉 상술한 바와 같이, 단일 실행 로케이션은 지정 데이터 상에서 지정 오퍼레이션을 얻기 위하여 사용될 수 있다. 그러나, 정보의 몇 개의 카테고리 상에서 및/또는 몇개의 소스로부터의 데이터와 및/또는 정보의 데스티네이션(destination)상에서 작용할 수 있는 실행 로케이션을 제공하는 것도 본 발명의 범위내이다. 이는 동시에 그리고 연속적으로 실행하기 위한 실행 로케이션을 위한 별도의 오퍼레이팅 프로그램을 필요로 할 수 있다. 또는, 분리 실행 로케이션이 제공되어지고 각각은 지정 데이터상에서 지정 오퍼레이션을 얻는다. 또한, 하나 이상의 실행 로케이션이 단말사용자 시스템이 외부 데이터 소스에 억세스 하는 각 포인트에 제공돠어질 수 있고 각각의 그와 같은 억세스 포인트는 외부 데이터 소스로부터 선택된 프로그램 성분을 사용하는 지정 데이터상에서 지정의 방법으로 작동하는 실행 로케이션을 가질수 있다. 단말 사용자 시스템의 오퍼레이터는 그래서 그 억세스 포인트에서 실행로케이션이 동작하는 오퍼레이팅 프로그램의 선택에 의하여 각 억세스 포인트에 억세스 되어지는 기능과 잠재적 소스를 확인할 수 있다. 이는 외부 소스로부터 단말사용자 시스템으로의 재료를 입력하는 것을 조절할 것이다.
〈36〉 또한, 본 발명에서는 동일 시스템의 다른 존(zones)으로부터 억세스하는 시스템 내에서 존을 창설하는 것, 또는 시스템의 존 사이에서, 하나는 정보의 외부 소스로 간주되고 다른 하나는 본 발명의 단말 사용자 시스템으로 간주, 억세스 포인터에 본 발명의 실행 로케이션를 제공함으로서 네트워크가 조절되는 것도 포함한다.
〈37〉 본 발명의 실행 로케이션이 외부소스로부터 단말 사용자 시스템내로 재료의 입력의 유일한 조절을 제공할 수 있는 반면에, 외부 소스 및/또는 단말 사용자 시스템으로부터 바람직하지 못한 프로그램 성분 및/또는 데이터의 전송을 금지하는 두 개의 파이어월 사이에서 실행 로케이션을 위치시키는 것이 바람직하다. 그와 같은 파이어월은 종래의 형태일 수 있고 단말 사용자 시스템으로 그리고 단말 사용자 시스템으로부터 재료의 흐름의 우선적 조정을 제공하므로서 실행 로케이션상에 부과된 로드를 감소하게 한다. 상술한 바와 같이, 실행 로케이션을 위한 오퍼레이팅 프로그램의 스내어(snare) 성분은 둘 모두의 파이어월을 위하여 오퍼레이팅 프로그램에서 통합되어질 수 있다. 그러나, 외부 훼손 혹은 공격으로부터 스내어 프로그램을 보호하기 위하여 스내어 프로그램은 외부 소스와 실행 로케이션사이에 위치한 파이어월의 외부 소스측상에 위치되지 않는 것이 바람직하다.
〈38〉 본 발명은 모빌 프로그램 성분 혹은 애플릿을 이용하는 자바(JAVA) 혹은 자바스크립트(JAVASCRIPT) 하에서 오퍼레이팅하는 데이터 소스에의 애플리케이션(application)이다. 이들은 단말 사용자 시스템에 의하여 실행되어지는데 이는 데이터가 단말 사용자 시스템을 따라 진행되어지고 외부 소스로부터 데이터를 수용하기 위하여 단말 사용자 시스템을 셋업(set up)하는 애플리케이션 프로그램을 주문을 받아 만들기 위함이다. 그러나 본 발명은 예를 들면, ActiveX, perl, tcl/tk, c, c++ 그리고 sh 및 그의 변형(variants)과 같은 다른 컴퓨터 언어와 오퍼레이팅시스템으로부터 프로그램 성분의 실행 로케이션에 인터셉션(interciption) 과 저장을 위하여 응용될 수 있다.
〈39〉 실행 로케이션에서 프로그램 성분가 바람직하지 않은 방법으로 동작하는 곳에서 그 잘못된 오퍼레이션의 결과는 실행 로케이션 내에서 유지되고 단말 사용자 시스템 혹은 외부소스에 전송되는 것이 허용되지 않는다. 실행 로케이션 내에서 잘못된 오퍼레이션의 탐지는 실행 로케이션 내에서 모든 데이터와 프로그램 성분을 삭제하고 리인스테잇(re-instate)하기 위하여 실행 로케이션이 클로스 다운(close down) 그리고 재초기화(re-initia1ise)하게 한다. 원한다면, 잘못된 오퍼레이션을 야기하는 프로그램 성분은 프로그램 성분의 소스를 확인하기 위한 감사(audit) 목적을 위하여 확인되어질 수 있다. 그래서 단말 사용자는 소스의 완전성을 검사할 수 있고 그 소스로부터 더한 데이터의 입력에 관하여 적절한 조치를 취할 수 있다.
〈40〉 실행 로케이션으로부터 재료의 삭제와 재 초기와 혹은 다른 연속적인 오퍼레이션은 종래의 프로그램밍 기술을 이용하여 수행되어질 수 있다. 실행 로케이션은그래서 희생적인 것으로 보여질 수 있고 단말 사용자 시스템의 너머지에 영향을 줌이 없이 재 초기화할 수 있다. 그러므로 프로그램 성분가 단말 사용자 시스템 내에서 유지된다면 요구되어질 수 있는 주된 리프로그래밍(re-programming)과 데이터의 리인스테잇먼트(re-instatement)를 피할 수 있다.
〈41〉 본 발명은 많은 다른 사용자 즉 공공 억세스 시스템(public access system)혹은 서비스 제공자에 의하여 억세스된 외부 시스템으로부터 데이터를 수용하는 단말 사용자 시스템의 관점에서 기술되었다. 그러나, 본 발명은 바이러스와 같은 바람직하지않은 프로그램 성분의 입력에 의하여 훼손으로부터 공공 억세스 데이터 베이스를 보호하기 위하여 공공 억세스 서비스 제공자에게도 이용될 수 있다. 이 경우, 실행로케이션은 단말 사용자 시스템을 위한 상술한바와 같은 비슷한 방법으로 서비스제공자에게 모든 억세스 포인트 혹은 일부의 억세스 포인트가 제공된다.
〈42〉 더 나아가, 본 발명은 모빌 프로그램 성분가 소스에서 상호작용하기 위한 데이터 스트림으로부터 모빌 프로그램 성분의 탐지와 분리를 수행하는 것이 가능하다. 이들 프로그램 성분은 그 다음 단말 사용자의 분리된 실행 로케이션에 분리되어 전송될 수 있고, 여기서 연합되어질 데이터 스트림의 나머지상에서 기능을 수행하기 위하여 보충되어질 수 있다. 그런 프로그램 성분은 실행 로케이션내에 정상적으로 유지되고 외부 데이터 소스가 억세스할 때마다 외부 데이터 소스로부터 다운로드되어질 필요가 없다.
〈43〉 따라서, 본 발명의 또 다른 형태는 외부 소스로부터 입력된 데이터 스트림에 따라 작동되며 그것에 관련된 하나 또는 그 이상의 모빌 프로그램 성분에 따라 작동되도록 프로그램된 단말 사용자 컴퓨터 시스템에 있어서,
〈44〉 a. 선택된 모빌 프로그램 성분는 하나 또는 그 이상의 실행 로케이션에 제공 및/또는 보유되며, 소정의 방법으로 동작이 실행되기 전에 상기 단말 사용자 시스템으로부터 또는 그 내에서 선택적으로 분리되며,
〈45〉 b. 상기 실행 로케이션은 하나 또는 그 이상의 프로그램 성분이 보유된 것이며 데이터 스트림의 외부 소스와 하나 또는 그 이상의 인터페이스를 가지며 상기 단말사용자 시스템과 하나 또는 그 이상의 인터페이스를 가져 그로 인하여 외부 소스데이터 및/또는 상기 사용자 시스템에 의해 유지된 데이터 및/또는 프로그램과 상호작용하기 위하여 상기 실행 로케이션 내의 프로그램 성분가 상기 실행 로케이션내에서 실행되며,
〈46〉 c. 상기 실행 로케이션 및 상기 단말 사용자 시스템간의 인터페이스 동작은 지정된 제어방법 및/또는 지정된 방법으로 동작되는 프로그램 으로 상기 실행 로케이션 내에서 프로그램 성분에 의해 인터페이스된 데이터만이 상기 단말 사용자 시스템으로 및 상기 단말 사용자 시스템으로부터 패스될 수 있도록 프로그램된 것을 특징으로하는 단말 사용자 컴퓨터 시스템을 포함한다.
〈47〉 바람직하기로는, 인커밍 데이터 스트림은 활동적으로 모빌 프로그램 성분와 관련되는데, 예를 들면 데이터 스트림은 프로그램 성분을 포함하거나 혹은 그 데이터 스트림과 관련되어 보충되어질 외부 소스에서 유지되는 프로그램 성분을 확인하기 위한 수단을 포함하며, 그리고 그 데이터 스트림과 관련되어 혹은 그 내에서 모빌 프로그램 성분을 확인하기 위하여 스크린된다; 그리고 선택적으로 일부 혹은 모든 모빌 프로그램 성분은 원하는 방법으로 동작하기 위하여 실행되어지기 전에 단말 사용자 시스템으로부터 혹은 그 내에 선택적으로 분리된 하나 혹은 그 이상의 프로그램 실행 로케이션에 패스된다.
〈48〉 본 발명은 또한, 컴퓨터 시스템 상에서 실행되기를 원하는 하나 또는 그 이상의 모빌 프로그램 성분을 포함하거나 그것에 관련된 데이터 스트림을 외부 소스로부터 단말 사용자 시스템으로 입력하는 과정을 포함하는 단말 사용자 컴퓨터 시스템을 작동하는 방법에 있어서,
〈49〉 a. 사용자 단말 시스템으로부터의 데이터 및/또는 외부 소스로부터의 데이터와 상호작용하도록(interact) 상기 단말 사용자 시스템 내에서 또는 상기 단말 사용자 시스템과 선택적으로 분리되는 하나 또는 그 이상의 프로그램 실행 로케이션내에서 상기 모빌 프로그램 성분을 실행하는 단계;
〈50〉 b. 지정된 방법 및/또는 이러한 상호작용(interaction)으로부터 인터페이스를 경유하여 단말 사용자 시스템으로 초래된 데이터로 동작되는데, 상기 인터페이스는 데이터의 외부소스에서 및/또는 지정된 기준에 해당되는 프로그램 성분로 상기 단말사용자 시스템 및/또는 외부 소스의 지정 위치로 또는 지정 위치로부터 전송되게 동작하는 프로그램 성분을 패싱하는 단계를 포함하여 이루어 진 것을 특징으로 하는 단말 사용자 컴퓨터 시스템을 작동하는 방법을 포함한다.
〈51〉 바람직하기로는, 프로그램 성분은 단말 사용자 시스템으로 전송된 데이터 스트림과 관련되고, 그 방법은 그 데이터 스트림과 연관되거나 그 스트림에 존재하는 모빌프로그램 성분을 확인하기 위해 인커밍 데이터 스트림을 스크린하는 단계와; 상기 모빌 프로그램 성분의 선택된 일부 또는 전부가 분리된 실행 로케이션으로 패싱하는 단계를 포함한다. 바람직하게, 실행 로케이션으로 패스된 프로그램 성분는 인커밍 데이터 스트림의 원하는 부분의 실행을 위하여 필요한 것으로서 선택된다. 그리하여 인커밍 데이터 스트림의 전체가 다운로드되고 관계된 부분의 선택이 단말 사용자 시스템내에서 만들어지는 다른 시스템과 본 발명은 구별되게 된다.
〈52〉 본 발명은 상기와 같이 웹 사이트로부터 데이터 스트림의 관점에서 기술되었다. 그러나 예를 들면 전자우편(e-mail) 혹은 정보 전달 시스템에 기초한 다른 메시지와 같은 외부 데이터 소스의 어떤 형태로부터의 인커밍 데이터에 이용될 수 있다. 그래서 본 발명은 두 개의 사적 네트워크 시스템 혹은 단일 네트워크 시스템의 요소사이에서 외부 도메인 혹은 다른 서버를 거치거나 혹은 직접적으로 통신하는데 이용될 수 있다.
〈53〉 본 발명은 실행 로케이션의 단일 층에 의해 제공된 세큐리티란 용어로 설명되었다.그러나 본 발명의 범위는 실행 로케이션의 둘 또는 그 이상의 층을 사용하는데 한정되지 않으므로, 그로 인하여 이전 실행 로케이션에 의해 스크린된 데이터 및/또는 프로그램 성분만이 단말 사용자 시스템과의 상호작용을 허락하기 전 더욱 스크린하기 위해 다음 실행 로케이션에 패스된다. 더욱이, 다른 기능이 다음 층에서 달성될 수 있으며 프로그램 성분이 여러 타입의 세큐리티 조사에 종속될 수 있도록 다음 층의 작동 프로그램의 특성이 근본적으로 달라질 수 있다. 더욱이, 단일 실행로케이션에서 하나 이상의 모빌 프로그램 성분을 실행하는 능력은 분리 실행 로케이션에 그들이 존재할 때 단독으로 또는 그들이 실행 로케이션에 함께 존재하는 곳에서 서로 상호 작용으로 입력 데이터를 취급하는데 있어 오퍼레이터에게 유연성을 제공한다. 분리 실행 로케이션은 단말 사용자 시스템으로부터 분리하여 동작되므로, 실행 로케이션 내의 프로그램 성분은 편력적으로 동작하거나 잠재적 피해로 감지되는 경우, 실행 로케이션은 희생물로 보여질 수 있으며 오퍼레이터는 또는 전체 단말 사용자 시스템을 재프로그램 할 필요 없이 다른 실행 로케이션 또는 단말 사용자 시스템으로부터 분리하여 재 시작할 수 있다.
〈54〉 상술한 바와 같이, 본 발명은 입력 데이터 스트림의 흐름을 제어하여 그 스트림의 일부 또는 전부 및 그와 관련된 프로그램 성분을 선택적으로 지정 실행 로케이션으로 향하게 하는데 사용될 수 있다.
〈55〉 이러한 방법에 있어, 큰 프로그램 성분은 확인될 수 있으며 그러한 큰 프로그램 성분을 실행하기 위해 특별히 지정된 실행 로케이션으로 선택적으로 향하게 할 수 있다. 그 프로그램 성분의 실행 결과는 그 시스템의 터미널이 큰 프로그램 성분을 실행하는데 요구되는 각각의 계산력을 가질 필요가 없는 단말 사용자 시스템에 전송될 수 있다. 한편, 본 발명은 데이터 스트림의 일부 및 그들에 연관 되거나 포함된 프로그램 성분을 프로그램 성분의 타입을 실행하기 위해 지정된 지정 실행 로케이션으로 선택적으로 향하게 하는데 사용될 수 있다. 프로그램 성분이 실행 로케이션에서 실행되기 전 입력 데이터 스트림의 선택된 일부를 확인 및 루트하기위한 능력은 단말 사용자 시스템 관리자가 단말 사용자 시스템으로의 엔트리 포인트에서 모든 입력 프로그램 구성을 검사할 필요성을 더욱 감소시키며 그 검사가 입력 매터리얼의 감소된 불륨으로 단말 사용자 시스템에서 저 레벨로 수행되게 한다.
〈56〉 도면의 간단한 설명
〈57〉 본 발명은 첨부된 도면에 도시한 바와 같이 본 발명의 양호한 실시예에 대한 실예를 통해 설명될 것인데, 여기서 도 1 및 도 2는 외부 소스로부터 데이터 스트림을 수신하기 위해 단말 사용자 시스템을 작동하는 전형적으로 현존하는 방법을 나타내는 도식적 블록도이며 ; 도 3 및 도 4는 본 발명의 방법에 따라 작동하는 시스템을 나타내며; 도 5 내지 도 9는 블록도로서 자바 언어를 사용하는 시스템을 나타내는 도식적 블록도이다.
〈58〉 본 시스템의 설명
〈59〉 도 1은 외부 소스로부터의 데이터 및/또는 프로그램, 예를 들어 웹서버러부터의 데이터를 입력하기 위한 현재 시스템을 나타내며, 단일 컴퓨터 유닛 또는 사설 네트워크에 의해 상호 접속된 단말 사용자 컴퓨터 시스템 및 공공 네트워크에 접속된 웹서버로 구성된다. 단말 사용자는 브라우저 또는 웹서버로부터 입력될 데이터 및/또는 프로그램 성분을 확인하기 위해 단말 사용자 시스템상에 유지되는 다른 프로그램을 사용한다. 브라우저 프로그램은 단말 사용자 네트워크의 일부 또는 전부의 컴퓨터 유닛 상에 유지될 수 있다. 원하지 않는 재료가 입력되는 위험을 줄이기 위해, 단말 사용자 시스템으로의 억세스 포인트는 공공 네트워크에서 지정된 어드레스로 나가거나 그것으로부터 들어오는 공공 네트워크으로부터의 데이터 및 프로그램 성분만을 패스되게 하는 파이어월(Firewall)로 제공된다. 브라우저 및/또는 파이어월은 알려 지거나 진정한 소스에 의해 암호적으로 사인 및 봉인 되지 않은 프로그램 성분 또는 데이터가 입력되는 것을 거절할 수 있다. 알려진 바이러스 또는 변경(Changes)특징 패턴을 검출하는 단말 사용자 시스템 상에 바이러스 검출 프로그램을 유지하는 것은 일반적인데, 그러한 바이러스는 단말 사용자 시스템에 의해 프로그램에서 수행된다.
〈60〉 그러나, 공공 네트워크으로부터의 데이터 스트림이 단말 사용자 시스템상에서 실행하는 것이 바람직한 모빌(Mobile)프로그램 성분을 포함하는 곳에서 입력된 메터리얼이 단말 사용자 시스템 상에서 부정확하게 또는 부당하게 동작할 수 있는 매터리얼을 포함하지 않는 다는 것을 보장하는데 문제점들이 있다. 파이어월은 그러한 프로그램 성분들이 허락된 어드레스로부터 왔을 때 그들을 패스되게 한다. 파어어월이 인텔리전스(Intelligence)를 측정하는 동시에 그것은 통신 어드레스를 확인함에 의해 동작하는데, 데이터 및 프로그램 성분이 통신 어드레스로부터 또는 통신 어드레스로 전송된다. 바이러스 검출 프로그램은 그들이 해로운 바이러스로 인식될 수 없으므로 그들이 부정확하게 동작할 때 프로그램 성분을 검출하여 비활성화시키는 것을 보장할 수 없다. 결과적으로, 단말 사용자 시스템은 잘못된 프로그램 성분의 입력에 손상될 수 있다.
〈61〉 이러한 문제는 도 2에 도시한 시스템에 의해 예시된 바와 같은 자바(JABA)기술을 사용하여 동작하는 시스템에 특히 존재한다. 호스트 플랫폼(Host flatform)으로 확인된 단말 사용자는 서비스 제공자로부터 데이터를 요청하기 위해 사용되는 브라우저 프로그램을 수행한다. 이것은 자바 애플릿(Applets)을 포함하는 데이터의 스트림을 전송하는 네트워크 서버를 통해 제공되는데, 단말 사용자는 단말 사용자 시스템 상에서 실행하기를 원한다. 자바 애플릿은 브라우저 프로그램을 통해 단말 사용자 시스템에 인터페이스를 유지하며 웹서버에 인터페이스를 유지하는 자바 버츄얼머신(JAVA Vitual Machine)을 통해 단말 사용자 시스템 상에서 실행된다. 그러나, 브라우저는 애플릿을 부정확하게 해석할 수 있고 애플릿은 우연히 혹은 고의로 해로운 지령(Instruction)을 포함할 수 있다. 현재 이러한 잘못된 해석 또는 해로운 지령으로부터 사용자 시스템이 부적절하게 보호되고 있다.
〈62〉 도 3에 도시한 바와 같이 본 발명의 방법에 있어, 공공 네트워크으로부터의 데이터는 직접 단말 사용자에게 제공되지 않고 스캔되며 데이터 스트림 내의 프로그램 성분은 케이지(Cage)로 나타낸 실행 로케이션으로 전환된다. 입력 데이터 스트림 내의 프로그램 성분을 확인하고 케이지로 전환하여 그들을 실행하기 위한 입력 데이터 스트림의 스캐닝은 예를 들어 로컬 웹 프록시(Local web proxy), 브라우저 프로그램, 네트워크 라우터(Router)또는 전용 프로그램과 같은 데이터 스트림 패쓰에 위치된 어떤 신뢰 성분에 의해 행해 질 수 있다. 실행 케이지는 단말 사용자 시스템과 공공 네트워크사이에서 인터페이스된 전형적인 통상의 컴퓨터이다.
〈63〉 실행 케이지는 공공 네트워크과 단말 사용자의 사설 네트워크간에서 보호 스크린으로 작용하며 실행 케이지 내의 프로그램에 의해 실행 케이지는 예를들어, 단말사용자 시스템 또는 외부 소스의 지정 위치에 어드레스되거나 그것으로부터 나오는 지정 기준을 만족하는 데이터 및 또는 프로그램 성분을 선택적 및 제어적으로 전송되게 한다.
〈64〉 케이지의 동작에 있어 사용자의 신뢰를 증진시키기 위해, 케이지와 단말 사용자 시스템 사이 및 케이지와 공공 네트워크 사이에 파이어월을 제공하는 것이 바람직하다. 이들 파이어월의 모두 또는 어느 하나는 요구조건에 따라 케이지와 결합될 수 있다. 도 3에 도시된 전체 시스템중 외측 파이어월을 포함하는 하부 부분은 사용자 사이트에 위치될 수 있다. 내측 파이어월을 포함하는 하부 부분은 실행케이지에 의해 보호되는 단말 사용자 시스템이다.
〈65〉 도 4에 도식적으로 도시된 시스템을 참조하면, 애플릿 및 다른 프로그램 성분은 케이지 내에서 실행된다. 단말 사용자 시스템 및/또는 공공 네트워크으로부터의 데이터는 케이지 내의 프로그램 성분과 상호 작용하여 최종 변경된 데이터가 적당한 인터페이스를 통해 단말 사용자 시스템에 전송된다. 인터페이스는 지정 억세스 기준을 만족하는 데이터를 전송하도록 프로그램되며 억세스 조건을 만족하지 않는 프로그램 성분 또는 데이터는 전송 또는 수신하지 않는다. 따라서, 케이지는 단말 사용자 시스템 내에서 또는 그것으로부터 선택적으로 분리된 프로그램 성분을 유지하며 그것에 전송된 데이터를 엄격히 통제하여 수신한다. 결과적으로, 단말 사용자 시스템은 만족할 만한 데이터만 수신하여 내보낸다. 케이지의 동작을 제어하는 프로그램은, 이 경우에 있어서 자바 버츄월 머신(JAVA Virtual Machine)을 동작하는 것, 작을 수 있기 때문에 그들은 쉽게 검사될 수 있다. 단말 사용자는 자신을 만족할수 있을 정도로 모든 프로그램을 확인 할 수 있으며 그 프로그램이 분명하고 논리적으로 구성되고 프로그램 리스팅의 검사에 의해 잘 정돈된 것을 확인 할 수 있다. 자바 애플릿이 케이지로 입력되는 것을 통제하는 공공 네트워크와 자바 버?? 머신 사이의 인터페이스의 성분 또한 케이지의 모든 동작을 보증하기 위해 검사된다.
〈66〉 케이지 내에서, 애플릿은 공공 네트워크 및/또는 단말 사용자 시스템으로부터의 데이터와 제어된 방법으로 상호 작용하도록 자바 버츄얼 머신의 제어 하에서 실행된다. 애플릿의 잘못된 동작을 억제하고 단말 사용자 시스템을 억세스하여 생기는 것을 차단하기 위해 억세스 제어의 일부 형태가 단말 사용자 시스템 또는 케이지에 제공된다. 이러한 억세스 제어는 내부 파이어월일 수 있다. 억세스 제어는 애플릿이 시스템 관리자에 의해 제공된 리스트상의 것과 다른 데스티네이션(Destination) 또는 어떤 소스를 억세스하는 것을 막는다. 또한, 억세스 제어는 각 억세스 요청이 진행되도록 허용되기 전 브라우저 사용자로부터 확실한 동의를 요구할 수 있다. 케이지 내의 프로그램 성분은 전체 케이지를 보증하기 위해 반드시 검사되고 확인된 성분과 앞서의 제어하에서 안전하게 입력되어 실행될 수 있는 성분으로 분류된다. 이들 2세트의 프로그램 성분 간의 분리 라인은 보안막(security membrane)으로 알려졌다.
〈67〉 케이지에 필요한 하드웨어는 통상적인 것 일수 있으며 동작프로그램(들)은 통상적인 프로그램 기술 및 알고리즘을 사용하여 준비될 수 있다.
〈68〉 자바 언어의 정보원을 가진 본 발명을 동작하는 특별한 양호한 방법은 도 5 내지 도 9에 도시된다. 도 5 및 도 6에 도시한 바와 같이 자바 파워드 웹 서버(JAVA Powered Web Server)는 브라우저 프로그램을 사용하여 파이어월을 경유해 억세스된다. 그 웹 서버로부터의 정보는 데이터가 단말 사용자 시스템에 전달되기 전에 데이터가 유지되는 웹 프록시에 다운로드된다. 입력 정보 스트림은 하나 또는 그 이상의 플래그 또는 확인 특징을 포함하는데, 이들은 입력 데이터 스트림에서의 자바 애플릿의 존재를 확인하거나 웹서버로부터 데이터를 디스플레이하기 위해 단말 사용자 시스템 상에서 실행하는데 필요한 자바 애플릿의 웹서버에서의 사이트 어드레스를 확인하므로써 웹프록시에 의해 인식된다. 종래 시스템에 있어서, 단말 사용자는 웹 서버 상의 지정 사이트로부터 단말 사용자 PC 터미널 또는 단말 사용자 시스템의 다른 오퍼레이팅 유닛의 브라우저 프로그램의 자바 버츄얼 머신으로 직접 자바 애플릿을 다운로드한다. 자바 애플릿은 웹 프록시 또는 단말 사용자 시스템에 유지된 데이터 또는 디스플레이 스크린 상에 소정의 이미지를 제공하기 위해 저장된 데이터상에서 동작하기 위해 단말 사용자 시스템 내에서 실행된다. 그런, 애플릿이 정확하게 동작하지 않으면, 단말 사용자 시스템은 애플릿이 단말 사용자 시스템 내에서 동작하고 있으므로 이것에 대하여 보호하지 않는다.
〈69〉 도 7 내지 도 9에 도시된 시스템에서, 실행 로케이션, 또는 케이지 서버는 인터넷으로 도시한 바와 같이 내측 사이드월 옆의 공공 네트워크상에 위치되며 전형적으로 케이지 서버 및 공공 네트워크 사이에 도시하지 않은 외측 파이어월과 같은 다른 것이 있다. 케이지 서버는 네트워크으로부터 수신한 프로그램 성분을 수신하여 해석하는 프로세싱 및 메모리 능력을 갖는 전형적인 컴퓨터이다. 내측 파이어월과 사용자 오퍼레이팅 유닛 사이에 웹 프록시가 위치되는데, 이것은 일반적으로 케이지 서버와 같은 컴퓨터의 일부 또는 다른 컴퓨터이다. 웹 프록시는 HTML 페이지로 지정된 네트워크으로부터의 데이터를 수신하여 저장한다. 웹 프록시는 입력 정보내의 플래그 또는 다른 인디케이션의 존재를 확인하는 프로그램 성분을 포함하는데 입력 정보는 사용자 단말 오퍼레이팅 유닛 상에 필요한 디스플레이를 제공하기 위해 저장된 단말 사용자로부터의 데이터 및/또는 공공 네트워크로부터의 입력 데이터 스트림의 데이터상호 작용에 필요한 애플릿의 존재 또는 어드레스를 확인한다.
〈70〉 이 스네어(Snare)프로그램 성분은 웹 서버 내의 애플릿 어드레스를 확인하고 입력 애플릿을 입력 또는 실제로 애플릿이 단말 사용자 시스템으로부터 분리해서 실행되는 케이지 서버로 전환한다. 스내어 프로그램은 또한 단말 사용자 시스템에서 그 실제 애플릿을 확인하기 위해 새로운 또는 변환된 어드레스를 생성하는데, 새로운 어드레스는 단말 사용자 오퍼레이팅 유닛 또는 PC의 브라우저 프로그램 내에 유지된 프록시 애플릿의 어드레스에 해당한다. 프록시 애플릿은 단말 사용자가 서입하거나 얻은 것 중의 하나이며 그것이 단말 사용자 시스템내에서 안전하게 동작할 수 있도록 충분히 확인된다.
〈71〉 단말 사용자가 애플릿이 웹 서버로부터 다운로드하도록 요청하는 것을 브라우저 프로그램에 의해 통지 받았을 때, 스내어 프로그램은 애플릿에 대한 어드레스로 새로운 어드레스를 제공받는다. 결과적으로 프록시 애플릿에 대한 어드레스로 새로운 어드레스를 제공받는다. 결과적으로 프록시 애플릿과 실제 애플릿은 단말 사용자 시스템 내에서 어드레스되거나 실행되지 않는다. 그러나 프록시 애플릿은 웹 서버로부터 케이지 서버로 실제 애플릿을 다운로드하기 위해 케이지 서버와 인터페이스한다. 실제 애플릿은 단말 사용자으로부터 분리하여 케이지 서버내에서 동작할 수 있으며 단말 사용자 브라우저 내의 프록시 애플릿의 환경에 따라 동작하기 위해 일반 유틸리티 인터페이스(GUI)를 경유해 제어된 방법으로 인터페이스한다. 실제 애플릿은 종래 브라우저 동작과 같이 단말 사용자 시스템으로 다운로드하지 않는다.
〈72〉 따라서, 본 발명은 또한 단말 사용자 시스템을 제공하는데, 그것의 외부 데이터 소스는 자바 또는 자바스크립(JAVASCRIPT)언어 하에서 동작하며 실행 로케이션 내에 입력되어 실행될 프로그램 성분은 애플릿이다; 그리고 실행 로케이션을 작동할 프로그램 및/또는 단말 사용자 시스템은 실행 로케이션에 입력되어 실행될 애플릿의 어드레스를 확인하고 그것을 프록시 애플릿에 해당하는 새로운 어드레스로 변환 하는데 프록시 어드레스는 단말 사용자 시스템 내에 유지되며 단말 사용자 시스템내에서 실행되도록 그리고 실행 로케이션 내의 나중 애플릿을 실행시키기 위해 실행 로케이션의 입력된 애플릿 내에서 인터페이스 하도록 변환된다.
〈73〉 다른 관점에서, 본 발명은 방법 발명을 제공하는데, 여기서 입력 데이터 스트림은 자바 또는 자바스크립 언어로 자성되며 실행 로케이션에 입력될 하나 또는 그 이상의 애플릿을 포함하거나 그것에 관련되며, 실행 로케이션의 작동 프로그램 및/또는 사용자 단말 작동 프로그램은 입력될 애플릿의 어드레스를 확인하고 단말 사용자 시스템 내의 프록시 애플릿의 어드레스에 해당하는 그 애플릿을 위한 새로운 또는 변환된 어드레스를 생성하므로써, 그로 인하여 단말 사용자 시스템이 입력 애플릿을 다운로드하기 위해 동작할 때 그것은 입력 데이터 스트림의 데이터 상에서 동작하도록 프록시 애플릿을 어드레스하여 실행하며 및/또는 단말 사용자 시스템에서 유지되며 실행 로케이션의 입력 애플릿과 인터페이스된다.
〈74〉 도 5 내지 도 9 는 다음 아이템을 보여준다.
〈75〉 도 5: 웹 페이지에서 삽입된 자바 애플릿; 도 6: 자바 애플렛이 실행 가능한 코드를 클라이언트로 다운로드하여 파이어월을 통과하다; 도 7: 케이지-스네어가 HTML을 변황하고 프록시 애플릿을 브라우저로 대체한다; 도 8: 프록시 애플릿이 케이지 서버 프로세스에 접속을 설정한다; 도 9: 애플릿이 케이지 및 설정된 프록시 애플릿에 대한 GUI 파이프에 로그된다.

Claims (17)

  1. 외부 소스로부터 입력된 데이터 스트림에 따라 작동되며 그 데이터 스트림에 포함되거나 그것에 관련된 하나 또는 그 이상의 모빌 프로그램 성분에 따라 작동되도록 프로그램된 단말 사용자 컴퓨터 시스템에 있어서,
    a. 상기 모빌 프로그램 성분은 하나 또는 그 이상의 실행 로케이션에 제공 또는/ 및 보유되며, 소정의 방법으로 동작이 실행되기 전에 상기 단말 사용자 시스템과 또는 그 내에서 선택적으로 분리되며,
    b. 상기 실행 로케이션은 하나 또는 그 이상의 프로그램 성분이 보유된 것이며 데이터 스트림의 외부 소스와 하나 또는 그 이상의 인터페이스를 가지며 상기 단말 사용자 시스템과 하나 또는 그 이상의 인터페이스를 가져 그로 인하여 외부 소스 데이터 및/또는 상기 사용자 시스템에 의해 유지된 데이터 및/또는 프로그램과 상호작용하기 위하여 상기 실행 로케이션 내의 프로그램 성분이 상기 실행 로케이션내에서 실행되며,
    c. 상기 실행 로케이션 및 상기 단말 사용자 시스템간의 인터페이스 동작은지정된 제어방법 및/또는 지정된 방법으로 동작되는 프로그램으로 상기 실행 로케이션 내에서 프로그램 성분에 의해 인터페이스된 데이터만이 상기 단말 사용자 시스템으로 및 상기 단말 사용자 시스템으로부터 패스될 수 있도록 프로그램 되어진 것을 특징으로 하는 단말 사용자 컴퓨터 시스템.
  2. 제 1 항에 있어서,
    입력 데이터 스트림에 존재하거나 관련된 모빌 프로그램 성분을 확인하기 위해 상기 입력 데이터 스트림을 스크린하도록 프로그램되며 상기 모빌 프로그램 성분의 일부 또는 전부가 소정의 방법으로 동작을 시행하기 전에 상기 단말 사용자 시스템으로부터 또는 그 내에서 선택적으로 분리되는 하나 또는 그 이상의 프로그램 실행 로케이션으로 패스되도록 프로그램된 것을 특징으로 하는 단말 사용자 컴퓨터 시스템
  3. 제 1 항 또는 제 2 항중 어느 한 항에 있어서,
    상기 실행 로케이션은 데이터 스트림의 외부 소스 및 다운 스트림 단말 사용자 시스템 간에 위치된 컴퓨터에 의해 제공되는데, 컴퓨터는 상기 하부의 단말 사용자 시스템과 분리되며 선택 제어된 방법으로 데이터 및/또는 프로그램 성분의 통과를 제어하는 하나 또는 그 이상의 인터페이스를 경유하여 그 단말 사용자 시스템과 통신하는 것을 특징으로 하는 단말 사용자 컴퓨터 시스템.
  4. 제 1 항 내지 제 3 항중 어느 한 항에 있어서,
    상기 실행 로케이션은 단일 소스 및/또는 상기 단말 사용자 시스템 외부의 데이터의 데스티네이션과 동작할 수 있도록 프로그램되며 상기 단말 사용자 시스템 내의 단일 데스티네이션으로 또는 으로부터 데이터를 전송 또는 수신할 수 있도록 프로그램된 것을 특징으로 하는 단말 사용자 컴퓨터 시스템.
  5. 제 1 항 내지 제 3 항중 어느 한 항에 있어서,
    제 1 실행 로케이션은 다수의 상기 선택 모빌 프로그램 성분을 수신 받아 이들 프로그램 성분의 기능 및/또는 특성을 확인하여 상기 프로그램 성분중 선택된 것이 그것의 기능 또는 특성에 따라 다른 분리 실행 로케이션을 향하도록 한 것을 특징으로 하는 단말 사용자 컴퓨터 시스템.
  6. 제 5 항에 있어서,
    상기 다른 실행 로케이션은 프로그램 성분의 다른 실행을 제공하기 위해 상기 제 1 실행 로케이션과 다른 체제에서 동작하도록 프로그램되는 것을 특징으로 하는 단말 사용자 컴퓨터 시스템.
  7. 제 1 항에 있어서,
    다른 외부 데이터 소스및 상기 단말 사용자 시스템 내의 다른 데스티네이션과 동작되도록 프로그램된 다수의 실행 로케이션에 제공되는 것을 특징으로 하는 단말 사용자 컴퓨터 시스템.
  8. 전술한 청구항중 어느 한 항에 있어서,
    상기 실행 로케이션은 그것과 외부 소스 데이터 및/또는 상기 실행 로케이션 하부의 상기 단말 사용자 시스템 간의 하나 또는 그 이상의 파이어월에 제공되는 것을 특징으로 하는 단말 사용자 컴퓨터 시스템.
  9. 전술한 청구항중 어느 한 항에 있어서,
    상기 실행 로케이션은 지정된 방법으로 상기 외부 소스로부터 수신된 프로그램 성분을 동작하기에 적절하며 단독 데이터 및/또는 프로그램 성분의 전송이 특별히 예정된 기준을 만족하는 실행 로케이션의 단말 사용자 시스템 다운 스트림에 허용되도록 변환된 프로그램 수단에 제공되는 것을 특징으로 하는 단말 사용자 컴퓨터 시스템.
  10. 전술한 청구항중 어느 한 항에 있어서,
    상기 외부 데이터 소스는 자바 또는 자바스크립 기술하에서 동작하며 인터셉트되어 상기 실행 로케이션 내에서 실행될 상기 프로그램 실행 로케이션은 애플릿(Appletes)인 것을 특징으로 하는 단말 사용자 컴퓨터 시스템.
  11. 제 10 항에 있어서,
    상기 실행 로케이션을 작동하기 위한 프로그램은 상기 실행 로케이션에서 실행될 애플릿이 갖는 어드레스를 확인하여 그것을 상기 단말 사용자 시스템 내에서 유지되고 상기 단말 사용자 시스템 내에서 실현되도록 변환되며 상기 실행 로케이션 내에서 나중 애플릿을 실현하기 위한 상기 실행 로케이션의 애플릿과 인터페이스하기 위한 확인된 애플릿에 대응하는 새로운 어드레스로 변환하는 것을 특징으로 하는 단말 사용자 컴퓨터 시스템.
  12. 전술한 청구항중 어느 한 항에 있어서,
    상기 단말 사용자 시스템은 공공 억세스 서비스 제공자인 것을 특징으로 하는 단말 사용자 컴퓨터 시스템.
  13. 컴퓨터 시스템 상에서 실행되기를 원하는 하나 또는 그 이상의 모빌 프로그램 성분을 포함하거나 그것에 관련된 데이터 스트림을 외부 소스로부터 단말 사용자 시스템으로 입력하는 과정을 포함하는 단말 사용자 컴퓨터 시스템을 작동하는 방법에 있어서,
    a. 사용자 단말 시스템으로부터의 데이터 및/또는 외부 소스로부터의 데이터와 상호작용하도록 상기 단말 사용자 시스템 내에서 또는 상기 단말 사용자 시스템과 선택적으로 분리되는 하나 또는 그 이상의 프로그램 실행 로케이션내에서 상기 모빌프로그램 성분을 실행하는 단계;
    b. 지정된 방법 및/또는 이러한 상호작용으로부터 인터페이스를 경유한 단말 사용자 시스템에서 초래된 데이터로 동작되는데, 상기 인터페이스는 지정된 수준에 해당되며 데이터 및/또는 프로그램을 상기 단말 사용자 시스템 및/또는 외부 소스의 지정 위치으로 또는 지정 위치로부터 전송되게 동작하는 프로그램 성분을 패싱하는 단계를 포함하여 이루어 진 것을 특징으로 하는 단말 사용자 컴퓨터 시스템을 작동하는 방법.
  14. 제 13 항에 있어서,
    상기 입력 데이터 스트림은 그 데이터 스트림과 연관되거나 그 스트림에 존재하는 모빌 프로그램 성분을 확인하기 위해 스크린되며 상기 모빌 프로그램 성분의 선택된 일부 또는 전부가 소정의 방법으로 작동을 실행하기전 상기 단말 사용자 시스템 내 또는 그것으로부터 선택적으로 분리 하나 또는 그 이상의 프로그램 실행 로케이션에 패스되는 것을 특징으로 하는 단말 사용자 컴퓨터 시스템을 작동하는 방법.
  15. 제 13 항 또는 제 14 항중 어느 한 항에 있어서,
    상기 입력 데이터 스트림은 자바 또는 자바스크립 언어로 작성되어 있으며 실행 로케이션에 입력될 하나 또는 그 이상의 애플릿에 관련되거나 그것을 포함하며, 상기 실행 로케이션의 작동 프로그램 및/또는 단말 사용자 시스템 작동 프로그램은 입력된 애플릿의 어드레스를 확인하여 상기 단말 사용자 시스템 내의 프록시 애플릿의 어드레스에 해당하는 그 애플릿을 위해 새로운 또는 변환된 어드레스를 생성하므로써, 단말 사용자 시스템이 입력된 애플릿을 다운로드하기 위해 활성화될 때 입력 데이터 스트림의 데이터 상에서 및/또는 상기 단말 사용자 시스템에 유지된 데이터상에서 동작하기 위해 그것은 프록시 애플릿을 어드레스하여 실현하며 상기 실행로케이션의 입력 애플릿과 인터페이스되는 것을 특징으로 하는 단말 사용자 컴퓨터 시스템을 작동하는 방법.
  16. 모빌 프로그램 성분의 하나 또는 그 이상의 모빌 프로그램 성분이 단말 사용자 컴퓨터 시스템상에서 실행시키며, 단말 사용자 컴퓨터 시스템에 입력된 입력 데이터스트림과 연관되거나 그 내의 적어도 하나 이상의 모빌 프로그램 성분의 실행을 위한 위치를 작동하기 위한 프로그램에 있어서,
    a. 하부의 단말 사용자 시스템으로부터 선택적으로 분리된 적어도 하나의 실행 로케이션으로 향할 입력 모빌 프로그램 성분의 적어도 선택된 일부 또는 전부; 및
    b. 단말 사용자 시스템 및/또는 외부 소스로부터의 데이터와 인터페이스되도록 실행 로케이션 내에서 실행될 선택된 모빌 프로그램 성분; 및
    C. 지정된 방법 및/또는 인터페이스를 경유한 단말 사용자 시스템으로 패스되어질 이러한 상호작용으로부터 초래된 데이터로 동작되며, 상기 인터페이스는 데이터 및/또는 단말 사용자 시스템 내에서 및/또는 외부소스에서 지정 위치로부터 혹은 지정위치로 지정기준에 해당하는 프로그램 성분을 허용하는 것을 포함하여 이루어진 것을 특징으로 프로그램.
  17. 데이터 및 프로그램 성분의 외부 소스 및 컴퓨터 메카니즘으로부터 또는 컴퓨터 메카니즘으로 데이터를 수신 또는 전송하는 단말 사용자 컴퓨터 시스템간의 분리 인터페이스로 작용하도록 변환된 컴퓨터 메카니즘을 포함하는데, 컴퓨터 메카니즘은 상기 외부 소스로부터 상기 컴퓨터 메카니즘으로 프럭램 성분의 적어도 선택된 일부가 전환 및/또는 유지되며 상기 컴퓨터 메카니즘 내의 이들 선택된 프로그램 성분이 실행되며 데이터 및/또는 프로그램 성분이 선택 지정된 방법으로 동작하거나 동작완료된 상기 단말 사용자 시스템에 전달되도록 프로그램된 것을 특징으로 하는 제 1항의 단말 사용자 시스템의 사용을 위한 실행 로케이션.
KR10-1999-7001101A 1996-08-09 1997-08-07 방법 및 장치 KR100473022B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GBGB9616783.8A GB9616783D0 (en) 1996-08-09 1996-08-09 Method and apparatus
GB9616783.8 1996-08-09
GB9703773.3 1997-02-24
GBGB9703773.3A GB9703773D0 (en) 1997-02-24 1997-02-24 Method and apparatus

Publications (2)

Publication Number Publication Date
KR20000068092A true KR20000068092A (ko) 2000-11-25
KR100473022B1 KR100473022B1 (ko) 2005-03-07

Family

ID=26309846

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1999-7001101A KR100473022B1 (ko) 1996-08-09 1997-08-07 방법 및 장치

Country Status (11)

Country Link
EP (1) EP0978036B1 (ko)
JP (1) JP2000516740A (ko)
KR (1) KR100473022B1 (ko)
AT (1) ATE209375T1 (ko)
AU (1) AU724259B2 (ko)
CA (1) CA2262905C (ko)
DE (1) DE69709788T2 (ko)
GB (1) GB2316206B (ko)
HK (1) HK1004831A1 (ko)
IL (1) IL128405A0 (ko)
WO (1) WO1998008163A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275938B1 (en) * 1997-08-28 2001-08-14 Microsoft Corporation Security enhancement for untrusted executable code
JP2001195247A (ja) * 2000-01-07 2001-07-19 Nec Corp ソフトウェアの安全性を検証し保証するシステム及び方法
GB2359908B (en) * 2000-03-04 2004-09-15 Motorola Inc Communication system architecture and method of controlling data download to subscriber equipment
GB2365158A (en) * 2000-07-28 2002-02-13 Content Technologies Ltd File analysis using byte distributions
GB2366692B (en) * 2000-08-31 2002-08-14 F Secure Oyj Virus protection in an internet environment
US7240193B2 (en) 2001-03-01 2007-07-03 Invicta Networks, Inc. Systems and methods that provide external network access from a protected network
US7127618B2 (en) * 2001-06-28 2006-10-24 Koninklijke Philips Electronics N.V. Data protection via reversible data damage
GB2381090B (en) * 2001-10-17 2005-02-02 Bitarts Ltd Software loading
US20030093689A1 (en) * 2001-11-15 2003-05-15 Aladdin Knowledge Systems Ltd. Security router
US20030115479A1 (en) * 2001-12-14 2003-06-19 Jonathan Edwards Method and system for detecting computer malwares by scan of process memory after process initialization
TWI619038B (zh) * 2011-11-07 2018-03-21 Admedec Co Ltd Safety box

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4545016A (en) * 1983-01-07 1985-10-01 Tandy Corporation Memory management system
US5398196A (en) * 1993-07-29 1995-03-14 Chambers; David A. Method and apparatus for detection of computer viruses
US5481715A (en) * 1993-12-15 1996-01-02 Sun Microsystems, Inc. Method and apparatus for delegated communications in a computer system using trusted deputies
US5623600A (en) * 1995-09-26 1997-04-22 Trend Micro, Incorporated Virus detection and removal apparatus for computer networks

Also Published As

Publication number Publication date
GB2316206A8 (en) 1998-05-18
GB2316206A (en) 1998-02-18
ATE209375T1 (de) 2001-12-15
DE69709788D1 (de) 2002-02-21
CA2262905A1 (en) 1998-02-26
AU3631897A (en) 1998-03-06
AU724259B2 (en) 2000-09-14
CA2262905C (en) 2004-10-26
IL128405A0 (en) 2000-01-31
EP0978036A1 (en) 2000-02-09
GB9716708D0 (en) 1997-10-15
EP0978036B1 (en) 2001-11-21
DE69709788T2 (de) 2002-09-19
KR100473022B1 (ko) 2005-03-07
GB2316206B (en) 1998-10-21
HK1004831A1 (en) 1998-12-11
JP2000516740A (ja) 2000-12-12
WO1998008163A1 (en) 1998-02-26

Similar Documents

Publication Publication Date Title
US6065118A (en) Mobile code isolation cage
JP4405248B2 (ja) 通信中継装置、通信中継方法及びプログラム
RU2668710C1 (ru) Вычислительное устройство и способ для обнаружения вредоносных доменных имен в сетевом трафике
US6584508B1 (en) Advanced data guard having independently wrapped components
US9268945B2 (en) Detection of vulnerabilities in computer systems
USRE45326E1 (en) Systems and methods for securing computers
US8136155B2 (en) Security system with methodology for interprocess communication control
US6684329B1 (en) System and method for increasing the resiliency of firewall systems
US7472421B2 (en) Computer model of security risks
JP3954385B2 (ja) 迅速なパケット・フィルタリング及びパケット・プロセシングのためのシステム、デバイス及び方法
US8316446B1 (en) Methods and apparatus for blocking unwanted software downloads
US7870610B1 (en) Detection of malicious programs
US20160036849A1 (en) Method, Apparatus and System for Detecting and Disabling Computer Disruptive Technologies
KR100732689B1 (ko) 웹 보안방법 및 그 장치
US20020138634A1 (en) System and methods for securely permitting mobile code to access resources over a network
KR20000068092A (ko) 방법 및 장치
JP5549281B2 (ja) 不正侵入検知・防御システム、クライアントコンピュータ、不正侵入検知・防御装置、方法およびプログラム
KR20170099177A (ko) 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법 및 이를 이용한 장치
US20120324569A1 (en) Rule compilation in a firewall
US20090158386A1 (en) Method and apparatus for checking firewall policy
CN117879977B (zh) 一种网络安全防护方法、装置、电子设备及存储介质
JP2011258018A (ja) セキュリティサーバシステム
Patel et al. Malware Detection Using Yara Rules in SIEM
WO2006092785A2 (en) Method and apparatus for the dynamic defensive masquerading of computing resources
CN117879977A (zh) 一种网络安全防护方法、装置、电子设备及存储介质

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: 20130117

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140120

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150119

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160119

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 13

EXPY Expiration of term