KR100949024B1 - 리소스 획득 방법 및 컴퓨터 판독 가능 매체 - Google Patents

리소스 획득 방법 및 컴퓨터 판독 가능 매체 Download PDF

Info

Publication number
KR100949024B1
KR100949024B1 KR1020040070209A KR20040070209A KR100949024B1 KR 100949024 B1 KR100949024 B1 KR 100949024B1 KR 1020040070209 A KR1020040070209 A KR 1020040070209A KR 20040070209 A KR20040070209 A KR 20040070209A KR 100949024 B1 KR100949024 B1 KR 100949024B1
Authority
KR
South Korea
Prior art keywords
resource
requester
identification information
resource requester
provider
Prior art date
Application number
KR1020040070209A
Other languages
English (en)
Other versions
KR20050039528A (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 KR20050039528A publication Critical patent/KR20050039528A/ko
Application granted granted Critical
Publication of KR100949024B1 publication Critical patent/KR100949024B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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

Abstract

컴퓨팅 장치 상에서 동작하는 리소스 요구자(RR)는 리소스 제공자(RP)로부터 리소스를 획득한다. RR은 그와 관련된 식별 정보 설명자(id)를 가지며, 여기서 id는 RR이 동작하는 환경을 지정하는 보안 관련 정보를 포함한다. 코드 식별 정보(코드 ID)는 로딩된 RR과 로딩된 id에 대응하고 그에 기초하여 산출된다. RP는 리소스에 대한 요구 내의 산출된 코드 ID가 식별된 RR에 대한 하나 이상의 유효 코드 ID와 매칭하는지를 검증하여 RR과 id를 신뢰할 수 있는 것으로 결정하고, RP는 RR에게 요구된 리소스를 제공함으로써 포워딩된 요구에 응답한다.
리소스 요구자, 리소스 제공자, 보안 관련 정보

Description

리소스 획득 방법 및 컴퓨터 판독 가능 매체{SECURELY IDENTIFYING AN EXECUTABLE TO A TRUST-DETERMINING ENTITY}
도 1은 신뢰성 기반 시스템의 일예의 시행 아키텍처를 나타내는 블록도.
도 2는 본 발명의 일실시예에 따라 배열되고 동작하는 리소스 요구자, 리소스 수신자, 리소스 수신자의 식별 정보 설명자, 및 관련된 엔티티를 나타내는 블록도.
도 3은 본 발명의 일실시예에 따라 도 2의 리소스 제공자로부터 리소스를 요구하는 데 있어서 도 2의 리소스 수신자 및 관련된 엔티티에 의해 수행되는 중요한 단계를 나타내는 플로우챠트.
도 4는 본 발명의 일실시예에 따라 도 2의 리소스 수신자에게 리소스를 제공하는 데 있어서 도 2의 리소스 제공자에 의해 수행되는 중요한 단계를 나타내는 플로우챠트.
*도면의 주요부분에 대한 부호의 설명*
10: 리소스 제공자
12: 리소스
16: 인증기
14: 리소스 수신자
18: 컴퓨팅 장치
20: id
22: 코드 ID
24: 로더
본 발명은 리소스를 실행부에 제공할 수 있도록 실행부(executable) 등을 신뢰성-판정 엔티티(trust-determining entity)로 안전하게 식별할 수 있는 방법 및 메카니즘에 관한 것이다. 특히, 본 발명은 리소스를 제공하기 전에 신뢰성-판정 엔티티가 실행부를 인증할 수 있도록 하는 방법 및 메카니즘에 관한 것이다.
많은 컴퓨터 시나리오에서, 제1 컴퓨터 유형 엔티티는 몇종류의 컴퓨터 유형 리소스를 제2 컴퓨터 유형 엔티티에 제공한다. 이해할 수 있는 바와 같이, 제1 및 제2 엔티티 각각은 컴퓨터 프로그램 또는 실행부, 컴퓨터 저장 장치, 컴퓨터 데이터 서버 등의 하드웨어 또는 소프트웨어 엔티티일 수 있다. 마찬가지로, 리소스는 원시 데이터, 임의의 조직 형태로 원시 데이터를 갖는 파일 등일 수 있다.
특히, 리소스가 특정 값이거나 미리 정의된 규칙에 따라 처리될 경우에, 제2 엔티티 또는 관련 엔티티가 인증 정보를 제1 엔티티에 제공하고 제1 엔티티가 그에 기초하여 제2 엔티티를 인증하면, 제1 엔티티 또는 '리소스 제공자'는 제2 엔티티 또는 '리소스 수신자'에게 리소스을 제공할 수 있다. 예를 들어, 뱅킹 기관(banking institution)(제1 엔티티)에서의 서버가 사용자가 컴퓨터에서 뱅킹 트랜잭션을 수행할 수 있는 사용자의 컴퓨터(제2 엔티티)의 뱅킹 프로그램에 보안 키(리소스)를 제공하고 있으면, 서버는 뱅킹 프로그램이 뱅크에 대해 보정할 수 있는 방식으로 보안 키를 사용하도록 신뢰성있는 임의의 보증을 갖기를 요구할 수 있다.
즉, 서버는 뱅킹 프로그램을 대신하여 뱅킹 프로그램 자체 또는 인증자로부터 인증 정보를 원할 수 있고, 여기서 뱅킹 프로그램은 소정 유형이고 소정의 변수 등에 기초하여 소정의 환경에서 운영된다. 따라서, 서버는 제공된 인증 정보에 기초하여 인증을 한 후에만 뱅킹 프로그램에 보안 키를 제공한다. 특히 중요한 점은, 인증 정보에 기초하여 뱅킹 프로그램을 인증하는 서버는, 뱅킹 프로그램이 예를 들어 보안 키를 오용하도록 변경되지 않는다는 것을 보증하고 보안 키가 도둑 등의 의심이 가는 엔티티에 의해 유용되거나 판독될 수 있는 환경에서 동작하지 않는 것을 보증하기를 원한다.
그래서, 리소스 수신자가 리소스를 제공하는 리소스 제공자에 의해 인증될 수 있는 인증 정보가 컴퓨터 프로그램, 실행부 또는 다른 리소스 수신자에 제공될 수 있는 방법 및 메카니즘이 필요하다. 특히, 리소스 수신자의 식별 정보를 리소스 제공자에게 설명하는 식별 정보 설명자(identity descriptor)가 필요하며, 여기서, 식별 정보 설명자는 다른 것들 중에서 리소스 수신자의 환경 및 인증 서명 등을 설명하는 변수의 세트를 포함한다.
상술한 필요성은 컴퓨터 장치 상에서 동작하는 리소스 요구자(RR)가 리소스 제공자(RP)로부터 리소스를 획득하는 본 발명에 의해 적어도 부분적으로 만족된다. RR은 그와 관련된 식별 정보 설명자(id)를 가지며, 여기서, id는 RR이 동작하는 환경을 지정하는 보안 관련 정보를 포함한다.
RR과 RR에 대응하는 id는 컴퓨팅 장치에 로딩되고, RR에는 로딩된 id에 대한 레퍼런스(reference)가 제공된다. 코드 식별 정보(코드 ID)는 로딩된 RR과 로딩된 id에 대응하고 그에 기초하여 산출된다. RR로부터 리소스에 대한 요구를 수신하면, 요구하는 RR이 리소스에 대한 권리를 가지며 리소스에 대하여 신뢰성 있는 것으로 확인된다. 그후, 리소스에 대한 요구가 RR로부터 RP로 포워딩된다.
RP는 수신된 요구를 검증하고, 코드 ID, id, 및 수신된 요구로부터 요구된 리소스의 정의를 획득하고, 수신된 요구로부터 요구하는 RR의 식별 정보를 판정한다. 또한, RP는 식별된 RR에 대한 하나 이상의 유효 코드 ID의 각각을 획득하고, 수신된 요구 내의 산출된 코드 ID가 식별된 RR에 대한 유효 코드 ID와 매칭하는 것임을 검증한다. RP는, 그후 RR이 신뢰성있는 것으로 가정될 수 있는 알려진 RR로서 신뢰성이 있고 또한 RR이 동작하는 보안 관련 정보가 신뢰성있는 것으로 가정될 수 있는 알려진 보안 관련 정보인 것으로 결정될 수 있다.
그후, RP는 요구된 리소스를 RR에 제공함으로써 포워딩된 요구에 응답한다. RR은 RP에 의해 제공된 요구된 리소스를 수신하고 RP에 의해 RR에 제공되는 신뢰성에 일치하는 방식 및 RR에 대응하는 id의 보안 관련 정보에 따라 리소스를 사용한 다.
상기의 요약 및 다음의 본 발명의 실시예에 대한 상세한 설명은 첨부된 도면과 결합하여 더 잘 이해될 것이다. 본 발명을 설명하기 위하여, 바람직한 실시예가 도면에 도시되어 있다. 그러나, 이해하는 바와 같이, 본 발명은 도시된 정밀한 배열 및 기구에 한정되지 않는다.
컴퓨터 환경
도 1 및 그 설명은 본 발명 및/또는 그 일부가 구현될 수 있는 적절한 컴퓨팅 환경의 간략한 일반적인 설명을 제공하기 위한 것이다. 요구되지 않지만, 본 발명은 클라이언트 워크스테이션 또는 서버 등의 컴퓨터에 의해 실행되는 프로그램 모듈 등의 컴퓨터 실행 가능 명령의 일반적인 컨텍스트에서 설명된다. 일반적으로, 프로그램 모듈은 특정 추상 데이터 유형을 구현하거나 특정 태스크를 수행하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 또한, 본 발명 및/또는 그 일부가 핸드헬드 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그램 가능 전자 장치, 네트워크 PC, 미니컴퓨터, 메인 프레임 컴퓨터 등을 포함하는 다른 컴퓨터 시스템으로 실행될 수 있음을 이해해야 한다. 본 발명은 또한 통신 네트워크를 통해 링크된 원격 프로세싱 장치에 의해 태스크가 실행되는 분산형 컴퓨팅 환경에서 실행될 수 있다. 분산형 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치에 위치 지정될 수 있다.
도 1에 도시된 바와 같이, 예시적인 범용 컴퓨팅 시스템은 프로세싱 유닛(121), 시스템 메모리(122), 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트 를 프로세싱 유닛(121)에 결합시키는 시스템 버스(123)를 포함하는 종래의 퍼스널 컴퓨터(120) 등을 포함한다. 시스템 버스(123)는 메모리 버스 또는 메모리 컨트롤러, 주변 버스, 및 다양한 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스를 포함하는 몇가지 유형의 버스 구조 중 임의의 것일 수 있다. 시스템 메모리는 판독 전용 메모리(ROM; 124) 및 랜덤 액세스 메모리(RAM; 125)를 포함한다. 시동중과 같은 때에 퍼스널 컴퓨터(120) 내의 구성요소들간에 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(126; BIOS)은 일반적으로 ROM(124)에 저장된다.
퍼스널 컴퓨터(120)는 또한 하드 디스크(도시하지 않음)로부터 판독 및 하드 디스크로의 기록을 위한 하드 디스크 드라이브(127), 분리형 자기 디스크(129)로부터 판독하거나 그 자기 디스크에 기록하는 자기 디스크 드라이브(128), 및 CD-ROM 또는 기타 광학 매체 등의 분리형 광 디스크(131)로부터 판독하거나 그 광 디스크에 기록하는 광 디스크 드라이브(130)를 포함할 수 있다. 하드 디스크 드라이브(127), 자기 디스크 드라이브(128) 및 광 디스크 드라이브(130)는 각각 하드 디스크 드라이브 인터페이스(132), 자기 디스크 드라이브 인터페이스(133) 및 광 디스크 드라이브 인터페이스(134)에 의해 시스템 버스(123)에 접속된다. 드라이브 및 그 관련 컴퓨터 판독 가능 매체는 퍼스널 컴퓨터(120)에 컴퓨터 판독 가능 명령의 비휘발성 저장장치, 데이터 구조, 프로그램 모듈 및 기타 데이터를 제공한다.
여기에 기재된 예시적인 환경은 하드 디스크, 분리형 자기 디스크(129), 및 분리형 광 디스크(131)를 사용하였지만, 컴퓨터에 의해 액세스될 수 있는 데이터를 저장할 수 있는 다른 유형의 컴퓨터 판독가능 매체가 예시적인 운영 환경에서 사용될 수 있음을 이해해야 한다. 다른 유형의 매체는 자기 카세트, 플래시 메모리 카드, 디지탈 비디오 디스크, 베르누이 카트리지(Bernoulli cartridge), 랜덤 액세스 메모리(RAM), 리드 온리 메모리(ROM) 등을 포함한다.
운영 체제(135), 하나 이상의 애플리케이션 프로그램(136), 기타 프로그램 모듈(137) 및 프로그램 데이터(138)를 포함하는 다수의 프로그램 모듈은 하드 디스크, 자기 디스크(129), 광 디스크(131), ROM(124) 또는 RAM(125)에 저장될 수 있다. 사용자는 키보드(140) 및 포인팅 장치(142) 등의 입력 장치를 통해 퍼스널 컴퓨터(120)에 코맨드 및 정보를 입력할 수 있다. 기타 입력 장치(도시하지 않음)는 마이크로폰, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스에 결합된 직렬 포트 인터페이스(146)를 통해 프로세싱 유닛(121)에 접속되지만, 병렬 포트, 게임 포트, 또는 유니버설 시리얼 버스(USB) 등의 기타 인터페이스에 의해 접속될 수 있다. 모니터(147) 또는 기타 유형의 디스플레이 장치는 또한 비디오 어댑터(148) 등의 인터페이스를 통해 시스템 버스(123)에 접속된다. 모니터(147)에 더하여, 퍼스널 컴퓨터는 일반적으로 스피커 및 프린터 등의 기타 주변 출력 장치(도시하지 않음)을 포함한다. 도 1의 예시적인 시스템은 또한 호스트 어댑터(155), 소형 컴퓨터 시스템 인터페이스(SCSI) 버스(156), 및 SCSI 버스(156)에 접속된 외부 저장 장치(162)를 포함한다.
퍼스널 컴퓨터(120)는 원격 컴퓨터(149) 등의 하나 이상의 원격 컴퓨터로의 논리적 접속부를 사용하는 네크워킹된 환경에서 동작할 수 있다. 원격 컴퓨터 (149)는 또다른 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 공통 네트워크 노드일 수 있으며, 도 1에서는 메모리 저장 장치(150)만이 도시되어 있지만, 퍼스널 컴퓨터(120)에 관련된 상술한 많은 또는 모든 구성요소를 포함할 수 있다. 도 1에 도시된 논리적 접속부는 근거리 통신망(LAN; 151)과 원거리 통신망(WAN; 152)을 포함한다. 이러한 네트워킹 환경은 오피스, 기업 광역 컴퓨터 네트워크, 인트라넷 및 인터넷에서 일반적인 것이다.
LAN 네트워크 환경에서 사용되는 경우, 퍼스널 컴퓨터(120)는 네트워크 인터페이스 또는 어댑터(153)를 통해 LAN(151)에 접속된다. WAN 네트워크 환경에서 사용되는 경우, 컴퓨터(120)는 일반적으로 인터넷 등의 WAN(152)을 통해 통신을 구축하기 위한 모뎀(154) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(154)은 직렬 포트 인터페이스(146)를 통해 시스템 버스(123)에 접속된다. 네트워크 환경에서, 퍼스널 컴퓨터(120) 또는 그 일부에 관하여 도시된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 도시된 네트워크 접속부는 예시적인 것이며, 컴퓨터들간의 통신 링크를 구축하는 그 외의 수단이 사용될 수 있다.
리소스 수신자에 대한 식별 정보 설명자
도 2를 참조하면, 본 발명은 임의의 종류의 컴퓨터 유형 리소스(12)를 리소스 수신자(RR; 14)에 제공하는 리소스 제공자(RP; 10)로서 동작하는 제1 컴퓨터 유형 엔티티의 컨텍스트에서 설명된다. 이해할 수 있는 바와 같이, 주어진 임의의 상황에 의존하여, RP(10) 및 RR(14)의 각각은 하드웨어 또는 소프트웨어 엔티티일 수 있거나 소프트웨어 엔티티의 하드웨어 요소 또는 하드웨어 엔티티의 소프트웨어 요소일 수 있으며, 이들 모두는 본 발명의 사상과 범위를 벗어나지 않는다. 예를 들어, RP(10)는 리소스(12)로서 파일, 키, 또는 콘텐츠 등을 제공하는 서버일 수 있으며, RR(14)는 이러한 리소스를 필요로 하는 소프트웨어 구성, 데이터 저장 장치, 컴퓨터 프로그램 등일 수 있다. 마찬가지로, RP(10)는 프린터, 네트워크 등일 수 있으며, RR(14)는 이러한 RP(10)로의 액세스하는 리소스를 탐색하는 프로그램 또는 기타 구성일 수 있다.
본 발명의 일실시예에서, 리소스(12)는 특정값이거나 미리 정의된 규칙에 따라 처리되는 것이며, 따라서, RR(14) 또는 관련 인증자(16)가 RP(10)에 인증 정보를 제공하고 RP(10)가 그에 기초하여 RR(14)를 인증하면, RP(10)는 RR(14)에 리소스를 제공한다. RR과 인증자(16) 둘다 예를 들어 사용자의 컴퓨팅 장치(18) 상에 상주할 수 있으며, 인증자(16)는 신뢰성 평가기(trust evaluator)이거나 컴퓨팅 장치(18) 상의 운영 체제의 로더 또는 기타 부분 등의 컴퓨팅 장치(18) 상의 임의의 기타 시스템이다.
종래 기술에서, RR(14)은 일반적으로 RR(14)의 프로세스 내의 환경의 설명, 검증 증명 체인(verifying certificate chain)을 갖는 디지털 서명, RR(14)의 구성 요소를 검증하기 위하여 사용될 수 있는 키 등의 항목을 포함하는, RR(14)에 관련된 정보를 갖는 목록(manifest)을 포함한다. 동작에 있어서, 컴퓨팅 장치(18) 상에서 동작하는 구성요소들은 RR(14)를 검증하기 위한 키를 획득하거나 RR(14)의 프로세스가 소정의 구성 소자를 포함해야 하는 것으로 결정하거나, 동작시에 뒤따라야 하는 소정의 절차를 획득하기 위한 관련된 목록을 참조한다.
따라서, RR(14)의 목록은 RR(14), RR(14)의 보안 환경, 및 RR(14)로의 입력 등을 설명한다. 그러나, 이러한 목록은 다음과 같은 결점이 있다.
1) 목록은 단일 프로세스로 로딩될 수 있는 다중 실행부를 지정할 수 있다. 더 많은 유연성을 허용하지만, 하나의 목록이 하나의 실행부와 연관되거나 결합될 수 있고 단일 코드 식별 정보 또는 '코드 ID'가 이러한 하나의 결합에 기초하여 산출될 수 있다는 점에서 목록을 단일 실행부로 제한하는 것이 더 안전하다. 이해할 수 있는 바와 같이, 코드 ID는 결합의 요약이고, 특히 목록 및 실행부 자체를 설명하는 보안 관련 입력이다. 이하에서 상세히 설명하는 바와 같이, 본 발명의 식별 정보 설명자 또는 'id'는 이러한 보안 관련 입력을 포함하는 데이터 구조이다.
2) 목록은 복잡성 및 바람직하지 않은 다른 효과를 증가시키는 다수의 특징을 포함하도록 성장하였다. 대조적으로, 다른 곳에서의 레퍼런스에 의해 유입되거나 목록 및/또는 다른 곳에서의 런타임에서 도출된 본 발명의 id는 목록에 직접 병합될 수 있고, 목록은 대응하는 실행부에 대한 상술한 보안 관련 입력에 관한 것이고 액세스 제어 시스템의 최저 레벨에서 보안 관련성을 갖는다. 따라서, id는 비교적 단순한 포맷을 가질 수 있다.
특히, 본 발명의 식별 정보 설명자 또는 id에 대하여, id(20)는 프로세스의 실행부에 입력되는 보안 관련 입력을 위한 패키지이고, 여기서 실행부는 추정하여 도 2의 RR(14)이다. 이해할 수 있는 바와 같이, id(20)는 실행부에 삽입되거나, 개별 파일로부터 도출되거나, 예를 들어, 목록 등의 또다른 문서로부터 추출될 수 있다. 필수적으로, id(20)는 실행부/RR(14)(이하, 'RR(14)'이라 함)이 동작하는 환경, 특히 보안 환경을 설명하는 입력 변수를 지정하는 환경 블록이고, 이러한 RR(14)의 런칭(launching) 및 실행을 제어하기 위하여 RR(14)이 상주하는 컴퓨팅 장치(18)의 운영 체제와 RR(14)에 의해 사용될 수 있고, 또한 리소스(12)를 이러한 RR(14)에 제공할지를 결정할 때 RP(10)에 의해 사용될 수 있다. 코드 식별 정보 또는 '코드 ID'(22)는 RR(14)과 id(20)의 요약으로부터 도출 또는 산출되고 디지털 서명에서 사용되는 것과 유사한 방식의 RR의 해쉬(hash)이다.
RR(14)이 예를 들어 파일을 판독하고 디버깅 포토를 오픈함으로써 그 보안 환경을 변경하기를 원하면, 이러한 RR(14)은 그렇게 할 책임이 있다. 그러나, RR(14)을 개발하는 개발자가 특정 행동을 파라미터화하길 원하면, 파라미터는 보안 관계(예를 들어, 프로그램 입력에 기초한 상이한 파일 오픈, 또는 프로그램 입력에 기초한 디버그)를 가지며, 파라미터는 id(20)에 배치될 수 있고, RR(14)은 파라미터를 위한 id(20)만을 참조하도록 기입될 수 있다. 따라서, 파라미터가 불손한 엔티티에 의해 id(20)내에서 잠재적으로 변경될 수 있어도, 변경된 id(20)는 산출된 코드 ID(20)를 변경할 것이고, 여기서, 이러한 변경은 RR(14)이 신뢰성이 없다는 표시로서 RP(10) 등의 관심있는 당사자에 의해 해석될 수 있다.
본 발명의 일실시예에서, id(20)는 다음과 같은 함수 형태를 갖는다.
Map<NameString, String>EnvironmentVariables
즉, id(20)는 이름-값 쌍의 세트를 포함하고, 이들 이름-값 쌍의 세트의 각각은 예를 들어, 점이 찍힌 문자숫자 스트링 등의 이름을 대응하는 값 스트링에 맵핑한다. XML이 불필요하게 파싱 복잡성(parsing complexity)을 도입할 수 있더라 도, id(20)는 본 발명의 사상 및 범위를 벗어나지 않고 XML 문서 등의 형태로 있을 수 있다. 변수의 적어도 일부가 스트링으로서 표현된 XML 문서일 수 있다. 따라서, 리스트로서 표시된 id(20)는 다음의 형태이다.
Name1=StringValue1
Name2=StringValue2
Name3=StringValue3
id(20)의 사용예는 다음과 같다. 예들은 예시적인 것이며 반드시 모든 것을 포함할 필요는 없다. "names"에 대한 점이 찍힌 이름공간을 가정하면, "_System" 이름 공간은 컴퓨팅 장치(18)의 운영 체제에 의해 사용되도록 저장될 수 있고, RR(14)의 id(20)는 다음을 포함한다.
_System.Debuggable="true"
_System.ProgramName="Excel"
_System.SealToLocalAdmin="true"
따라서, 컴퓨팅 장치(18)의 운영 체제는 id(20)를 참조하여 id(20)에 대응하는 RR(14)의 프로세스가 디버깅될 수 있고 실행부는 'Excel'로 명명되고, 변수 _System.SealToLocalAdmin은 "true"로 설정된 것으로 판정한다.
RR(14)은 보안 특성의 프로그램 입력에 기초하여 행동 결정을 하기 위해 id(20)를 사용할 수 있다. "names"에 대한 점이 찍힌 이름 공간을 가정하면, "MyProg" 이름 공간은 RR(14)에 의해 사용되도록 저장될 수 있고, RR(14)의 id(20) 는 다음을 포함할 수 있다.
MyProg.ProgName="MS URT running Trusted Backup Script"
MyProg.script="main(){foreach(blob in blobs)printf(blob);}"
MyProg.UI="<xml>Some UI XML </xml>";
MyProg.AllowedResourceFiles="0x1234, Ox3456, Ox89abb";
MyProg.KeyHolderWhoCanDebugMyProcess="Oxfedcb";
따라서, RR(14)은 그 id(20)에 기초하여 특정 프로그램 이름, 프로그램 스크립트, XML 포맷의 프로그램 UI(사용자 인터페이스), 다수의 허용된 리소스 파일, 및 RR(14)의 프로세스를 디버깅할 수 있는 특정 키 홀더를 결정할 수 있다.
임의의 특정 id(20)의 실제 이름-값 쌍은 본 발명의 사상과 범위를 벗어나지 않고 임의의 적절한 이름-값 쌍일 수 있음을 이해해야 한다. 또한, 이러한 이름-값 쌍은 예를 들어 특정 프로그램 스크립트 또는 유효 사용자의 리스트 등의 RR(14)로부터 RR(14)로 변하는 값의 유형 및 예를 들어 프로그램 이름 및 RR(14)의 프로세스가 디버깅될 수 있는지의 여부 등의 모든 RR(14)에 공통인 값의 유형을 포함할 수 있다. 일반적으로, 본 발명의 사상과 범위를 벗어나지 않고 비보안 관련 이름-값 쌍이 id(20)에 있을 수 있다는 것을 이해하더라도, id(20)가 주로 운영 RR(14)의 보안 환경을 설명하는 입력 변수를 지정하는 환경 블록이므로, 임의의 특정 id(20)의 이름-값 쌍은 보안 관련된다.
따라서, 특히 보안 관련 내용에 관하여, 특정 id(20)는 다른 보안 관련 내용 중에서 운영 체제, 가상 머신, 실제 머신, 및/또는 RR(14)이 디버거 등에 의해 모니터링될 수 없는 분리된 프로세스에서 동작하든지 또는 모니터링될 수 있는 디버깅가능한 프로세스에서 동작하든지 간에 RR(14)이 동작하는 컴퓨팅 장치(18)를 설명하는 이름-값 쌍, RR(14)을 액세스할 수 있는 각각의 엔트리 포인트, 및 RR(14)에 제공되는 보안 관련 입력을 포함할 수 있다. 이러한 보안 관련 내용은 일반적으로 다른 것들 중에서 RR(14)이 동작하는 방법, RR(14)이 데이터 및 다른 입력을 얻는 장소 및 RR(14)이 외부적으로 영향을 받을지 또는 모니터링될 지의 여부에 대한 내용임을 이해해야 한다. 따라서, 일반적으로, id(20)의 정보는 RR(14)을 설명하고, RR(14)이 동작하는 컴퓨팅 환경(18) 및 운영 체제를 설명하고, RR(14)의 보안 관련 형태를 설명한다. RR(14)의 코드 ID(22)는 부분적으로 그 id(20)에 기초하고 코드 ID(22)는 잘 알려진 것이므로, 이하에서 더 상세히 설명하는 바와 같이, id(20)는 특정 컴퓨팅 장치(18)에 RR(14)의 임의의 특정 인스턴스화(instantiation)에 특정된 이름-값 쌍을 포함하지 않아야 한다.
본 발명의 일실시예에서, 특정 RR(14)에 대응하는 코드 식별 정보 또는 '코드 ID'(22)는 그 id(20)와 연관된 RR(14)의 해쉬로서 정의된다. 예를 들어, 해쉬는 SHA-1 및 SHA-256를 포함하는 몇개의 공지된 SHA 알고리즘 중의 임의의 것에 기초할 수 있다.
코드 ID(22) = SHA (RR(14) |id(20))
특정한 일실시예에서, 코드 ID(22)는 상술한 연관된 2개의 해쉬이고, 하나의 해쉬는 SHA-1에 기초하고 나머지 하나는 SHA-256에 기초한다.
코드 ID(22) = SHA-1 (RR(14) |id(20))|SHA-256 (RR(14) |id(20))
따라서, RR(14)과 id(20)에 관한 지식 및 코드 ID(22)가 산출되는 방법에 관한 지식에 기초하여, RR(14) 또는 관련 인증자(16)는 디지털 서명의 방식으로 RP(10)에 부여하기 위한 RR(14)에 대응하는 코드 ID(22)를 산출할 수 있다. RR(14)의 하나 이상의 유효 코드 ID(22)의 각각은 특히 리소스(12)를 RR(14)에 제공하도록 요청된 RP(10)에 의해 공지되어야 한다. RR(14)은 하나 이상의 유효 코드 ID(22)를 가질 수 있으며, 특히 RR(14)이 다수의 버전이 되면, 다수의 운영 체제 상에서 동작할 수 있고, 다수의 운영 체제의 각각은 RR(14) 및/또는 그 id(20)의 변화를 필요로 한다. 가정하여, RP(10)는 RR(14)의 지식 및 RR(14)에 대한 각각의 유효 코드 ID(22)를 가지며, RR(14)에 대한 유효 코드 ID(22)가 이러한 RR(14) 대신에 RP(10)에 부여된 경우에만, 이러한 RP(10)는 리소스(12)를 RR(14)에 제공한다.
본 발명의 일실시예에서, 도 3을 참조하면, RR(14)에 대응하는 id(20)와 코드 ID(22)는 다음과 같은 방식으로 사용된다. 먼저, RR(14)은 사용자에 의해 가동되는 이러한 인스턴스화 또는 또다른 프로세스에 의해 컴퓨팅 장치(18)의 운영 체제 상의 프로세스에서 인스턴스화되도록 한다(단계 301). 일반적으로, 이러한 인스턴스화는 본 발명의 사상 및 범위로부터 벗어나지 않고 임의의 다른 적절한 엔티티에 의해 달성될 수 있어도, 이러한 인스턴스화는 컴퓨팅 장치(18)의 운영 체제 상에서 동작하는 로더(24)에 의해 달성된다.
RR(14)을 인스턴스화하는 부분으로서, 로더(24)는 RR(14)이 위치할 수 있는 곳으로부터 RR(14)를 획득하여 그 RR(14)를 로딩한다(단계 303). 이해되는 바와 같이, 로더(24)는 본 발명의 사상 및 범위로부터 벗어나지 않고 임의의 적절한 방식으로 RR(14)의 획득 및 로딩을 수행할 수 있고, 여기서, 특정한 획득 방법은 당업자들에게 공지되거나 명백한 것이므로 더 상세히 설명하지 않는다.
RR(14)를 인스턴스화하는 부분으로서, 로더(24)는 이러한 id(20)가 위치할 수 있는 곳으로부터 이러한 RR(14)에 대응하는 id(20)를 획득하고 또한 적절한 위치에 그 id를 로딩한다(단계 305). 상술한 바와 같이, 이러한 id(20)는 RR(14)에 삽입되거나, 개별 파일로부터 도출되거나 예를 들어 목록 등의 또다른 문서로부터 추출될 수 있다. 임의의 속도로, 로더(24)는 이러한 위치에 대응하는 모드에서 본 발명의 사상과 범위를 벗어나지 않는 임의의 적절한 방식으로 그 위치로부터 id(20)를 획득하고, 여기서, 특정한 획득 방법은 당업자들에게는 공지되고 명백한 것이므로, 상세하게 개시될 필요는 없다. 로더가 id(20)를 로딩하는 위치는, 본 발명의 사상과 범위를 벗어나지 않고, 예를 들어, 테이블, id 캐쉬, RR(14)의 프로세스 등의 임의의 적절한 위치일 수 있다.
RR(14)과 RR(14)이 동작하는 컴퓨팅 장치의 운영 체제가 로딩된 id(20)로의 액세스를 요구할 수 있다. 따라서, id(20)를 로딩할 때, 로더(24)는 적어도 RR(14)에 id(20)의 위치에 대한 포인터 또는 다른 레퍼런스를 제공한다(단계 307). 따라서, RR(14)은 이러한 id(20)내에서 그와 관련된 보안 관련 정보를 탐색할 수 있다. 또한, 운영 체제는 또한 포인터 또는 다른 참조를 수신하거나 RR(14)에 의해 이러한 보안 관련 정보를 탐색할 수 있다.
가정하여, RR(14)의 동작동안 어떤 포인트에서, RR(14)에 대한 유효 코드 ID 가 이러한 RR(14)에 대신하여 RP(10)에 제공되는 경우에만, 이러한 RR(14)은 상술한 바와 같이 이러한 RR(14)에 리소스(12)를 제공하는 RP(10)로부터 리소스(12)를 요구하려고 한다. 따라서, RR(14)과 그 대응하는 id(20)를 로딩할 때, 이 로딩된 RR(14)와 id(20)에 대응하는 코드 ID(22)가 산출된다(단계 309). 이 코드 ID(22)는 RP(10)에 인증 정보를 제공하는 상술한 인증기(16)에 의해 또는 로더(24)에 의해 산출된다. 이해할 수 있는 바와 같이, 인증기(16)가 로더(24)의 일부일 수 있거나 로더(24)가 인증기(16)의 일부일 수 있다. 또한, 코드 ID는 산출된 코드 ID(22)가 RP(10)에 의해 나타날 것으로 예상되는 형태인 한 본 발명의 사상과 범위를 벗어나지 않는 임의의 적절한 방법으로 산출될 수 있다.
따라서, RR(14)의 동작동안 어떤 포인트에서, 이 RR(14)은 RP(10)로부터 리소스(12)를 요구하고, 따라서, 인증기(16)가 RR(14) 대신에 이 리소스(12)를 획득하도록 요구한다(단계 311). 이 리소스(12)를 획득하려고 시도하기 전에, 인증기(16)는 RR(14)에 대하여 다양한 인증 기능을 수행하여, 다른 것들중에서, RR(14)이 리소스(12)에 대한 권리를 갖고 리소스(12)에 대하여 신뢰성있다는 것을 확인한다(단계 313). 이렇게 함으로써, 인증기(16)는 RR(14)에 대응하는 id(20)의 보안 관련 정보를 참조할 수 있고, 다른 것들 중에서 신뢰성을 부정할 수 있는 것을 포함하는 임의의 방식으로 변경되지 않는다. 일반적으로, 인증기(16)는 본 발명의 사상과 범위를 벗어나지 않고 RR(14)에 대하여 임의의 인증 기능을 수행할 수 있다. 이러한 인증 기능은 당업자에게 공지되거나 명백한 것이므로, 더 상세한 설명을 필요로 하지 않는다.
인증기(16)가 RR(14)에 대해 만족하는 것으로 가정하면, 인증기(16)는 RR(14)로부터 RP(10)로 리소스의 요구를 포워딩한다(단계 315). 이러한 포워딩된 요구는 RR(14)로부터의 요구의 축어적 카피(verbatim copy) 또는 그 변형일 수 있다. 따라서, 포워딩된 요구는 본 발명의 사상과 범위로부터 벗어나지 않는 임의의 적절한 형태를 취할 수 있다. 예를 들어, 이러한 형태는, 다른 것들 중에서, 요구하는 RR(14)에 대하여 산출된 코드 ID(22), 요구하는 RR(14)에 대한 id(20), 및 RR(14)에 의해 요구된 리소스(12)의 정의를 포함하는 미리 정의된 인용 기능일 수 있다. 인용 기능은 또한 하나 이상의 항목에 기초한 디지털 서명 등을 포함할 수 있고, 여기서, 서명은 인증기(16)와 RP(10) 사이에서 공유되는 보안 키에 기초하여 검증될 수 있음을 이해해야 한다.
수신된 인용 기능 또는 다른 포워딩된 요구에 응답하여, 도 4를 참조하면, RP(10)는 RR(14)로부터 리소스에 대한 요구를 받아들일지를 결정한다. 특히, 다른 것들 중에서, RP(10)는, 인용 기능의 경우에 공유된 보안 키에 기초하여 그 서명을 검증하는 것을 포함하는 포워딩된 요구를 검증한다(단계 401). 또한, RP(10)는 코드 ID(22), id(20), 및 포워딩된 요구로부터 요구된 리소스(12)의 정의를 획득하고(단계 403), 포워딩된 요구로부터 요구하는 RR(14)의 식별 정보를 결정하고(단계 405), 식별된 RR(14)에 대한 각각의 유효 코드 ID(22)를 획득하고(단계 407), 포워딩된 요구의 산출된 코드 ID(22)가 식별된 RR(14)에 대한 유효 코드 ID(22)중의 하나와 매칭하는 것을 검증한다(단계 409).
RP(10)는 본 발명의 사상과 범위를 벗어나지 않는 임의의 적절한 방법에 의 해 포워딩된 요구로부터 요구하는 RR(14)의 식별 정보를 판정할 수 있다. 예를 들어, 이러한 식별 정보는 특정한 이름-값 쌍으로서 포워딩된 요구의 id(20)내에서 지정될 수 있다. 물론, RP(10)로부터 리소스(12)를 부적절하게 획득하려고 시도하는 불손한 엔티티는 id(20)내의 이러한 식별 정보 정보를 변경할 수 있다. 그러나, 인증기(16)에 의해 산출된 코드 ID(22)는 부분적으로 id(20)에 기초하므로, 이렇게 산출된 코드 ID는 RP(10)에 알려진 임의의 유효 코드 ID와 매칭될 수 없다. 또한, 인증기(16)가 RP(10)에 의해 적절하게 동작하는 것으로 기대되고, 따라서, 코드 ID(22)를 파괴하지 않는 것으로 기대된다.
RP(10)는 RR(14)에 대한 각각의 유효 코드 ID(22)를 갖는 것으로 가정하고 예상된다. 또한, RR(14)의 하나 이상의 유효 코드 ID(22)의 각각은 RR(14)에 리소스(12)를 제공하도록 요청된 RP(10)에 의해 공지되어야 한다. 마지막으로, 포워딩된 요구의 유효 코드 ID(22)를 탐색함으로써, RP(10)는, RR(14) 및 그 id(20)로부터 도출된 유효 코드 ID(22)에 기초하여, RR(14)이 신뢰성있는 것으로 가정될 수 있는 공지된 비변경 RR(14)이고 RR(14)이 동작하는 보안 관련 정보가 신뢰성있는 것으로 가정될 수 있는 비변경 보안 관련 정보인 것으로 결정한다. 또한, 코드 ID(22)를 사용함으로써, 절충된 특정 RR(14)이 RP(10)에 이용가능한 것으로부터 모든 관련 코드 ID를 제거함으로써 손상될 수 있을을 이해할 것이다.
요구의 산출된 코드 ID(22)를 확인하는 것에 더하여, RP(10)는 또한 그 내의 다른 정보에 기초하여 포워딩된 요구를 확인할 수 있다(단계 411). 예를 들어, 코드 ID(22)가 확인되어도, RP(10)는, id(20)의 소정의 정보에 기초하여, 예를 들어 RR(14)가 분리된 프로세스에서 동작하는 지에 기초하여 요구를 수락하거나 거부하도록 프로그램될 수 있다. 마찬가지로, 포워딩된 요구가 RR(14)의 컴퓨팅 장치(18)의 사용자의 표시를 포함하면, RP(10)는 식별된 사용자에 기초하여 요구를 수락하거나 거부하도록 프로그램될 수 있다. 물론, RP(10)는 본 발명의 사상과 범위를 벗어나지 않는 임의의 기준에 기초하여 포워딩된 요구를 확인할 수 있다.
포워딩된 요구가 단계(409 및 411)에서 확인되면, RP(10)는 요구된 리소스(12)가 이용가능한지 및/또는 제공될 수 있는지를 판정한다(단계 413). 예를 들어, 리소스(12)가 데이터이면, RP(10)는 데이터가 이용가능한지를 판정하거나, 리소스가 프린터로의 액세스이면, RP(10)는 프린터가 온라인인지, 종이가 있는지를 판정하고, 다른 것들 중에서 새로운 프린트 요구가 수락된다.
단계(409 및 411)에서 포워딩된 요구가 확인되고 단계(413)에서 요구된 리소스(12)가 이용가능하고 및/또는 제공될 수 있는 것으로 가정하면, RP(10)는 요구된 리소스(12)를 제공함으로써 포워딩된 요구에 응답한다(단계 415). 따라서, 리소스(12)가 오브젝트이면, RP(10)는 이러한 오브젝트를 제공하고, 리소스(12)가 서비스로의 액세스이면, RP(10)는 예를 들어 액세스의 보안 키 또는 다른 표시에 의해 이러한 액세스를 배치하고 액세스의 보안 키 또는 다른 표시를 제공한다.
RP(10)에 의해 제공된 요구된 리소스(12)에 대한 응답은 인증기(16)에 의해 직접 또는 간접적으로 RR(14)에서 수신되고(단계 317, 도 3), RR(14)는 적절한 응답이 제공되면 리소스(12)를 사용할 수 있다(단계 319). RP(10)가 요구된 리소스(12)를 RR(14)에 제공하였기 때문에, RR(14)과 그 컴퓨팅 장치는 RP(10)에 의해 이 러한 신뢰성과 일치하는 방식 및 특히 RR(14)에 대응하는 id(20)의 보안 관련 정보에 따라서 제공된 리소스(12)를 사용하는 것으로 기대된다.
결론
본 발명은 임의의 리소스 요구자 RR(14)과 제공자 RP(10)에 대해 실행될 수 있다. 더 구체적으로, 본 발명은 예를 들어 PC에서의 워드 프로세서가 보호된 워드 프로세싱 문서를 수신하도록 하거나, 전용 재생 장치에서의 음악 재생기가 렌더링된 음악을 스피커 시스템에 전송하거나, 무선 장치가 로컬 무선 네트워크로 액세스하는 등에 사용될 수 있다. 따라서, RR(14)은 리소스(12)를 요구하는 임의의 장치로서 해석되고 RP(10)는 시스템 내의 리소스(12)를 제공하는 임의의 장치로서 해석되고, 여기서, RR(14)은 id(20)의 보안 관련 정보에 기초하여 동작하고 RP(10)는 부분적으로 id(20)에 기초하여 RR(14)의 신뢰성을 확인한다.
본 발명과 연결하여 수행되는 프로세스를 효과적으로 하는데 필요한 프로그래밍은 프로그래밍의 당업자에게 비교적 간단하고 명백한 것이다. 따라서, 이러한 프로그래밍은 여기에 첨부되지 않는다. 임의의 특정 프로그래밍이 본 발명의 사상과 범위를 벗어나지 않고 본 발명을 달성하는 데 사용될 수 있다.
상술한 설명에서, 본 발명은 RR(14)이 리소스(12)를 제공하는 리소스 제공자 RP(10)에 의해 인증될 수 있는 id(20) 등의 인증 정보가 컴퓨터 프로그램, 실행부 또는 다른 리소스 수신자 RR(14)에 제공될 수 있는 새롭고 유용한 방법 및 메카니즘을 포함하는 것을 나타낸다. id(20)는 RP(10)에 RR(14)의 식별 정보를 설명하고, 다른 것들 중에서 RR(14)의 환경을 설명하는 변수의 세트를 포함한다.
본 발명의 진보적인 개념을 벗어나지 않고 실시예가 변경될 수 있음이 명백하다. 따라서, 본 발명은 개시된 특정한 실시예에 한저되는 것은 아니며, 첨부된 청구범윙 의해 정의된 본 발명의 사상과 범위 내의 변형을 포함한다.
상술한 바와 같이, 본 발명에 따르면, 리소스 수신자가 리소스를 제공하는 리소스 제공자에 의해 인증될 수 있는 인증 정보가 컴퓨터 프로그램, 실행부 또는 다른 리소스 수신자에 제공될 수 있는 방법 및 메카니즘이 제공된다.

