KR100305486B1 - 컴퓨터관련보안제공방법,컴퓨터시스템및컴퓨터장치 - Google Patents

컴퓨터관련보안제공방법,컴퓨터시스템및컴퓨터장치 Download PDF

Info

Publication number
KR100305486B1
KR100305486B1 KR1019980013519A KR19980013519A KR100305486B1 KR 100305486 B1 KR100305486 B1 KR 100305486B1 KR 1019980013519 A KR1019980013519 A KR 1019980013519A KR 19980013519 A KR19980013519 A KR 19980013519A KR 100305486 B1 KR100305486 B1 KR 100305486B1
Authority
KR
South Korea
Prior art keywords
computer
task
security
gate
executable
Prior art date
Application number
KR1019980013519A
Other languages
English (en)
Other versions
KR19980086615A (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 KR19980086615A publication Critical patent/KR19980086615A/ko
Application granted granted Critical
Publication of KR100305486B1 publication Critical patent/KR100305486B1/ko

Links

Classifications

    • 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/54Monitoring 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 adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명의 시스템, 방법 및 장치는 임의적으로 위치된 애플리케이션 코드를 보호하기 위해 컴퓨터와 조합하여 동작하는 소프트웨어로서 바람직하게 내장되는 컴퓨터에 의해 실행가능한 보안 관련 모듈을 포함한다. 본 발명의 시스템은 컴퓨터에 의해 실행되는 태스크를 정의하는 컴퓨터 프로그램의 위치에 삽입 또는 배치하는 방법을 수행할 수 있다. 태스크 게이트로서 지칭되고 컴퓨터에 의해 실행가능한 보안 관련 정보는 태스크 게이트에 이어서 수행하는데 충족된 사전설정된 보안 조건을 정의한다. 컴퓨터 프로그램의 실행 동안 태스크 게이트는 이 프로그램과 조우할 때 호출된다. 태스크 게이트는 또다른 소정의 컴퓨터 프로그램의 실행이 허용되기 전에 사전설정된 보안 조건이 충족되었는지를 판단하는데 사용된다.

Description

컴퓨터 관련 보안 제공 방법, 컴퓨터 시스템 및 컴퓨터 장치{SYSTEM AND METHOD FOR SECURING COMPUTER-EXECUTABLE PROGRAM CODE USING TASK GATES}
본 발명은 컴퓨터 소프트웨어 환경에서의 보안에 관한 것으로서, 특히, 컴퓨터에 의해 실행되는 프로그램 코드에 대한 액세스를 보호(secure)하기 위해 태스크 게이트(task gates)로 지칭되는 보안 체크포인트(secure checkpoints)를 사용하는 컴퓨터에 의해 구현되는 기법에 관한 것이다.
점점 더 많은 업무가 컴퓨터 자원 또는 정보 시스템에 의존적으로 되고 있다. 통상적으로, 회사의 민감한 정보가 정보 시스템의 일부인 컴퓨터 메모리에 저장된다. 허가받지 않은 개인에 의해 이 정보가 액세스되면 보안이 위협받을수 있다. 이러한 정보를 우발적으로 또는 고의로 파괴하거나 변경할 수도 있다. 또한, 경쟁자가 비밀의 사업 정보를 얻을 수 있게 되면, 이를 정보 소유자의 불이익을 위해 사용할 수도 있고, 그 결과 경제적인 손실 및 곤경에 처할 수도 있다. 또한, 수표 발행 프린터(check-writing printer)와 같은 특정한 자원은 부정하게 사용되는 것을 막기 위해 보호되어야 된다.
일반적으로, 정보 시스템의 보안은 (1) 기밀성(confidentiality), (2) 무결성(integrity), (3) 책임성(accountability), (4) 가용성(availability)과 관련되어 있다. 첫번째 요소인 기밀성은 특정 정보에 대해 허가받은 사용자만이 그 정보를 액세스할 수 있는 요건을 지칭한다. 두번째 요건인 무결성은 허가받은 사용자만이, 그것도 특정한 방법으로만 정보를 액세스할 수 있는 요건을 지칭한다. 예를 들어, 한 사용자가 정보를 열람하고 변경하는 권한을 가질 수 있는 반면, 다른 사용자는 동일한 정보를 열람할 권한은 갖지만 정보를 변경할 권한은 갖지 못할 수 있다. 세번째 요소인 책임성은 사용자가 보안과 관련된 행위에 대해 확실히 책임지는(즉, 신원확인이 가능하고 책임을 부담하는) 것과 관련된다. 마지막으로, 가용성은 허가받은 사용자에 대해서는 어느 누구도 액세스를 부당하게 취소하지 못하도록 하는 것과 관련된다.
전형적으로, 전술한 보안의 척도는 자원 또는 시스템 수준에서 다루어진다. 자원은 컴퓨터 시스템이 사용하는 화일 또는 장치일 수 있으며, 이러한 시스템은 하나 이상의 사용자를 위한 연산 기능들을 수행하기 위해 함께 동작하는 소프트웨어 및/또는 하드웨어를 구비한 구성요소의 집합체로 일컬어진다. 자원 수준의 보안의 예는 다음과 같다. 워드 프로세서 프로그램을 사용하는 사용자가 생성한 화일에 이 화일을 액세스하기 위해서 반드시 제공되어야 하는 패스워드(password)를 줄 수 있다. 컴퓨터 또는 네트워크 시스템은 자체 식별 이후에 시스템 사용을 개시하기 위해 시스템에 "로그인(login)"하거나 혹은 유사한 패스워드의 유사한 입력을 요구할 수 있다. 우리에게 친숙한 "로그인"의 개념은 보안 개념으로서, 그 이유는 개인이 시스템이 인식할 수 있는 패스워드를 제공하는 등 보안 요건을 충족해야 하는 것 뿐만 아니라, 사용자는 시스템에 자신의 신원을 알려야 하며, 이에 의해 사용자는 로그인 동안 취하는 액션에 대해 책임을 지기 때문이다.
특정 그룹에 속하는 특정 사용자가 다른 사용자가 가질 수 없는 액션의 수행 권한을 부여받을 수 있다는 것은 잘 알려져 있다. 전술한 바와 같이, 한 사용자는 화일을 액세스하여 이를 변경(즉, 화일에 기록)하는 권한을 가질 수 있고, 다른 사용자는 화일을 액세스할 수 있지만 화일을 변경하지 못할 수 있다(즉, 화일 판독만을 수행). 그렇지만, 이것은 워드 프로세싱 프로그램 또는 근거리망 관리 프로그램과 같은 하나의 애플리케이션이 보안을 처리하는 방법의 하나의 예에 지나지 않는다. 전형적으로, 애플리케이션들은 제반 오퍼레이팅 시스템(operating system)이 반드시 지원해야 할 매우 특별한 보안 요건들을 가지고 있다. 예를 들어, 오퍼레이팅 시스템은 판독 또는 기록 액세스에 대해 전체 데이타베이스를 보호할 수 있는 반면, 데이타베이스 관리 애플리케이션은 개별 레코드상에서 누가 화일을 판독하고 누가 화일에 기록하는지를 규정(regulate)하는 보안 제어를 제공할 수 있다. 또한, 이러한 애플리케이션은 데이타베이스 관리 기능과 같이 허가받은 사용자만이 인식하고 사용하는 특별한 기능을 포함할 수 있다.
상이한 애플리케이션의 상이한 보안 요구를 다루기 위해, 대부분의 소프트웨어 애플리케이션들은 애플리케이션이 설치될 때 시스템 보안 관리자에 의해 실행되어야 하는 자체적인 보안 셋업 루틴을 가지고 있다. 불행하게도, 이 경우 애플리케이션은 특정 사용자가 사용할 수 있는 태스크 또는 기능과 함께 허가된 사용자의 리스트(list) 또는 테이블(table)을 반드시 유지해야 한다는 문제점이 있다. 이러한 리스트 또는 테이블은 이 태스크 또는 기능과 관련된 코드가 실행되도록 하는 액션을 사용자가 호출할 때마다 체크된다. 애플리케이션 개발자가 허가된 모든 사용자를 예측하거나 그러한 리스트를 유지한다든가, 관리자가 각각의 애플리케이션을 보호해야 할지를 알기 위해 이 애플리케이션이 무엇을 할지를 알아야 한다는 것은 성가신 일이다. 전형적으로, 시스템으로부터 사용자가 제거되거나 혹은 시스템에 추가될 때, 각각의 애플리케이션의 각종 보안 루틴들이 제각기 개별적으로 실행되어야 한다.
개발 비용을 줄이기 위해 다수의 소프트웨어 개발자들이 지향하고 있는 "객체 지향 프로그래밍"에서도 보안이 또한 문제시되고 있다. 객체 지향 프로그래밍에 있어서는, 제반 시스템이 존재하는 한은 객체로부터 프로그램 코드를 제공받을 수 있으며, 때때로 이러한 제반 시스템은 객체를 지원하고 상속을 허용하는 "프레임워크(framework)"로서 구현된다. 프레임워크는 오퍼레이팅 시스템과의 교신과 같은 다수의 저수준 기능을 떠맡으며, (프레임워크 설계자가 저수준 기능들을 처리하기 때문에) 고수준 기능에 대해 애플리케이션이 보다 신속하고 보다 양호하게 만들어지도록 한다. 불행하게도, 여태껏 애플리케이션의 프레임워크 설계자들은 애플리케이션의 보안 관련 요구들을 충분하게 지원하지 못하여 왔다.
따라서, 여러 종류의 소프트웨어 애플리케이션에 융통성있게 적용될 수 있는, 애플리케이션내에서 보안 관련 체크포인트를 구현하기 위한 단순하고 저렴하고 효율적인 메카니즘이 필요하다. 객체 지향 환경에서는 이러한 메카니즘이 프레임워크 수준에서 요구되지만, 이것은 각각의 애플리케이션 개발자가 프레임워크에 의해 제공되는 메카니즘이 애플리케이션 자체에 대해 적용되는 시기 및 장소를 판단하도록 한다. 이와 같은 메카니즘이 객체 지향 환경에 제공되는지 혹은 제공되지 않는지의 여부에 관계없이, 각각의 애플리케이션 개발자가 이러한 보안 관련 메카니즘이 적용되는 시기 및 장소를 결정할 수 있도록 하는 제어 입자성(granularity of control)을 제공하면, 컴퓨터의 기술 분야가 향상될 수 있다.
본 발명의 목적은 각종 유형의 소프트웨어 애플리케이션에 융통성 있게 적용될 수 있는 단순하고 저렴하고 효율적인 보안 관련 메카니즘을 제공하는 데 있다.
본 발명의 다른 목적은 개별 애플리케이션내에 제어 입자성을 허용하는 이와 같은 메카니즘을 제공하여, 애플리케이션 개발자가 보안 메카니즘이 적용되는 시기 및 장소를 판단할 수 있도록 하는 데 있다.
본 발명의 또다른 목적은 전술한 장점들을 가지면서 객체 지향 환경에서 보안 관련 기능을 제공하기에 적합한 메카니즘을 제공하는데 있다.
전술한 목적들을 충족시키고 전술한 문제점들을 해결하기 위해서, 본 발명은 이하의 상세한 설명을 참조하면 명백하게 이해되듯이, 컴퓨터에 의해 구현된 정보를 이용하여 독립적이고 임의적으로 위치된 애플리케이션 코드를 보호하는 새로운 시스템 및 방법을 제공한다. 본 발명의 시스템은, 컴퓨터에 의해 실행가능한 태스크를 정의하는 위치에, 컴퓨터에 의해 실행가능한 태스크를 실행하기 위해 충족되어야 하는 보안 기준을 정의하는, 태스크 게이트로 일컬어지는 컴퓨터에 의해 실행가능한 정보를 삽입하거나 혹은 배치하는 방법을 수행한다. 컴퓨터 프로그램의 실행 동안 태스크 게이트와의 조우(encounter)에 응답하여 태스크 게이트가 호출될 수 있다. 이어서, 조우된 게이트는 컴퓨터에 의해 실행가능한 태스크의 실행이 허용되기 전에 사전결정된 보안 조건이 충족되었는지를 판정한다.
본 발명의 전술한 목적 및 다른 특징 및 장점들은 첨부된 도면과 함께 이하의 상세한 설명을 참조하면 명백하게 이해될 것이다.
본 발명의 이해를 돕기 위해, 이하의 상세한 설명에서는 첨부된 도면에 도시된 실시예에 참조 부호가 제공되며, 동일한 참조 부호는 동일하거나 유사한 요소를 나타낸다.
도 1은 본 발명이 사용하는 컴퓨터 시스템의 전체 구조를 개략적으로 도시한 개관도.
도 2는 도 1에 도시된 컴퓨터 시스템의 구성요소를 개략적으로 도시한 것으로서, 애플리케이션에 보안을 제공하기 위해 본 발명의 보안과 관련된 모듈과 함께 하드웨어와 소프트웨어를 구비한 블럭도.
도 3은 애플리케이션에 보안을 제공하기 위해 도 2의 보안과 관련된 모듈을 사용하는 객체 지향 환경을 개략적으로 도시한 블럭도.
도 4는 도 2의 보안 로직 모듈을 포함하는 컴퓨터에 의해 실행가능한 보안 관련 모듈을 도시한 도면.
도 5는 도 2의 보안 관련 모듈의 부분인 도 4의 태스크 게이트 모듈을 구비한 여러 모듈들을 도시한 도면.
도 6 및 도 7은 도 1의 컴퓨터 시스템의 보안 관련 로직 모듈을 구현하는 방법을 도시한 흐름도.
도 8은 도 6 및 도 7의 흐름도에서 구현된 보안 로직 모듈을 실행하는 방법을 도시한 흐름도.
도면의 주요 부분에 대한 부호의 설명
10: 컴퓨터 시스템 14: 메인 메모리
22, 24: 네트워크 컴퓨터 32: 보안 관련 모듈
33: 객체 지향 환경 34: 애플리케이션
35: 객체 지향 프레임워크 36: 오퍼레이팅 시스템
37: 애플리케이션 인터페이스 40: 태스크 게이트 함수
42: 게이트 스캐닝 함수 44: 게이트 관리 함수
본 발명은 바람직한 실시예를 컴퓨터 소프트웨어로서 기술할 것이다. 하지만, 본 기술 분야에 통상의 지식을 가진 자라면, 본 발명의 전체 혹은 일부가 본 발명의 기법을 고려하여 컴퓨터 하드웨어 혹은 하드웨어 및 소프트웨어의 조합(펌웨어(firmware))으로 구현될 수도 있음을 이해할 것이다.
본 발명은 "태스크 게이트(task gate)"로 지칭되는, 바람직하게 컴퓨터 소프트웨어로 구현된 로직을 포함한다. "게이트"란 용어는 보안 관련 게이트 태스크와 사전결정된 관계로 구성된 소정의 다른 로직 또는 소프트웨어를 보호하는 기능을 수행하기 때문에 특정한 로직 유틸리티를 가리킨다. 바람직한 실시예에서, 게이트는 컴퓨터에 의해 실행가능한 프로그램 코드로서 제공되며, 이 프로그램 코드는 허가되지 않은 실행으로부터 게이트에 의해 자체적으로 보호되는 애플리케이션 코드의 일부로서 제공된다.
도 1은 본 발명이 구현될 수 있는 컴퓨터 시스템(10)의 기본 구조를 개략적으로 도시한 개관도이다. 컴퓨터 시스템(10)은 잘 알려진 IBM PC와 같은 퍼스널 컴퓨터 또는 IBM AS/400와 같은 보다 큰 중형 컴퓨터일 수 있다. 본 발명은 네트워크간에 분산된 클라이언트에 대해 서버로서 동작하는 컴퓨터상의 네트워크 환경에 대해서도 적합하다. 하지만, 본 발명은 원거리에 위치하거나 독립적인(stand-alone) 컴퓨터상에 위치할 수 있는 애플리케이션을 보호하도록 구현되어 있기 때문에, 독립적인 환경(즉, 비-네트워크 환경)에서도 잘 수행될 수 있다. 원격 애플리케이션의 예는 네트워크 컴퓨터(22, 24) 메모리(11, 13)내의 애플리케이션(26, 28)을 포함하며, 이 네트워크 컴퓨터(22, 24)는 제각기 네트워크 버스(31)를 거쳐 네트워크 통신 인터페이스(25)를 통해 컴퓨터 시스템(10)과 통신한다. 네트워크 버스(31)는 임의의 유형의 전송 매체(예를 들어, 광섬유 또는 구리)를 갖는 임의의 토폴로지(topology)(예를 들어, 이더넷(Ethernet) 또는 토큰 링(token ring))일 수있으며, 광역망, 근거리망, 또는 인터넷 또는 인트라넷을 포함하는 다른 컴퓨터 망일 수도 있다.
도 1 및 2를 참조하면, 본 발명은 네트워크 환경으로 구현될 수 있지만, 단순히하기 위해, 본 발명을 본 발명의 보안 관련 모듈(32) 및, 동일 컴퓨터(10)상에서 동작하면서 모듈(32)에 의해 보호되는 애플리케이션(34)을 가지는 독립적인 컴퓨터에 관해 기술할 것이다. 하지만, 본 발명의 영역을 벗어나지 않은 범위내에서 애플리케이션(34)은 원격 애플리케이션(26)과 바꾸어 기술할 수 있음을 이해하여야 한다. 보안 관련 모듈(32)과, (이하 기술하는) 이 모듈(32)를 포함하는 다른 모듈들은 데이타 구조 및 컴퓨터에 의해 실행가능한 정보로서, 컴퓨터에 의해 실행가능한 코드로만 한정되지 않는다.
컴퓨터 시스템(10)은 CPU(12)를 포함하며, CPU(12)는 이 컴퓨터의 전체 동작의 실행을 감독하는 컴퓨터의 "두뇌" 또는 "엔진"이다. CPU(12)는 IBM, 인텔 또는 모토롤라 제품의 마이크로프로세서일 수 있다. 컴퓨터 시스템(10)은 RAM(15) 및 ROM(17)을 구비한 메인 메모리(14)와, 저장 매체(16)를 포함한다. 메인 메모리는 단일 개체로서 도시되어 있지만, RAM(15)을 구비하는 메모리(14)는 고속 레지스터 및 캐쉬로부터 저속 대용량의 DRAM 칩에 이르기까지 다양한 계층으로 존재할 수 있다. 바람직한 실시예에 있어서, 저장 매체(16)는 때때로 하드 디스크 드라이브로 지칭되는 디스크 저장 매체이며, 도면에는 단일 개체로서 도시되어 있지만 실제로는 다수의 저장 장치를 포함할 수 있다.
통상적인 디스플레이(18) 및 키보드 및/또는 마우스(20)는 사용자의 통신 입력/출력 I/O 포트(19)의 조작을 용이하게 하기 위해 제공된 것이다. ROM 매체 드라이브(21) 및 디스켓 디스크 드라이브(23)는 컴퓨터에 의해 실행가능한 정보를 판독하도록 한다. 프린터(27)는 컴퓨터 시스템(10)의 일부로서, 일부 사용자는 이를 이용할 수 있지만, 그외 사용자들은 이를 이용할 수 없다(가령 수표 발행 프린터).
도 2를 참조하면, 본 발명의 보안 관련 모듈(32)은 컴퓨터(10)상에서 본 발명의 방법이 구현되도록 하는 모듈들의 집합체이다. 따라서, 바람직한 실시예에 있어서, 모듈(32)은 메인 메모리(14), 바람직하게 RAM(15)에 로딩되어, 디스크 저장 매체(16)의 데이타베이스(30)에 저장된 보안 관련 데이타와 협력하고, 역시 메인 메모리(14)에 로딩되는 애플리케이션(34)이 수행하는 태스크를 보호한다. 본 발명의 동작은 메모리(11 또는 13)와 같은 네트워크 컴퓨터 메모리에서 이루어질 수 있지만, 단순화하기 위해 메모리(14)에 대해서만 기술될 것임을 이해하여야 한다. 오퍼레이팅 시스템(36)은 CPU(12)를 포함하는 제반 하드웨어와 애플리케이션간의 상호작용과, 컴퓨터(10)상의 다른 소프트웨어와 애플리케이션간의 상호작용을 제어한다. 오퍼레이팅 시스템은 예를 들어, AS/400등의 대형 컴퓨터상의 OS/2와 같은 것이거나, PC상의 OS/2 혹은 윈도즈(Windows) 등일 수 있다.
객체 지향 환경 구현
도 3을 참조하면 알 수 있듯이, 본 발명의 보안 관련 모듈(32)은 애플리케이션 인터페이스(application program interface: API)(37)를 통해 객체 지향환경(33)에서 동작할 수 있으며, 또한 프레임워크(35)의 일부이다. 객체 지향 환경의 프레임워크는 잘 알려져 있다. 예를 들어, 로버트 오르파리(Robert Orfali), 댄 하키(Dan Harkey) 및 제리 에드워드(Jeri Edwards)에 의해 기술된 "The Essential Distributed Objects Survival Guide"이란 명칭의 문헌에는 API를 통해 애플리케이션과 통신하는 프레임워크가 개시되어 있다. 명료성을 위해, 개략적으로 프레임워크를 설명할 것이다. 개략적으로 말하면, 프레임워크는 특정한 기능을 제공하기 위한 미리 조합된(preassembled) 클래스 라이브러리(libraries)이다. 일반적으로, 프레임워크는 일군의 객체를 동작시키기 위한 조직된 환경을 제공한다. 프레임워크는 구조 요건과, 실행의 흐름과, 시스템 레벨 API 라이브러리에 대한 호출을 처리하므로써 애플리케이션의 아키텍처를 규정한다. 프레임워크는 애플리케이션을 생성하기 위해 커스텀화될 수 있는 제반의 완전히 디버깅된 소프트웨어 서브시스템이다. 이하 하나의 실시예로 기술되는 본 발명은 프레임워크와 동작하여 객체 지향 환경의 객체 또는 자원을 제공하고 이들과 상호작용한다.
본 발명의 동작의 개괄
본질적으로, 보안 관련 태스크 게이트는 컴퓨터에 의해 실행가능한 모듈로서, 특정한 애플리케이션 또는 컴퓨터 프로그램내의 사전설정된 위치에 삽입되는 소프트웨어 또는 프로그램 코드로서 바람직하게 구현되며, 이 게이트 부근에 위치된 코드의 처리에 이어서 보통 실행되는 프로그램 코드를 보호한다. 하나의 바람직한 실시예에 있어서, 게이트는 애플리케이션 프레임워크에 의해 제공되는 함수에대한 서브루틴 호출(subroutine call)을 불러낼 것이다. 다른 실시예에 있어서, 객체 지향 환경에서 게이트는 프레임워크 보안 관련 객체상의 메쏘드 호출(method call)을 불러낼 것이다. 실행중인 애플리케이션이 게이트와 조우할 때, 서브루틴 또는 메쏘드는 코드를 실행시키는 사용자가 코드 전체 또는 일부를 동작시키는 것을 허락받았는지 판단한다. 바람직하게, 애플리케이션 프로그래머는 민감한 정보를 포함할 수 있는 어떠한 코드나, 실행되었을 때 범용적 사용을 목적으로 하지 않은 기능을 수행하는 어떠한 코드의 앞에라도 게이트를 삽입할 수 있다.
바람직하게, 보호하고자 하는 코드의 앞에 게이트를 삽입함으로써, 그 뒤에 오는 코드가 실행되기 전에 게이트를 반드시 거쳐가도록 한다. 본 발명의 장점은 게이트가 서로의 내부에 중첩(nest)되거나 혹은 그렇지 않고 겹쳐져서, 예측할 수 있는 결과를 가지고 현저한 보호 정도를 제공할 수 있다는 점이다.
본 발명은 원하는 보호 수준에 따라 여러가지 실시예를 제공한다. 이하, 각각의 실시예가 개괄 형태(overview fashion)로 기술되며, 더욱 세부적인 사항이 제공될 것이다. 첫번째 유형의 게이트는 "단순" 게이트(simple gate)로 일컬어지며, 보안 기능을 실행시킴으로써 단지 허가받은 사용자만이 통과하도록 하여 게이트 뒤에 위치한 코드를 실행함에 의해 얻을 수 있는 기능을 실행하도록 하는 것에 의해 이 기능을 보호한다. 두번째 게이트는 "제어" 게이트(control gate)로 일컬어지며, 허가받지 않은 사용자를 차단하기 위해 단순 게이트와 동일한 유형의 보안 기능을 수행하지만, 일단 사용자가 게이트를 통과한 경우에 어떤 종류의 "객체" 또는 자원을 이용할 수 있는지를 제어한다. 예를 들어, 수표 발행 프린터일 수 있는 프린터(27)(도 1)는 사용자가 게이트에 의해 보호되는 코드를 실행하는 동안에는 이용가능하지만, 태스크가 완료되면 자원에 대한 액세스가 끝난다.
세번째 유형의 게이트는 게이트에 의해 보호되는 애플리케이션의 태스크를 실행할 권한을 체크하지만, 사용자가 태스크를 실행하는 동안 사용자의 권한을 또한 "증대(boost)"시키므로, 세번째 게이트는 "부스터 게이트(booster gate)"로 지칭된다. 예를 들어, 게이트로 들어오는 한 사용자는 특정 급여표 레코드(payroll records)에 대해 "판독" 권한만을 갖지만, 이 게이트와 관련하여 데이타베이스(30)내의 데이타로 통하는 특별한 허가(permission)가 제공되는 경우 이 사용자는 태스크가 완료될 때까지 데이타를 "기록"하거나 혹은 레코드를 변경할 수 있다. 단순, 제어 및 부스터로 기술된 여러 유형의 게이트들은 본 발명의 실시예를 고려하여 생성될 수 있는 게이트의 단순한 예에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아님에 유의하여야 한다.
태스크 게이트는 이러한 게이트를 누가 통과하는지를 감시(audit)하는데 사용될 수 있기 때문에 책임성에 대한 양호한 도구이다. 또한, 이러한 게이트를 통과하는 사용자에 의해 어떤 태스크가 수행되었는지도 용이하게 평가할 수 있다.
본 발명을 구현하기 위한 컴퓨터 관련 모듈
도 4 및 5를 참조하면, 보안 관련 모듈(32)은 태스크 게이트 모듈(40)과, 선택사양적인 게이트 스캐닝 모듈(42)과, 게이트 관리 모듈(44)을 포함한다. 모듈(40, 42, 44)은 이들 모듈들이 명명된 기능을 제공한다. 태스크 게이트모듈(40)은 태스크 게이트 모듈(40)이 없을 경우 애플리케이션(34)의 일부로서 제한없이 완전히 실행될 수 있는 태스크들을 보호하는 로직 및 소프트웨어 게이트들을 프로그래머가 만들 수 있도록 하는 로직을 포함한다. 예를 들어, 프로그래머는 단순 게이트 모듈(46)을 구비한 단순 게이트와, 제어 게이트 모듈(48)을 구비한 제어 게이트와, 부스터 게이트 모듈(50)을 구비한 부스터 게이트를 만들 수 있다. 바람직하게, 이들 게이트는 태스크를 수행하거나 혹은 관리자가 보호를 원하는 자원에 대한 액세스를 허용하는 코드(실행의 흐름에 대한 코드, 그리고 글자그대로 프로그램 코드의 몸체의 코드) 이전에 구현된 프로그램 코드이다. 객체 지향 프로그래밍의 기술 분야에 통상의 지식을 가진 자라면 이해하듯이, 또다른 실시예로서, 게이트들을 자체적으로 생성하도록 구현된 데이타 구조 및 프로토콜(protocols)이 객체로서 캡슐화(encapsulate)될 수 있고, 게이트를 정의하는 코드대신 객체 메쏘드를 불러낼 수도 있다. 이 경우, 객체 지향 게이트 모듈(54)에 선택사양적으로 태스크 게이트 모듈(32)을 제공할 수도 있다. 태스크 게이트 모듈(40)은 또한 게이트 호출 모듈(51)과 게이트 체크 모듈(52)을 포함하며, 게이트 체크 모듈(52)은 태스크 게이트의 호출에 응답하여 게이트에 의해 지정된 보안 권한들이 애플리케이션을 실행하려는 사용자에 의해 제각기 충족되는지를 판정한다.
게이트 스캐닝 모듈(42)은 프로그램 코드로 바람직하게 구현되는 컴퓨터에 의해 실행가능한 로직의 선택사양적인 부분으로서, 애플리케이션 코드를 스캐닝하여 애플리케이션 코드내에서 게이트가 어디에 위치하는지를 판단한다. 예컨대 소스 코드를 얻을 수 없는 경우와 같이 이 모듈(42)이 항상 가능한 것은 아니기 때문에, 프로그래머가 게이트가 위치하는 장소를 모두 리스트한 후에 이 정보를 데이타베이스(30)내에 배치하도록 하는 게이트 관리 모듈(44)을 제공하여, 관리자가 이들 게이트를 검색(retrieve)할 수 있도록 한다.
도 6 및 도 7을 참조하여, 도 1의 컴퓨터 시스템의 보안 관련 모듈을 구현하는 방안을 도시한 흐름도에 관해 기술할 것이다. 단계(60)에서, 프로그래머는 애플리케이션 코드내에서 보호될 태스크를 정의한다. 단계(62)에서, 프로그래머는 보호될 태스크의 앞에 태스크 게이트를 배치한다. 실제 코드가 배치되면, 단계(64)가 수행된다. 그렇지 않으면, 단계(66)에서 게이트 정보를 캡슐화하는 객체가 생성되고, 메쏘드들이 애플리케이션(34)의 적절한 위치에 배치된다.
아래에 도시된 표 1은 단계(62)에 따라 애플리케이션내에 배치되는 게이트의 예이다. 도시된 게이트는 객체내에 캡슐화되지 않지만, 본 기술 분야에 통상의 지식을 가진 자라면 제공된 의사 코드(pseudo-code)를 이러한 객체를 생성하는데 사용할 수 있음을 이해할 것이다. 하나 이상의 객체를 사용하면서 갖는 장점으로는, 이들 객체가 컴퓨터 시스템이 객체상에서 메쏘드를 수행하도록 하는 코드에 배치될 수 있다는 것이다. 예를 들어 영어로 기록된 코드 언어, 특히 디스크립션(description)은 독일에서는 만족스럽지 못하며, 그 중에서는 독일인 프로그래머가 애플리케이션을 유지 보수해야 하는 경우 그러하지만, 본 발명의 이러한 면은 본 발명의 게이트를 채용하는 애플리케이션 소프트웨어의 국제적인 사용을 지원하는 장점을 갖는다. 객체를 사용하면서 갖는 또다른 장점으로는 유사한 태스크가 수행되는 다수의 장소에서 동일한 태스크가 사용될 수 있다는 것이다.
본 기술 분야에 통상의 지식을 가진 자라면, 위의 흐름도와 조합하여 도시한 의사코드에 의해 본 발명을 구현하고 사용할 수 있을 것이다. 도시된 의사코드는 파스칼(PASCAL) 언어와 매우 유사하지만, 본 기술 분야에 통상의 지식을 가진 자라면, 이러한 의사코드는 특히 객체 지향 환경에 매우 적합한 C++ 또는 자바 프로그램 코드로 제공될 수도 있음을 이해할 것이다. 이와 같은 실시예에서, 포인터 "salptr"는 갱신될 정보를 갖는 레코드를 가리킨다. 이 실시예의 특정한 태스크 게이트는 부스터 게이트이다. 따라서, 부스터 게이트에는 급여를 7% 인상하는 보안 태스크의 실행을 시도하는 사용자가 허가받았음을 가리키는 변수값이 제공되어야 한다. 따라서, SAL+07은 자원에 대한 권한이 제공된 보안 태스크의 이름이고,화일 "salrecord(15)"은 보안 태스크를 계속적으로 실행하기 위해서는 최소한 판독(READ)(즉, 열람(view)) 권한이어야 한다. 이러한 조건이 충족되면, 사용자에게 화일 salrecord(15)에 그 값을 7%만큼 인상하도록 기록(즉, 변경)하는 부가적인 권한(즉, Give=(salptr, WRITE))이 제공된다. 인상된 급여를 기록하는 커맨드 "Write(salptr)"는 보안을 요구하여 허가되지 않은 인상을 금지시키는 태스크의 핵심이다. 이 실시예에서, 이와 같은 태스크는 (화일 자원에 제공하여 화일 기록 태스크와 동작하기 위한) 제어 게이트 기능을 포함하고, 단순한 게이트 기능, 즉, 진행될 권한을 결정하는 기능을 항상 포함하는 부스터 게이트에 의해 진입시에 제한된다. 이 태스크는 권한을 증대시키거나 혹은 추가하는 부스터 게이트이기 때문에, 태스크가 완료되면 이 태스크는 부스트된 권한을 제거하는 종료 게이트(end gate)에 의해 퇴출시에 제한된다. 따라서, 보안 태스크는 명령문 end_gate에 의해 종료된다.
도 6에 도시된 흐름도를 참조하면, 단계(68)는 선택사양적인 게이트 스캐닝 모듈(42)이 사용되는지의 여부를 체크한다. 만일 사용되고 있지 않으면, 프로그래머는 관리 모듈(44)과 게이트 리스트를 생성하고, 단계(74)에서 이들을 데이타베이스(30)에 부가한다. 만일 사용되고 있는 경우에는, 스캐닝 모듈은 게이트에 대해 애플리케이션 코드를 스캐닝하고, 단계(74)에서 프로그래머가 이들 코드를 직접 삽입하도록 하는 대신 이들 코드를 데이타베이스(30)에 부가한다.
단계(76)에서 관리자는 게이트와 관련하여 사용자에 대한 소유권을 보장해야 하고, 보장된 정보는 단계(80)에서 보안 데이타베이스(30)내에 부가된다.
다음에 도시된 표 2는 데이타베이스(30)내에 포함된 보안 정보를 처리 단계(74)의 결과로서 도시한 예이다.
허가/권한의 표에 따르면, Alice는 Bill, Fred, John의 각각의 급여 레코드에 대한 판독 허가를 갖는다(즉, 예를 들어, "SALARY-Bill(Alice/READ)"는 Bill의 급여 레코드에 대한 판독 허가를 나타낸다). 또한, 표 2는 관리자가 Alice에게 보안 관련 태스크 게이트 "SAL+07" 이후에 진행하도록 하는 통과(PASS) 권한을 부여했음을 나타낸다.
도 7 및 8을 참조하면, 도 6을 참조하여 기술된 방법의 단계에서 구현된 게이트의 협력에 관해 기술할 것이다. 단계(90)에서 사용자가 서명(sign on)할 때 실행이 개시되고, 사용자는 데이타베이스로부터 보통의 데이타 권한을 부여받는다. 예를 들어, 표 1 및 표 2의 예에서, Alice가 시스템에 대해 서명하고, Alice는 보안 데이타베이스로부터 Bill, Fred, John의 급여 레코드를 판독하도록 하는 보통 권한을 부여받는다. 이어서, 사용자 Alice가 애플리케이션을 실행한다. 이 실시예에 이어서, Alice는 애플리케이션(34)을 실행하여 자신의 부하 Fred에 대한 급여를 7% 인상한다. 단계(96)에서 보안 모듈은 데이타 권한을 체크하여, Alice가 클리어(clear)되어 Fred의 급여 레코드가 판독되었음을 확인한다. 이어서, 단계(97)에서 애플리케이션은 요구된 레코드를 액세스한다. 단계(98)에서 애플리케이션이 게이트와 조우하고, 보안 관련 게이트가 호출된다. 접속 단계 "A"는 이하 기술되는 도 8의 흐름도로 이어진다.
단계(100)에서 보안 관련 모듈(32)에 의해 게이트 유형이 체크된다. 게이트 유형이 단순 게이트이면, 단계(102)에서 권한이 체크된다. 만일 사용자가 태스크를 실행하는 권한을 갖지 않으면, 단계(107)에서 허가가 취소되고 단계(120)에서 처리가 종료된다. 만일 사용자가 권한을 가지면, 사용자는 게이트를 통과하도록 허용되고, 단계(104)에서 애플리케이션이 태스크를 수행하며, 단계(120)에서 처리가 종료한다. 만일 게이트가 제어 게이트이면, 단계(105)에서 이 게이트를 통과하고 보호된 태스크를 실행하는 권한이 체크된다. 만일 사용자가 게이트를 통과하고 보호된 태스크를 실행하는 권한을 갖지 않으면, 단계(111)에서 허가가 취소되고, 단계(122)에서 처리가 종료된다. 만일 사용자가 전술한 권한을 가지면, 단계(106)에서 사용자는 게이트를 통과하도록 허용되고, 또한 태스크를 실행하는데 필요한 소정의 객체 또는 자원의 제어를 보장받는다. 예를 들어, 단계(121)에서 사용자는 제한된 기간 동안에 태스크를 실행하면서 프린터(27)에서 수표를 프린트하도록 될 수 있다. 이 경우 단계(122)에서 처리가 종료된다.
만일 게이트가 부스터 게이트이면, 단계(103)에서 게이트를 통과하는 권한이 체크된다. 만일 권한을 얻을 수 없으면, 단계(109)에서 액세스가 취소되고, 단계(124)에서 처리가 종료된다. 단계(104)에서, 게이트에 대한 권한이 부여되어 데이타베이스에 나타나면, 사용자는 게이트를 통과하고, 새로운 권한이 부여된다. 다음에 도시된 표 3은 Alice, Bill, Fred, John의 예와, 앞에서 제공되고 부스터 게이트를 설명하기 위해 다음에 계속해서 제공되는 급여 레코드와 관련된 정보를 포함한다.
데이타베이스(30)내에 기록되고 이 데이타베이스(30)로부터 판독되는 전술한 정보는 Alice가 자신의 부하 Bill, Fred, John의 급여 레코드를 판독할 수 있고, Alice가 게이트 "SAL+07"를 바로 이 게이트에 의한 부스트된 권한으로 통과할 수 있으며, Fred의 급여를 기록할 수 있음을 나타낸다.
전술한 실시예와 더불어 도 8을 다시 참조하면, 애플리케이션은 Alice가Fred의 급여 레코드를 열람하는 판독(READ) 권한을 갖고, 또한 게이트 SAL+07를 통과하는 통과(PASS) 권한(단계(103))을 갖는지를 판정한 SAL+07의 부스터 게이트와 조우한다. Alice는 게이트를 성공적으로 통과했기 때문에, 단계(104)에서 태스크의 완료를 위해 Fred의 급여 레코드에 대한 기록(WRITE) 권한이 추가된다. 그후, 단계(106)에서 애플리케이션 태스크가 사용자에 의해 시도되고, 단계(108)에서 보안 모듈에 의해 부가적인 권한이 체크된 후에 처리가 완료된다. 만약 권한이 존재하지 않으면, 처리는 단계(109)(부정)로 진행한 후에 단계(124)에서 종료한다. 올바른 권한(이 경우 "기록(WRITE)" 권한)이 주어지면, 단계(110)에서 부가적인 권한 부여 태스크가 완료된다. 예를 들어, 애플리케이션이 Fred의 갱신된 급여 레코드의 기록을 시도하면, 모듈은 Alice가 이 급여 레코드에 대한 기록(WRITE) 액세스를 갖는 것을 체크하고, Alice가 Fred의 급여 레코드에 대한 증가를 기록할 수 있도록 한다(단계(108)). 일반적으로, 태스크의 실행에 이어서, 애플리케이션은 단계(112)에서 게이트의 끝과 조우하고, 단계(124)에서 처리가 종료된다. 예를 들어, 표 1에 도시된 end_gate 선언문은 SAL+07 게이트의 끝이고, Fred의 급여 레코드를 기록하는 Alice의 권한을 빼앗는다.
따라서, 본 발명자는 사용자가 태스크를 실행하는 권한을 갖거나 혹은 자원을 사용하는 범위를 정확하게 정하는 메카니즘을 제공하였다. 사용자가 컴퓨터 프로그램내의 컴퓨터에 의해 실행가능한 태스크를 정의하고 태스크 게이트에 의해 적어도 진입부로 제한되는 특정한 위치에서 동작을 수행하고 있는 경우에만, 사용자는 접근 금지 화일 및, 프린터 등의 자원에 액세스하고 변경하는 등의 코드 실행에 대한 허가를 가질 수 있다. 따라서, 본 발명은 애플리케이션을 실행하는 동안 사용자에게 태스크 실행에 필요한 것 이상으로 권한을 주지 않고, 이러한 태스크를 실행하는 것과 관련되지 않을 경우에는 어떠한 권한도 주지 않으며, 사용자가 할 수 있는 것과 할 수 없는 것을 정확히 구분짓는 장점을 제공한다. 시스템 정의(system definition)시 사용자가 화일을 액세스하거나 혹은 프린터를 사용하는 권한을 부여받고 관리자가 권한을 변경할 때까지는 이러한 권한을 보유하는 종래의 기술에 비해, 이러한 방식은 상당한 장점을 제공한다. 본 발명에 따르면, 사용자는 특정한 애플리케이션 또는 프로그램 코드를 실행하고, 게이트에 의해 보호되는 컴퓨터에 의해 실행가능한 태스크와 함께 화일 또는 자원이 구비된 애플리케이션내의 지점에 태스크 게이트에 의해 권한이 부여된다. 예를 들어, 적절한 시간에 이와 같이 특정한 권한을 갖지 않고서 Alice가 임의적으로 급여를 인상하는 것을 금지하도록 할 수 있다.
전술한 바와 같이, 본 발명은 컴퓨터 시스템상에서 구현가능한 특정한 방법 단계를 포함한다. 또다른 실시예에서, 본 발명은 컴퓨터 시스템과 함께 사용하기 위한 컴퓨터 프로그램 제품으로서 구현될 수 있다. 본 발명의 기능을 정의하는 프로그램은 다양한 신호 함유 매체들을 통해 컴퓨터에 제공될 수 있으며, 이러한 매체는 기록가능한 유형의 매체 및 전송가능한 유형의 매체일 수 있다. 기록가능한 유형의 매체는 예컨대 (a) 비휘발성 저장 매체(예를 들어, ROM 매체 드라이브(21)에 의해 판독가능한 컴퓨터내의 ROM(17) 또는 CD-ROM 디스크와 같은 판독 전용 메모리 장치)와, (b) 기록가능한 저장 매체(예를 들어, 디스켓드라이브(23)내의 플로피 디스크 또는 하드 드라이브(16))상에 저장되는 변경가능한 정보를 포함하지만, 이에 한정되지는 않는다. 예를 들어, 전송 유형의 매체의 예로는, 컴퓨터, 케이블 또는 무선 통신을 포함하는 전화 네트워크를 포함한다. 따라서, 이러한 신호 함유 매체는 본 발명의 방법 기능을 제공하는 컴퓨터에 의해 판독가능한 인스트럭션(instructions)이 제공될 때 본 발명의 또다른 실시예를 나타낼 수도 있음을 이해하여야 한다.
본 기술 분야에 통상의 지식을 가진 자라면, 본 발명은 본 발명의 특성을 고려하여 다른 실시예 및 구성으로 구현될 수 있음을 이해할 것이다. 예를 들어 로직 모듈은 바람직한 실시예의 소프트웨어 코드대신 하드웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 따라서, 본 발명의 정신 및 영역은 첨부된 특허청구범위 및 등가물 대신 다른 어떠한 것으로 한정되지 않는다.
따라서, 본 발명은 여러 종류의 소프트웨어 애플리케이션에 융통성있게 적용될 수 있는 애플리케이션내에 보안과 관련된 체크포인트를 구현할 수 있고, 객체 지향 환경에서 보안 관련 기능을 제공하는 장점을 제공한다.

Claims (18)

  1. 컴퓨터 관련 보안(computer-related security)을 제공하는 방법에 있어서,
    컴퓨터 애플리케이션 프로그램 코드의 몸체내에 컴퓨터에 의해 실행가능한 태스크(a computer-executable task)를 정의하는 위치에 상기 컴퓨터에 의해 실행가능한 태스크를 실행하기 위해 만족되어야 하는 사용자 관련 보안 기준(user-related security criteria)을 정의하는 태스크 게이트(a task gate)로서 지칭되는 컴퓨터에 의해 실행가능한 보안 관련 정보를 내장하는 단계와,
    상기 컴퓨터 애플리케이션 프로그램 코드의 실행 동안에 상기 태스크 게이트와의 조우(encounter)에 응답하여 상기 태스크 게이트를 호출하는 단계와,
    상기 태스크 게이트의 호출에 응답하여, 상기 컴퓨터에 의해 실행가능한 태스크의 실행이 허용되기 전에 사전설정된 보안 조건이 충족되었는지를 판단하는 단계를 포함하는
    컴퓨터 관련 보안의 제공 방법.
  2. 제 1 항에 있어서,
    상기 컴퓨터 애플리케이션 프로그램 코드는 객체 지향 환경(an object-oriented environment)에서 실행되고, 상기 컴퓨터에 의해 실행가능한 보안 관련 정보는 객체의 메쏘드(method)내에 캡슐화되는
    컴퓨터 관련 보안의 제공 방법.
  3. 제 1 항에 있어서,
    상기 태스크 게이트는 상기 컴퓨터에 의해 실행가능한 태스크의 실행과 연관될 수 있는 자원(a resource)에 대한 액세스를 보호하는 컴퓨터 관련 보안의 제공 방법.
  4. 제 2 항에 있어서,
    상기 태스크 게이트는 상기 컴퓨터에 의해 실행가능한 태스크의 실행과 연관될 수 있는 객체에 대한 액세스를 보호하는 컴퓨터 관련 보안의 제공 방법.
  5. 제 1 항에 있어서,
    상기 태스크 게이트 호출 단계 이전에 상기 컴퓨터 애플리케이션 프로그램 코드를 스캐닝하여 상기 태스크 게이트의 위치를 결정하는 단계를 더 포함하는 컴퓨터 관련 보안의 제공 방법.
  6. 제 5 항에 있어서,
    컴퓨터 애플리케이션 프로그램 코드 내에서의 상기 태스크 게이트의 위치 및 디스크립션(a description)은 상기 코드 스캐닝 단계에 이어서 저장 매체내에 저장된 데이타베이스에 부가되는 컴퓨터 관련 보안의 제공 방법.
  7. 제 1 항에 있어서,
    컴퓨터 애플리케이션 프로그램 코드내에서의 상기 태스크 게이트의 위치는 저장 매체내에 저장된 데이타베이스내에 부가되는 컴퓨터 관련 보안의 제공 방법.
  8. 제 1 항에 있어서,
    상기 태스크 게이트의 상기 보안 관련 정보는 상기 사용자 관련 보안 기준을 충족시키는 보안 관련 권한을 갖는 사용자가 상기 컴퓨터에 의해 실행가능한 태스크가 완료될 때 만료되는 상기 컴퓨터에 의해 실행가능한 태스크에 기반한 부가적인 보안 관련 권한을 받을 수 있도록 하는 정보를 포함하는
    컴퓨터 관련 보안의 제공 방법.
  9. 컴퓨터 시스템에 있어서,
    ① 메인 메모리와 접속되고 저장 매체와 또한 접속되는 프로세싱 유닛(a processing unit)을 구비한 컴퓨터와,
    ② 상기 컴퓨터에 의해 실행되는 단계들을 수행하기 위해 상기 프로세싱 유닛과 통신하도록 구성된 상기 메인 메모리내의 보안 관련 모듈(a security-related module)을 포함하며,
    상기 컴퓨터에 의해 실행되는 단계들은,
    ⓐ 상기 메인 메모리의 컴퓨터 애플리케이션 프로그램내 컴퓨터에 의해 실행가능한 태스크를 정의하는 위치에 내장된 태스크 게이트로서 지칭되는, 컴퓨터에 의해 실행가능한 보안 관련 정보와의 조우에 응답하여, 상기 태스크 게이트를 호출하는 단계 ― 상기 태스크 게이트는 상기 컴퓨터에 의해 실행가능한 태스크를 실행하기 위해 충족되어야 하는 보안 관련 기준을 정의함 ― 와,
    ⓑ 상기 태스크 게이트의 호출에 응답하여, 사전설정된 보안 조건이 상기 컴퓨터에 의해 실행가능한 태스크의 실행이 허용되기 전에 충족되었는지를 판단하는 단계를 포함하는 컴퓨터 시스템.
  10. 제 9 항에 있어서,
    상기 컴퓨터 애플리케이션 프로그램 코드는 객체 지향 환경에서 실행되고,상기 컴퓨터에 의해 실행가능한 보안 관련 정보는 객체내에 캡슐화되는 컴퓨터 시스템.
  11. 제 9 항에 있어서,
    상기 태스크 게이트는 상기 컴퓨터에 의해 실행가능한 태스크의 실행과 연관될 수 있는 자원에 대한 액세스를 보호하는 컴퓨터 시스템.
  12. 제 10 항에 있어서,
    상기 태스크 게이트는 상기 컴퓨터에 의해 실행가능한 태스크의 실행과 연관될 수 있는 객체에 대한 액세스를 보호하는 컴퓨터 시스템.
  13. 제 9 항에 있어서,
    상기 태스크 게이트를 호출하는 단계 이전에 상기 컴퓨터 애플리케이션 프로그램 코드를 스캐닝하여 상기 태스크 게이트의 위치 및 디스크립션을 판단하는 컴퓨터 애플리케이션 프로그램 코드 스캐너를 더 포함하는 컴퓨터 시스템.
  14. 제 13 항에 있어서,
    고정 저장 매체내에 저장되는 데이타베이스를 더 포함하고, 컴퓨터 애플리케이션 프로그램 코드내에서의 상기 태스크 게이트의 위치 및 디스크립션은 상기 코드 스캐너에 의해 상기 저장 매체내에 저장된 상기 데이타베이스에 부가되는 컴퓨터 시스템.
  15. 제 9 항에 있어서,
    컴퓨터 애플리케이션 프로그램 코드내에서의 상기 태스크 게이트의 위치 및 디스크립션은 상기 저장 매체내에 저장된 상기 데이타베이스에 부가되는 컴퓨터 시스템.
  16. 제 9 항에 있어서,
    상기 태스크 게이트의 상기 보안 관련 정보는 상기 사용자 관련 보안 기준을 충족시키는 보안 관련 권한을 갖는 사용자가 상기 컴퓨터에 의해 실행가능한 태스크가 완료할 때까지 오직 유효한 부가적인 보안 관련 권한을 받을 수 있도록 하는 정보를 포함하는 컴퓨터 시스템.
  17. 컴퓨터 장치에 있어서,
    ① 프로세싱 유닛과,
    ② 컴퓨터 애플리케이션 프로그램을 실행하기 위해 상기 프로세싱 유닛과 통신하는 메인 메모리와,
    ③ 상기 프로세싱 유닛과 상기 메인 메모리와 통신하는 저장 매체와,
    ④ 상기 메인 메모리와 통신하며, 상기 메인 메모리에서 실행되는 컴퓨터 애플리케이션 프로그램내 컴퓨터에 의해 실행가능한 태스크를 정의하는 위치에 내장된 태스크 게이트로서 지칭되는 컴퓨터에 의해 실행가능한 보안 관련 정보와의 조우에 응답하여, 보안 관련 프로시듀어를 호출하는 보안 관련 모듈 ― 상기 태스크 게이트는 상기 컴퓨터에 의해 실행가능한 태스크를 실행하기 위해 충족되어야 하는 보안 기준을 정의함 ― 을 포함하는
    컴퓨터 장치.
  18. 제 17 항에 있어서,
    상기 보안 관련 모듈에 의해 호출되는 상기 보안 관련 프로시듀어는 상기 컴퓨터에 의해 실행가능한 태스크의 실행을 허용하기 이전에 사전설정된 보안 조건이 충족되었는지를 판단하는 컴퓨터 장치.
KR1019980013519A 1997-05-31 1998-04-15 컴퓨터관련보안제공방법,컴퓨터시스템및컴퓨터장치 KR100305486B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/866,956 1997-05-31
US08/866,956 US5940590A (en) 1997-05-31 1997-05-31 System and method for securing computer-executable program code using task gates
US8/866,956 1997-05-31

Publications (2)

Publication Number Publication Date
KR19980086615A KR19980086615A (ko) 1998-12-05
KR100305486B1 true KR100305486B1 (ko) 2001-10-29

Family

ID=25348798

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980013519A KR100305486B1 (ko) 1997-05-31 1998-04-15 컴퓨터관련보안제공방법,컴퓨터시스템및컴퓨터장치

Country Status (3)

Country Link
US (1) US5940590A (ko)
JP (1) JP3049008B2 (ko)
KR (1) KR100305486B1 (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058822B2 (en) 2000-03-30 2006-06-06 Finjan Software, Ltd. Malicious mobile code runtime monitoring system and methods
US8079086B1 (en) 1997-11-06 2011-12-13 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US9219755B2 (en) 1996-11-08 2015-12-22 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
IL121815A (en) 1997-09-22 2000-09-28 Security 7 Software Ltd Method and system for the identification and the suppression of executable objects
IL122314A (en) 1997-11-27 2001-03-19 Security 7 Software Ltd Method and system for enforcing a communication security policy
US6058482A (en) * 1998-05-22 2000-05-02 Sun Microsystems, Inc. Apparatus, method and system for providing network security for executable code in computer and communications networks
JP3415456B2 (ja) * 1998-10-19 2003-06-09 日本電気株式会社 ネットワークシステム及びコマンド使用権限制御方法ならびに制御プログラムを格納した記憶媒体
US6266774B1 (en) 1998-12-08 2001-07-24 Mcafee.Com Corporation Method and system for securing, managing or optimizing a personal computer
US7293281B1 (en) * 1999-10-25 2007-11-06 Watchfire Corporation Method and system for verifying a client request
US7155606B1 (en) * 2000-04-12 2006-12-26 Microsoft Corporation Method and system for accepting preverified information
AU2001247742A1 (en) * 2000-04-12 2001-10-30 Microsoft Corporation Method and system for accepting precompiled information
US6865680B1 (en) * 2000-10-31 2005-03-08 Yodlee.Com, Inc. Method and apparatus enabling automatic login for wireless internet-capable devices
US20020087876A1 (en) * 2000-12-28 2002-07-04 Larose Gordon Edward Adaptive software installation process supporting multiple layers of security-related attributes
US20020178375A1 (en) * 2001-01-31 2002-11-28 Harris Corporation Method and system for protecting against malicious mobile code
US20020124170A1 (en) * 2001-03-02 2002-09-05 Johnson William S. Secure content system and method
US7099663B2 (en) 2001-05-31 2006-08-29 Qualcomm Inc. Safe application distribution and execution in a wireless environment
US20040064723A1 (en) * 2001-10-31 2004-04-01 Barnes Brian C. Method and apparatus for physical address-based security to determine target security
US7162715B1 (en) * 2002-03-16 2007-01-09 I-Squared, Inc. Method and apparatus for preemptive monitoring of software binaries by instruction interception and dynamic recompilation
US7370319B2 (en) * 2003-02-11 2008-05-06 V.I. Laboratories, Inc. System and method for regulating execution of computer software
US8225290B2 (en) * 2003-02-11 2012-07-17 V. i. Laboratories, Inc. Systems and methods for regulating execution of computer software
CN100440140C (zh) * 2003-02-11 2008-12-03 Vi实验室有限公司 用于调节计算机软件的执行的系统和方法
US20060130016A1 (en) * 2003-03-17 2006-06-15 Wagner John R Method of kernal-mode instruction interception and apparatus therefor
US8640234B2 (en) * 2003-05-07 2014-01-28 Trustwave Holdings, Inc. Method and apparatus for predictive and actual intrusion detection on a network
WO2005008458A1 (en) * 2003-07-11 2005-01-27 Computer Associates Think, Inc. System and method for providing java server page security
US7418512B2 (en) * 2003-10-23 2008-08-26 Microsoft Corporation Securely identifying an executable to a trust-determining entity
US7752671B2 (en) 2004-10-04 2010-07-06 Promisec Ltd. Method and device for questioning a plurality of computerized devices
US7793110B2 (en) * 2006-05-24 2010-09-07 Palo Alto Research Center Incorporated Posture-based data protection
US20080083031A1 (en) * 2006-12-20 2008-04-03 Microsoft Corporation Secure service computation
US8839247B2 (en) * 2008-07-11 2014-09-16 Oracle International Corporation Managing requests to initiate tasks within an organization
JP5287930B2 (ja) * 2011-06-01 2013-09-11 株式会社リコー 装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4864494A (en) * 1986-03-21 1989-09-05 Computerized Data Ssytems For Mfg., Inc. Software usage authorization system with key for decrypting/re-encrypting/re-transmitting moving target security codes from protected software
US5305456A (en) * 1991-10-11 1994-04-19 Security Integration, Inc. Apparatus and method for computer system integrated security
US5412717A (en) * 1992-05-15 1995-05-02 Fischer; Addison M. Computer system security method and apparatus having program authorization information data structures
US5509070A (en) * 1992-12-15 1996-04-16 Softlock Services Inc. Method for encouraging purchase of executable and non-executable software
US5666516A (en) * 1993-12-16 1997-09-09 International Business Machines Corporation Protected programmable memory cartridge having selective access circuitry
US5483649A (en) * 1994-07-01 1996-01-09 Ybm Technologies, Inc. Personal computer security system
US5586301A (en) * 1994-11-09 1996-12-17 Ybm Technologies, Inc. Personal computer hard disk protection system

Also Published As

Publication number Publication date
US5940590A (en) 1999-08-17
JPH1139157A (ja) 1999-02-12
KR19980086615A (ko) 1998-12-05
JP3049008B2 (ja) 2000-06-05

Similar Documents

Publication Publication Date Title
KR100305486B1 (ko) 컴퓨터관련보안제공방법,컴퓨터시스템및컴퓨터장치
JP4718753B2 (ja) コードアセンブリに関連する許可要求を使用して許可セットをフィルタすること
KR100373526B1 (ko) 분산 네트워크 시스템에서의 액세스 제어 시스템 및 자원 보호 방법
CN101208928B (zh) 运行具有低权限的因特网应用程序
AU704130B2 (en) Security system for computer systems
EP0561509B1 (en) Computer system security
US7650418B2 (en) System and method for controlling the usage of digital objects
GB2398134A (en) Applying a data handing policy to predetermined system calls
US7076557B1 (en) Applying a permission grant set to a call stack during runtime
US9374377B2 (en) Mandatory protection control in virtual machines
JP2004158007A (ja) コンピュータアクセス権限
US8190673B2 (en) Enforcement of object permissions in enterprise resource planning software
JP4671337B2 (ja) Webサービスのアクセス制御システム
KR101220014B1 (ko) 보안 임계적인 데이터 컨테이너를 제공하기 위한 방법 및컴퓨터 판독가능 매체
EP1298514A1 (en) A computer system and a method for managing access of an user to resources
CN115454298A (zh) 一种基于版本的系统功能控制方法
Schacht et al. User Requirements for Computer Security
JPH06259305A (ja) 機密保護ラベルの付与方法
Schiller et al. Design and Abstract Specification of a Multics Security Kernel. Volume 1
Gove et al. To Bell and back: developing a formal security policy model for a C/sup 2/system
Liao et al. A Feather-Weight Application Isolation Model: (Work-in-Progress)
Opaska A Security Loophole on IBM Mainframes
Gudes et al. Information flow analysis for file systems and databases using labels
Goldis MVS Integrity: The Intruder's Point of View
Crocker Key concerns in a review of CA-ACF2/MVS

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

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee