KR20010040981A - 스택에 기초한 보안 조건 - Google Patents

스택에 기초한 보안 조건 Download PDF

Info

Publication number
KR20010040981A
KR20010040981A KR1020007008972A KR20007008972A KR20010040981A KR 20010040981 A KR20010040981 A KR 20010040981A KR 1020007008972 A KR1020007008972 A KR 1020007008972A KR 20007008972 A KR20007008972 A KR 20007008972A KR 20010040981 A KR20010040981 A KR 20010040981A
Authority
KR
South Korea
Prior art keywords
security
condition
security condition
action
computer
Prior art date
Application number
KR1020007008972A
Other languages
English (en)
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 US09/044,944 external-priority patent/US6226746B1/en
Application filed by 케네쓰 올센, 선 마이크로시스템즈, 인코포레이티드 filed Critical 케네쓰 올센
Publication of KR20010040981A publication Critical patent/KR20010040981A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/433Loop networks with decentralised control with asynchronous transmission, e.g. token ring, register insertion
    • 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/604Tools and structures for managing or administering access control systems
    • 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/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • 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/468Specific access rights for resources, e.g. using capability register
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

시스템은 컴퓨터 상에서 실행하는 스래드에 의해 요청된 행위(action)에 대한 보안 조건을 얻는다. 이 스래드는 그 실행 동안 복수의 메소드를 호출한다. 이 시스템은 호출 스택(call stack) 및 판정 유닛을 구비한다. 호출 스택은 식별자, 및 메소드가 스래드에 의해 호출되는 순서로 메소드의 각각에 대한 보안 조건을 저장한다. 이 판정 유닛은 호출 스택으로부터의 메소드 보안 조건을 결합하여 요청된 행위에 대한 보안 조건을 얻는다.

Description