Claims (36)

  1. 컴퓨팅 장치 상에서 동작하는 리소스 요구자(RR)에 대하여 리소스 제공자(RP)로부터 전자 리소스를 획득하는 방법 - 상기 리소스 제공자 및 상기 리소스 요구자는 개별 컴퓨팅 장치에 위치하며, 상기 리소스 제공자는 상기 리소스를 제공하는 소프트웨어 또는 하드웨어 전자 구성(software or hardware electronics construct)이고, 상기 리소스 요구자는 그와 관련된 식별 정보 설명자(identity descriptor: id)를 가지며, 상기 식별 정보 설명자는 상기 리소스 요구자가 동작하는 환경을 특정하는 보안 관련 정보(security-related information)를 포함함 - 으로서,
    상기 컴퓨팅 장치에 상기 리소스 요구자를 로딩하는 단계;
    상기 컴퓨팅 장치에 상기 리소스 요구자에 대응하는 상기 식별 정보 설명자를 로딩하는 단계;
    상기 로딩된 식별 정보 설명자에 대한 레퍼런스(reference)를 상기 리소스 요구자에 제공하는 단계;
    상기 로딩된 리소스 요구자와 로딩된 식별 정보 설명자에 대응하고 그에 기초한 코드 식별 정보(코드 ID)를 산출(calculate)하는 단계;
    상기 리소스 요구자 및 상기 리소스 제공자와는 별개의 인증기(authenticator)에서, 상기 리소스 요구자로부터 상기 리소스에 대한 요구를 수신하는 단계;
    상기 인증기에서, 요구하는 상기 리소스 요구자가 상기 리소스에 대한 권리를 갖고 상기 리소스에 대하여 신뢰성이 있는 것임을 확인하는 단계;
    상기 인증기에 의해, 상기 리소스 요구자로부터 상기 리소스 제공자로 상기 리소스에 대한 요구를 포워딩(forward)하는 단계 - 상기 포워딩된 요구는 요구하는 상기 리소스 요구자에 대한 산출된 코드 식별 정보, 요구하는 상기 리소스 요구자에 대한 식별 정보 설명자, 및 상기 리소스 요구자에 의해 요구된 리소스의 정의를 포함하고, 상기 리소스 제공자는 상기 포워딩된 요구 내의 산출된 코드 식별 정보가 식별된 리소스 요구자에 대한 하나 이상의 유효한 코드 식별 정보 중 하나와 매칭하는 것임을 검증하고, 그에 기초하여 상기 리소스 요구자가 신뢰성있는 것으로 추정될 수 있는 알려진 리소스 요구자로서 신뢰성이 있고 리소스 요구자가 동작하는 보안 관련 정보가 신뢰성있는 것으로 추정될 수 있는 알려진 보안 관련 정보인 것으로 결정하며, 그와 같이 결정을 한 경우에만 상기 요구된 리소스를 제공함으로써 상기 포워딩된 요구에 응답함 -; 및
    상기 리소스 요구자가 상기 리소스 제공자에 의해 제공되는 상기 요구된 리소스를 수신하고 상기 리소스 제공자에 의해 상기 리소스 요구자에 부여된 신뢰성에 일치하는 방식 및 상기 리소스 요구자에 대응하는 상기 식별 정보 설명자 내의 보안 관련 정보에 따라 상기 요구된 리소스를 사용하는 단계
    를 포함하는 리소스 획득 방법.
  2. 제1항에 있어서, 상기 인증기는 상기 리소스 요구자에 대응하는 상기 식별 정보 설명자 내의 상기 보안 관련 정보를 참조(refer)하는, 리소스 획득 방법.
  3. 제1항에 있어서, 상기 포워딩된 요구는 요구하는 상기 리소스 요구자에 대한 상기 산출된 코드 식별 정보, 요구하는 상기 리소스 요구자에 대한 상기 식별 정보 설명자, 상기 리소스 요구자에 의해 요구된 상기 리소스의 정의 중 적어도 하나에 기초한 디지털 서명을 더 포함하고, 상기 서명은 상기 리소스 제공자와 공유하는 보안 키에 기초하여 검증될 수 있는, 리소스 획득 방법.
  4. 제1항에 있어서, 상기 식별 정보 설명자는 상기 리소스 요구자, 상기 리소스 제공자, 상기 리소스 요구자가 동작하는 상기 컴퓨팅 장치 상의 운영 체제 중 적어도 하나에 입력되는 이용가능한 보안 관련 이름-값 쌍(name-value pair)의 세트를 포함하는, 리소스 획득 방법.
  5. 리소스 제공자(RP)가 컴퓨팅 장치 상에서 동작하는 리소스 요구자(RR)에게 전자 리소스를 제공하는 방법 - 상기 리소스 제공자는 상기 리소스를 제공하는 소프트웨어 또는 하드웨어 전자 구성이고, 상기 리소스 요구자는 그와 관련된 식별 정보 설명자(id)를 가지며, 상기 식별 정보 설명자는 리소스 요구자가 동작하는 환경을 특정하는 보안 관련 정보를 포함함 - 으로서,
    상기 리소스 요구자 및 상기 리소스 제공자와는 별개의 인증기에 의해, 상기 리소스에 대한 상기 리소스 요구자로부터 포워딩된 요구를 수신하는 단계 - 상기 인증기는 요구하는 상기 리소스 요구자가 상기 리소스에 대한 권리를 갖고 상기 리소스에 대해 신뢰성이 있는 것임을 확인하였고, 상기 포워딩된 요구는 요구하는 상기 리소스 요구자에 대하여 산출된 코드 식별 정보(코드 ID)를 포함하고, 상기 산출된 코드 식별 정보는 상기 컴퓨팅 장치 상에 로딩되는 상기 리소스 요구자와 상기 식별 정보 설명자에 대응하고 그에 기초하며, 상기 포워딩된 요구는 요구하는 상기 리소스 요구자에 대한 식별 정보 설명자와 상기 리소스 요구자에 의해 요구된 상기 리소스의 정의를 포함함 -;
    상기 수신된 요구를 검증하는 단계;
    상기 코드 식별 정보, 상기 식별 정보 설명자, 및 상기 수신된 요구로부터 요구되는 상기 리소스의 정의를 획득하는 단계;
    요구하는 상기 리소스 요구자의 식별 정보를 상기 수신된 요구로부터 판정하는 단계;
    식별된 상기 리소스 요구자에 대한 하나 이상의 유효한 코드 식별 정보의 각각을 획득하는 단계;
    상기 수신된 요구 내의 상기 산출된 코드 식별 정보가 식별된 상기 리소스 요구자에 대한 하나 이상의 유효한 코드 식별 정보 중 하나와 매칭하는 것임을 검증하고, 그에 기초하여 상기 리소스 요구자가 신뢰성있는 것으로 추정될 수 있는 알려진 리소스 요구자로서 신뢰성이 있고 리소스 요구자가 동작하는 보안 관련 정보가 신뢰성있는 것으로 추정될 수 있는 알려진 보안 관련 정보인 것으로 결정하는 단계; 및
    그와 같이 결정을 한 경우에만 상기 요구된 리소스를 상기 리소스 요구자에 제공함으로써 상기 포워딩된 요구에 응답하는 단계 - 상기 리소스 요구자는 상기 리소스 제공자에 의해 제공된 상기 요구된 리소스를 수신하고 상기 리소스 제공자에 의해 상기 리소스 요구자에 부여된 신뢰성에 일치하는 방식 및 상기 리소스 요구자에 대응하는 식별 정보 설명자 내의 보안 관련 정보에 따라 상기 요구된 리소스를 사용함 -
    를 포함하는 리소스 제공 방법.
  6. 제5항에 있어서, 상기 인증기는 상기 리소스 요구자에 대응하는 상기 식별 정보 설명자 내의 상기 보안 관련 정보를 참조(refer)하는, 리소스 제공 방법.
  7. 제5항에 있어서, 상기 포워딩된 요구는 요구하는 상기 리소스 요구자에 대한 상기 산출된 코드 식별 정보, 요구하는 상기 리소스 요구자에 대한 상기 식별 정보 설명자, 상기 리소스 요구자에 의해 요구된 상기 리소스의 정의 중 적어도 하나에 기초한 디지털 서명을 더 포함하고,
    상기 리소스 제공 방법은 상기 서명을 검증하는 단계를 더 포함하는 리소스 제공 방법.
  8. 제5항에 있어서, 상기 포워딩된 요구를 다른 정보에 기초하여 확인(validate)하는 단계를 더 포함하는 리소스 제공 방법.
  9. 컴퓨팅 장치 상에서 동작하는 리소스 요구자(RR)에 대하여 리소스 제공자(RP)로부터 전자 리소스를 획득하는 방법을 수행하기 위한 컴퓨터 실행 가능 명령들이 저장된 컴퓨터 판독 가능 저장 매체 - 상기 리소스 제공자는 상기 리소스를 제공하는 소프트웨어 또는 하드웨어 전자 구성이고, 상기 리소스 요구자는 그와 관련된 식별 정보 설명자(id)를 가지며, 상기 식별 정보 설명자는 상기 리소스 요구자가 동작하는 환경을 특정하는 보안 관련 정보를 포함함 - 로서, 상기 방법은,
    상기 컴퓨팅 장치에 상기 리소스 요구자를 로딩하는 단계;
    상기 컴퓨팅 장치에 상기 리소스 요구자에 대응하는 상기 식별 정보 설명자를 로딩하는 단계;
    상기 로딩된 식별 정보 설명자에 대한 레퍼런스(reference)를 상기 리소스 요구자에 제공하는 단계;
    상기 로딩된 리소스 요구자와 로딩된 식별 정보 설명자에 대응하고 그에 기초한 코드 식별 정보(코드 ID)를 산출하는 단계;
    상기 리소스 요구자 및 상기 리소스 제공자와는 별개의 인증기에서, 상기 리소스 요구자로부터 상기 리소스에 대한 요구를 수신하는 단계;
    상기 인증기에서, 요구하는 상기 리소스 요구자가 상기 리소스에 대한 권리를 갖고 상기 리소스에 대하여 신뢰성이 있는 것임을 확인하는 단계;
    상기 인증기에 의해, 상기 리소스 요구자로부터 상기 리소스 제공자로 상기 리소스에 대한 요구를 포워딩하는 단계 - 상기 포워딩된 요구는 요구하는 상기 리소스 요구자에 대한 산출된 코드 식별 정보, 요구하는 상기 리소스 요구자에 대한 상기 식별 정보 설명자, 및 상기 리소스 요구자에 의해 요구된 리소스의 정의를 포함하고, 상기 리소스 제공자는 상기 포워딩된 요구 내의 상기 산출된 코드 식별 정보가 식별된 리소스 요구자에 대한 하나 이상의 유효한 코드 식별 정보 중 하나와 매칭하는 것임을 검증하고, 그에 기초하여 상기 리소스 요구자가 신뢰성 있는 것으로 추정될 수 있는 알려진 리소스 요구자로서 신뢰성이 있고 리소스 요구자가 동작하는 보안 관련 정보가 신뢰성있는 것으로 추정될 수 있는 알려진 보안 관련 정보인 것으로 결정하며, 그와 같이 결정을 한 경우에만 상기 요구된 리소스를 제공함으로써 상기 포워딩된 요구에 응답함 -; 및
    상기 리소스 요구자가 상기 리소스 제공자에 의해 제공되는 상기 요구된 리소스를 수신하고 상기 리소스 제공자에 의해 상기 리소스 요구자에 부여된 신뢰성에 일치하는 방식 및 상기 리소스 요구자에 대응하는 상기 식별 정보 설명자 내의 상기 보안 관련 정보에 따라 상기 요구된 리소스를 사용하는 단계
    를 포함하는, 컴퓨터 판독 가능 저장 매체.
  10. 제9항에 있어서, 상기 인증기는 상기 리소스 요구자에 대응하는 상기 식별 정보 설명자 내의 상기 보안 관련 정보를 참조(refer)하는 컴퓨터 판독 가능 저장 매체.
  11. 제9항에 있어서, 상기 포워딩된 요구는 요구하는 상기 리소스 요구자에 대한 상기 산출된 코드 식별 정보, 요구하는 상기 리소스 요구자에 대한 상기 식별 정보 설명자, 상기 리소스 요구자에 의해 요구된 상기 리소스의 정의 중 적어도 하나에 기초한 디지털 서명을 더 포함하고, 상기 서명은 상기 리소스 제공자와 공유하는 보안 키에 기초하여 검증될 수 있는 컴퓨터 판독 가능 저장 매체.
  12. 제9항에 있어서, 상기 식별 정보 설명자는 상기 리소스 요구자, 상기 리소스 제공자, 상기 리소스 요구자가 동작하는 상기 컴퓨팅 장치 상의 운영 체제 중 적어도 하나에 입력되는 이용가능한 보안 관련 이름-값 쌍의 세트를 포함하는, 컴퓨터 판독 가능 저장 매체.
  13. 리소스 제공자(RP)가 컴퓨팅 장치 상에서 동작하는 리소스 요구자(RR)에게 전자 리소스를 제공하는 방법을 수행하기 위한 컴퓨터 실행 가능 명령들이 저장된 컴퓨터 판독 가능 저장 매체 - 상기 리소스 제공자는 상기 리소스를 제공하는 소프트웨어 또는 하드웨어 전자 구성이고, 상기 리소스 요구자는 그와 관련된 식별 정보 설명자(id)를 가지며, 상기 식별 정보 설명자는 상기 리소스 요구자가 동작하는 환경을 특정하는 보안 관련 정보를 포함함 - 로서, 상기 방법은,
    상기 리소스 요구자 및 상기 리소스 제공자와는 별개의 인증기에 의해, 상기 리소스에 대한 상기 리소스 요구자로부터 포워딩된 요구를 수신하는 단계 - 상기 인증기는 요구하는 상기 리소스 요구자가 상기 리소스에 대한 권리를 갖고 상기 리소스에 대해 신뢰성이 있는 것임을 확인했고, 상기 포워딩된 요구는 요구하는 상기 리소스 요구자에 대하여 산출된 코드 식별 정보 (코드 ID)를 포함하고, 상기 산출된 코드 식별 정보는 상기 컴퓨팅 장치 상에 로딩되는 상기 리소스 요구자와 상기 식별 정보 설명자에 대응하고 그에 기초하며, 상기 포워딩된 요구는 요구하는 상기 리소스 요구자에 대한 식별 정보 설명자와 상기 리소스 요구자에 의해 요구된 상기 리소스의 정의를 포함함 -;
    상기 수신된 요구를 검증하는 단계;
    상기 코드 식별 정보, 상기 식별 정보 설명자, 및 상기 수신된 요구로부터 요구되는 상기 리소스의 정의를 획득하는 단계;
    요구하는 상기 리소스 요구자의 식별 정보를 상기 수신된 요구로부터 판정하는 단계;
    식별된 상기 리소스 요구자에 대한 하나 이상의 유효한 코드 식별 정보의 각각을 획득하는 단계;
    상기 수신된 요구 내의 상기 산출된 코드 식별 정보가 식별된 리소스 요구자에 대한 하나 이상의 유효한 코드 식별 정보 중 하나와 매칭하는 것임을 검증하고, 그에 기초하여 상기 리소스 요구자가 신뢰성있는 것으로 추정될 수 있는 알려진 리소스 요구자로서 신뢰성이 있고 리소스 요구자가 동작하는 보안 관련 정보가 신뢰성있는 것으로 추정될 수 있는 알려진 보안 관련 정보인 것으로 결정하는 단계; 및
    그와 같이 결정을 한 경우에만 상기 요구된 리소스를 상기 리소스 요구자에 제공함으로써 상기 포워딩된 요구에 응답하는 단계 - 상기 리소스 요구자는 상기 리소스 제공자에 의해 제공된 상기 요구된 리소스를 수신하고 상기 리소스 제공자에 의해 상기 리소스 요구자에 부여된 신뢰성에 일치하는 방식 및 상기 리소스 요구자에 대응하는 식별 정보 설명자 내의 보안 관련 정보에 따라 상기 요구된 리소스를 사용함 -
    를 포함하는, 컴퓨터 판독 가능 저장 매체.
  14. 제13항에 있어서, 상기 인증기는 상기 리소스 요구자에 대응하는 상기 식별 정보 설명자 내의 상기 보안 관련 정보를 참조(refer)하는 컴퓨터 판독 가능 저장 매체.
  15. 제13항에 있어서,
    상기 포워딩된 요구는 요구하는 상기 리소스 요구자에 대한 상기 산출된 코드 식별 정보, 요구하는 상기 리소스 요구자에 대한 상기 식별 정보 설명자, 상기 리소스 요구자에 의해 요구된 상기 리소스의 정의 중 적어도 하나에 기초한 디지털 서명을 더 포함하고,
    상기 방법은 상기 서명을 검증하는 단계를 더 포함하는 컴퓨터 판독 가능 저장 매체.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
