KR101437249B1 - 애플리케이션 클래스들을 로딩하는 시스템 및 방법 - Google Patents

애플리케이션 클래스들을 로딩하는 시스템 및 방법 Download PDF

Info

Publication number
KR101437249B1
KR101437249B1 KR1020127014145A KR20127014145A KR101437249B1 KR 101437249 B1 KR101437249 B1 KR 101437249B1 KR 1020127014145 A KR1020127014145 A KR 1020127014145A KR 20127014145 A KR20127014145 A KR 20127014145A KR 101437249 B1 KR101437249 B1 KR 101437249B1
Authority
KR
South Korea
Prior art keywords
class
security
variants
application
processing device
Prior art date
Application number
KR1020127014145A
Other languages
English (en)
Other versions
KR20120083923A (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 KR20120083923A publication Critical patent/KR20120083923A/ko
Application granted granted Critical
Publication of KR101437249B1 publication Critical patent/KR101437249B1/ko

Links

Images

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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

애플리케이션에서, 클래스의 변종들이 발생될 수도 있고, 그 애플리케이션에 대한 상이한 보안 사용권한과 관련될 수도 있다. 클래스가 로딩될 때, 예를 들어, 보안 토큰을 디코딩함으로써, 애플리케이션의 보안 사용권한에 대한 결정이 이루어진다. 그후, 요청된 보안 레벨에 매칭하는 클래스 변종들을 저장하는 저장소로부터 클래스가 취출된다. 따라서, 보안 사용권한에 대해 적절한 것으로서 완전한 기능 또는 축소된 기능을 가질 수도 있는 취출된 클래스 변종이 로딩될 수도 있다.

Description

애플리케이션 클래스들을 로딩하는 시스템 및 방법{SYSTEM AND METHOD FOR LOADING APPLICATION CLASSES}
본 개시물은, 보안 애플리케이션에 관한 것이며, 특히 사용자 보안 사용권한 에 기초하여 클래스들을 애플리케이션으로 로딩하는 것에 관한 것이다.
디바이스 상에서 애플리케이션을 호출할 때, 사용자의 보안 사용권한 (security permission) 에 의존하여 애플리케이션에 대해 또는 애플리케이션의 몇몇 성능에 대해 허가되지 않은 액세스를 방지할 필요가 있을 수도 있다. 기존의 해결방법은, 애플리케이션 로직 또는 보안 모듈 내의 조건부 로직을 이용하여, 보호된 성능이 액세스될 수 있는지의 여부를 결정한다. 그러나, 우발적이든 악의적 의도이든 사용권한이 부정확하게 설정되어 있으면, 보호된 성능을 구현하는 코드가 애플리케이션에 대해 가시적인 경우에는, 보호된 성능이 액세스될 수도 있다. 이는 분산형 애플리케이션들에 있어서는 심각한 문제가 될 수 있다.
보안 애플리케이션을 개발 및/또는 제공하기 위한 개선된 시스템 및 방법이 요구된다.
본 개시물의 일 양태에서, 애플리케이션 내의 클래스를 로딩하는 방법이 제공되는데, 이 방법은, 클래스 요건을 결정하는 단계, 보안 사용권한을 결정하는 단계, 보안 사용권한과 관련된 요청 클래스의 클래스 변종 (class variant) 을 취출하는 단계 및 취출된 클래스 변종을 로딩하는 단계를 포함한다.
본 개시물의 일 양태에서, 요청 핸들러 및 적어도 하나의 클래스로더를 포함하는 애플리케이션이 제공된다. 요청 핸들러는, 클래스에 대한 요청을 프로세싱하고 애플리케이션의 보안 사용권한을 결정하도록 구성될 수도 있다. 클래스로더는 보안 사용권한에 의존하여 클래스 변종을 로딩하도록 구성될 수도 있다.
본 개시물의 일 양태에서, 실행될 때, 프로세서로 하여금, 보안 토큰을 디코딩하게 하고, 보안 토큰으로부터 보안 사용권한을 결정하게 하고, 보안 사용권한과 관련된 클래스 저장소를 선택하게 하고, 선택된 클래스 저장소로부터 클래스를 로딩하게 하는 프로세서에 의한 실행을 위한 컴퓨터-실행가능 명령을 포함하는 컴퓨터-판독가능 매체가 제공된다.
이하, 구체적인 실시형태들 및 첨부된 도면에 대해 오직 예시로서 참조가 이루어질 것이다.
도 1 은 애플리케이션 구조를 예시한다.
도 2 는 클래스들을 도 1 의 애플리케이션으로 로딩하기 위한 프로세스를 예시한다.
도 3 은 호출 (invocation) 을 수행하기 위한 프로세스를 예시한다.
도 4 는 클래스 인스턴스를 획득하기 위한 프로세스를 예시한다.
도 5 는 애플리케이션을 실행하기 위한 프로세스 및 메모리를 예시한다.
도 6 은 도 5 의 프로세서상에서 실행가능한 명령 세트를 예시한다.
도 7 은 클래스 저장 프로세서와 통신하는 애플리케이션 프로세서를 예시한다.
애플리케이션 구조 (10) 가 도 1 에 예시된다. 애플리케이션 (10) 은, 로딩되었고 애플리케이션의 기능들을 수행하도록 이용되는 애플리케이션 클래스들 (12) 을 포함한다. 통상적으로, 애플리케이션 클래스들은 요청 핸들러 (15) 내의 클래스로더 (14) 를 이용하여 로딩된다. 본 개시물의 실시형태에서, 애플리케이션 (10) 은 보안 토큰으로서 인코딩된 보안 사용권한들의 세트를 갖도록 구성될 수도 있다. 애플리케이션이 보안 동작을 수행할 때, 요청 핸들러 (15) 는 호출 (invocation) 을 인터셉트한다. 요청 핸들러 (15) 는 호출기에 대해 일부에 있을 수도 있고 원격 프로세스에 있을 수도 있다. 본 실시형태의 클래스로더 (14) 는 보안 토큰에서 인코딩된 사용권한에 기초하여 클래스들의 다수의 변종들을 로딩하도록 구성된다. 보안 토큰은, 애플리케이션이 특정 컴퓨팅 디바이스상에 설치될 때, 사용자가 로그인 동작을 수행할 때, 또는 사용자의 보안 인증을 확립하는 임의의 다른 수단에 의해 발생될 수도 있다. 분산형 애플리케이션에서, 보안 토큰은 보안 (암호화된) 접속을 통한 원격 호출과 같은 원격 동작을 수행하기 위한 확립된 메커니즘을 이용하여 프로세스들 사이에서 통과될 수도 있다. 클래스로더 (14) 는, 보안 사용권한을 이용하여 어떤 변종이 로딩될지를 결정한다.
클래스를 로딩하기 위한 프로세스는 도 2 의 플로우차트 (100) 에 나타난다. 단계 (101) 에서, 로딩될 클래스에 대한 요건이 생성된다. 그후, 애플리케이션에 대한 보안 사용권한이 평가된다 (단계 102). 다음으로, 보안 사용권한에 관련된 요청 클래스의 클래스 변종이 취출되고 (단계 103) 로딩된다 (단계 104).
사용권한의 특정 세트는 클래스들의 특정 변종 세트에 매핑된다. 각각의 세트는 상이한 그룹의 클래스들을 포함할 수도 있다. 그러나, 애플리케이션에 의해 직접 액세스될 각각의 변종 클래스는, 동일한 명칭 및 명칭공간을 갖고, 동일한 공공 API 를 제공한다. 변종 클래스들의 각각의 세트는 개별적인 저장소, 예를 들어, 저장소 A (17), 저장소 B (18) 등 내에 포함된다. 클래스 저장소들은, 파일시스템 내에 국부적으로 위치될 수도 있고, 중앙 원격 서버로부터 네트워크를 통해서 이용가능할 수도 있다. 클래스로더 (14) 는 보안 사용권한을 이용하여 클래스들을 어느 저장소로부터 로딩할 것인지를 결정한다. 애플리케이션이 보안 사용권한을 조건으로 클래스에 대한 액세스를 요청하는 경우, 클래스로더는 애플리케이션의 사용권한에 기초하여 적절한 저장소로부터 클래스의 변종을 로딩할 것이다. 이는 보호된 성능의 우발적 또는 악의적 이용으로부터 시스템을 보호한다. 클래스의 각각의 변종이 정확한 명칭공간을 갖고 정확한 공공 API 를 제공하기 때문에, 애플리케이션 내에서 로딩되고 호출될 때 클래스가 적절하게 실행될 것이다.
클래스의 일 변종은 행정적 보안 사용권한을 갖는 사용자에 의해서만 액세스가능한 전체 성능을 제공하도록 코딩될 수도 있고, 동일한 클래스의 다른 변종은 리드-온리 (read-only) 보안 사용권한을 갖는 사용자에 의해 액세스가능한 축소된 기능을 제공하도록 코딩될 수도 있다. 예를 들어, 일 클래스 변종은 모든 사용자 계정의 생성 및 삭제를 지원할 수도 있고, 다른 클래스 변종은 계정 정보를 생성 또는 삭제가 아닌 업데이트하는 것을 지원할 수도 있으며, 제 3 클래스 변종은 현재 사용자에 대한 계정 정보를 관찰하는 것만을 지원할 수도 있다.
도 3 에서, 애플리케이션에 의해 클래스의 호출을 수행하기 위한 프로세스 (200) 가 나타난다. 단계 (201) 에서, 요청 핸들러 (15) 는 호출을 수신하고 단계 (202) 에서 호출로부터 보안 토큰을 디코딩한다. 보안 토큰이 유효하다고 가정하면 (단계 203), 클래스로더 (14) 는 보안 토큰에 표시된 보안 사용권한에 매칭하는 적절한 클래스 저장소로부터 클래스 변종을 취출한다 (단계 204). 그후, 취출된 클래스는 호출을 수행하도록 이용될 수도 있다 (단계 205).
클래스 인스턴스를 취출하는 프로세스가 도 4 의 플로우차트 (300) 에 나타난다. 단계 (301) 에서, 요청된 보안 사용권한 및 수행되는 클래스 동작에 기초하여 클래스 요건이 생성된다. 단계 (302) 에서 결정된 바와 같이 클래스가 사전에 로딩되었고 단계 (303) 에서 결정된 바와 같이 이용가능한 클래스의 인스턴스가 존재하는 경우, 관례대로 호출이 수행될 수도 있다 (305). 클래스 인스턴스가 이용가능하지 않지만 사전에 로딩되었던 경우, 호출을 수행하도록 (305) 진행하기 전에 단계 (304) 에서 클래스 인스턴스가 생성될 수 있다. 클래스가 사전에 로딩 (302) 되지 않은 경우, 클래스를 로딩하도록 이용되는 클래스로더가 단계 (306) 에서 결정된다. 각각의 클래스 저장소는 애플리케이션 내에 그 저장소만을 위한 별도의 클래스로더를 가질 수도 있다. 이는, 애플리케이션을 적절하게 침입차단시키도록 돕고, 동일한 애플리케이션 프로세스 내에 동일한 클래스의 다수의 변종들이 로딩되도록 허용한다. 이 클래스로더는, 예를 들어, 보안 토큰으로부터의 클래스 요건에 표시된 보안 사용권한에 기초하여 결정된다. 선택된 클래스로더가 이용가능한 경우 (307), 클래스가 로딩된다 (308). 클래스가 단계 (309) 에서 결정되는 것과 같이 성공적으로 로딩되는 경우, 클래스의 인스턴스가 생성되어 (304) 호출이 수행될 수 있다 (305).
애플리케이션이 시작될 때, 로컬 컴퓨팅 디바이스에 저장된 보안 사용권한의 세트를 로딩한다. 또한, 애플리케이션은, 수많은 클래스 저장소 및 각각의 저장소가 요구하는 사용권한을 인지하도록 구성된다. 그후, 애플리케이션은 각각의 저장소로부터 클래스들을 로딩하기 위해 보안 클래스로더들의 세트를 초기화한다. 각각의 보안 클래스로더는 저장소들 중 하나의 저장소로부터 클래스들을 로딩하도록 구성되고, 그 저장소에 의해 요청된 보안 사용권한에 대해 인지한다. 앞서 언급한 바와 같이, 클래스 저장소들은 컴퓨팅 디바이스에 대해 국부적으로 존재할 수도 있고, 또는 서버를 통해서 원격으로 액세스가능할 수도 있다.
애플리케이션은 하드웨어, 소프트웨어, 펌웨어 또는 하드웨어, 소프트웨어 및/또는 펌웨어의 조합으로 구현될 수도 있다. 하드웨어 실시형태에서, 애플리케이션은 도 5 에 도시된 바와 같이 메모리 (62) 와 동작가능하게 관련된 프로세서 (61) 상에서 실행될 수도 있다. 메모리 (62) 는 도 6 에 도시된 바와 같이 프로세서 (61) 에 의해 실행가능한 명령 세트 (400) 를 저장할 수도 있다. 명령 세트는 메모리 (62) 내에 저장될 수도 있는 보안 토큰을 프로세서 (61) 가 디코딩하도록 허용한다 (단계 401). 디코딩되면, 프로세서 (61) 는 보안 토큰에 표시된 보안 사용권한을 결정할 수도 있고 (단계 402), 그후, 보안 사용권한과 관련된 클래스 저장소를 선택할 수도 있다 (단계 403). 다음으로, 프로세서 (61) 는 선택된 저장소로부터 클래스를 로딩한다 (단계 403).
프로세서 (61) 는, 수많은 클래스 저장소들을 저장하는 메모리 (72) 와 관련된 클래스 저장소 프로세서와 같은 제 2 프로세서 (71) 와 통신할 수도 있다. 애플리케이션 프로세서 (61) 는 적절한 통신 링크 (65) 를 통해서 클래스 저장소 프로세서 (71) 에 클래스 요청을 전송할 수도 있다.
본 발명의 실시형태들이 첨부된 도면에서 예시되고 전술한 설명에서 설명되었지만, 본 발명은 개시된 실시형태들에 한정되지 않고, 후술하는 청구항에 의해 설명되고 정의되는 바와 같이 본 발명의 사상으로부터 벗어나지 않고 수많은 재배치, 변형, 및 치환할 수 있다는 것이 이해될 것이다. 예를 들어, 본 발명의 성능들은 하나 이상의 블록, 모듈, 프로세서 또는 메모리에 의해 전체적으로 및/또는 부분적으로 수행될 수 있다. 또한, 이러한 성능들은, 현재의 방식 또는 분산된 방식으로 수행될 수도 있고, 정보를 제공 및/또는 수신할 수 있는 임의의 디바이스 상에서 또는 임의의 디바이스를 경유하여 수행될 수도 있다. 또한, 특정 방식으로 나타나지만, 다양한 모듈들 또는 블록들은 본 발명의 범위를 벗어나지 않고 재배치될 수도 있다. 또한, 특정 방식으로 나타나지만, 더 많은 수 또는 더 적은 수의 모듈들 및 접속부들이 본 발명을 달성하기 위해, 본 발명에 추가적으로 공지된 특징을 제공하기 위해, 및/또는 본 발명을 더욱 효과적으로 만들기 위해, 본 발명을 통해서 활용될 수 있다. 또한, 다양한 모듈들 사이에서 전송된 정보는, 데이터 네트워크, 인터넷, 인터넷 프로토콜 네트워크, 무선 소스, 유선 소스 중 적어도 하나를 통해서 그리고 복수의 프로토콜들을 통해서 모듈들 사이에서 전송될 수 있다.

Claims (37)

  1. 애플리케이션 내의 클래스를 로딩하기 위한 방법으로서,
    실행 중인 상기 애플리케이션에 의해 호출된 상기 클래스를, 프로세싱 디바이스에서, 결정하는 단계;
    상기 애플리케이션 내에서의 보안 토큰으로서 인코딩된 보안 사용권한 (security permission) 을, 상기 프로세싱 디바이스에서, 디코딩하는 단계; 및
    상기 보안 사용권한에 적어도 부분적으로 기초하여 상기 클래스에 연관된 복수의 클래스 변종 (class variant) 으로부터 클래스 변종을, 적어도 하나의 보관소에서, 취출하는 단계를 포함하고;
    각각의 상기 복수의 클래스 변종은 상기 애플리케이션에 대응되는 기능을 정의하도록 구성되는, 방법.
  2. 제 1 항에 있어서,
    상기 보안 토큰으로서 인코딩된 상기 보안 사용권한을, 상기 프로세싱 디바이스에서, 디코딩하는 단계는, 상기 애플리케이션을 실행할 때 상기 보안토큰으로서 인코딩된 상기 보안 사용권한을 디코딩하는 단계를 더 포함하는, 방법.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 제 1 항에 있어서,
    각각의 상기 복수의 클래스 변종을 대응되는 보안 사용권한과 연관시키는 단계를 포함하는, 방법.
  7. 제 6 항에 있어서,
    각각의 상기 복수의 클래스 변종을 개별의 저장소 내에 저장하는 단계를 포함하는, 방법.
  8. 제 6 항에 있어서,
    각각의 상기 복수의 클래스 변종은 동일한 명칭공간을 포함하는, 방법.
  9. 제 6 항에 있어서,
    각각의 상기 복수의 클래스 변종은 동일한 애플리케이션 프로그래밍 인터페이스를 포함하는, 방법.
  10. 제 6 항에 있어서,
    제 1 클래스 변종은 제 1 기능을 제공하고,
    제 2 클래스 변종은 상기 제 1 클래스 변종과 비교하여 축소된 기능을 제공하는, 방법.
  11. 제 6 항에 있어서,
    각각의 대응되는 보안 사용권한과 클래스 변종 보관소를 연관시키는 단계를 포함하는, 방법.
  12. 제 11 항에 있어서,
    각각의 상기 클래스에 대한 상기 복수의 클래스 변종은, 동일한 보안 사용권한들을 갖는 적어도 다른 클래스의 복수의 클래스 변종들과 함께 보관소에 저장되는, 애플리케이션 내의 클래스를 로딩하는 방법.
  13. 애플리케이션 내의 클래스를 로딩하기 위한 장치로서,
    메모리 디바이스; 및
    상기 메모리 디바이스에 동작 가능하게 커플링된 프로세싱 디바이스를 포함하고, 상기 프로세싱 디바이스는:
    요청 핸들러; 및
    적어도 하나의 클래스로더를 포함하고,
    상기 요청 핸들러는:
    실행 중인 상기 애플리케이션에 의해 호출된 상기 클래스에 대한 요청을 프로세싱하고; 그리고
    상기 애플리케이션 내에서의 보안 토큰으로서 인코딩된 보안 사용권한 (security permission) 을 디코딩하도록 구성되고,
    상기 클래스로더는 상기 보안 사용권한에 적어도 부분적으로 기초하여 상기 클래스에 연관된 복수의 클래스 변종 (class variant) 으로부터 클래스 변종을 취출하도록 구성되고; 그리고
    각각의 상기 복수의 클래스 변종은 상기 애플리케이션에 대응되는 기능을 정의하도록 구성되는, 장치.
  14. 삭제
  15. 삭제
  16. 제 13 항에 있어서,
    상기 요청 핸들러는 상기 애플리케이션의 실행시에 상기 보안 토큰으로서 인코딩된 상기 보안 사용권한을 디코딩하도록 구성되는, 장치.
  17. 삭제
  18. 제 13 항에 있어서,
    제 1 클래스 변종은 제 1 기능을 제공하고, 그리고
    제 2 클래스 변종은 상기 제 1 클래스 변종과 비교하여 축소된 기능을 제공하는, 장치.
  19. 제 18 항에 있어서,
    상기 제 1 클래스 변종은 제 1 보안 사용권한과 연관되고, 그리고
    상기 제 2 클래스 변종은 제 2 보안 사용권한과 연관되는, 장치.
  20. 저장된 컴퓨터-실행가능 명령들을 포함하는 컴퓨터-판독가능 저장 디바이스로서, 상기 명령들은 프로세싱 디바이스가:
    애플리케이션 내에서의 보안 토큰으로서 인코딩된 보안 사용권한 (security permission) 을 디코딩하는 것;
    실행 중인 상기 애플리케이션에 의해 호출된 클래스를 결정하는 것;
    상기 클래스와 연관된 클래스 보관소를 선택하는 것; 및
    상기 보안 사용권한에 적어도 부분적으로 기초하여 복수의 변종 (variant) 으로부터 상기 클래스에 대응되는 변종을 상기 클래스 보관소에서 로딩하는 것
    을 포함하는 동작들을 수행하게 하도록 구성되는, 컴퓨터-판독가능 저장 디바이스.
  21. 제 20 항에 있어서,
    상기 프로세싱 디바이스는 각각의 상기 복수의 클래스 변종을 대응되는 보안 사용권한 레벨에 연관시키는 것을 더 포함하는 동작들을 수행하도록 구성되는, 컴퓨터-판독가능 저장 디바이스.
  22. 제 21 항에 있어서,
    상기 프로세싱 디바이스는:
    각각의 상기 복수의 변종을 개별의 저장소에 저장하는 것
    을 더 포함하는 동작들을 수행하도록 구성되는, 컴퓨터-판독가능 저장 디바이스.
  23. 제 22 항에 있어서,
    상기 프로세싱 디바이스는:
    각각의 상기 대응되는 보안 사용권한 레벨을 개별의 저장소에 연관시키는 것
    을 더 포함하는 동작들을 수행하도록 구성되는, 컴퓨터-판독가능 저장 디바이스.
  24. 제 21 항에 있어서,
    각각의 상기 복수의 클래스 변종은 공통의 명칭공간을 포함하는, 컴퓨터-판독가능 저장 디바이스.
  25. 제 21 항에 있어서,
    각각의 상기 복수의 변종은 공통의 애플리케이션 프로그래밍 인터페이스를 포함하는, 컴퓨터-판독가능 저장 디바이스.
  26. 제 21 항에 있어서,
    상기 클래스에 대한 상기 복수의 변종은, 동일한 보안 사용권한 레벨들을 갖는 적어도 다른 클래스의 복수의 클래스 변종들과 함께 보관소에 저장되는, 컴퓨터-판독가능 저장 디바이스.
  27. 제 20 항에 있어서,
    제 1 클래스 변종은 제 1 기능을 제공하고,
    제 2 클래스 변종은 상기 제 1 클래스 변종과 비교하여 축소된 기능을 제공하는, 컴퓨터-판독가능 저장 디바이스.
  28. 명령을 저장하도록 구성된 메모리 디바이스; 및
    프로세싱 디바이스를 포함하고, 상기 프로세싱 디바이스는:
    실행 중인 애플리케이션에 의해 호출된 클래스를 결정하게 하고;
    상기 애플리케이션의 실행 중에 상기 애플리케이션 내에 보안 토큰으로서 인코딩된 보안 레벨을 디코딩하게 하고;
    상기 보안 레벨에 연관된 클래스 보관소를 선택하게 하고; 그리고
    복수의 클래스 변종으로부터 상기 클래스에 대응되는 클래스 변종 (class variant) 을 상기 클래스 보관소에서 로딩하게 하는
    상기 메모리 디바이스에 저장된 명령들을 실행하도록 구성되는, 디바이스.
  29. 제 28 항에 있어서,
    상기 프로세싱 디바이스는 또한:
    각각의 상기 복수의 클래스 변종을 대응되는 보안 사용권한 (security permission) 과 연관시키는
    상기 명령들을 실행하도록 구성되는, 디바이스.
  30. 제 29 항에 있어서,
    상기 프로세싱 디바이스는 또한:
    각각의 상기 복수의 클래스 변종을 개별의 저장소에 저장시키는
    상기 명령들을 실행하도록 구성되는, 디바이스.
  31. 제 29 항에 있어서,
    상기 프로세싱 디바이스는 또한:
    대응되는 보안 레벨을 개별의 저장소에 연관시키는
    상기 명령들을 실행하도록 구성되는, 디바이스.
  32. 제 29 항에 있어서,
    각각의 상기 복수의 클래스 변종은 공통의 명칭공간을 포함하는, 디바이스.
  33. 제 29 항에 있어서,
    각각의 상기 복수의 클래스 변종은 공통의 애플리케이션 프로그래밍 인터페이스를 포함하는, 디바이스.
  34. 제 29 항에 있어서,
    상기 프로세싱 디바이스는 또한:
    보관소 내의 상기 클래스에 대한 상기 복수의 클래스 변종을, 동일한 보안 사용권한 레벨들을 갖는 적어도 다른 클래스에 대한 복수의 클래스 변종들과 함께 보관소에 저장시키는
    상기 명령들을 실행하도록 구성되는, 디바이스.
  35. 제 28 항에 있어서,
    제 1 클래스 변종은 제 1 기능을 제공하고,
    제 2 클래스 변종은 상기 제 1 클래스 변종과 비교하여 축소된 기능을 제공하는, 디바이스.
  36. 애플리케이션 내에서 보안 토큰으로서 인코딩된 보안 사용권한 (security permission) 을, 프로세싱 디바이스에서, 디코딩하는 단계;
    실행 중인 상기 애플리케이션 내에서의 클래스에 대한 요구조건을, 상기 프로세싱 디바이스에서, 식별하는 단계;
    사전에 로딩되지 않은 상기 클래스에 응답하여, 상기 보안 사용권한에 적어도 부분적으로 기초하여 상기 요구조건에 대응되는 클래스 변종 (class variant) 을, 상기 프로세싱 디바이스에서, 로딩하는 단계;
    상기 클래스 변종의 인스턴스를, 상기 프로세싱 디바이스에서, 생성하는 단계; 및
    상기 클래스 변종의 상기 인스턴스의 호출을, 상기 프로세싱 디바이스에서, 수행하는, 방법.
  37. 실행 중인 애플리케이션에 의해 호출된 클래스를, 프로세싱 디바이스에서, 결정하는 단계;
    상기 애플리케이션 내에서의 보안 토큰으로서 인코딩된 보안 사용권한 (security permission) 을, 상기 프로세싱 디바이스에서, 디코딩하는 단계;
    상기 보안 사용권한에 적어도 부분적으로 기초하여 상기 클래스에 연관된 복수의 클래스 변종 (class variant) 으로부터 클래스 변종을, 적어도 하나의 저장소에서, 취출하는 단계;
    각각의 상기 복수의 클래스 변종을 대응되는 보안 사용권한에 연관시키는 단계; 및
    각각의 상기 대응되는 보안 사용권한을 클래스 변종 보관소에 연관시키는 단계를 포함하고,
    상기 각각의 복수의 클래스 변종은 상기 애플리케이션의 대응되는 기능을 정의하도록 구성되고, 그리고
    상기 클래스에 대한 상기 복수의 클래스 변종은 동일한 보안 사용권한들을 갖는 적어도 다른 클래스의 복수의 클래스 변종들과 함께 보관소에 저장되는, 방법.
KR1020127014145A 2009-12-03 2010-11-05 애플리케이션 클래스들을 로딩하는 시스템 및 방법 KR101437249B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/629,934 2009-12-03
US12/629,934 US8677506B2 (en) 2009-12-03 2009-12-03 System and method for loading application classes
PCT/US2010/055703 WO2011068630A1 (en) 2009-12-03 2010-11-05 System and method for loading application classes

Publications (2)

Publication Number Publication Date
KR20120083923A KR20120083923A (ko) 2012-07-26
KR101437249B1 true KR101437249B1 (ko) 2014-09-02

Family

ID=43417124

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127014145A KR101437249B1 (ko) 2009-12-03 2010-11-05 애플리케이션 클래스들을 로딩하는 시스템 및 방법

Country Status (6)

Country Link
US (2) US8677506B2 (ko)
EP (1) EP2341457B1 (ko)
JP (1) JP5540109B2 (ko)
KR (1) KR101437249B1 (ko)
CN (1) CN102640159B (ko)
WO (1) WO2011068630A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8677506B2 (en) 2009-12-03 2014-03-18 Osocad Remote Limited Liability Company System and method for loading application classes
US8707449B2 (en) * 2010-12-16 2014-04-22 International Business Machines Corporation Acquiring access to a token controlled system resource
US20150277941A1 (en) * 2014-02-06 2015-10-01 Openpeak Inc. Method and system for linking to shared library
US9923890B2 (en) 2014-05-07 2018-03-20 Cryptography Research, Inc. Generating and distributing pre-computed data (PCD) assets to a target device
US9536073B2 (en) * 2014-07-24 2017-01-03 Google Technology Holdings LLC Device-based application security
KR102337990B1 (ko) * 2014-09-18 2021-12-13 삼성전자주식회사 권한 설정 토큰을 이용하는 전자 장치
US9411618B2 (en) * 2014-11-21 2016-08-09 Red Hat, Inc. Metadata-based class loading using a content repository
WO2019217934A1 (en) 2018-05-11 2019-11-14 Lattice Semiconductor Corporation Secure boot systems and methods for programmable logic devices

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003332978A (ja) * 2002-05-17 2003-11-21 Ntt Docomo Inc 通信装置、プログラムおよび記録媒体

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5428729A (en) 1991-12-20 1995-06-27 International Business Machines Corporation System and method for computer aided software engineering
US5629980A (en) 1994-11-23 1997-05-13 Xerox Corporation System for controlling the distribution and use of digital works
FR2743235B1 (fr) * 1995-12-27 1998-01-23 Alsthom Cge Alcatel Methode pour securiser les collaborations entre objets d'un programme oriente objet
US5784463A (en) * 1996-12-04 1998-07-21 V-One Corporation Token distribution, registration, and dynamic configuration of user entitlement for an application level security system and method
US6044467A (en) * 1997-12-11 2000-03-28 Sun Microsystems, Inc. Secure class resolution, loading and definition
US6173404B1 (en) * 1998-02-24 2001-01-09 Microsoft Corporation Software object security mechanism
AUPP660298A0 (en) * 1998-10-20 1998-11-12 Canon Kabushiki Kaisha Apparatus and method for preventing disclosure of protected information
US7424543B2 (en) * 1999-09-08 2008-09-09 Rice Iii James L System and method of permissive data flow and application transfer
US20010027527A1 (en) * 2000-02-25 2001-10-04 Yuri Khidekel Secure transaction system
US7225145B2 (en) * 2000-05-26 2007-05-29 Ariba, Inc. Method and system for providing multi-organization resource management
US6981281B1 (en) * 2000-06-21 2005-12-27 Microsoft Corporation Filtering a permission set using permission requests associated with a code assembly
US6895586B1 (en) * 2000-08-30 2005-05-17 Bmc Software Enterprise management system and method which includes a common enterprise-wide namespace and prototype-based hierarchical inheritance
EP1386489B1 (en) * 2001-03-23 2018-07-04 Nederlandse Organisatie voor toegepast- natuurwetenschappelijk onderzoek TNO Monitoring apparatus, computer program and network for secure data storage
US7096491B2 (en) * 2001-07-20 2006-08-22 Hewlett-Packard Development Company, L.P. Mobile code security architecture in an application service provider environment
KR100450402B1 (ko) * 2002-04-17 2004-09-30 한국전자통신연구원 컴퓨터 시스템에 있어서 보안속성을 갖는 토큰을 이용한접근 제어방법
JP4629304B2 (ja) * 2002-10-30 2011-02-09 株式会社エヌ・ティ・ティ・ドコモ 通信装置、プログラムおよび記録媒体
US8271369B2 (en) * 2003-03-12 2012-09-18 Norman Gilmore Financial modeling and forecasting system
US20050262494A1 (en) * 2004-05-18 2005-11-24 Bea Systems, Inc. Production redeployment through application versioning
JP2006040146A (ja) 2004-07-29 2006-02-09 Nippon Telegr & Teleph Corp <Ntt> ファイル実行システムとその方法
JP4584652B2 (ja) * 2004-08-26 2010-11-24 株式会社リコー 保管ルール管理装置、情報処理装置および保管ルール管理プログラム
US20060047954A1 (en) * 2004-08-30 2006-03-02 Axalto Inc. Data access security implementation using the public key mechanism
US8458467B2 (en) * 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US20060173974A1 (en) * 2005-02-02 2006-08-03 Victor Tang System and method for providing mobile access to personal media
US20070162961A1 (en) * 2005-02-25 2007-07-12 Kelvin Tarrance Identification authentication methods and systems
JP4135950B2 (ja) 2005-06-09 2008-08-20 インターナショナル・ビジネス・マシーンズ・コーポレーション アクセス管理装置、アクセス管理方法、およびプログラム
US20070011749A1 (en) * 2005-07-11 2007-01-11 Simdesk Technologies Secure clipboard function
US7647627B2 (en) * 2005-08-24 2010-01-12 Metasecure Corporation System and methods for secure service oriented architectures
US7908665B2 (en) * 2006-01-23 2011-03-15 Autodesk, Inc Cloaked data objects in an electronic content management security system
EP1936531A1 (en) * 2006-12-20 2008-06-25 Thomson Licensing Methods and device for secure software installation
US20080168528A1 (en) * 2007-01-04 2008-07-10 Dah-Haur Lin Role-based authorization using conditional permissions
US20080192643A1 (en) * 2007-02-13 2008-08-14 International Business Machines Corporation Method for managing shared resources
US8332939B2 (en) * 2007-02-21 2012-12-11 International Business Machines Corporation System and method for the automatic identification of subject-executed code and subject-granted access rights
JP4612010B2 (ja) 2007-03-19 2011-01-12 株式会社エヌ・ティ・ティ・ドコモ データ処理装置、プログラムおよび記録媒体
US8010973B2 (en) * 2007-05-31 2011-08-30 Calix, Inc. Class loader for managing a network
US8695056B2 (en) * 2008-01-26 2014-04-08 International Business Machines Corporation Method for information tracking in multiple interdependent dimensions
US7899058B2 (en) * 2008-03-12 2011-03-01 Telefonaktiebolaget L M Ericsson (Publ) Using a hash value as a pointer to an application class in a communications device
JP5037422B2 (ja) 2008-04-30 2012-09-26 株式会社リコー 画像形成装置、アクセス制御方法、及びアクセス制御プログラム
US8229974B2 (en) * 2008-08-05 2012-07-24 Emc Corporation Mechanisms to support fine-grain namespacing
US7614047B1 (en) * 2008-08-21 2009-11-03 International Business Machines Corporation Change indication for a service offering
US20100312630A1 (en) * 2009-06-08 2010-12-09 Tammy Krutchik Method and system for transmitting and redeeming electronic coupons through use of mobile device
US8353009B2 (en) * 2009-10-01 2013-01-08 Nokia Corporation Method and apparatus for providing context access with property and interface obfuscation
US8677506B2 (en) 2009-12-03 2014-03-18 Osocad Remote Limited Liability Company System and method for loading application classes
JP5241797B2 (ja) 2010-10-29 2013-07-17 中国電力株式会社 鋼管内部における器具の保持治具

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003332978A (ja) * 2002-05-17 2003-11-21 Ntt Docomo Inc 通信装置、プログラムおよび記録媒体
EP1507211A1 (en) * 2002-05-17 2005-02-16 NTT DoCoMo, Inc. Communication device

Also Published As

Publication number Publication date
CN102640159B (zh) 2015-05-13
KR20120083923A (ko) 2012-07-26
EP2341457A2 (en) 2011-07-06
CN102640159A (zh) 2012-08-15
US9075966B2 (en) 2015-07-07
JP5540109B2 (ja) 2014-07-02
US20110138460A1 (en) 2011-06-09
US8677506B2 (en) 2014-03-18
JP2013513161A (ja) 2013-04-18
EP2341457A3 (en) 2012-06-27
WO2011068630A1 (en) 2011-06-09
EP2341457B1 (en) 2016-04-20
US20140143895A1 (en) 2014-05-22

Similar Documents

Publication Publication Date Title
KR101437249B1 (ko) 애플리케이션 클래스들을 로딩하는 시스템 및 방법
US11704389B2 (en) Controlling access to digital assets
US5740248A (en) Software level touchpoints for an international cryptography frameworks
CN106295255B (zh) 应用程序的加固方法和装置
US20100229242A1 (en) Program execution control system, program execution control method and computer program for program execution control
US9934374B2 (en) Method and apparatus for program flow in software operation
US9594915B2 (en) Information processing apparatus
US20180026986A1 (en) Data loss prevention system and data loss prevention method
US20190294760A1 (en) Protecting an application via an intra-application firewall
US11556323B1 (en) Systems and methods for trusted and secure application deployment via collective signature verification of the application artifacts
US20220092155A1 (en) Protecting an item of software
KR101203722B1 (ko) 데이터 보호장치 및 그 방법
US10719456B2 (en) Method and apparatus for accessing private data in physical memory of electronic device
KR101318132B1 (ko) 라이브러리에 대한 가젯 액세스의 보안 방법
US20230205927A1 (en) Use of Semantically Segmented Filenames
CN106295327B (zh) 可执行文件的加固方法和装置
TWI446207B (zh) The device and method used to load the app category
US10275592B2 (en) Information processing device, information processing method, and computer program product
US20230177140A1 (en) Information processing device and determination method
KR20180029737A (ko) 어플리케이션을 검증하는 디바이스 및 방법
KR102548900B1 (ko) 신뢰된 어플리케이션을 전자 디바이스에 설치하는 방법 및 장치
CN115688134A (zh) 一种程序文件加密和解密方法、装置及电子设备

Legal Events

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

Payment date: 20170629

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 6