KR101437249B1 - 애플리케이션 클래스들을 로딩하는 시스템 및 방법 - Google Patents
애플리케이션 클래스들을 로딩하는 시스템 및 방법 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 41
- 230000008569 process Effects 0.000 description 11
- 230000015654 memory Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/54—Monitoring 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/105—Multiple levels of security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2149—Restricted 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
본 개시물은, 보안 애플리케이션에 관한 것이며, 특히 사용자 보안 사용권한 에 기초하여 클래스들을 애플리케이션으로 로딩하는 것에 관한 것이다.
디바이스 상에서 애플리케이션을 호출할 때, 사용자의 보안 사용권한 (security permission) 에 의존하여 애플리케이션에 대해 또는 애플리케이션의 몇몇 성능에 대해 허가되지 않은 액세스를 방지할 필요가 있을 수도 있다. 기존의 해결방법은, 애플리케이션 로직 또는 보안 모듈 내의 조건부 로직을 이용하여, 보호된 성능이 액세스될 수 있는지의 여부를 결정한다. 그러나, 우발적이든 악의적 의도이든 사용권한이 부정확하게 설정되어 있으면, 보호된 성능을 구현하는 코드가 애플리케이션에 대해 가시적인 경우에는, 보호된 성능이 액세스될 수도 있다. 이는 분산형 애플리케이션들에 있어서는 심각한 문제가 될 수 있다.
보안 애플리케이션을 개발 및/또는 제공하기 위한 개선된 시스템 및 방법이 요구된다.
본 개시물의 일 양태에서, 애플리케이션 내의 클래스를 로딩하는 방법이 제공되는데, 이 방법은, 클래스 요건을 결정하는 단계, 보안 사용권한을 결정하는 단계, 보안 사용권한과 관련된 요청 클래스의 클래스 변종 (class variant) 을 취출하는 단계 및 취출된 클래스 변종을 로딩하는 단계를 포함한다.
본 개시물의 일 양태에서, 요청 핸들러 및 적어도 하나의 클래스로더를 포함하는 애플리케이션이 제공된다. 요청 핸들러는, 클래스에 대한 요청을 프로세싱하고 애플리케이션의 보안 사용권한을 결정하도록 구성될 수도 있다. 클래스로더는 보안 사용권한에 의존하여 클래스 변종을 로딩하도록 구성될 수도 있다.
본 개시물의 일 양태에서, 실행될 때, 프로세서로 하여금, 보안 토큰을 디코딩하게 하고, 보안 토큰으로부터 보안 사용권한을 결정하게 하고, 보안 사용권한과 관련된 클래스 저장소를 선택하게 하고, 선택된 클래스 저장소로부터 클래스를 로딩하게 하는 프로세서에 의한 실행을 위한 컴퓨터-실행가능 명령을 포함하는 컴퓨터-판독가능 매체가 제공된다.
이하, 구체적인 실시형태들 및 첨부된 도면에 대해 오직 예시로서 참조가 이루어질 것이다.
도 1 은 애플리케이션 구조를 예시한다.
도 2 는 클래스들을 도 1 의 애플리케이션으로 로딩하기 위한 프로세스를 예시한다.
도 3 은 호출 (invocation) 을 수행하기 위한 프로세스를 예시한다.
도 4 는 클래스 인스턴스를 획득하기 위한 프로세스를 예시한다.
도 5 는 애플리케이션을 실행하기 위한 프로세스 및 메모리를 예시한다.
도 6 은 도 5 의 프로세서상에서 실행가능한 명령 세트를 예시한다.
도 7 은 클래스 저장 프로세서와 통신하는 애플리케이션 프로세서를 예시한다.
도 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)
- 애플리케이션 내의 클래스를 로딩하기 위한 방법으로서,
실행 중인 상기 애플리케이션에 의해 호출된 상기 클래스를, 프로세싱 디바이스에서, 결정하는 단계;
상기 애플리케이션 내에서의 보안 토큰으로서 인코딩된 보안 사용권한 (security permission) 을, 상기 프로세싱 디바이스에서, 디코딩하는 단계; 및
상기 보안 사용권한에 적어도 부분적으로 기초하여 상기 클래스에 연관된 복수의 클래스 변종 (class variant) 으로부터 클래스 변종을, 적어도 하나의 보관소에서, 취출하는 단계를 포함하고;
각각의 상기 복수의 클래스 변종은 상기 애플리케이션에 대응되는 기능을 정의하도록 구성되는, 방법. - 제 1 항에 있어서,
상기 보안 토큰으로서 인코딩된 상기 보안 사용권한을, 상기 프로세싱 디바이스에서, 디코딩하는 단계는, 상기 애플리케이션을 실행할 때 상기 보안토큰으로서 인코딩된 상기 보안 사용권한을 디코딩하는 단계를 더 포함하는, 방법. - 삭제
- 삭제
- 삭제
- 제 1 항에 있어서,
각각의 상기 복수의 클래스 변종을 대응되는 보안 사용권한과 연관시키는 단계를 포함하는, 방법. - 제 6 항에 있어서,
각각의 상기 복수의 클래스 변종을 개별의 저장소 내에 저장하는 단계를 포함하는, 방법. - 제 6 항에 있어서,
각각의 상기 복수의 클래스 변종은 동일한 명칭공간을 포함하는, 방법. - 제 6 항에 있어서,
각각의 상기 복수의 클래스 변종은 동일한 애플리케이션 프로그래밍 인터페이스를 포함하는, 방법. - 제 6 항에 있어서,
제 1 클래스 변종은 제 1 기능을 제공하고,
제 2 클래스 변종은 상기 제 1 클래스 변종과 비교하여 축소된 기능을 제공하는, 방법. - 제 6 항에 있어서,
각각의 대응되는 보안 사용권한과 클래스 변종 보관소를 연관시키는 단계를 포함하는, 방법. - 제 11 항에 있어서,
각각의 상기 클래스에 대한 상기 복수의 클래스 변종은, 동일한 보안 사용권한들을 갖는 적어도 다른 클래스의 복수의 클래스 변종들과 함께 보관소에 저장되는, 애플리케이션 내의 클래스를 로딩하는 방법. - 애플리케이션 내의 클래스를 로딩하기 위한 장치로서,
메모리 디바이스; 및
상기 메모리 디바이스에 동작 가능하게 커플링된 프로세싱 디바이스를 포함하고, 상기 프로세싱 디바이스는:
요청 핸들러; 및
적어도 하나의 클래스로더를 포함하고,
상기 요청 핸들러는:
실행 중인 상기 애플리케이션에 의해 호출된 상기 클래스에 대한 요청을 프로세싱하고; 그리고
상기 애플리케이션 내에서의 보안 토큰으로서 인코딩된 보안 사용권한 (security permission) 을 디코딩하도록 구성되고,
상기 클래스로더는 상기 보안 사용권한에 적어도 부분적으로 기초하여 상기 클래스에 연관된 복수의 클래스 변종 (class variant) 으로부터 클래스 변종을 취출하도록 구성되고; 그리고
각각의 상기 복수의 클래스 변종은 상기 애플리케이션에 대응되는 기능을 정의하도록 구성되는, 장치. - 삭제
- 삭제
- 제 13 항에 있어서,
상기 요청 핸들러는 상기 애플리케이션의 실행시에 상기 보안 토큰으로서 인코딩된 상기 보안 사용권한을 디코딩하도록 구성되는, 장치. - 삭제
- 제 13 항에 있어서,
제 1 클래스 변종은 제 1 기능을 제공하고, 그리고
제 2 클래스 변종은 상기 제 1 클래스 변종과 비교하여 축소된 기능을 제공하는, 장치. - 제 18 항에 있어서,
상기 제 1 클래스 변종은 제 1 보안 사용권한과 연관되고, 그리고
상기 제 2 클래스 변종은 제 2 보안 사용권한과 연관되는, 장치. - 저장된 컴퓨터-실행가능 명령들을 포함하는 컴퓨터-판독가능 저장 디바이스로서, 상기 명령들은 프로세싱 디바이스가:
애플리케이션 내에서의 보안 토큰으로서 인코딩된 보안 사용권한 (security permission) 을 디코딩하는 것;
실행 중인 상기 애플리케이션에 의해 호출된 클래스를 결정하는 것;
상기 클래스와 연관된 클래스 보관소를 선택하는 것; 및
상기 보안 사용권한에 적어도 부분적으로 기초하여 복수의 변종 (variant) 으로부터 상기 클래스에 대응되는 변종을 상기 클래스 보관소에서 로딩하는 것
을 포함하는 동작들을 수행하게 하도록 구성되는, 컴퓨터-판독가능 저장 디바이스. - 제 20 항에 있어서,
상기 프로세싱 디바이스는 각각의 상기 복수의 클래스 변종을 대응되는 보안 사용권한 레벨에 연관시키는 것을 더 포함하는 동작들을 수행하도록 구성되는, 컴퓨터-판독가능 저장 디바이스. - 제 21 항에 있어서,
상기 프로세싱 디바이스는:
각각의 상기 복수의 변종을 개별의 저장소에 저장하는 것
을 더 포함하는 동작들을 수행하도록 구성되는, 컴퓨터-판독가능 저장 디바이스. - 제 22 항에 있어서,
상기 프로세싱 디바이스는:
각각의 상기 대응되는 보안 사용권한 레벨을 개별의 저장소에 연관시키는 것
을 더 포함하는 동작들을 수행하도록 구성되는, 컴퓨터-판독가능 저장 디바이스. - 제 21 항에 있어서,
각각의 상기 복수의 클래스 변종은 공통의 명칭공간을 포함하는, 컴퓨터-판독가능 저장 디바이스. - 제 21 항에 있어서,
각각의 상기 복수의 변종은 공통의 애플리케이션 프로그래밍 인터페이스를 포함하는, 컴퓨터-판독가능 저장 디바이스. - 제 21 항에 있어서,
상기 클래스에 대한 상기 복수의 변종은, 동일한 보안 사용권한 레벨들을 갖는 적어도 다른 클래스의 복수의 클래스 변종들과 함께 보관소에 저장되는, 컴퓨터-판독가능 저장 디바이스. - 제 20 항에 있어서,
제 1 클래스 변종은 제 1 기능을 제공하고,
제 2 클래스 변종은 상기 제 1 클래스 변종과 비교하여 축소된 기능을 제공하는, 컴퓨터-판독가능 저장 디바이스. - 명령을 저장하도록 구성된 메모리 디바이스; 및
프로세싱 디바이스를 포함하고, 상기 프로세싱 디바이스는:
실행 중인 애플리케이션에 의해 호출된 클래스를 결정하게 하고;
상기 애플리케이션의 실행 중에 상기 애플리케이션 내에 보안 토큰으로서 인코딩된 보안 레벨을 디코딩하게 하고;
상기 보안 레벨에 연관된 클래스 보관소를 선택하게 하고; 그리고
복수의 클래스 변종으로부터 상기 클래스에 대응되는 클래스 변종 (class variant) 을 상기 클래스 보관소에서 로딩하게 하는
상기 메모리 디바이스에 저장된 명령들을 실행하도록 구성되는, 디바이스. - 제 28 항에 있어서,
상기 프로세싱 디바이스는 또한:
각각의 상기 복수의 클래스 변종을 대응되는 보안 사용권한 (security permission) 과 연관시키는
상기 명령들을 실행하도록 구성되는, 디바이스. - 제 29 항에 있어서,
상기 프로세싱 디바이스는 또한:
각각의 상기 복수의 클래스 변종을 개별의 저장소에 저장시키는
상기 명령들을 실행하도록 구성되는, 디바이스. - 제 29 항에 있어서,
상기 프로세싱 디바이스는 또한:
대응되는 보안 레벨을 개별의 저장소에 연관시키는
상기 명령들을 실행하도록 구성되는, 디바이스. - 제 29 항에 있어서,
각각의 상기 복수의 클래스 변종은 공통의 명칭공간을 포함하는, 디바이스. - 제 29 항에 있어서,
각각의 상기 복수의 클래스 변종은 공통의 애플리케이션 프로그래밍 인터페이스를 포함하는, 디바이스. - 제 29 항에 있어서,
상기 프로세싱 디바이스는 또한:
보관소 내의 상기 클래스에 대한 상기 복수의 클래스 변종을, 동일한 보안 사용권한 레벨들을 갖는 적어도 다른 클래스에 대한 복수의 클래스 변종들과 함께 보관소에 저장시키는
상기 명령들을 실행하도록 구성되는, 디바이스. - 제 28 항에 있어서,
제 1 클래스 변종은 제 1 기능을 제공하고,
제 2 클래스 변종은 상기 제 1 클래스 변종과 비교하여 축소된 기능을 제공하는, 디바이스. - 애플리케이션 내에서 보안 토큰으로서 인코딩된 보안 사용권한 (security permission) 을, 프로세싱 디바이스에서, 디코딩하는 단계;
실행 중인 상기 애플리케이션 내에서의 클래스에 대한 요구조건을, 상기 프로세싱 디바이스에서, 식별하는 단계;
사전에 로딩되지 않은 상기 클래스에 응답하여, 상기 보안 사용권한에 적어도 부분적으로 기초하여 상기 요구조건에 대응되는 클래스 변종 (class variant) 을, 상기 프로세싱 디바이스에서, 로딩하는 단계;
상기 클래스 변종의 인스턴스를, 상기 프로세싱 디바이스에서, 생성하는 단계; 및
상기 클래스 변종의 상기 인스턴스의 호출을, 상기 프로세싱 디바이스에서, 수행하는, 방법. - 실행 중인 애플리케이션에 의해 호출된 클래스를, 프로세싱 디바이스에서, 결정하는 단계;
상기 애플리케이션 내에서의 보안 토큰으로서 인코딩된 보안 사용권한 (security permission) 을, 상기 프로세싱 디바이스에서, 디코딩하는 단계;
상기 보안 사용권한에 적어도 부분적으로 기초하여 상기 클래스에 연관된 복수의 클래스 변종 (class variant) 으로부터 클래스 변종을, 적어도 하나의 저장소에서, 취출하는 단계;
각각의 상기 복수의 클래스 변종을 대응되는 보안 사용권한에 연관시키는 단계; 및
각각의 상기 대응되는 보안 사용권한을 클래스 변종 보관소에 연관시키는 단계를 포함하고,
상기 각각의 복수의 클래스 변종은 상기 애플리케이션의 대응되는 기능을 정의하도록 구성되고, 그리고
상기 클래스에 대한 상기 복수의 클래스 변종은 동일한 보안 사용권한들을 갖는 적어도 다른 클래스의 복수의 클래스 변종들과 함께 보관소에 저장되는, 방법.
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003332978A (ja) * | 2002-05-17 | 2003-11-21 | Ntt Docomo Inc | 通信装置、プログラムおよび記録媒体 |
Family Cites Families (43)
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 | 中国電力株式会社 | 鋼管内部における器具の保持治具 |
-
2009
- 2009-12-03 US US12/629,934 patent/US8677506B2/en active Active
-
2010
- 2010-11-05 JP JP2012542027A patent/JP5540109B2/ja active Active
- 2010-11-05 KR KR1020127014145A patent/KR101437249B1/ko active IP Right Grant
- 2010-11-05 WO PCT/US2010/055703 patent/WO2011068630A1/en active Application Filing
- 2010-11-05 CN CN201080055128.8A patent/CN102640159B/zh active Active
- 2010-12-01 EP EP10193298.6A patent/EP2341457B1/en active Active
-
2014
- 2014-01-27 US US14/165,293 patent/US9075966B2/en active Active
Patent Citations (2)
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 |