스택에 기초한 보안 조건{Stack-based security requirements}
분산 시스템은 흔히 통신 네트워크에 의해 상호접속된 많은 서로 다른 컴퓨터를 포함한다. 흔히, "클라이언트"는 "서버" 프로세스에 의해 탐지되거나 또는 제어되는 자원을 요청하는 호출(call)을 발생하는 프로세스로서 정의된다. 본 명세서에서, 요청 프로세스와 서버 프로세스를 실행하는 컴퓨터를 각각 클라이언트와 서버라고 한다. 그러나, 이들 규칙은 정보의 내용 및 발생하는 특정 프로세싱에 따라 변할 수 있다.
클라이언트-서버 관계를 용이하게 하는 한가지 메커니즘은, 클라이언트가 서버의 함수를 호출하는 원격 프로시져 호출(RPC)이다. RPC는 동일하거나 서로 다른 컴퓨터 상에서 실행하는 두개의 프로세스 간의 동기화된 통신을 제공한다. RPC는 흔히 두가지 부분: 클라이언트 측과 서버 측으로 구현된다.
보안은, 클라이언트와 서버 컴퓨터가 통신할 때 발생하는 문제이다. 보안의 위반은 클라이언트 및 서버의 컴퓨터 모두의 운영을 크게 해칠 수 있다. 따라서, 컴퓨터 시스템을 이용하는 조직체는, 의도적으로 또는 비의도적으로 컴퓨터 시스템이 고장나게 하거나 또는 조직체의 기밀 정보를 훔치는 사람에 노출된다.
시스템 운영자는 전형적으로 세가지 종류의 보안 문제: (1) 메시지의 가로침과 변경을 방지하고, (2) 서버에의 액세스를 제어하고, 및 (3) 클라이언트에 의해 서버를 인증하는 것을 시정한다. 시스템 운영자는 종래부터 통신 조건을 설정하기 위한 방법을 제공하는 보안 클래스(security class)를 정의함으로써 오브젝트 지향 프로그래밍 환경에서의 이와 같은 문제들을 시정하고 있다. 한가지 이와 같은 오브젝트 지향 프로그래밍 환경은, 본 발명의 참조로서 일체화되어 있는 Jaworski에 의한 Java 1.1 Developer's Guide, Sams.net(1997)에 설명된 Sun MicrosystemsTMJavaTM오브젝트 지향 프로그래밍 환경이다.
보안 문제는, 다섯가지 통신 조건:
CONFIDENTIALITY, INTEGRITY, ANONYMITY, AUTHENTICATE_SERVER, 및 NO_DELEGATION을 포함한다. CONFIDENTIALITY는 메시지 내용이 비밀인 것을 보장한다. 시스템 운영자는 암호화 기법을 사용하여, 적절한 암호화 키를 갖는 당사자만이 메시지를 해독할 수 있게 한다. INTEGRITY는 메시지 내용(요청 및 응답 모두)이 변경되었을 때를 검출하고, 변경된 메시지를 처리하는 것을 거부한다. 시스템 운영자는 클라이언트 및 서버 위치 모두에서 이를 체크섬 등을 사용하여 달성할 수 있다.
ANONYMITY는 익명을 유지할 것을 요구하는 클라이언트를 나타낸다. 다른 말로 표현하면, 클라이언트는 서버에 의해 인가되는 것을 원치 않는다. AUTHENTICATE_SERVER는 원격 메소드를 호출하기 전에 서버를 인가할 것을 요구하는 클라이언트를 나타낸다. 이와 같은 통신 조건을 통해, 클라이언트는, 정확한 서버와 통신하는 것을 보장한다. NO_DELEGATION는 호출하는 클라이언트의 신원 하에 위임하는 것이 허용되지 않은 서버를 지칭한다. 다른 말로 표현하면, 서버는 클라이언트인 것으로 가장하는 다른 컴퓨터 시스템에 호출하는 것이 인가되지 않는다.
클라이언트 측의 위치에서, 보안 클래스는 각각의 통신 조건마다 단일 비트로서 표현된다. CONFIDENTIALITY, INTEGRITY, ANONYMITY, AUTHENTICATE_SERVER, 및 NO_DELEGATION에 대응하는 비트들을 설정함으로써, 클라이언트는, 각각 기밀이 보장되고 무결성이 보장되며, 클라이언트가 익명으로 남을 것이며, 서버가 인증되고 위임이 허용되지 않을 것이라는 것을 알린다.
종래에, 클라이언트는 전역 텍스트 또는 참조 기준으로 보안 클래스 우선순위를 가리킨다. 종래의 RPC 시스템에서는, 클라이언트는 흔히 서버에 대한 참조를 갖는다. "서버 참조"는 전형적으로 서버의 호스트의 네트워크 어드레스; 호스트 상에 포트가 접속이 이루어져야 하는 것과 같은 프로토콜 정보; 및 호출의 대상인 서브 오브젝트를 식별하는 오브젝트 식별자를 포함한다. 따라서, "참조마다(per-reference)"는 통신 조건이 서버 참조의 인스턴스(instance)마다 설정되어 있고, 따라서 서버 참조로서 이루어지는 임의의 호출에 의해 사용된다는 것을 의미한다.
만일 클라이언트가 하나의 메소드의 실행 동안 전역 콘텍스트(global context)에 대한 통신 조건을 설정하면, 그와 같은 통신 조건은 나중의 메소드에 의해 또는, 전역 콘텍스트를 오버라이트하는 나중의 메소드에 의해 또는 참조마다 통신 조건을 설정함으로써 무효화될 수 있다. 심지어 클라이언트가 메소드의 실행 동안 참조마다 통신 조건을 설정하더라도, 그와 같은 통신 조건은 나중의 메소드에 의해, 동일한 서버 참조에 대한 통신 조건을 오버라이트하는 나중의 메소드에 의해 무효화될 수 있다.
예를 들어, 클라이언트는 제2 메소드에 서버 참조를 전달하면서, 제2 메소드를 호출하는 제1 메소드를 호출한다고 가정한다. 제2 메소드는 상기 서버 참조를 사용하여 원격 서버에 대해 함수 X를 수행한다고 가정한다. 제1 메소드는 기밀 및 무결성의 통신 조건을 가지고 있으며, 제2 메소드로 참조를 전달하기 전에 서버 참조 또는 전력 콘텍스트에 대해 그와 같은 조건을 설정한다고 가정한다. 또한, 제2 메소드는 서버를 단지 인증하기 위한 통신 조건으로 교체하면서, 전달된 참조에 대한 통신 조건을 오버라이트한다고 가정한다. 종래의 시스템에서, 제2 메소드의 통신 조건이 제1 메소드의 통신 조건을 무효화하여, 서버에 대한 호출은 단지 서버를 인증할 것이다. 결국, 제1 메소드에 의해 요청된 기밀성 및 무결성이 보장될 것이다.
종래의 보안 클래스 우선순위 지정은, 호출 계층에 포함된 메소드의 개별적인 통신 조건이 따르는 것을 보장하지 못하고 있다. 따라서, 통신 시스템에서 보안 조건 지정을 개선시키는 것이 바람직하다.
본 발명은 컴퓨터 시스템에서의 보안 조치에 관한 것으로, 더 상세하게는 컴퓨터 상에서 실행하는 스래드(thread)의 호출 계층에서 메소드(methods)의 보안 조건을 결합하는 시스템 및 방법에 관한 것이다.
본 발명에 일체화되고 본 명세서의 일부를 구성하는 첨부 도면들은 본 발명에 따른 몇몇 실시예를 예시하며, 상세한 설명과 함께 본 발명의 주체를 설명하는데 도움이 된다.
도 1은 본 발명의 원리에 따른 컴퓨터 네트워크도.
도 2는 본 발명의 원리에 따른 구현에서 도 1의 컴퓨터를 도시하는 도면.
도 3은 도 2의 컴퓨터 상의 스래드에 연관된 호출 스택을 도시하는 도면.
도 4는 본 발명의 원리에 따른 구현에서, 도 3의 수집 보안 조건에 의해 수행되는 처리 순서도.
도 5는 행위에 연관된 보안 조건을 판정하기 위한, 본 발명에 따른 대체 실시예의 순서도.
본 발명에 따른 시스템 및 방법은, 호출 계층에서 메소드의 통신 조건을 결합함으로서 이와 같은 필요성을 시정한다. 즉, 메소드의 개별적인 통신 조건이 결합되어 호출에 적합한 업격한 세트의 통신 조건을 얻는다.
본 발명에 따른 시스템은, 컴퓨터 상에서 실행하는 스래드에 의해 요청된 행위에 대한 보안 조건을 얻는다. 이 스래드(thread)는 그 실행 동안 복수의 메소드(methods)를 호출한다. 이 시스템은 호출 스택(call stack) 및 판정 유닛을 구비한다. 호출 스택은 식별자, 및 메소드가 스래드에 의해 호출되는 순서로 메소드의 각각에 대한 보안 조건을 저장한다. 이 판정 유닛은 호출 스택으로부터의 메소드 보안 조건을 결합하여 요청된 행위에 대한 보안 조건을 얻는다.
본 발명의 다음의 상세한 설명은, 첨부하는 도면을 가리킨다. 서로 다른 도면에서 동일한 참조번호는 동일하거나 유사한 엘리먼트를 지칭한다. 또한, 다음의 상세한 설명은 본 발명을 제한하지 않는다. 그 대신에, 본 발명의 범위는 첨부하는 특허청구범위에 의해서 한정된다.
본 발명에 따른 시스템 및 방법은 자원을 액세스하는 행위를 요청하는 스래드의 각각의 루틴(즉, 함수, 메소드)의 통신 조건을 결합한다. 행위에 대한 요청이 검출되면, 스래드에 연관된 호출 계층에서의 루틴에 연관된 통신 조건에 기초하여, 행위에 대한 통신 조건을 판정한다. 호출 계층은 스래드에 의해 또는 그 대신에 호출되었지만 종료하지 않은 루틴을 가리킨다.
분산 시스템의 개요
본 발명에 따른 방법 및 시스템은 하드웨어와 소프트웨어 모두를 포함하는 다양한 구성요소를 갖는 분산 시스템("예시적인 분산 시스템")에서 동작한다. 예시적인 분산 시스템은 (1) 시스템의 사용자가 많은 장치의 네트워크를 통해 서비스와 자원을 공유할 수 있게 하며, (2) 신뢰성있고 안전한 분산 시스템의 개발을 가능하게 하는 툴(tools)과 프로그래밍 패턴을 프로그래머에게 제공하며, 그리고 (3) 분산 시스템을 관리하는 작업을 간단하게 한다. 이와 같은 목표를 달성하기 위해, 예시적인 분산 시스템은 일관성있는 방식으로 장치에서 장치로 코드 및 데이타 모두가 이동될 수 있게 하는 자바(Java)TM프로그래밍 환경을 이용한다. 따라서, 예시적인 분산 시스템은 자바 프로그래밍 환경의 상부 상에 계층화되어 있고, 그것에 의해 제공된 보안과 그것에 의해 제공된 강력한 타이핑을 포함한 환경의 특성을 이용한다. 자바 프로그래밍 환경은 본 발명의 참조로서 일체화되어 있는 Jaworski, Java 1.1 Developer's Guide, Sams.net(1997)에 보다 명확히 설명되어 있다.
예시적인 분산 시스템에서, 서로 다른 컴퓨터 및 장치들이 사용자에게 단일 시스템으로 보이는 것에 통합된다. 단일 시스템으로 보이게 함으로써, 예시적인 분산 시스템은 퍼스널 컴퓨터 또는 워크스테이션의 유연성 및 전용화 응답을 포기하지 않고 단일 시스템에 의해 제공될 수 있는 액세스의 간편성과 공유력을 제공한다. 예시적인 분산 시스템은 그래픽하게 분산되어 있지만, 신탁, 관리 및 폴리시의 기본적인 주석을 충족하는 사용자에 의해 운영되는 수많은 장치를 포함할 수 있다.
예시적인 분산 시스템 내에는 하나의 이상의 장치에 의해 제공되는 서비스의 다양한 논리적 그룹핑이 존재하고, 각각의 이와 같은 논리적 그룹핑은 Djinn으로 알려져 있다. "서비스"는 사용자, 프로그램, 장치 또는 다른 서비스에 의해 액세스될 수 있으며, 연산, 기억 관련, 통신 관련 또는 다른 사용자에의 액세스를 제공하는 것에 관련될 수 있는 자원, 데이타, 또는 기능을 가리킨다. Djinn의 일부로서 제공된 서비스의 예는 프린터, 디스플레이, 및 디스크와 같은 장치; 및 프로그램 또는 유틸리티와 같은 소프트웨어; 데이타베이스 및 파일과 같은 정보; 및 시스템의 사용자를 포함한다.
사용자 및 장치 모두는 Djinn일 수 있다. Djinn을 결합하면, 사용자 또는 장치는 Djinn에 제로 이상의 서비스를 부가하며, 보안 제한에 따라 포함하고 있는서비스중 임의의 서비스를 액세스할 수 있다. 따라서, 장치 및 사용자는 그 서비스에의 액세스를 위해 Djinn에 통합된다. Djinn의 서비스는, 프로그래밍적으로, 다른 오브젝트, 서로 다른 프로그래밍 언어로 작성된 소프트웨어 구성요소 또는 하드웨어 장치를 포함할 수 있는 자바 프로그래밍 환경의 오브젝트로서 보인다. 서비스는 해당 서비스를 요청할 수 있는 연산을 정의하는 인터페이스를 가지고 있으며, 서비스의 종류는 서비스를 구성하는 인터페이스를 결정한다.
도 1는 네트워크(1400)에 의해 상호연결된 컴퓨터(1100), 컴퓨터(1200), 및 장치(1300)를 포함하는 예시적은 분산 시스템(1000)을 도시한다. 컴퓨터(1100 및 1200)는 IBM-호환 컴퓨터 또는 심지어 "덤(dumb)" 터미널과 같은 종래 기술의 임의의 컴퓨터를 포함할 수 있다. 전형적인 동작 동안, 컴퓨터(1100 및 1200)는 데이타를 송신하고 검색하는 클라이언트-서버 관계를 수립할 수 있다.
장치(1300)는 프린터, 팩스밀리기, 기억장치, 컴퓨터 또는 다른 장치와 같은 많은 장치중 임의의 장치일 수 있다. 네트워크(1400)는 국부 영역 네트워크, 광대역 네트워크 또는 인터넷일 수 있다. 비록 두개의 컴퓨터와 하나의 장치만이 예시적인 분산 시스템(1000)을 구성하는 것으로 도시되어 있지만, 기술분야의 숙련자는 예시적인 분산 시스템(1000)은 부수적인 컴퓨터 또는 장치를 포함할 수 있다는 것을 알 것이다.
도 2는 예시적인 분산 시스템(1000)의 많은 소프트웨어 구성요소를 상세히 도시하는 컴퓨터(1100)를 도시한다. 기술분야의 숙련자는 컴퓨터(1200) 또는 장치(1300)가 유사하게 구성될 수 있다는 것을 알 것이다. 컴퓨터(1100)는 메모리(2100), 보조 기억장치(2200), 중앙 처리 장치(CPU)(2300), 입력 장치(2400), 및 비디오 디스플레이(2500)를 포함한다. 메모리(2100)는 룩업 서비스(2110), 디스커버리 서버(2120), 및 JavaTM런타임 시스템(2130)을 포함한다. 자바 런타임 시스템(2130)은 JavaTM원격 메소드 호출(RMI) 시스템(2140) 및 JavaTM버츄얼 머신(JVM)(2150)을 포함한다. 보조 기억장치(2200)는 JavaTMSpace(2210)를 포함한다.
상술한 바와 같이, 예시적인 분산 시스템(1000)은 자바 프로그래밍 환경에 기초하며, 따라서 자바 런타임 시스템(2130)을 이용한다. 자바 런타임 시스템(2130)은 자바 런타임 시스템의 상부 상에서 실행하는 프로그램들이 플랫폼에 독립하는 방식으로, 호스트 운영체제의 윈도우잉 능력 및 네트워킹 능력을 포함한 다양한 시스템 기능에 액세스하는 것을 가능하게 하는 자바TMAPI를 포함한다. 자바 API가 자바 런타임 시스템(2130)이 포트되어 있는 모든 운영체제에 걸쳐 단일의 공통 API를 제공하기 때문에, 자바 런타임 시스템의 상부 상에서 실행하는 프로그램들은 호스트 플랫폼의 운영 체제 또는 하드웨어 구성에 무관하게 플랫폼에 독립적으로 실행한다. 자바 런타임 시스템(2130)은 캘리포니아주, 마운틴 뷰에 위치한 선 마이크르시스템즈, 인크.로부터 입수할 수 있는 자바 소프트웨어 개발 킷의 일부로서 제공된다.
JVM(2150)은 또한 플랫폼 독립을 용이하게 한다. JVM(2150)은 바이트코드 형태로 프로그램으로부터 명령을 수신하고, 이들 바이트코드를 오브젝트 코드와 같은 실행 형태로 동적으로 변환하여 이를 실행함으로써 해석하는 추상 컴퓨팅 머신과 같이 행동한다. RMI(2140)는 하나의 컴퓨터 또는 장치 상에서 실행하는 오브젝트가 다른 컴퓨터 또는 장치 상에서 실행하는 오브젝트의 메소드를 호출하게 함으로써, 원격 메소드 호출을 용이하게 한다. RMI는 JVM의 내부에 위치될 수 있으며, RMI 및 JVM 모두는 자바 소프트웨어 개발 킷의 일부로서 제공된다.
룩업 서비스(2110)는 특정 Djinn에 이용가능한 서비스를 정의한다. 즉, 하나 이상의 Djinn, 결국 예시적인 분산 시스템(1000) 내에 하나 이상의 룩업 서비스가 존재할 수 있다. 룩업 서비스(2110)는 Djinn 내에 각각의 서비스를 위한 하나의 오브젝트를 포함하고, 각각의 오브젝트는 대응하는 서비스에의 액세스를 용이하게 하는 다양한 메소드를 포함한다. 룩업 서비스(2110)는 본 발명의 참조로서 일체화되어 있는 "Method and System for Facilitating Access to a Lookup Service"라는 제목의 현재 계류중인 미국특허출원 제 09/044,826호에 상세히 설명되어 있다.
디스커버리 서버(2120)는 부트와 조인(join) 또는 디스커버리(discovery)라고 하는 프로세스 동안 새로운 장치가 분산 시스템(1000)에 부가된 때를 검출하고, 이와 같은 새로운 장치가 검출되면, 디스커버리 서버는 새로운 장치로 룩업 서비스(2110)에 대한 참조를 전달함으로써, 새로운 장치가 룩업 서비스로서 그 서비스를 등록할 수 있으며, Djinn의 멤버가 된다. 등록후에, 새로운 장치는 Djinn의 멤버가 되며, 결국, 룩업 서비스(2110)에 포함된 모든 서비스를 액세스할 수 있다. 부트 및 결합의 프로세스는 본 발명의 참조로서 일체화되어 있는 "Apparatus and Method for providing Downlodable Code for Use in Communicating with a Device in a Distributed System"이라는 제목의 미국특허출원 제09/044,939호에 설명되어 있다.
JavaSpace(2210)는 오브젝트를 저장하는 예시적인 분산 시스템(1000) 내의 프로그램에 의해 사용되는 오브젝트 저장고이다. 프로그램들이 예시적인 분산 시스템 내의 다른 장치에 액세스가능하게 하는 것은 물론 오브젝트를 지속적으로 저장하기 위해 자바 공간(2210)을 사용한다. 자바 공간은 본 발명의 양수인에게 양도되고 본 발명의 참조로서 일체화되어 있는 "Database System Employing Polymorphic Entry and Entry Matching"(1997년 11월 17일 출원)이라는 제목의 현재 계류중인 미국특허출원 제08/971,529호에 상세히 설명되어 있다. 기술분야의 숙련자는 예시적인 분산 시스템(1000)은 룩업 서비스, 디스커버리 서버 및 JavaSpace를 포함할 수 있다는 것을 할 것이다.
예시적인 클래스 스택
전형적인 동작 동안, 컴퓨터(1100)와 같은 클라이언트 컴퓨터는 도 1의 컴퓨터(1200) 또는 장치(1300)와 같은 서버 상의 자원을 액세스하는 호출을 발생하는 스래드(또는 프로세스)를 실행한다. RMI(2140)(도 2)는 스래드에 의한 호출에 연관된 통신 조건을 판정한다. 본 발명의 구현에 따르면, 통신 조건은 어떤 루틴(즉, 메소드, 함수)에 따라 스래드가 현재 실행되고 있는지 그리고 어떤 루틴이 현재 실행되고 있는 루틴을 호출하였는지에 기초하여 변한다. 현재 실행되고 있는 스래드의 루틴의 실행으로 연결되는 호출의 시퀀스가 스래드의 호출 스택에 반영된다.
도 3은 스래드의 호출 스택의 예를 도시한다. 스래드를 구비하는 루틴의 통신 조건이 호출에서 충족되는 것을 보장하는 보안 메커니즘의 동작을 설명하기 위해 예시적인 호출 스택이 참조될 것이다.
도 3은 오브젝트(3310)의 메소드(3210)가 보안 제어기 오브젝트(3340)의 수집(collect) 통신 조건 메소드(3240)를 호출하는 또 다른 오브젝트(3330)의 메소드(3230)를 호출하는 다른 오브젝트(3320)의 메소드(3220)를 호출하는 스래드(3200)에 연관된 호출 스택(3100)을 포함하는 블럭도이다.
스래드(3200)는 컴퓨터(1100) 상에서 실행하는 스래드이다. 호출 스택(3100)은 임의의 소정의 인스턴스에서 스래드(320)에 의해 호출된 메소드의 호출 계층을 나타내는 스택 데이타 구조이다. 도 3에 도시한 인스턴스에서, 호출 스택(3100)은 아직 완료되지 않은 스래드에 의한 메소드의 각 실행에 대한 프레임을 포함한다.
각각의 프레임(3110-3140)은 호출되었지만 스래드(3200)에 의해 아직 완료되지 않은 메소드에 대응한다. 호출 스택(3100) 상의 프레임의 상대적 위치는 프레임에 대응하는 메소드의 호출 순서를 반영한다. 메소드가 완료하면, 메소드에 대응하는 프레임이 호출 스택(3100)으로부터 제거된다. 메소드가 호출되면, 메소드에 대응하는 프레임이 호출 스택(3100)의 상부에 부가된다.
각각의 프레임은 메소드, 및 프레임에 대응하는 오브젝트에 대한 정보를 포함한다. 이 정보로부터, 메소드의 클래스는 JVM(2150)에 의해 매 오브젝트에 대해 제공된 "겟 클래스(get class)" 메소드를 호출하므로써 판정될 수 있다. 프레임에 포함된 이 정보는 또한 대응하는 메소드에 대한 통신 조건을 포함한다.
예를 들어, 스래드(3200)가 메소드(3210)를 호출한다고 가정한다. 메소드(3210)를 실행하면서, 스래드(3200)는 메소드(3220)를 호출하고, 메소드(3200)를 실행하면서, 스래드(3200)는 메소드(3230)를 호출하고, 메소드(3230)를 실행하면서, 스래드(3200)는 메소드(3240)를 호출한다. 이 때, 호출 스택(3100)은 도 3에 도시한 바와 같이 메소드의 호출 계층을 나타낸다. 프레임(3140)은 메소스(3240), 프레임(3130) 내지 메소드(3230), 프레임(3120) 내지 메소드(3220), 및 프레임(3110) 내지 메소드(3210)에 대응한다. 스래드(3200)가 메소드(3240)를 완료하면, 프레임(3140)이 호출 스택(3100)으로부터 제거된다.
호출 스택 상의 각각의 메소드는 일단의 통신 조건을 포함한다. 다음 코드 예는 메소드에 대한 통신 조건을 설정하기 위한 한가지 기법을 도시한다. 비록 코드 예가 선 마이크로시스템즈, 인크.에 의한 자바 프로그래밍 언어와 유사하지만, 이 예는 예시적인 것으로, 실제의 코드 구현을 나타내도록 의도되어 있지 않다.
try {
Security.beginRequired(the requirements);
[code to which the requirements apply]
} finally {
Security.enScope();
}
통신 조건이 특정 메소드에 연관되어 있기 때문에, 그 호출 스택이 다수의 메소드에 연관된 다수의 프레임을 포함하는 스래드의 통신 조건을 판정하는 일부 메커니즘이 제공되어야만 한다. 본 발명의 구현에 따르면, 이 판정은 보안 제어기 오브젝트에 의해 수행된다.
예시적인 보안 제어기
본 발명에 따른 구현에 따르면, 보안 제어기 오브젝트(3340)는 스래드(3200)에 의해 요청된 특정 행위에 연관된 통신 조건을 판정한다. 특히, 서버에의 호출과 같은 행위를 수행하기 전에, RMI(3140)는 보안 제어기(3340)의 수집보안 조건 메소드(3240)을 호출한다. 수집 보안 조건 메소드(3240)는 호출 스택(3100) 상의 프레임의 각각에 연관된 통신 조건을 결합한다. 메소드(3340)는 통신 조건을 결합하여, 요청된 행위에 대한 엄격한 조건을 얻는다. 메소드(3240)는 임의의 편리한 방법으로 결합 동작을 수행한다.
만일 호출 계층 내의 임의의 메소드가 기밀성, 무결성 또는 인증 서버를 요청하면, 이때 메소드(3240)는 행위 기밀성, 무결성 또는 인증 서버를 각각 지정할 것이다. 만일 메소드가 익명을 요청하면, 메소드(3240)는 임의의 무익명 표시를 통해 행위에 대한 익명을 지정할 것이다. 만일 메소드가 위임을 허용하기를 거부하면, 메소드(3240)는 위임하는 임의의 인증을 통해 행위에 대한 어떠한 위임도 지정하지 않을 것이다.
행위에 대한 보안 조건의 판정
도 4는 수집 보안 조건 메소드(3240)에 의해 수행되는 처리 순서도이다. 스래드(3200)가 행위를 요청할 때 스래드(3200)가 메소드(3230)를 실행하고 있다고 가정한다. 또한 스래드(3200)가 메소드(3210), 메소드(3220) 및 메소드(3230)를 호출하였고, 스래드(3200)가 메소드(3240)를 호출하였을 때에는 완료되지 않았다고 가정한다. 행위에 대한 요청이 이루어진 때의 스래드(3200)에 연관된 통신 조건은 프레임(3110-3130)에 저장된다.
메소드(3240)는 메소드, 호출 스택(3100)에 위치한 프레임을 갖는 메소드(3210-3230)를 식별한다[단계 4110]. 메소드(3240)는 각각 메소드(3210-3230)에 연관된 프레임(3110-3130)을 조사하여, 메소드의 각각에 의해 요청된 통신 조건을 판정한다[단계 4120]. 행위에 대한 보안 조건은 메소드의 통신 조건을 결합함으로써 판정된다[단계 4130]. 메소드(3240)가 통신 조건을 결합하면, 이는 상술한 바와 같이 보다 엄격한 조건으로 보다 덜 엄격한 조건을 무효화한다. RMI(2140)는 메소드(3240)에 의해 판정된 보안 조건을 따르는 행위를 수행한다.
만일 행위가 서버 상의 원격 메소드를 호출하는 호출이면, 예를 들어 RMI(2140)는 서버의 보안 조건을 얻는다. RMI(2140)는 흔히 조건을 포함하는, 서버의 보안 클래스 라이브러리의 국부적인 복사본으로부터 서버의 보안 조건을 얻는다. RMI(2140)는 서버의 보안 조건을 사용하여, 원격 메소드가 메소드(3240)에 의해 판정된 보안 조건을 지원하는 지의 여부를 판정한다. 만일 원격 메소드가 보안 조건을 지원하지 않으면, RMI(2140)는 이 사실을 스래드(3200)에게 통지한다. RMI(2140)는 예외(Exception)를 던짐으로써 이를 행할 수 있다.
만일 원격 메소드가 보안 조건을 지원하면, RMI(2140)는 어떤 통신 프로토콜이 이용가능한지를 판정하고, 메소드(3240)에 의해 판정된 보안 조건 및 서버의 보안 조건의 결합의 최소를 충족하는 것을 선택한다. RMI(2140)가 통신 프로토콜을 찾으면, RMI(2140)는 서버와 협상하여 호출용 프로토콜을 사용한 다음, 호출을 수행하는 프롤토콜의 사용을 초기화한다.
행위에 대한 보안 조건을 판정하기 위한 대체 구현
도 5는 행위에 연관된 보안 조건을 판정하기 위한 본 발명에 따른 대체 실시예의 순서도이다. 호출 스택 상에 프레임을 갖는 메소드의 통신 조건이 도 4를 참조하여 상술한 방법으로 결합된다[단계 5110]. 본 발명에 따른 대체 실시예에서, 호출 스택 상의 프레임을 갖는 메소드의 통신 조건이 전역 콘텍스트상에 설정된 통신 조건과 결합되어, 행위에 대한 결합된 세트의 통신 조건을 얻는다[단계 5120]. 통신 조건을 결합할 때, 보다 엄격한 통신 조건이 보다 덜 엄격한 통신 조건을 무효화한다.
대체 실시예에서, 호출 스택 상에 프레임을 갖는 메소드의 통신 조건이 행위를 수행할 서버의 통신 조건과 결합되어, 행위에 대한 통신 조건을 얻는다[단계 5130]. 다시, 통신 조건을 결합할 때, 보다 엄격한 통신 조건이 보다 약한 통신 조건을 무효화한다.
다른 대체 실시예에서, 결합된 세트의 통신 조건(즉, 전역 콘텍스트 상에 설정된 통신 조건과 호출 스택 상의 프레임을 갖는 메소드의 통신 조건)이 행위를 수행하는 서버의 통신 조건과 결합되어, 행위에 대한 통신 조건을 얻는다[단계 5130]. 다시, 통신 조건을 결합할 때, 보다 엄격한 통신 조건이 보다 약한 통신 조건을 무효화한다.
본 발명에 따른 시스템 및 방법은, 호출 계층 내의 각 메소드에 연관된 보안 조건을 결합함으로써, 행위에 연관된 보안 조건을 판정한다.
본 발명의 바람직한 실시예의 상기 설명은, 예시적인 것으로, 개시된 본 발명을 한정하려고 의도된 것은 아니다. 상기 가르침에 비추어 변형 및 수정이 가능하거나 또는 본 발명의 실시로부터 얻어질 수 있다. 본 발명의 범위는 특허청구범위 및 그 등가물에 의해 한정된다.
본 발명에 따른 시스템 및 방법이 예시적인 분산 시스템 및 자바 프로그래밍 환경에서 동작하는 것으로 설명되었지만, 기술분야의 숙련자는 본 발명이 다른 시스템 및 다른 프로그래밍 환경에서 실시될 수 있다는 것을 알 것이다. 부수적으로, 비록 본 발명의 특징이 메모리에 저장되는 것으로 설명되었지만, 기술분야의 숙련자는 이와 같은 특징은 또한 하드 디스크, 플로피 디스크 또는 CD-ROM과 같이 보조 기억 장치와 같은 다양한 종류의 컴퓨터 판독 가능 매체; 인터넷으로부터의 반송파; 또는 다른 형태의 RAM 또는 ROM 상에 기억되거나 또는 그로부터 판독될 수 있다는 것을 알 것이다. 선, 선 마이크로세스템즈, 인크. 선 로고, 자바 및 자바에 기초한 상표는 미국 및 다른 국가에 있는 선 마이크로시스템즈, 인크.의 상표 또는 등록 상표이다.