KR1020040070209A 2003-10-23 2004-09-03 리소스 획득 방법 및 컴퓨터 판독 가능 매체 KR100949024B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/692,224 US7418512B2 (en) 2003-10-23 2003-10-23 Securely identifying an executable to a trust-determining entity
US10/692,224 2003-10-23

Publications (2)

Publication Number Publication Date
KR20050039528A KR20050039528A (ko) 2005-04-29
KR100949024B1 true KR100949024B1 (ko) 2010-03-23

Family

ID=34435459

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040070209A KR100949024B1 (ko) 2003-10-23 2004-09-03 리소스 획득 방법 및 컴퓨터 판독 가능 매체

Country Status (11)

Country Link
US (1) US7418512B2 (ko)
EP (1) EP1531377B1 (ko)
JP (1) JP4680562B2 (ko)
KR (1) KR100949024B1 (ko)
CN (1) CN1610296B (ko)
AU (1) AU2004214529B2 (ko)
BR (1) BRPI0411961B1 (ko)
CA (1) CA2482243C (ko)
DE (1) DE602004022004D1 (ko)
MX (1) MXPA04009838A (ko)
RU (1) RU2357287C2 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050251835A1 (en) * 2004-05-07 2005-11-10 Microsoft Corporation Strategies for pausing and resuming the presentation of programs
US7640343B2 (en) * 2004-05-27 2009-12-29 Microsoft Corporation Using resource item lists to consume resource items
US8706942B2 (en) * 2004-12-29 2014-04-22 Intel Corporation Direct memory access (DMA) address translation between peer-to-peer input/output (I/O) devices
KR100758219B1 (ko) * 2005-08-08 2007-09-12 (주)이월리서치 유에스비 장치의 동작을 통제하는 방법
KR101456489B1 (ko) * 2007-07-23 2014-10-31 삼성전자주식회사 CLDC OSGi 환경에서 어플리케이션의 접속 권한을관리하는 방법 및 장치
US8230412B2 (en) 2007-08-31 2012-07-24 Apple Inc. Compatible trust in a computing device
US20090183155A1 (en) * 2008-01-15 2009-07-16 Microsoft Corporation Isolation of Content by Processes in an Application
US8225390B2 (en) * 2008-06-27 2012-07-17 Microsoft Corporation Licensing protected content to application sets
US9805196B2 (en) 2009-02-27 2017-10-31 Microsoft Technology Licensing, Llc Trusted entity based anti-cheating mechanism
KR101225013B1 (ko) * 2010-12-29 2013-02-07 (주)트라이디커뮤니케이션 리소스 제공 시스템 및 방법
CN105426771B (zh) * 2015-10-28 2018-06-26 成都比特信安科技有限公司 一种实现大数据安全的方法
CN110138731B (zh) * 2019-04-03 2020-02-14 特斯联(北京)科技有限公司 一种基于大数据的网络防攻击方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1191422A2 (en) * 2000-09-22 2002-03-27 International Business Machines Corporation Transparent digital rights management for extendible content viewers
WO2003065630A2 (en) * 2002-01-29 2003-08-07 Anytime Pte. Ltd. Apparatus and method for preventing digital media piracy

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5940590A (en) * 1997-05-31 1999-08-17 International Business Machines Corporation System and method for securing computer-executable program code using task gates
US5991399A (en) 1997-12-18 1999-11-23 Intel Corporation Method for securely distributing a conditional use private key to a trusted entity on a remote system
JP2001308849A (ja) * 2000-02-14 2001-11-02 Victor Co Of Japan Ltd コンテンツ伝送システム、認証機器、コンテンツ取扱装置、データ伝送方法、伝送媒体、信頼度判定装置、信頼度被判定装置、記録媒体
US7174320B2 (en) 2002-04-04 2007-02-06 Intel Corporation Method of providing adaptive security

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1191422A2 (en) * 2000-09-22 2002-03-27 International Business Machines Corporation Transparent digital rights management for extendible content viewers
WO2003065630A2 (en) * 2002-01-29 2003-08-07 Anytime Pte. Ltd. Apparatus and method for preventing digital media piracy

