KR20060043336A - 코드 실행 계측 방법 및 코드 실행 디바이스 - Google Patents

코드 실행 계측 방법 및 코드 실행 디바이스 Download PDF

Info

Publication number
KR20060043336A
KR20060043336A KR1020050017353A KR20050017353A KR20060043336A KR 20060043336 A KR20060043336 A KR 20060043336A KR 1020050017353 A KR1020050017353 A KR 1020050017353A KR 20050017353 A KR20050017353 A KR 20050017353A KR 20060043336 A KR20060043336 A KR 20060043336A
Authority
KR
South Korea
Prior art keywords
protected service
code
engine
service
protected
Prior art date
Application number
KR1020050017353A
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
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20060043336A publication Critical patent/KR20060043336A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • 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
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16LPIPES; JOINTS OR FITTINGS FOR PIPES; SUPPORTS FOR PIPES, CABLES OR PROTECTIVE TUBING; MEANS FOR THERMAL INSULATION IN GENERAL
    • F16L55/00Devices or appurtenances for use in, or in connection with, pipes or pipe systems
    • F16L55/26Pigs or moles, i.e. devices movable in a pipe or conduit with or without self-contained propulsion means
    • F16L55/28Constructional aspects
    • F16L55/30Constructional aspects of the propulsion means, e.g. towed by cables
    • F16L55/32Constructional aspects of the propulsion means, e.g. towed by cables being self-contained
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16LPIPES; JOINTS OR FITTINGS FOR PIPES; SUPPORTS FOR PIPES, CABLES OR PROTECTIVE TUBING; MEANS FOR THERMAL INSULATION IN GENERAL
    • F16L2101/00Uses or applications of pigs or moles
    • F16L2101/30Inspecting, measuring or testing
    • 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/2135Metering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Robotics (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

런타임 시에 코드 실행을 계측하기 위한 시스템 및 방법이 개시된다. 본 발명의 한 구현예에 따르면, 보호된 서비스의 실행을 요청하는 호출이 수신된다. 이에 응답하여, 실행을 위한 사용 권한이 요청된다. 사용 권한에 대한 요청을 분석하며, 사용 권한에 대한 허가는 이 분석에 기초한다.
코드-실행 디바이스, 보호된 서버, 보안 전송층, 계측용 엔진, 서비스 계약, 계측 데이터의 보안 저장소

Description

코드 실행 계측 방법 및 코드 실행 디바이스{METERED EXECUTION OF CODE}
도 1은 예시적인 어플리케이션 또는 어플리케이션 라이브러리, 복수의 보호된 서비스, 및 계측용 엔진을 도시하는 코드-실행 디바이스의 예를 도시하는 도면.
도 2는 복합 구조체가 계측용 엔진으로부터 코드-실행 디바이스를 분리시키는 코드-실행 디바이스의 제2 예를 도시하는 도면.
도 3은 계측된 코드 실행의 예시적인 구현을 설명하고, 특히, 보호된 서비스의 계측 실행 방법을 나타내는 순서도.
도 4는 코드의 계측된 실행이 구현될 수 있는 예시적인 코드-실행 디바이스를 도시하는 도면.
<도면의 주요부분에 대한 부호의 설명>
100: 코드-실행 디바이스
106: 보호된 서버
110: 보안 전송층
116: 계측 데이터의 보안 저장소
118: 서비스 계약
본 발명은 일반적으로 코드의 계측된 실행에 관한 것이다.
디지털 권리 관리는 광범위하게 음악, 동영상, 및 다른 저작권보호된 데이터-기반 자료 등의 "컨텐츠"의 보호에 관심집중한다. 특히, 컨텐츠-제공자와 컨텐츠-소비자 사이의 라이센싱 협정을 위반하는 이러한 자료들의 복사 및 다른 사용으로부터 보호하는데 사용될 수 있는 다양한 암호화 전략에 대한 연구가 행해져 왔다.
실행가능 소프트웨어 코드는 전형적으로 다른 모델을 따르며, 상기 모델에서 소비자는 소프트웨어를 구매하고("수축 포장(shrink-wrapped)" 또는 다운로드하고), 컴퓨터 시스템 상에 그 소프트웨어를 설치하고, 라이센싱 협정에 동의한다. 이러한 점에서, 종래 시스템 및 방법은 소비자가 소프트웨어 구매에 포함된 코드의 임의의 일부를 원하는 임의의 정도까지 실행하도록 한다(전형적으로 소프트웨어가 설치될 수 있는 기계의 수를 규정하는 라이센싱 협정으로 구성됨).
상술된 실행가능 소프트웨어에 대한 현재의 라이센싱 모델은, 소프트웨어 구매 선택을 할때 소비자에게 모든 선택권을 제공하거나 아무 선택권도 제공하지 않는다- 즉, 전체 비용을 부담하고 이익을 누리거나, 또는 비용을 부담하지 않고 이익을 누리지 않음-. 따라서, 구매 분석은 전형적으로 소비자가 사용의 임계 레벨 초과를 예측하는지에 대한 판정과 관련된다. 임계 레벨을 초과하면, 구매가 이루어지고, 그러지 않으면, 구매가 이루어지지 않는다. 일부 상황에서, 소프트웨어 소비자가 소프트웨어 제품의 사용이 낮아질 것이하고 예측할 때, 소비자가 구매를 거절할 경우 판매가 손실되므로, 이 모델은 소프트웨어 생산자에게 만족스럽지 못 하다. 이 모델은 소비자가 소프트웨어 제품에 대한 필요를 부정확하게 평가할 수 있으므로, 소비자에게도 역시 만족스럽지 못하다. 이러한 잘못된 계산은 예상한 것 보다도 많이 충족되지 않은 필요 또는 거의 사용되지 않는 구매를 발생시킬 수 있다. 게다가, 소비자가 사용이 작을 것이라고 올바로 평가하고 구매를 보류한 경우에도, 소비자가 소프트웨어 제품에 대한 필요가 충족되지 않으므로 불만족적 이다.
따라서, 소프트웨어 코드의 라이센스 동작을 위한 대안적 기술이 필요하다.
런타임 시에 코드 실행을 계측하기 위한 시스템 및 방법이 개시된다. 본 발명의 한 구현예에 따르면, 보호된 서비스의 실행을 요청하는 호출이 수신된다. 이에 응답하여, 실행을 위한 사용 권한이 요청된다. 사용 권한에 대한 요청을 분석하며, 사용 권한에 대한 허가는 이 분석에 기초한다.
상세 설명은 첨부된 도면을 참조하여 설명된다. 도면에서, 참조 번호의 가장 좌측 숫자(들)는 참조 번호가 우선 나타내려는 것을 식별한다. 다른 것에 같은 참조 번호를 사용하는 것은 유사하거나 동일한 항목을 나타낸다.
다음 설명은 코드의 계측 실행하는 시스템 및 방법에 관한 것이다. 이러한 시스템 및 방법은 컴퓨터 시스템, 셀룰러 전화, 및 많은 다른 것들 등의 임의의 코드-실행 디바이스에서 적응가능하다. 일 구현에 따르면, 어플리케이션-또는 라이브러리로 조직된 복수의 어플리케이션-은 또한 라이브러리로 구성될 수 있는, 하나 이상의 보호된 서비스의 동작을 기동시키는 호출을 행하도록 구성된다. 보호된 서비스는 요금청구, 소프트웨어 라이센싱, 보안, 자식-보호, 또는 다른 목적과 관련된 이유로 동작 및 기능이 제어되기에 바람직한 실행가능 코드를 나타낼 수 있다. 각각의 보호된 서비스의 실행이 독립적으로 제어될 수 있기 때문에, 실행가능 코드의 라이센싱은 "세분화시킬 수 있는데(granular)", 즉 실행가능 코드의 작은 기능 블럭을 라이센싱할 수 있어 보다 큰 코드 블럭의 라이센싱에 대한 대암을 제공한다. 이는 벤더가 사용하기에 가치있는 판매 툴을 제공할 수 있는데, 이는 이러한 툴이 소비자가 그들이 실행하길 원하는 코드만을 라이센싱하도록 하기 때문이다.
보호된 서비스는 어플리케이션에 의해 호출될 때, 계측용 엔진을 호출하여 보호된 서비스를 호출한 어플리케이션이 그렇게 할 사용 권한을 가지고 있는지를 판정하는 분석을 수행한다. 사용 권한은 전형적으로 계측 데이터의 관점에서 평가된 서비스 계약에 의해 통제된다. 예를 들어, 서비스 계약은 아마 시간의 함수로서, 보호된 서비스에 대한 어플리케이션의 소정 수의 호출을 허가할 수 있다. 이 경우에, 보호된 서비스에 대한 이전 호출의 이력 및 아마도 이전 호출의 시간이 계측 데이터에 포함된다. 계측용 엔진에 의한 서비스 계약 및 계측 데이터의 분석은 보호된 서비스의 실행을 위한 어플리케이션 요청에 대한 허락 및 거절을 판정한다. 그 후, 보호된 서비스는 허가되면, 실행하고 어플리케이션에 결과를 반환한다.
예시적인 장치
도 1은 컴퓨터 시스템, 셀룰러 전화, PDA, 오락 디바이스(예를 들어, 셋톱 상자, 케이블 상자, 디지털 오디오 플레이어, DVD 등) 또는 소프트웨어를 실행할 수 있는 다른 디바이스일 수 있는 코드-실행 디바이스(100)의 예를 도시한다. 어플리케이션(102) 또는 어플리케이션(102(1) 내지 102(N))의 라이브러리는 디바이스(100) 상에서 실행되도록 구성된다. 어플리케이션(들)은 임의의 유형의 소프트웨어일 수 있다. 가능한 어플리케이션의 예는 워크스테이션에서 실행되도록 구성된 오피스 프로덕티비티(office productivity) 소프트웨어 또는 셀룰러 전화 상에서 실행되도록 구성된 텍스트-메시징 어플리케이션을 포함한다. 예를 들어, 어플리케이션(102(1) 내지 102(N))의 예시적인 라이브러리는 오피스 프로덕티비티 스위트(suite) 등의 보다 큰 프로그램과 관련된 복수의 기능 블럭을 포함할 수 있다.
어플리케이션(들)(102)은 하나 이상의 보호된 서비스(106(1) 내지 106(J))에 대해 호출을 행하도록 구성된다. 보호된 서비스는 이하에서 보다 상세히 기술된 바와 같이 그들이 계측된 코드 실행이 행해진다는 점에서 "보호"된다. 보호된 서비스는 대부분 임의의 목적을 위해 구성될 수 있는 실행가능 소프트웨어 루틴이다. 예를 들어, 코드-실행 디바이스(100)가 셀룰러 전화일 경우, 보호된 서비스는 동작을 계측할 수 있는 특징(features)을 지원할 수 있다. 이러한 환경에서, 보호된 서비스는 텍스트 메시지 송신하기, 콜-포워딩 셋-업 용이하게 하기, 또는 계측된 실행을 원하는 다른 기능 등의 특징을 지원할 수 있다. 코드-실행 디바이스(100)가 워크스테이션인 대안적 예에서, 보호된 서비스는 동작을 계측할 수 있는 오피스 프로덕티비티 스위트의 강화된 특징을 지원할 수 있다. 이러한 환경에서, 보호된 서비스는 빈번하게 사용되는 또는 사용되지 않는 특징을 지원할 수 있다. 예를 들어, 보호된 서비스는 pdf 파일의 생성, 외국어 스펠-검사기의 동작, 또는 계측된 실행을 원하는 다른 기능 등의 특징을 지원할 수 있다.
각각의 보호된 서비스(106)는, 어플리케이션(102)에 의해 호출될 때, 계측용 엔진을 호출하도록 구성된다. 계측용 엔진(108)은 어플리케이션(102) 또는 직접 호출자(예를 들어, 스택에 위치될 수 있음)가 보호된 서비스(106)를 실행시킬 수 있는 사용 권한을 가지는 지를 판정한다. 보호된 서비스(106)로부터 계측용 엔진(108)으로의 호출은 전형적으로 보안 전송층(110)을 사용하여 이루어진다. 보안 전송층은 강력한 암호방식, 보안 소켓, 임의의 종래 또는 새로-개발된 보안 통신용 전략을 사용할 수 있다.
일 구현에서, 어플리케이션(102) 및 보호된 서비스(106)는 단일 런타임 영역에 위치될 수 있다. 대안적으로, 어플리케이션(102) 및 보호된 서비스(106)는 각각 독립적인 런타임 영역(103, 105)내에서 실행될 수 있으며, 여기서 각각의 런타임 영역에 위치된 메모리는 참조부호(104)로 경계된다. 유사하게, 계측용 엔진(108)은 참조부호(112)로 경계된 메모리 내의 독립적인 런타임 영역(107) 또는 독립적인 기기 또는 디바이스에서 실행될 수 있는 한편, 일부 구현에서는 계측용 엔진(108)은 어플리케이션(들)(102) 및/또는 보호된 서비스(들)(106)와 동일한 런타임 영역에서 실행될 수 있다.
전형적 계측용 엔진(108)의 구조가 도 1에 도시된다. 시행 엔진(114)은 실행을 위한 사용 권한을 요청할 때 어플리케이션(102)에 의해 호출된 보호된 서비스(106)와 보안 방식으로 통신하도록 구성된다. 시행 엔진(114)은 또한 계측 데이터의 보안 저장소(116) 및 하나 이상의 서비스 계약(118(1)-118(K))과 통신할 수 있 도록 구성된다.
계측 데이터의 보안 저장소(116)는 하나 이상의 보호된 서비스의 사용과 관련된 데이터를 포함하도록 구성된다. 예를 들어, 계측 데이터 보안 저장소(116)는 임의의 보호된 서비스가 호출된 총 횟수, 각각의 호출을 행한 어플리케이션,및 호출 시간에 대한 정보를 포함한다. 예를 들어, 코드-실행 디바이스(100)가 셀룰러 전화인 경우, 및 해당 보호된 서비스(106)가 텍스트-메시징 서비스를 제공하도록 구성될 수 있을 때 이러한 데이터는 유용하다. 이 예에서, 계측 데이터 보안 저장소(116)는 과거 텍스트-메시지의 개수와 시간에 대한 정보를 포함할 수 있다. 이 정보는 여러 상황에서 보호된 서비스(106)의 추가적 실행이 허가가능한 지를 판정하는데 유용하다.
하나 이상의 서비스 계약(118(1)-118(K))이 계측용 엔진(108)에 포함될 수 있다. 서비스 계약(118)은 하나 이상의 보호된 서비스(106)의 사용을 통제하는 규칙을 포함한다. 예를 들어, 서비스 계약(118) 내의 규칙들은 보호된 서비스(106)가 실행될 수 있는 최대 횟수, 이러한 서비스가 일정 시간 동안 실행될 수 있는 최대 횟수를 나타낼 수 있다. 대안적으로, 서비스 계약(118) 내의 규칙은 보호된 서비스의 실행이 더이상 허가되지 않은 이후의 날짜를 나타낼 수 있다. 독자에 의해 용이하게 이해될 수 있는 바와 같이, 임의의 개수 및 유형의 규칙은 서비스 계약에 포함될 수 있다.
일 구현에 따라 하나 또는 복수개의 서비스 계약(118)이 있을 수 있다. 계측용 엔진(108)이 셀룰러 전화 내에 구성된 구현에서, 하나 이상의 보호된 서비스 를 통제하기 위한 단일 서비스 계약(118)이 있을 수 있다. 계측용 엔진(108)이 컴퓨터에서 사용하도록 구성된 다른 구현에서, 보다 복잡한 세트의 보호된 서비스(106(1) 내지 106(J))의 실행을 통제하는 규칙을 제공하기 위한 복수의 서비스 계약(118(1)-118(K))이 있을 수 있다.
도 1은 참조부호(104, 112)로 경계된 하나 이상의 독립적인 런타임 영역(103, 105, 107)으로 또는 그것 없이 설명될 수 있다. 일 실시예에서, 하나 이상의 어플리케이션(102), 보호된 서비스(106), 및 계측용 엔진(108)은, 예를 들어 보호된 메모리의 영역(103, 105, 107)을 이용함으로써 독립적인 런타임 환경에서 동작될 수 있다. 대안적 실시예에서, 하나 이상의 보호된 런타임 환경(103, 105, 107)은 통합될 수 있다. 게다가, 소프트웨어(102, 106, 108)의 일부 또는 전부는 관리화된 코드 환경의 일부일 수 있고, 또는 이에 포함될 수 있다. 관리화된 코드 환경의 예는 마이크로소프트사의 .NET 소프트웨어 기술이다.
도 1의 코드-실행 디바이스(100)는 도시된 바와 같이 모노리식(monolithic)으로, 계측용 엔진(108)을 포함한다. 대안적으로, 코드-실행 디바이스는 도 2에 도시된 바와 같이, 복합적일 수 있다. 도 2의 구현에서, 코드-실행 디바이스(200)는 계측용 엔진(108)을 포함하는 원격으로 위치된 디바이스(202)와 통신한다. 이 예에서, 코드-실행 디바이스(200)와 계측용 엔진(108) 사이의 통신은 필요에 따라 인터넷에 결처서 또는 다른 시스템 및 방법에 의해 행해질 수 있다.
예시적인 방법
도 3은 보호된 서비스의 계측 실행을 위한 예시적인 프로세스(300)를 설명하 는 순서도이다. 설명된 프로세스의 구성요소는 예를 들어 ASIC 상의 하드웨어 논리 블럭을 포함하는 임의의 적절한 수단 또는 프로세서-판독가능 매체 상에 정의된 프로세서-판독가능 명령어의 실행에 의해 수행될 수 있다.
여기에 사용된 "프로세서-판독가능 매체"는 프로세서에 의해 사용 또는 실행되는 명령어를 포함, 저장, 통신, 전파, 또는 전송할 수 있는 임의의 수단일 수 있다. 프로세서-판독가능 매체는 전기, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 장치, 디바이스, 또는 전파 매체일 수 있지만, 이에 한정된 것은 아니다. 프로세서-판독가능 매체의 보다 구체적 예는, 다른 것들 중에서, 하나 이상의 유선, 휴대용 컴퓨터 디스켓, RAM, ROM, EPROM 또는 플레시 메모리, 광섬유, CD-RW, 및 CDROM을 갖는 전기적 접속을 포함한다.
도 3을 참고하면, 프로세스(300)는 많은 다른 컴퓨팅 환경에서 구현될 수 있지만, 도 1의 코드-실행 디바이스(100)과 관련하여 설명 목적을 위해 설명될 것이다. 블럭(302)에서, 어플리케이션(102)은 하나 이상의 보호된 서비스(106) 내에 포함된 기능을 필요로하는지를 판정한다. 따라서, 어플리케이션은 보호된 서비스(106)에 의해 수신된, 보호된 서비스의 실행을 요청하는 호출을 만든다.
블럭(304)에서, 보안 접속 또는 통신 채널은 전형적으로 보호된 서비스(106)와 계측용 엔진(108) 사이에서 동작된다. 설명된 바와 같이, 계측용 엔진(108)은 보호된 서비스(106)와 같이 코드 실행 디바이스(100)에 포함될 수 있다. 대안적으로, 계측용 엔진은 원격으로 위치될 수 있다. 이 경우에, 보안 통신 채널은 인터넷 또는 다른 네트워크에 걸쳐서 만들어질 수 있다.
블럭(306)에서, 메시지는 보호된 서비스에서 계측용 엔진으로 송신된다. 보안 접속 또는 채널이 블럭(304)에서 개방될 경우, 전형적으로 암호화는 요청되지 않는다. 그러나, 보안 접속 또는 채널이 사용불가능한 경우, 메시지는 전형적으로 Pretty Good Privacy® 암호화 방법 또는 다른 암호화 방법의 어플리케이션에 의한 것과 같이 암호화된다. 블럭(308)에서, 보호된 서비스를 실행하기 위한 사용 권한을 요청하는 메시지는 계측용 엔진에 의해 수신된다.
블럭(310)에서, 보호된 서비스를 사용하기 위한 사용 권한은 계측 데이터의 보안 저장소(116)로부터 획득된 데이터 및 서비스 계약(118)의 분석에 기초하여 계측용 엔진(108)에 의해 판정된다. 서비스 계약은 보호된 서비스(106)의 동작을 통제하는 하나 이상의 규칙을 포함한다. 규칙의 예는 시간의 세트 수, 보다는 보호된 서비스의 사용 또는 특정 일이 지난 보호된 서비스의 사용에 대한 제한을 포함한다. 광범위하게 다양한 규칙은 유사하게 계획된다.
보호된 서비스의 사용을 허가하거나 거절하는 판정을 내릴 때, 계측용 엔진(108)은 서비스 계약(118)에 포함된 규칙이 적용될 수 있는 정보를 제공하는, 계측 데이터의 보안 저장소(116)를 전형적으로 액세스한다. 블럭(312)에서, 계측 데이터(116)는 갱신되어 보호된 서비스에 의해 행해진 호출을 반영한다. 예를 들어, 서비스 계약(118) 내의 규칙은 보호된 서비스의 허가가능한 실행 횟수를 구체화하고, 계측 데이터(116)는 갱신되어 보호된 서비스의 추가 실행을 반영한다.
블럭(314)에서, 계측용 엔진에 의한 분석이 보호된 서비스를 실행하기 위한 사용 권한이 적당하게 부여됐음을 나타낼 경우, 허가 코드가 계측용 엔진에 의해 발행되며; 대안적으로 거절 코드가 발행될 수 있다. 따라서, 보호된 서비스(106)가 실행된다(블럭 316). 블럭 318에서, 보호된 서비스는 그후 그것의 동작 결과를 호출 어플리케이션(102)에 반환할 수 있다.
대안적으로, 계측용 엔진에 의한 분석이 보호된 서비스의 사용을 거절할 것을 결과로 낼 경우, 보호된 서비스는 호출 어플리케이션(102)에 실행 실패에 대한 통지를 반환하도록한다(블럭 320).
하나 이상의 방법이 순서도 및 순서도의 블럭에 관련된 텍스트의 수단에 의해 나타내질 수 있으며, 블럭들은 나타난 순서대로 반드시 수행되지 않아도 되며, 대안적 순서가 유사한 이익을 낼 수 있음이 이해된다. 게다가, 이 방법은 배타적이지 않으며 단독으로 또는 또다른 것들과의 조합하여 수행될 수 있다.
예시적인 코드-실행 디바이스
도 4는 코드의 계측된 실행이 구현될 수 있는 코드-실행 시스템(100)의 예이다. 임의의 유형의 코드-실행 디바이스는 코드의 계측된 실행을 사용할 수 있지만; 그러나 도 4의 예의 목적을 위해서, 코드-실행 시스템(100)은 코드 실행이 계측될 수 있는 컴퓨터 워크스테이션으로 구성된다.
코드-실행 시스템(100)은 컴퓨터(402)의 형태인 범용 컴퓨팅 시스템을 포함한다. 컴퓨터(402)의 컴포넌트는 하나 이상의 프로세서, 또는 프로세싱 유닛(404), 시스템 메모리(406), 및 프로세서(404)를 포함하는 다양한 시스템 컴포넌트를 시스템 메모리(406)에 연결시키는 시스템 버스(408)를 포함하지만, 이에 한정된 것은 아니다. 시스템 버스(408)는 메모리 버스, 또는 메모리 제어기, 주변 버스, 주변 컴포넌트 인터페이스(PCI) 버스, 고속 그래픽 포트, 및 프로세서 또는 다양한 버스 구조중 임의의 것을 사용하는 로컬 버스 임의의 몇몇 유형의 버스 구조의 하나 이상을 나타낸다.
컴퓨터(402)는 전형적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 이러한 매체는 컴퓨터(402)에 의해 액세스 가능하고 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함하는 임의의 사용가능 매체일 수 있다. 시스템 메모리(406)는 RAM(410) 등의 휘발성 메모리 및/또는 ROM(412) 등의 비휘발성 메모리의 형태인 컴퓨터 판독가능 매체를 포함한다. 시동중과 같은 때에, 컴퓨터(402) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(BIOS; 414)은 ROM(412)에 포함된다. RAM(410)은 전형적으로 프로세싱 유닛(404)에 의해 즉시 액세스가능하고 및/또는 즉시 동작되는 데이터 및/또는 프로그램 모듈을 포함한다.
컴퓨터(402)는 또한 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 스토리지 매체를 포함할 수 있다. 예를 들어서, 도 4는 비분리형, 비휘발성 자기 매체(도시되지 않음)로부터 판독하고 이에 기록하기 위한 하드 디스크 드라이브(416), 분리형, 비휘발성 자기 디스크(420)(예를 들어, "플로피 디스크")로부터 판독하고 이에 기록하기 위한 자기 디스크 드라이브(418), CD-ROM, DVD-DOM, 또는 다른 광학 매체 등의 분리형, 비휘발성 광학 디스크(424)로부터 판독하고 이에 기록하기 위한 광학 디스크 드라이브(422)를 도시한다. 하드 디스크 드라이브(416), 자기 디스크 드라이브(418), 광학 디스크 드라이브(422)는 각각 하나 이상의 데이터 매체 인터페이스(425)에 의해 시스템 버스(408)에 접속된다. 대안적으로, 하드 디스크 드라 이브(416), 자기 디스크 드라이브(418), 광학 디스크 드라이브(422)는 SCSI 인터페이스(도시되지 않음)에 의해 시스템 버스(408)에 접속될 수 있다.
디스크 드라이브 및 그들의 관련 컴퓨터-판독가능 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 컴퓨터(402)에 대한 다른 데이터의 비휘발성 스토리지를 제공한다. 예는 하드 디스크(416), 분리형 자기 디스크(420), 및 비분리형 광학 디스크(424)를 도시하지만, 자기 카세트, 또는 다른 자기 스토리지 디바이스, 플래시 메모리 카드, CD-ROM, DVD, 또는 다른 광학 스토리지, RAM, ROM, EEPROM 등의 컴퓨터에 의해 액세스될 수 있는 데이터를 저장할 수 있는 컴퓨터 판독가능 매체의 다른 유형이 또한 예시적인 컴퓨팅 시스템 및 환경을 구현하는데 사용될 수 있다.
임의의 수의 프로그램 모듈은 예를 들어, 오퍼레이팅 시스템(426), 하나 이상의 어플리케이션 프로그램(428), 다른 프로그램 모듈(430), 및 프로그램 데이터(432)를 포함하는 하드 디스크(416), 자기 디스크(420), 광학 디스크(424), ROM(412), 및/또는 RAM(410)에 저장될 수 있다. 각각의 오퍼레이팅 시스템(426), 하나 이상의 어플리케이션 프로그램(428), 다른 프로그램 모듈(430), 및 프로그램 데이터(432)(또는 이들의 일부 조합)는 사용자 네트워크 액세스 정보에 대한 캐싱 스키마의 실시예를 포함할 수 있다.
컴퓨터(402)는 통신 매체로 식별되는 다양한 컴퓨터/프로세스 판독가능 매체를 포함할 수 있다. 통신 매체는 전형적으로 반송파 또는 기타 전송 메카니즘 등의 변조된 데이터 신호에 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또 는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하도록 설정되거나 변환된 특성을 하나 또는 그 이상을 갖는 신호를 의미한다. 예를 들어, 통신 매체는 유선 네트워크 또는 직접 유선 접속 등의 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다. 상술한 것들 중의의 임의의 조합이 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
사용자는 일반적으로 포인팅 장치(436)(예를 들어, "마우스") 및 키보드(162)와 같은 입력 디바이스를 통해 컴퓨터 시스템(402)에 코맨드(command) 및 정보를 입력할 수 있다. (구체적으로 도시되지 않은)다른 입력 디바이스(438)는 마이크로폰, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 입력 디바이스 및 그외의 입력 디바이스는 시스템 버스(408)에 연결된 입출력 인터페이스(440)를 통해 프로세싱 유닛(404)에 접속되지만, 병렬 포트, 게임 포트 또는 유니버설 시리얼 포트(USB) 와 같은 기타 인터페이스 및 버스 구조에 의해 접속될 수 있다.
모니터(442) 또는 다른 유형의 디스플레이 디바이스는 또한 비디오 어댑터(444) 등의 인터페이스를 통해 시스템 버스(408)에 접속될 수 있다. 모니터(442)외에도, 다른 출력 주변 디바이스는 또한 입출력 인터페이스(440)를 통해 컴퓨터(402)에 접속될 수 있는 스피커(도시되지 않음) 및 프린터(446) 등의 컴포넌트를 포함할 수 있다.
컴퓨터(402)는 원격 컴퓨팅 디바이스(448)와 같은 하나 이상의 원격 컴퓨터 로의 논리적 접속을 이용하여 네트워크 환경에서 동작할 수 있다. 예를 들어, 원격 컴퓨팅 디바이스(448)는 퍼스널 컴퓨터, 휴대용 컴퓨터, 서버, 라우터, 네트워크 컴퓨터, 피어(peer) 디바이스, 또는 기타 공통 네트워크 노드일 수 있다. 원격 컴퓨팅 디바이스(448)는 컴퓨터(402)와 관련되 여기에 설명된 많은 또는 모든 구성요소 및 특징을 포함할 수 있는 휴대용 컴퓨터로 도시된다.
컴퓨터(402)와 원격 컴퓨터(448) 사이의 논리적 접속은 근거리 통신망(LAN; 450) 및 원거리 통신망(WAN; 452)로 나타내진다. 이러한 네트워킹 환경은 사무실, 기업 광역 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다. LAN 네트워킹 환경에서 구현되는 경우, 컴퓨터(402)는 전형적으로 원거 네트워크(452)을 통해 통신을 구축하기 위한 모뎀(456) 또는 기타 수단을 포함한다. 컴퓨터(402)에 내장형 또는 외장형일 수 있는 모뎀(456)은 사용자 입출력 인터페이스(440) 또는 다륵 적절한 메카니즘을 통해 시스템 버스(408)에 접속될 수 있다. 도시된 네트워크 접속은 예시적인 것이며, 컴퓨터(402, 448)들간의 통신를 구축하는 다른 수단이 사용될 수 있다.
네트워크 환경에서, 컴퓨팅 환경(400)에 도시된 바와 같이, 컴퓨터(402)와 관련해 나타난 프로그램 모듈, 또는 이의 일부는 원격 메모리 스토리지 디바이스에 저장될 수 있다. 예를 들어, 원격 어플리케이션 프로그램(458)은 원격 컴퓨터(448)의 메모리 디바이스 상에 상주한다. 이러한 프로그램 및 컴포넌트들이 다양한 시간에 컴퓨터 시스템(402)의 다른 스토리지 컴포넌트 상에 상주하고, 컴퓨터의 데이터 프로세스(들)에 의해 실행되지만, 도시를 위해, 어플리케이션 프로그램 및 오퍼레이팅 시스템 등의 다른 실행가능 프로그램 컴포넌트가 이산된 블럭으로 여기에 도시된다.
결론
본 발명이 구조적 특징 및/또는 방법론적 활동 특정 언어로 설명되었지만, 첨보된 청구항에 정의된 본 발명이 설명된 특정한 특징 또는 활동에 필수적으로 한정된 것은 아니다. 오히려, 특정한 특징 및 활동은 청구된 본 발명을 구현하는 예시적 형태로 나타내진다.
본 발명은 일반적으로 코드의 계측된 실행을 제공한다.

Claims (36)

  1. 코드 실행을 계측하는(meter) 방법으로서,
    제1 런타임 영역 내에서 보호된 서비스의 실행을 요청하는 호출을 수신하는 단계와,
    상기 실행을 위한 사용 권한(permission)을 요청하는 단계와,
    상기 사용 권한 요청을 분석하는 단계와,
    상기 사용 권한에 대한 상태를 상기 분석에 기초하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 분석은 상기 제1 런타임 영역과 독립된 제2 런타임 영역 내에서 행해지는 방법.
  3. 제2항에 있어서,
    상기 제1 및 제2 런타임 영역은 메모리의 서로 다른 부분에 상주하는 방법.
  4. 제2항에 있어서,
    상기 제1 런타임 영역은 제1 컴퓨팅 디바이스에 위치되며, 상기 제2 런타임 영역은 제2 컴퓨팅 디바이스에 위치되는 방법.
  5. 제1항에 있어서,
    상기 요청 분석 단계는 입력으로서의 계측 데이터 및 계약(contract)을 이용하는 단계를 포함하는 방법.
  6. 제5항에 있어서,
    상기 계측 데이터를 상기 분석을 반영하여 갱신하는 단계를 더 포함하는 방법.
  7. 제1항에 있어서,
    상기 사용 관한을 요청하는 단계는 상기 보호된 서비스와 상기 분석을 수행하도록 구성된 계측용 엔진 간에서의 보안 접속을 개방하는 단계를 포함하는 방법.
  8. 제1항에 있어서,
    상기 사용 권한을 요청하는 단계는 상기 제1 런타임 영역 내의 상기 보호된 서비스로부터의 암호화된 메시지를 상기 상기 제2 런타임 영역 내의 계측용 엔진으로 송신하는 단계를 포함하는 방법.
  9. 제1항에 있어서,
    상기 사용 관한이 주어졌으면,
    상기 보호된 서비스를 실행하는 단계와,
    상기 실행 결과를 상기 호출을 개시한 어플리케이션으로 반환하는 단계를 더 포함하는 방법.
  10. 제1항에 있어서,
    상기 사용 관한이 주어지지 않았으면, 상기 보호된 서비스의 실행 실패에 대한 통지를 상기 호출을 개시한 어플리케이션으로 반환하는 단계를 더 포함하는 방법.
  11. 코드 실행을 계측하는 프로세서 실행가능 명령어를 포함하는 프로세서 판독가능 매체로서,
    상기 프로세서 실행가능 명령어는,
    보호된 서비스의 실행 요청을 수신하는 명령어와,
    상기 보호된 서비스를 실행할 사용 권한을 요청하는 명령어-상기 사용 권한 요청은 상기 보호된 서비스로부터 계측용 엔진에 대해 행해짐-와,
    상기 계측용 엔진으로, 어플리케이션이 상기 보호된 서비스를 사용하도록 하는 상기 사용 권한 요청을 허가해야 하는 가를 판정하기 위해 계측 데이터의 관점에서 계약을 분석하는 명령어
    를 포함하는 프로세서 판독가능 매체.
  12. 제11항에 있어서,
    상기 계측용 엔진은 상기 보호된 서비스가 동작하는 런타임 영역과는 독립된 런타임 영역 내에서 동작하는 프로세서 판독가능 매체.
  13. 제11항에 있어서,
    상기 분석 명령어는,
    상기 계측 데이터와 상기 보호된 서비스의 ID를 분석에 대한 입력으로서 사용하여 상기 계약을 분석하는 명령어와,
    상기 계측 데이터를 상기 분석을 반영하여 갱신하는 명령어를 포함하는 프로세서 판독가능 매체.
  14. 제11항에 있어서,
    상기 사용 권한을 요청하는 명령어는 상기 보호된 서비스와 상기 계측용 엔진 간에서의 보안 접속을 개방시키는 명령어를 포함하는 프로세서 판독가능 매체.
  15. 제11항에 있어서,
    상기 코드 실행에 대한 계측은 관리화된 코드 환경에서 수행되는 프로세서 판독가능 매체.
  16. 제11항에 있어서,
    상기 사용 권한 요청이 허가된 경우,
    상기 보호된 서비스를 실행하는 명령어와,
    상기 실행 결과를 상기 어플리케이션으로 반환하는 명령어를 더 포함하는 프로세서 판독가능 매체.
  17. 제11항에 있어서,
    상기 사용 권한 요청이 허가되지 않은 경우,
    실행 실패에 대한 통지를 상기 어플리케이션으로 반환하는 명령어를 더 포함하는 프로세서 판독가능 매체.
  18. 제11항에 있어서,
    상기 보호된 서비스와 상기 계측용 엔진 간에서의 통신을 암호 방식으로 보호하는 명령어를 더 포함하는 프로세서 판독가능 매체.
  19. 크드-실행 디바이스로서,
    보안 통신 채널을 사이에 두고 있는 제1 런타임 영역 및 제2 런타임 영역과,
    보호된 서비스-상기 보호된 서비스는 어플리케이션으로부터 상기 제1 런타임 영역 내에서 상기 보호된 서비스의 실행 요청을 수신하도록 구성됨-와,
    계측용 엔진으로서, 상기 요청을 수신하고 상기 제2 런타임 영역 내에서 동작하고, 상기 요청에 응답하여 계측 데이터에 규칙들을 적용시킴으로써 허가 코드 또는 거절 코드를 반환하도록 구성된 계측용 엔진
    을 포함하는 코드-실행 디바이스.
  20. 제19항에 있어서,
    상기 계측용 엔진은,
    상기 보호된 서비스와 보안 통신을 행하도록 구성된 시행 엔진과,
    상기 보호된 서비스의 동작을 통제하는 규칙들을 상기 시행 엔진에 제공하도록 구성된 서비스 계약과,
    상기 계측 데이터를 포함하는 보안 저장소로서, 상기 보안 저장소는 상기 보호된 서비스의 과거의 동작을 반영하는 이력 데이터를 상기 시행 엔진에 제공하도록 구성된 보안 저장소를 포함하는 코드-실행 디바이스.
  21. 제19항에 있어서,
    상기 계측용 엔진은,
    상기 보호된 서비스의 ID와 계측 데이터의 보안 저장소로부터의 데이터를 분석에 대한 입력으로서 사용하여 상기 허가 코드 또는 상기 거절 코드의 반환을 제공하고,
    상기 계측 데이터의 보안 저장소를 상기 분석을 반영하여 갱신하도록 구성되는 코드-실행 디바이스.
  22. 제19항에 있어서,
    상기 코드-실행 디바이스는 셀룰러 전화인 코드-실행 디바이스.
  23. 제19항에 있어서,
    상기 코드-실행 디바이스는 관리화된 코드 환경 내에서 사용하도록 구성된 코드-실행 디바이스.
  24. 제19항에 있어서,
    상기 코드-실행 디바이스는 복합 디바이스가며, 상기 보호된 서비스는 상기 복합 디바이스의 제1 부분 상에 포함되며, 상기 계측용 엔진은 상기 복합 디바이스의 제2 부분 상에 포함되며, 상기 복합 디바이스의 상기 제1 부분은 상기 복합 디바이스의 상기 제2 부분과는 원격으로 위치되어 있는 코드-실행 디바이스.
  25. 제19항에 있어서,
    보호된 서비스들의 라이브러리를 더 포함하며, 상기 보호된 서비스는 상기 라이브러리 내에 포함되는 코드-실행 디바이스.
  26. 제19항에 있어서,
    어플리케이션들의 라이브러리를 더 포함하며, 상기 어플리케이션은 상기 라이브러리 내에 포함되는 코드-실행 디바이스.
  27. 관리화된 코드 환경으로서,
    보호된 서비스들의 라이브러리로부터의 서비스들을 소비하도록 구성된 어플리케이션과,
    상기 보호된 서비스의 라이브러리 내의, 상기 어플리케이션으로부터 실행 요청을 수신하도록 구성된 보호된 서비스와,
    상기 보호된 서비스의 동작을 통제하는 규칙들에 기초하여 상기 요청에 대해 허가 코드 또는 거절 코드를 반환하도록 구성된 계측용 엔진
    을 포함하는 관리화된 코드 환경.
  28. 제27항에 있어서,
    상기 보호된 서비스 및 상기 계측용 엔진은 서로 다른 런타임 영역 내에서 동작하는 관리회된 코드 환경.
  29. 제27항에 있어서,
    상기 계측용 엔진은,
    상기 보호된 서비스와 보안 통신을 행하도록 구성된 시행 엔진과,
    상기 보호된 서비스의 동작을 통제하는 규칙들을 상기 시행 엔진에 제공하도록 구성된 서비스 계약과,
    상기 보호된 서비스의 과거의 동작을 반영하는 이력 데이터 및 상기 어플리 케이션을 상기 시행 엔진에 제공하도록 구성된 계측된 데이터의 보안 저장소를 포함하는 관리화된 코드 환경.
  30. 제27항에 있어서,
    상기 계측용 엔진은,
    상기 보호된 서비스의 동작을 통제하는 규칙들을 포함하는 서비스 계약과,
    계측 데이터의 보안 저장소와,
    상기 어플리케이션의 ID, 상기 보호된 서비스의 ID, 및 상기 계측 데이터의 보안 저장소로부터의 데이터를 상기 분석에 대한 입력으로서 사용하여 상기 서비스 계약을 분석하고 상기 계측 데이터의 보안 저장소를 상기 분석을 반영하여 갱신시킴으로써, 상기 허가 코드 또는 상기 거절 코드를 반환하도록 구성된 시행 엔진을 포함하는 관리화된 코드 환경.
  31. 코드 실행을 계측하기 위한 코드-실행 디바이스로서,
    어플리케이션으로부터 보호된 서비스를 호출하기 위한 수단과,
    상기 보호된 서비스로부터 계측용 엔진을 호출하기 위한 수단과,
    상기 어플리케이션에 의한 상기 보호된 서비스의 사용을 허가할지 또는 금지시킬지를 판정하기 위해 계약을 분석하기 위한 수단
    을 포함하는 코드-실행 디바이스.
  32. 제31항에 있어서,
    허가가 적당한 것으로 판정된 경우,
    상기 보호된 서비스에서 정의된, 상기 어플리케이션에 의해 요청된 기능을 실행하기 위한 수단과,
    상기 실행 결과를 상기 어플리케이션으로 반환하기 위한 수단을 더 포함하는 코드-실행 디바이스.
  33. 제31항에 있어서,
    거절이 적당한 것으로 판정된 경우,
    상기 거절 통지를 상기 어플리케이션으로 반환하기 위한 수단을 더 포함하는 코드-실행 디바이스.
  34. 제31항에 있어서,
    상기 계약을 분석하기 위한 수단은,
    상기 어플리케이션의 ID, 상기 보호된 서비스의 ID, 상기 계약 내의 규칙들, 및 계측 데이터의 보안 저장소로부터의 데이터를 상기 분석에 대한 입력으로서 사용하여 상기 계약을 분석하기 위한 수단과,
    상기 계측 데이터의 보안 저장소를 상기 분석을 반영하여 갱신시키기 위한 수단을 포함하는 코드-실행 디바이스.
  35. 제31항에 있어서,
    상기 계측용 엔진을 호출하기 위한 수단은,
    상기 보호된 서비스와 상기 계측용 엔진 간에서의 보안 접속을 개방시키기 위한 수단과,
    상기 보호된 서비스와 상기 계측용 엔진을 서로 다른 런타임 영역에서 동작시키기 위한 수단을 포함하는 코드-실행 디바이스.
  36. 제31항에 있어서,
    상기 계측은 관리화된 코드 환경에서 수행되는 코드-실행 디바이스.
KR1020050017353A 2004-03-01 2005-03-02 코드 실행 계측 방법 및 코드 실행 디바이스 KR20060043336A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/791,208 2004-03-01
US10/791,208 US7500108B2 (en) 2004-03-01 2004-03-01 Metered execution of code

Publications (1)

Publication Number Publication Date
KR20060043336A true KR20060043336A (ko) 2006-05-15

Family

ID=34750583

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050017353A KR20060043336A (ko) 2004-03-01 2005-03-02 코드 실행 계측 방법 및 코드 실행 디바이스

Country Status (6)

Country Link
US (1) US7500108B2 (ko)
EP (1) EP1571526A1 (ko)
JP (2) JP2005259126A (ko)
KR (1) KR20060043336A (ko)
CN (1) CN1664742B (ko)
ES (1) ES2326398B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017030288A1 (ko) * 2015-08-19 2017-02-23 (주)케이사인 원격 코드 실행을 이용한 실행 무결성 검증 시스템 및 그 방법

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005099342A2 (en) * 2004-04-19 2005-10-27 Securewave S.A. A generic framework for runtime interception and execution control of interpreted languages
JP4440825B2 (ja) * 2005-05-17 2010-03-24 株式会社バンダイナムコゲームス ゲームプログラム記録媒体
US8214296B2 (en) * 2006-02-14 2012-07-03 Microsoft Corporation Disaggregated secure execution environment
EP1901190A1 (en) 2006-09-15 2008-03-19 Sony DADC Austria AG Method and system for managing access to add-on data files
WO2008052820A1 (en) * 2006-11-02 2008-05-08 International Business Machines Corporation A method, system and computer program for metering usage of software products with a dynamically optimised license use
US8443424B2 (en) * 2007-02-08 2013-05-14 Scipioo Holding B.V. Method and system for reducing the proliferation of electronic messages
US20080250250A1 (en) * 2007-04-04 2008-10-09 Microsoft Corporation Method and Apparatus for Using USB Flash Devices and Other Portable Storage as a Means to Access Prepaid Computing
US20090158403A1 (en) * 2007-12-14 2009-06-18 Dirk Leonard Benschop Method and system for permitting or denying service
US8239921B2 (en) 2008-01-03 2012-08-07 Dlb Finance & Consultancy B.V. System and method of retrieving a service contact identifier
US8463921B2 (en) * 2008-01-17 2013-06-11 Scipioo Holding B.V. Method and system for controlling a computer application program
EP2260430A2 (en) * 2008-02-22 2010-12-15 Uniloc Usa, Inc. License auditing for distributed applications
US9355224B1 (en) * 2008-05-16 2016-05-31 Kaspersky Lab, Zao System and method for dynamic adjustment of expiration date for authorization key for antivirus products
US8190673B2 (en) * 2008-07-30 2012-05-29 Microsoft Corporation Enforcement of object permissions in enterprise resource planning software
EP2338244B1 (en) * 2008-09-12 2021-06-16 Assa Abloy Ab Use of a secure element for writing to and reading from machine readable credentials
EP2228746A1 (en) * 2009-03-13 2010-09-15 Assa Abloy Ab Realization of access control conditions as boolean expressions in credential authentications
US8447969B2 (en) * 2009-03-13 2013-05-21 Assa Abloy Ab Transfer device for sensitive material such as a cryptographic key
US20100235900A1 (en) * 2009-03-13 2010-09-16 Assa Abloy Ab Efficient two-factor authentication
US9032058B2 (en) * 2009-03-13 2015-05-12 Assa Abloy Ab Use of SNMP for management of small footprint devices
US8806190B1 (en) 2010-04-19 2014-08-12 Amaani Munshi Method of transmission of encrypted documents from an email application
JP5812250B2 (ja) * 2011-03-30 2015-11-11 Toto株式会社 衛生洗浄装置
US11630137B2 (en) * 2020-06-29 2023-04-18 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Reliable hardware metering

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4953209A (en) * 1988-10-31 1990-08-28 International Business Machines Corp. Self-verifying receipt and acceptance system for electronically delivered data objects
US4941175A (en) * 1989-02-24 1990-07-10 International Business Machines Corporation Tamper-resistant method for authorizing access to data between a host and a predetermined number of attached workstations
JPH0799497B2 (ja) * 1990-12-14 1995-10-25 インターナショナル・ビジネス・マシーンズ・コーポレイション ソフトウェアの使用を管理するための装置及び方法
US5940504A (en) * 1991-07-01 1999-08-17 Infologic Software, Inc. Licensing management system and method in which datagrams including an address of a licensee and indicative of use of a licensed product are sent from the licensee's site
WO1993011480A1 (en) 1991-11-27 1993-06-10 Intergraph Corporation System and method for network license administration
US5319705A (en) * 1992-10-21 1994-06-07 International Business Machines Corporation Method and system for multimedia access control enablement
US5450593A (en) 1992-12-18 1995-09-12 International Business Machines Corp. Method and system for controlling access to objects in a data processing system based on temporal constraints
JPH07230380A (ja) * 1994-02-15 1995-08-29 Internatl Business Mach Corp <Ibm> 適用業務プログラムの利用管理方法およびシステム
US5598470A (en) * 1994-04-25 1997-01-28 International Business Machines Corporation Method and apparatus for enabling trial period use of software products: Method and apparatus for utilizing a decryption block
US5564038A (en) * 1994-05-20 1996-10-08 International Business Machines Corporation Method and apparatus for providing a trial period for a software license product using a date stamp and designated test period
US5652868A (en) * 1994-09-27 1997-07-29 International Business Machines Corporation Data processor having BIOS decryption of emulated media images
US5638443A (en) 1994-11-23 1997-06-10 Xerox Corporation System for controlling the distribution and use of composite digital works
EP0717337B1 (en) * 1994-12-13 2001-08-01 International Business Machines Corporation Method and system for the secured distribution of programs
US5673317A (en) 1995-03-22 1997-09-30 Ora Electronics, Inc. System and method for preventing unauthorized programming of wireless network access devices
US5758068A (en) * 1995-09-19 1998-05-26 International Business Machines Corporation Method and apparatus for software license management
US5757914A (en) * 1995-10-26 1998-05-26 Sun Microsystems, Inc. System and method for protecting use of dynamically linked executable modules
US5692047A (en) 1995-12-08 1997-11-25 Sun Microsystems, Inc. System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources
US5752041A (en) * 1995-12-15 1998-05-12 International Business Machines Corporation Method and system for licensing program management within a distributed data processing system
EP0880840A4 (en) * 1996-01-11 2002-10-23 Mrj Inc DEVICE FOR CONTROLLING ACCESS AND DISTRIBUTION OF DIGITAL PROPERTY
US5790664A (en) * 1996-02-26 1998-08-04 Network Engineering Software, Inc. Automated system for management of licensed software
JP3617882B2 (ja) 1996-03-08 2005-02-09 株式会社東芝 セキュリティ装置及びセキュリティ実現方法
US6138238A (en) * 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
JP3937475B2 (ja) 1996-06-14 2007-06-27 キヤノン株式会社 アクセス制御システムおよびその方法
US5754763A (en) * 1996-10-01 1998-05-19 International Business Machines Corporation Software auditing mechanism for a distributed computer enterprise environment
US5925127A (en) * 1997-04-09 1999-07-20 Microsoft Corporation Method and system for monitoring the use of rented software
US6112192A (en) * 1997-05-09 2000-08-29 International Business Machines Corp. Method for providing individually customized content in a network
US6078909A (en) * 1997-11-19 2000-06-20 International Business Machines Corporation Method and apparatus for licensing computer programs using a DSA signature
US6141754A (en) * 1997-11-28 2000-10-31 International Business Machines Corporation Integrated method and system for controlling information access and distribution
US6253370B1 (en) 1997-12-01 2001-06-26 Compaq Computer Corporation Method and apparatus for annotating a computer program to facilitate subsequent processing of the program
US6134659A (en) 1998-01-07 2000-10-17 Sprong; Katherine A. Controlled usage software
US6202207B1 (en) * 1998-01-28 2001-03-13 International Business Machines Corporation Method and a mechanism for synchronized updating of interoperating software
GB2333864B (en) * 1998-01-28 2003-05-07 Ibm Distribution of software updates via a computer network
US6289461B1 (en) 1998-06-09 2001-09-11 Placeware, Inc. Bi-directional process-to-process byte stream protocol
US6226618B1 (en) * 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
US6611812B2 (en) * 1998-08-13 2003-08-26 International Business Machines Corporation Secure electronic content distribution on CDS and DVDs
JP2002189590A (ja) * 1998-12-28 2002-07-05 Hiroyuki Ueno ソフトウェアライセンス発行制御装置
US6463538B1 (en) 1998-12-30 2002-10-08 Rainbow Technologies, Inc. Method of software protection using a random code generator
GB2346989A (en) * 1999-02-19 2000-08-23 Ibm Software licence management system uses clustered licence servers
US6587947B1 (en) 1999-04-01 2003-07-01 Intel Corporation System and method for verification of off-chip processor code
US6594761B1 (en) * 1999-06-09 2003-07-15 Cloakware Corporation Tamper resistant software encoding
EP1109099A1 (en) 1999-12-17 2001-06-20 Alcatel Using secured calls in object-oriented software applications
US20010034839A1 (en) 1999-12-24 2001-10-25 Guenter Karjoth Method and apparatus for secure transmission of data and applications
DE10002203B4 (de) 2000-01-19 2009-12-10 Robert Bosch Gmbh Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung des Mikrorechner-Systems gespeicherten Daten
JP2001229123A (ja) * 2000-02-17 2001-08-24 Fujitsu Ltd サービス提供装置および記録媒体
US20010047477A1 (en) 2000-03-20 2001-11-29 Hiang-Swee Chiang Transparent user and session management for web applications
JP4186381B2 (ja) 2000-05-10 2008-11-26 日本電気株式会社 プログラムを格納する記録媒体及びその実行方法
WO2001086372A2 (en) 2000-05-12 2001-11-15 Xtreamlok Pty. Ltd. Information security method and system
JP4892167B2 (ja) 2000-07-18 2012-03-07 シンプレックス メジャー センドリアン ベルハッド ディジタル・データ保護構成
JP2002132818A (ja) 2000-10-26 2002-05-10 Seiko Epson Corp サービス提供システム、サービス提供端末、クライアント端末及び記憶媒体
WO2002065285A1 (en) 2001-02-14 2002-08-22 Invicta Networks, Inc. Systems and methods for creating a code inspection system
DE10108107A1 (de) 2001-02-21 2002-08-29 Philips Corp Intellectual Pty Schaltungsanordnung sowie Verfahren zum Erkennen einer Zugriffsverletzung bei einer Mikrokontrolleranordnung
US20020144124A1 (en) * 2001-03-12 2002-10-03 Remer Eric B. Method and apparatus to monitor use of a program
JP3963385B2 (ja) * 2001-10-30 2007-08-22 インターナショナル・ビジネス・マシーンズ・コーポレーション ディジタル・エンコードされた製品の使用を制御する方法およびシステム
US20030084325A1 (en) 2001-11-01 2003-05-01 International Business Machines Corporation Method and apparatus for implementing permission based access control through permission type inheritance
US8387111B2 (en) 2001-11-01 2013-02-26 International Business Machines Corporation Type independent permission based access control
US20030135741A1 (en) * 2001-12-04 2003-07-17 Applied Logical Systems, Llc Almost independent logically integrated license enforcement framework
US20030200267A1 (en) 2002-04-22 2003-10-23 Garrigues James F. Email management system
US7086088B2 (en) 2002-05-15 2006-08-01 Nokia, Inc. Preventing stack buffer overflow attacks
US7203833B1 (en) * 2002-12-23 2007-04-10 Microsoft Corporation History based rights computation for managed code

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017030288A1 (ko) * 2015-08-19 2017-02-23 (주)케이사인 원격 코드 실행을 이용한 실행 무결성 검증 시스템 및 그 방법

Also Published As

Publication number Publication date
CN1664742A (zh) 2005-09-07
US20050193213A1 (en) 2005-09-01
US7500108B2 (en) 2009-03-03
EP1571526A1 (en) 2005-09-07
JP2005259126A (ja) 2005-09-22
ES2326398A1 (es) 2009-10-08
JP2012150829A (ja) 2012-08-09
CN1664742B (zh) 2012-02-01
ES2326398B1 (es) 2010-07-14

Similar Documents

Publication Publication Date Title
KR20060043336A (ko) 코드 실행 계측 방법 및 코드 실행 디바이스
US7472286B2 (en) Selectively authorizing software functionality after installation of the software
KR101628361B1 (ko) 리눅스 기반의 보안 운영 체제를 위한 보안 정책 제공 방법 및 시스템
JP7388803B2 (ja) セキュア・ゲストのセキュア鍵をハードウェア・セキュリティ・モジュールに結びつけること
US8893298B2 (en) Network linker for secure execution of unsecured apps on a device
US8769305B2 (en) Secure execution of unsecured apps on a device
US8353046B2 (en) System and method for delivery of a modular operating system
RU2392659C2 (ru) Гибкая архитектура лицензирования в системе управления авторским правом
KR101301332B1 (ko) 보안 기계 카운팅
US8776258B2 (en) Providing access rights to portions of a software application
US20120210443A1 (en) Securing and managing apps on a device
US9336369B2 (en) Methods of licensing software programs and protecting them from unauthorized use
KR101295428B1 (ko) 스마트 단말기에서 어플리케이션의 권한정보 관리 장치 및 제어 방법
KR20230005308A (ko) 클러스터에서의 미승인된 패키지 배치 금지
GB2404536A (en) Protection of data using software wrappers
CN101548284A (zh) 软件许可证中的条件策略
EP3884405A1 (en) Secure count in cloud computing networks
US20120047074A1 (en) Methods of protecting software programs from unauthorized use
CN114448648B (zh) 基于rpa的敏感凭据管理方法及系统
JP2006164184A (ja) プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法
KR20080081631A (ko) 이동 단말에 탑재되는 디지털 권한 관리 장치 및 이를이용한 디지털 권한 관리 방법
US20240095402A1 (en) Methods and Systems for Recursive Descent Parsing
Desmet et al. A flexible security architecture to support third-party applications on mobile devices
JP2023542527A (ja) ヘテロジニアス暗号化を通したソフトウェア・アクセス
US20070038572A1 (en) Method, system and computer program for metering software usage

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