Claims (17)

  1. 컴퓨터 상에서 실행하는 호출자(caller) - 상기 호출자는 실행 동안 복수의 메소드중의 적어도 하나를 호출함 - 에 의해 요청된 행위(action)에 대한 보안 조건을 얻는 시스템에 있어서,
    상기 메소드들중의 적어도 하나에 대한 보안 조건, 및 상기 호출자에 의한 호출 순서로 상기 메소드의 표현을 저장하는 호출 스택(call stack); 및
    상기 요청된 행위에 대한 보안 조건을 얻기 위해, 상기 호출 스택으로부터 상기 메소드 보안 조건을 결합하는 판정 유닛
    을 구비하는 시스템.
  2. 제1항에 있어서, 상기 호출 스택은 현재 호출된 상기 메소드들중의 메소드만의 표현 및 보안 조건을 저장하는 시스템.
  3. 제1항에 있어서, 상기 메소드 보안 조건은 호출자가 통신 동안 프라이버시를 보장하는 기밀성 조건을 포함하는 시스템.
  4. 제1항에 있어서, 상기 메소드 보안 조건은 호출자가 전송 동안 통신이 변경되지 않도록 보장하는 무결성 조건을 포함하는 시스템.
  5. 제1항에 있어서, 상기 메소드 보안 조건은 호출자가 요청된 행위에서 익명을 유지하는 익명성 조건을 포함하는 시스템.
  6. 제1항에 있어서, 상기 메소드 보안 조건은 호출자가 자신을 인증하는 장치를 요청하는 서버 인증 조건을 포함하는 시스템.
  7. 제1항에 있어서, 상기 메소드 보안 조건은 호출자가 호출자의 신원 하에 위임하는 장치를 인증하는 위임 조건을 포함하는 시스템.
  8. 제1항에 있어서, 상기 판정 유닛은
    보다 엄격한 메소드 보안 조건으로 보다 덜 엄격한 메소드 보안 조건을 무효화(overriding)하면서, 상기 호출 스택으로부터 상기 메소드 보안 조건을 결합하는 결합 유닛을 포함하는 시스템.
  9. 제1항에 있어서, 상기 호출자는 컴퓨터 상에서 실행하는 스래드인 시스템.
  10. 제1항에 있어서, 상기 호출자는 컴퓨터 상에서 실행하는 프로그램인 시스템.
  11. 컴퓨터 상에서 실행하는 스래드(thread) - 상기 스래드는 실행 동안 복수의 메소드중의 적어도 하나를 호출함 - 에 의해 요청된 행위(action)에 대한 보안 조건을 얻는 시스템에 있어서,
    상기 스래드에 의해 호출될 때 상기 메소드들중의 적어도 하나에 대한 보안 조건, 및 메소드 식별자를 저장하기 위한 수단;
    상기 저장된 메소드 보안 조건을 결합하기 위한 수단; 및
    상기 결합된 메소드 보안 조건으로부터 상기 요청된 행위에 대한 보안 조건을 얻기 위한 수단
    을 구비하는 시스템.
  12. 컴퓨터 상에서 실행하는 연산(operation) - 상기 연산은 실행 동안 복수의 함수들중의 적어도 하나를 호출함 - 에 의해 요청된 행위(action)에 대한 보안 조건을 판정하는 컴퓨터 구현 방법에 있어서,
    상기 연산에 의해 호출될 때 상기 함수들중의 적어도 하나에 대한 보안 조건, 및 함수 식별자를 저장하는 단계;
    상기 연산으로부터 상기 행위에 대한 요청을 수신하는 단계;
    상기 저장된 함수 보안 조건을 결합하는 단계; 및
    상기 결합된 함수 보안 조건으로부터 상기 요청된 행위에 대한 보안 조건을 판정하는 단계
    를 포함하는 방법.
  13. 컴퓨터 상에서 실행하는 연산(operation) - 상기 연산은 실행 동안 복수의 함수들중의 적어도 하나를 호출함 - 에 의해 요청된 행위(action)를 컴퓨터가 수행하도록 제어하기 위한 명령을 포함하는 컴퓨터 판독가능 매체에 있어서,
    상기 방법이
    상기 연산에 의해 호출될 때 상기 함수들중의 적어도 하나에 대한 보안 조건, 및 함수 식별자를 저장하는 단계;
    상기 연산으로부터 상기 행위에 대한 요청을 수신하는 단계;
    상기 저장된 함수 보안 조건을 결합하는 단계;
    상기 결합된 함수 보안 조건으로부터 상기 요청된 행위에 대한 보안 조건을 판정하는 단계; 및
    상기 판정된 보안 조건을 사용하여 상기 요청된 행위를 수행하는 단계
    를 포함하는 컴퓨터 판독가능 매체.
  14. 메모리를 구비하는 데이타 처리 시스템에 있어서,
    상기 메모리가
    실행 동안 복수의 메소들을 호출하는 프로그램;
    상기 프로그램에 의해 호출될 때 상기 메소드들의 식별자, 및 상기 메소드들 각각에 의해 요청된 보안 조건을 저장하는 호출 스택;
    상기 프로그램으로부터 행위에 대한 요청을 수신하고, 상기 호출 스택 내의 상기 메소드의 상기 메소드 보안 조건을 결합하고, 상기 결합된 메소드 보안 조건으로부터 상기 요청된 행위에 대한 보안 조건을 판정하고, 상기 판정된 보안 조건을 사용하여 상기 요청된 행위를 수행하는 런타임 환경; 및
    상기 런타임 환경 및 상기 프로그램을 실행하기 위한 프로세서
    를 구비하는 데이터 처리 시스템.
  15. 컴퓨터 시스템에서의 연산을 수행하는 방법에 있어서,
    제2 호출자를 통해 제1 호출자로부터 상기 연산을 수행하는 요청을 수신하는 단계 - 상기 제1 및 제2 호출자는 개별적인 보안 조건을 가짐-; 및
    상기 제1 및 제2 호출자 모두의 보안 조건에 기초하여, 상기 연산을 수행할 지의 여부를 판정하는 단계
    를 포함하는 방법.
  16. 제15항에 있어서, 상기 판정 단계는
    상기 보안 조건들 중의 보다 엄격한 보안 조건으로 상기 보안 조건들 중의 덜 엄격한 보안 조건을 무효화하면서 상기 제1 및 제2 호출자의 보안 조건을 결합하는 단계를 더 포함하는 방법.
  17. 제15항에 있어서, 상기 연산은 보안 조건을 갖는 서버에 대한 원격 호출이며, 상기 방법은
    서버의 보안 조건이 상기 제1 및 제2 호출자 모두의 보안 조건을 지원할 때 상기 연산을 수행하는 단계; 및
    상기 서버의 보안 조건이 상기 제1 및 제2 호출자 모두의 보안 조건을 지원하지 않을 때 상기 연산의 실행을 부인하는 단계
    를 더 포함하는 방법.