Also Published As

Publication number Publication date
RU2357287C2 (ru) 2009-05-27
MXPA04009838A (es) 2005-04-28
EP1531377A3 (en) 2006-09-20
KR20050039528A (ko) 2005-04-29
AU2004214529B2 (en) 2010-01-07
RU2004131028A (ru) 2006-04-10
JP4680562B2 (ja) 2011-05-11
AU2004214529A1 (en) 2005-05-12
DE602004022004D1 (de) 2009-08-27
CA2482243A1 (en) 2005-04-23
EP1531377A2 (en) 2005-05-18
BRPI0411961B1 (pt) 2017-05-16
CA2482243C (en) 2013-10-29
US20050125548A1 (en) 2005-06-09
JP2005129045A (ja) 2005-05-19
EP1531377B1 (en) 2009-07-15
BRPI0411961A (pt) 2006-04-25
CN1610296B (zh) 2010-12-08
US7418512B2 (en) 2008-08-26
CN1610296A (zh) 2005-04-27

Similar Documents

Publication Publication Date Title
US8239954B2 (en) Access control based on program properties
US7509497B2 (en) System and method for providing security to an application
US8615801B2 (en) Software authorization utilizing software reputation
US8024564B2 (en) Automating configuration of software applications
US20070254631A1 (en) Secure Multi-Entity Access to Resources on Mobile Telephones
US20050060568A1 (en) Controlling access to data
KR100917370B1 (ko) 프로그램을 저장한 컴퓨터 판독 가능 매체, 프로그램을실행하는 정보 처리 장치, 및 프로그램을 실행하기 위한프로그램 제어 방법
JP4975127B2 (ja) 取り外し可能な媒体に格納された実行可能なコードにタンパーエビデント性を提供する装置
KR100949024B1 (ko) 리소스 획득 방법 및 컴퓨터 판독 가능 매체
US9665711B1 (en) Managing and classifying states
KR20220090537A (ko) 정책 적용을 위한 가상 환경 유형 검증
US7784101B2 (en) Identifying dependencies of an application upon a given security context
US7779480B2 (en) Identifying dependencies of an application upon a given security context
US11874926B2 (en) Measuring containers
US7620995B2 (en) Identifying dependencies of an application upon a given security context
JP5126495B2 (ja) 安全度評価と連動するセキュリティの方針設定装置、そのプログラムおよびその方法
US20230281321A1 (en) Secure application development using distributed ledgers
Barrett Towards on Open Trusted Computing Framework
CN114428956A (zh) 一种基于扩展属性的文件验证方法、装置及系统
SandeepBhatkar et al. Model-Carrying Code: A Practical Approach for Safe Execution of Untrusted Applications

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20130218

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140217

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150217

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160218

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170220

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20200218

Year of fee payment: 11