KR1020007008972A 1998-02-26 1999-02-18 스택에 기초한 보안 조건 KR20010040981A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US7604898P 1998-02-26 1998-02-26
US60/076,048 1998-02-26
US09/044,944 US6226746B1 (en) 1998-03-20 1998-03-20 Stack-based system and method to combine security requirements of methods
US09/044,944 1998-03-20
PCT/US1999/003519 WO1999044138A2 (en) 1998-02-26 1999-02-18 Stack-based security requirements

Publications (1)

Publication Number Publication Date
KR20010040981A true KR20010040981A (ko) 2001-05-15

Family

ID=26722193

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007008972A KR20010040981A (ko) 1998-02-26 1999-02-18 스택에 기초한 보안 조건

Country Status (6)

Country Link
EP (1) EP1057110A2 (ko)
JP (1) JP2002505477A (ko)
KR (1) KR20010040981A (ko)
CN (1) CN1298511A (ko)
AU (1) AU2686699A (ko)
WO (1) WO1999044138A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100560166B1 (ko) * 2001-12-05 2006-03-13 한국전자통신연구원 실시간 버퍼 오버플로우 해킹 탐지 방법
KR100917370B1 (ko) * 2005-11-30 2009-09-16 후지제롯쿠스 가부시끼가이샤 프로그램을 저장한 컴퓨터 판독 가능 매체, 프로그램을실행하는 정보 처리 장치, 및 프로그램을 실행하기 위한프로그램 제어 방법
KR100949949B1 (ko) * 2008-02-28 2010-03-30 주식회사 안철수연구소 콜 스택을 이용한 디버깅 방지 방법 및 장치

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4062441B2 (ja) 2003-07-18 2008-03-19 日本電気株式会社 並列処理システム及び並列処理プログラム
US7284107B2 (en) * 2004-04-30 2007-10-16 Microsoft Corporation Special-use heaps
US10229280B2 (en) * 2011-06-14 2019-03-12 International Business Machines Corporation System and method to protect a resource using an active avatar

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE248402T1 (de) * 1993-07-16 2003-09-15 Siemens Ag Verfahren zur koordination von parallelen zugriffen mehrerer prozessoren auf resourcenkonfigurationen
AU3727097A (en) * 1996-07-25 1998-02-20 Tradewave Corporation Method and system for generalized protocol implementation on client/server communications connections

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100560166B1 (ko) * 2001-12-05 2006-03-13 한국전자통신연구원 실시간 버퍼 오버플로우 해킹 탐지 방법
KR100917370B1 (ko) * 2005-11-30 2009-09-16 후지제롯쿠스 가부시끼가이샤 프로그램을 저장한 컴퓨터 판독 가능 매체, 프로그램을실행하는 정보 처리 장치, 및 프로그램을 실행하기 위한프로그램 제어 방법
KR100949949B1 (ko) * 2008-02-28 2010-03-30 주식회사 안철수연구소 콜 스택을 이용한 디버깅 방지 방법 및 장치

Also Published As

Publication number Publication date
AU2686699A (en) 1999-09-15
EP1057110A2 (en) 2000-12-06
JP2002505477A (ja) 2002-02-19
WO1999044138A3 (en) 1999-11-04
CN1298511A (zh) 2001-06-06
WO1999044138A2 (en) 1999-09-02

Similar Documents

Publication Publication Date Title
US6226746B1 (en) Stack-based system and method to combine security requirements of methods
US6282652B1 (en) System for separately designating security requirements for methods invoked on a computer
US6138238A (en) Stack-based access control using code and executor identifiers
US6865735B1 (en) Process for rewriting executable content on a network server or desktop machine in order to enforce site specific properties
JP4164855B2 (ja) プラグ対応認可システムに対するサーバサポート方法およびシステム
JP4907603B2 (ja) アクセス制御システムおよびアクセス制御方法
US7065784B2 (en) Systems and methods for integrating access control with a namespace
US7565533B2 (en) Systems and methods for providing object integrity and dynamic permission grants
EP0803154B1 (en) A mechanism for providing security to a dual decor command host system
US7281139B2 (en) Authenticating legacy service via web technology
US10757079B2 (en) Method and system for controlling remote session on computer systems using a virtual channel
US7062780B2 (en) Granular access control of inter-process communications in a compartment mode workstation labeled environment
JPH07234846A (ja) 分散計算機システム
US6438614B2 (en) Polymorphic token based control
US20090106348A1 (en) Method and system for limiting instances of a client-server program within a restricted distributed network
US8938473B2 (en) Secure windowing for labeled containers
KR20010040981A (ko) 스택에 기초한 보안 조건
Gidron et al. Dynamic configuration of access control for mobile components in fargo
Karp et al. The client utility architecture: the precursor to E-speak
Lang Access policies for middleware
US8875300B1 (en) Method and apparatus for authenticating a request between tasks in an operating system
Nagaratnam et al. Role-based Protection and Delegation for Mobile Object Environments
US20020138434A1 (en) Method and apparatus in a data processing system for a keystore

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid