KR100417443B1 - 동적으로링크된실행모듈의사용을보호하기위한시스템및방법 - Google Patents

동적으로링크된실행모듈의사용을보호하기위한시스템및방법 Download PDF

Info

Publication number
KR100417443B1
KR100417443B1 KR1019960047605A KR19960047605A KR100417443B1 KR 100417443 B1 KR100417443 B1 KR 100417443B1 KR 1019960047605 A KR1019960047605 A KR 1019960047605A KR 19960047605 A KR19960047605 A KR 19960047605A KR 100417443 B1 KR100417443 B1 KR 100417443B1
Authority
KR
South Korea
Prior art keywords
program module
procedure
program
identifier
module
Prior art date
Application number
KR1019960047605A
Other languages
English (en)
Other versions
KR970022747A (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 KR970022747A publication Critical patent/KR970022747A/ko
Application granted granted Critical
Publication of KR100417443B1 publication Critical patent/KR100417443B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • 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
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

컴퓨터 시스템은 프로그램 모듈 검사 장치 및 최소한 제 1 및 제 2 프로그램 모듈을 가진다. 각 프로그램 모듈은 디지탈 시그네이쳐 및 실행 프로시저를 포함한다. 게다가 제 1 프로그램 모듈은 제 2 프로시저 모듈에 대한 프로시저 호출, 제 2프로그램 모듈에 대한 프로시저 호출 실행전에 실행되기 위하여 제 1 프로그램 모듈에 논리적으로 배치된 프로그램 모듈 검사장치에 대한 프로시저 호출, 및 프로그램 모듈 검사 장치에 대한 프로시저 호출이 프로그램 모듈 검사 장치에 의해 리턴되는 검사 거부를 유발할 때 제 2 프로그램 모듈에 대한 프로시저 호출을 실행하지 못하도록 막는 명령을 포함한다. 제 2 프로그램 모듈은 제 1 프로그램 모듈에 의해 제 2 프로그램 모듈에 대한 프로시저 호출에 응답하여 수행될 실행 가능 프로시저, 제 2 프로그램 모듈 실행 가능 프로시저의 실행을 완료하기 전에 실행되기 위하여 제 2 프로그램 모듈에 논리적으로 배치되는 프로그램 모듈 검사 장치에 대한 프로시저 호출, 및 프로그램 모듈 검사 장치가 제 1프로그램 모듈에 관한 검사 거부를 리턴할때 실행 가능 프로시저의 실행을 완료하지 못하도록 막는 명령을 포함한다. 프로그램 모듈 검사장치는 임의적으로 지정된 프로그램 모듈의 신뢰도를 검사하고 검사 승인 또는 거부를 리턴함으로써 프로시저 호출에 응답한다. 프로그램 모듈 검사 장치가 프로그램 모듈의 신뢰도를 검사하지 못할 때, 호출 프로그램 모듈은 그것의 실행을 제외하고 중지하게 된다.

Description

동적으로 링크된 실행 모듈의 사용을 보호하기 위한 시스템 및 방법
본 발명은 각각의 실행 가능 모듈이 그것의 신뢰도가 검사되는 다른 실행 가능 모듈에만 동적으로 링크될 수 있도록 실행 가능 모듈 사용을 제한하기 위한 시스템 및 방법에 관한 것이다.
컴퓨터 프로그램의 환경에서, "외부 기능"은 외부 기능을 사용하는 컴퓨터 프로그램에 부연적인 기능의 라이브러리 또는 다른 저장소에 배치된 프로시저 또는 기능이다. 외부 기능은 항상은 아니지만 종종, 외부 기능을 사용하는 컴퓨터 프로그램보다 다른 사람들 또는 다른 구성요소에 의해 만들어진다.
외부 기능이 링크 시간 또는 번역 시간보다 오히려, 운용 시간에 제한되는 프로그램 실행 환경은 그런 실행 환경에서 사용된 상기 프로그램을 위하여, 수정되거나 갱신되는 컴퓨터 프로그램만 다시 번역될 필요가 있기 때문에 컴퓨터 프로그램의 유지 및 갱신을 용이하게 하는 한편, 다른 모듈은 변화되지 않는다. 게다가, 재번역 방법은 비록 프로그램에 의해 사용된 다른 모듈이 프로그램 전개 시스템에 존재하지 않을지라도 수정된 프로그램의 번역이 수행될 수 있기 때문에 간략화된다.
그러나, 그런 프로그램 실행 환경을 사용하는 시스템은 프로그램 모듈 사이의 인터페이스가 일반적으로 잘 지정되거나, 제 3파티에 의해 결정될 수 있기 때문에 취약하고, 그러므로 그런 제 3파티를 위하여 대응 소프트웨어 라이센스 동의에 의해 인가되지 않은 방식으로 그 프로그램 모듈을 사용하는 것은 가능하다. 선택적으로, 그런 제 3파티는 신뢰적인 프로그램 모듈과 신뢰할 수 없는 프로그램 모듈을 대치함으로써 시스템이 파괴된다.
이런 문제는 미합중국으로부터 다른 나라 고객 또는 배급자로 수출하기 위하여 제한되는 소프트웨어의 암호 루틴으로 처리될 때 증가된다. 현재 일반적인 암호 능력을 제공하는 소프트웨어 모듈을 수출하는 것은 미합중국 무역법에 의해 허용되지 않는다. 다른 한편, 제한 환경에서 암호 능력을 사용하고 수출 프로그램의 제한 환경과 관계없는 일반적인 암호 기능을 수행하기 위하여 사용될 수 없는 프로그램을 수출하는 것은 허용된다. 실제적으로, 인정된 방식으로 암호화 기능을 사용하는 수출품에 관한 소프트웨어 시스템을 설계할 수 있는 것은 상업적으로 중요하다. 동적 링크 라이브러리(윈도우 시스템의 DLL) 또는 할당 오브젝트(솔라리스의 파일)같은 종래 기술의 제한 시스템은 소프트웨어 모듈 사이의 인터페이스를 불명료하게 하거나, 소프트웨어의 각 "수출품 전용" 버전만 제공함으로써 이런 문제를 해결하고자 했다. 소프트웨어 생산품의 각각의 "수출품 전용" 버전을 제공하는 것은 단일 코드 베이스로 업그레이드(upgrade) 및 유지 정정에 따른 "동기화"된 국내 및 수출품 버전을 유지하는 문제를 유발한다.
동적 링크 모듈의 사용을 제한하거나 차단할 필요가 있는 상황의 다른 예는 무역 비밀 또는 계약 정신에 대한 전용 응용에서 몇몇의 기능을 유지하기를 바라는 매각인에 의해 쓰여진 응용이다. 그런 시스템은 이들 전용 기능에 대해 제한된 액세스를 요구한다.
본 발명은 각각의 실행 가능 모듈이 그것의 신뢰도가 검사되는 다른 실행 가능 모듈에만 동적으로 링크될 수 있도록 실행 가능 모듈 사용을 제한하기 위한 시스템 및 방법을 제공하는 것이다.
도 1은 본 발명을 구체화하는 컴퓨터 시스템의 블록 다이어그램.
도 2는 종래 프로시저(procedure) 호출이 본 발명의 바람직한 실시예를 사용하여 어떻게 수행되는가를 표현한 "순서도".
도 3은 각각 다른 신뢰도를 검사하기 위하여 두 개의 링크 소프트웨어 모듈에 대한 바람직한 실시예에서 사용된 방법의 흐름도.
*도면의 주요 부분에 대한 부호의 설명*
1404 : 사용자 인터페이스 106 : 메모리
110 : 동작 시스템 112 : 검사 장치
114 : 응용 모듈 A 116 : 응용 모듈 B
118 : 응용 모듈 C 120 : 응용 모듈 D
요약하여, 본 발명은 프로그램 모듈 경사 장치 및 최소한 제 1과 제 2 프로그램 모듈을 가지는 컴퓨터 시스템이다. 각각의 프로그램 모듈은 디지탈 시그네이쳐 및 실행 가능 프로시저를 포함한다. 제 1 프로그램 모듈은 제 1 프로시저 모듈에 대한 프로시저 호출, 제 2 프로그램 모듈에 대한 프로시저 호출 실행전에 실행을 위하여 제 1 프로그램 모듈에 논리적으로 배치되는 프로그램 모듈 검사 장치에 대한 프로시저 호출, 및 프로그램 모듈 검사 장치가 프로그램 모듈 검사 장치에 의해 리턴되는 검사 거부를 유발할 때 제 2 프로그램 모듈에 대한 프로시저 호출 실행을 차단하는 명령을 포함한다.
제 2 프로그램 모듈은 제 1 프로그램 모듈에 의해 제 2 프로그램 모듈에 대한 프로시저 호출에 응답하여 수행될 실행 프로시저, 제 2 프로그램 모듈 실행 프로시저의 실행을 완료하기전에 실행되기 위하여 제 2 프로그램에 논리적으로 배치된 프로그램 모듈 검사 장치에 대한 프로시저 호출, 및 프로그램 모듈 검사 장치가 제 1프로그램 모듈에 관한 검사 거부를 리턴할 때 실행 프로시저의 실행 완료를 방지하는 명령을 포함한다.
프로그램 모듈 검사 장치는 임의의 지정된 프로그램 모듈의 신뢰도를 검사하고 그런 프로시저 호출 각각에 응답하여 검사 승인 또는 거부를 리턴함으로써 프로시저 호출에 응답한다. 특히, 바람직한 실시예에서, 프로그램 검사 장치 모듈은 (A) 대응 디코딩 키를 가지는 지정 프로그램 모듈에서 디지탈 시그네이쳐를 디코딩하고, (B) 메시지 다이제스트 기능에 따른 적어도 일부분의 지정 프로그램 모듈의 메시지 다이제스트를 생성하고, (C) 디코드된 디지탈 시그네이쳐가 메시지 다이제스트와 매칭할 때 검사 승인을 리턴하고, (D) 디코드된 디지탈 시그네이쳐가 메시지 다이제스트와 매칭하지 않을 때 검사 거부를 리턴함으로써 지정 프로그램 모듈의 검사를 요구하는 프로시저 호출에 응답하기 위한 명령을 포함한다.
바람직한 실시예에서, 프로그램 모듈 검사 장치가 제 2프로그램 모듈의 신뢰도를 검사하지 못할 때, 제 1 프로그램 모듈은 그것의 실행을 제외 및 중지하게 된다. 유사하게, 프로그램 모듈 검사 장치가 제 1 프로그램 모듈의 신뢰도를 검사하지 못할 때, 제 2 프로그램 모듈은 그것의 실행을 제외 및 중지하게 된다.
본 발명의 부가적인 목표 및 특징은 도면과 연관될 때 다음 상세한 설명 및 첨부 청구범위로부터 더욱 명백하게 될 것이다.
도 1을 참조하여, 컴퓨터 시스템(100)이 도시된다. 컴퓨터(100)가 썬 워크스테이션, IBM 호환 컴퓨터, 또는 맥킨토시 컴퓨터같은 데스크톱 컴퓨터일 수 있고, 실질적으로 임의의 형태의 컴퓨터가 사용될 수 있다. 컴퓨터(100)는 CPU(102), 사용자 인터페이스(104) 및 메모리(106)를 포함한다. 메모리(106)는 제 2 메모리, 통상적으로 하나 이상의 자기 또는 광학 디스크뿐 아니라 제 1 랜덤 액세스 메모리(RAM)를 포함한다. 메모리(106)는 동작 시스템(100), 프로그램 모듈 또는 오브젝트 신뢰도 검사 장치(112) 및 프로그램 모듈 또는 응용 프로그램 모듈로 불리는 한세트의 응용 프로그램 오브젝트 실시예(114, 116, 118, 120)를 저장한다.
도 1에 도시된 바와같이, 본 발명의 바람직한 실시예에서, 각 응용 프로그램 오브젝트 실시예는 오브젝트 표제(122), 적어도 하나의 디지탈 시그네이쳐(124), 적어도 하나의 내장 공개 암호화 키(126) 및 메인 응용 프로시저(128)(종종 방법으로 불린다)를 포함한다. 각 방법 또는 프로시저(128)는 프로시저의 실행을 중지하기 위한 명령 같은, 적어도 하나의 검사 장치 프로시저 호출 명령(130) 및 검사 장치 프로시저에 응답하여 수신된 검사 거부 메시지에 응답하기 위한 명령(132)을 포함한다. 제 1 프로그램 모듈에서 메인 응용 A 프로시저(128-A)는 제 2 프로시저 모듈에서 실행 가능 프로시저(예를들어, 메인 응용 B 프로시저 128-B)에 대한 프로시저 호출(134)을 포함한다. 프로그램 모듈 검사 장치에 대한 프로시저 호출(130-A)은 제 2 프로그램 모듈에 대한 프로시저 호출(134)의 실행전에 실행되기 위하여 제 1 프로그램 모듈에 논리적으로 배치된다.
프로그램 모듈 검사 장치에 대한 프로시저 호출(130-B)은 엔트리가 각각 그런 프로시저(128-B)의 실행전에 실행되기 위하여 제 2 프로그램 모듈에서 각각 실행할 수 있는 프로시저(128-B)를 가리킨후 즉각적으로 제 2프로그램 모듈에 논리적으로 배치된다. 특히, 본 발명의 다른 실시예에서 프로그램 모듈 검사 장치에 대한 프로시저 호출(130-B)은 호출 프로그램의 검사가 검사 장치에 의해 거부되면 각 프로시저의 실행이 완료되는 것을 방지하기 위하여 제 2 프로그램 모듈의 각 실행 가능 프로시저에서 완료를 가리키기 전에 제 2 프로그램 모듈(특히, 다른 프로그램 모듈에 의해 호출되는 모든 프로그램 모듈에서)에 논리적으로 배치된다.
본 발명의 바람직한 실시예에서 특정 상부 레벨 응용 또는 하나의 상부 레벨 응용에 의해 사용된 모든 프로시저처럼 지정된 그룹의 모든 프로시저는 예를들어 RSA 암호화 방법론을 사용하여 동일한 내장 공개 키(126)를 가지며 동일한 저용 암호화 키를 사용하여 디지탈적으로 신호된다. 그러나, 다른 실시예에서, 다른 프로시저 및 프로시저의 서브 그룹은 다른 전용 키를 가지고 신호된다. 다른 실시예에서, 프로시저를 포함하는 프로시저 모듈은 그것들이 호출할 수 있는 프로시저를 검사하기 위하여 내장 공개를 가지며, 다른 프로시저에 의해 호출될 수 있는 모든 프로시저 모듈은 호출 프로시저의 검사를 위한 공개 키를 포함한다.
도 2는 종래 프로시저 호출이 본 발명의 바람직한 실시예를 사용하여 어떻게 수행되는가를 나타내는 "순서도"이다. 도 2에서 먼저 사건은 추후 사건보다 보다 높은 수직 위치로 도시된다. 도 3은 프로시저 호출의 수행시 포함된 단계의 흐름도이다.
도 2 및 도 3을 참조하여, 프로그램 모듈 A에서 실행 가능 프로시저(예를들어, 도 1에서 "메인 응용 A 프로시저")는 실행(단계 200)을 시작한다. 이것을 논의하기 위하여, 실행되는 프로그램 모듈 A의 프로시저는 "프로시저 A"라 불리우고 프로그램 모듈 B에서 호출하기 위한 프로시저는 "프로시저 B"라 불리운다.
프로그램 모듈 B(단계 220)에서 실행 가능 프로시저에 대한 프로시저 호출을 이루기전에, 프로시저 A는 프로그램 모듈 B(단계 202)의 신뢰도 검사를 요구하기 위하여 검사 장치에 대한 프로시저 호출을 이룬다. 검사 장치는 프로그램 모듈 B를 검사하고 프로그램 모듈 B의 검사가 연속적인지 아닌지(단계 204)를 가리키기 위한 프로시저 A로 리턴 값을 송신한다.
특히, 바람직하게 명료하고 신뢰적인 오브젝트(또는 선택적으로 신뢰적인 시스템 서비스 프로시저)인 검사 장치는 프로시저 A(단계 206)로부터 요구 메시지를 수신하고, 호출 프로시저(즉, 프로시저 A)에 의해 제공된 공개 키를 사용하여 프로그램 모듈 B에 내장된 디지탈 시그네이쳐를 디코드한다(단계 208). 검사 장치에 프로시저 A를 호출함으로써 제공된 공개 키는 프로그램 모듈 A에 내장된 "그룹" 공개 키(126-A)이다.
바람직한 실시예에서, 프로그램 모듈의 디지탈 시그네이쳐는 프로그램 모듈의 메시지 다이제스트를 계산하고, 메시지 다이제스트를 생성하기 위하여 사용된 해시 기능 형태를 가리키기 위한 해시 기능 식별기를 가지는 메시지 다이제스트를 추가하고, RSA 암호화 방법을 사용하여 전용 키를 가지는 결과 값을 암호화하고, 프로그램 모듈 소오스(즉, 작성자 또는 분배자)의 클리어(Clear) 텍스트 식별기를 가지는 암호화된 값을 추가함으로써 생성된다 :
MDB= 해시 기능(프로그램 모듈 B)
디지탈 시그네이쳐B= 암호화(MDB+ 해시 기능 ID, 전용 키) + 프로그램 모듈 B 소오스의 클리어 텍스트 ID
그러므로 프로그램 모듈(B)의 디지탈 시그네이쳐를 디코드하기 위하여, 검사 장치(A)는 디지탈 시그네이쳐로부터 클리어 텍스트 ID를 제거하고, (B)는 시그네이쳐 바탕 메시지 다이제스트 DS-MDB및 해시 기능 ID를 생성하기 위하여 공개 키를 가지는 디지탈 시그네이쳐의 잔류 부분을 디코드한다.
DS-MDB+ 해시 기능 ID
= 디코드(디지탈 시그네이쳐B-클리어 텍스트 ID, 공개 키)
다음, 검사 장치는 디코드된 디지탈 시그네이쳐에서 식별된 해시 기능을 사용하여 적어도 일부분의 프로그램 모듈 B(단계 210)의 메시지 다이제스트(MDB)를 계산한다. 메시지 다이제스트를 생성하기 위하여 사용된 해시 기능은 매우 높은 가능성을 가지는 명료한 프로그램 모듈에 대한 명료한 값을 생성하도록 알려진, CRC 인코딩 기능같은 기능이다. 메시지 다이제스트를 생성하기에 적당한 많은 해시 기능은 당업자에게 공지되었다.
그리고나서 검사장치는 디코드된 디지탈 시그네이쳐(단계 212)의 메시지 다이제스트(DS-MDB)와 계산된 메시지 다이제스트(MDB)를 비교하고 만약 두 개의 메시지 다이제스트가 매칭하면 검사 승인 메시지를 호출 프로시저(단계 214)로 리턴하고 만약 두 개의 메시지 다이제스트가 매칭하지 않으면 검사 거부 메시지(단계 216)를 리턴한다.
하나의 바람직한 실시예에서, 각 프로그램 모듈에 대한 단일 디지탈 시그네이쳐가 있고, 관련 메시지 다이제스트는 프로그램 모듈 전체 내용의 해시 기능을 사용하여 계산된다. 다른 실시예에서, 메시지 다이제스트는 프로그램 모듈의 일부만을 기초로한다. 예를들어, 제 2 바람직한 실시예에서, 각각의 프로그램 모듈은 두 개의 디지탈 시그네이쳐를 가진다 : 프로그램 모듈의 매쏘드 부분에 관한 것 및 프로그램 모듈의 데이터 부분(만약 있다면)에 관한 것. 프로그램 모듈이 두 개의 디지탈 시그네이쳐를 가질 때, 두 개의 디지탈 시그네이쳐를 디코딩함으로써 인도된 양쪽 메시지 다이제스트는 검사 승인 메시지를 리턴하기 위하여 검사 장치에 관한 오더(order)에서 검사 장치에 의해 계산된 대응 메시지 다이제스트와 매칭하여야 한다. 만약 디코드된 디지탈 시그네이쳐 어느쪽에서 메시지 다이제스트가 검사 장치에 의해 계산된 대응 메시지 다이제스트와 매칭하지 않으면, 검사 장치는 검사거부 메시지를 리턴한다.
만약 검사 장치가 프로그램 모듈 B(단계 216)의 검사를 거부하면, 프로시저 A는 "제외 상태"가 되고 중지(단계 218)된다. 일반적으로 제외 상태가 되는 것은 실행의 관련 스레드(thread)가 종료하게 되고 게다가 호출된 프로시저(즉, 이런 경우에 프로시저 A)의 실패를 분석하고 그렇지 않으면 응답하기 위한 기회를 실행하는 호출 스레드를 제공하기 위하여 실행 호출 스레드에 의해 제외 핸들러 프로시저가 실행된다.
일반적으로, 검사 장치는 하나의 컴퓨터로부터 다른 컴퓨터로 인스톨레이션 또는 전송동안, 만약 프로그램 모듈이 신뢰할수 없거나, 고의로 간섭되면 프로그램 모듈의 검사를 거부할 것이다. 정상적인 동작에서, 검사 거부는 흔하지 않아야 한다.
만약 검사 장치가 프로그램 모듈(B)(단계 214)의 검사를 승인하면, 프로시저 A는 프로그램 모듈 B(단계 220)에서 프로시저 B에 대한 프로시저 호출을 이루어 진행한다. 바람직한 실시예에서, 프로시저 B가 프로시저 호출을 수신하는 첫 번째 할 것은 검사 장치(단계 222)에 대한 프로시저 호출을 이루고, 호출 프로그램 모듈의 신뢰도를 검사하기 위한 요구를 전송하는 것이다(즉, 이런 경우 프로그램 모듈 A).
검사 장치는 프로그램 모듈 A의 신뢰도를 검사하고 프로그램 모듈 A의 검사가 연속적인지(단계 230) 아닌지를 가리키기 위하여 리턴 값을 프로시저 B에 송신한다.
특히, 검사 장치는 프로시저 B(단계 232)로부터 요구 메시지를 수신하고, 프로시저 B에 의해 제공된 공개 키를 사용하여 프로그램 모듈 A에 내장된 디지탈 시그네이쳐를 디코드한다(단계 234). 프로시저 B에 의해 검사 장치에 제공된 공개 키는 프로그램 모듈 B에 내장된 "그룹" 공개 키(126-B)이다. 상기된 바와같이, 프로그램 모듈 A의 디지탈 시그네이쳐는 프로그램 모듈 A의 메시지 다이제스트를 계산하고, 메시지 다이제스트를 생성하기 위하여 사용된 해시 기능 형태를 가리키기 위한 해시 기능 식별기를 가지는 메시지 다이제스트를 첨가하고, RSA 암호화 방법을 사용하여 전용 키를 가지는 결과 값을 암호화하고, 프로그램 모듈 소오스의 클리어 텍스트 식별기를 가지는 암호화된 값을 첨가함으로써 생성된다 :
MDA= 해시 기능(프로그램 모듈 A)
디지탈 시그네이쳐A= 암호화(MDa+ 해시 기능 ID, 전용키)
프로그램 모듈 A 소오스의 클리어 텍스트 ID
그러므로 프로그램 모듈 A의 디지탈 시그네이쳐를 디코드하기 위하여, 검사 장치는 (A) 디지탈 시그네이쳐로부터 클리어 텍스트 ID를 제거하고, (B) 메시지 다이제스트 DS-MDA바탕 시그네이쳐 및 해시 기능 ID를 생성하기 위하여 디지탈 시그네이쳐의 잔류 부분을 디코드한다.
DS-MDA+ 해시기능 ID
= 디코드(디지탈 시그네이쳐a- 클리어 텍스트 ID, 공개키)
다음, 검사 장치는 디코드된 디지탈 시그네이쳐에서 식별된 해시 기능을 사용하여 적어도 일부분의 프로그램 모듈 A(단계 236)의 메시지 다이제스트(MDa)를 계산한다.
그리고나서 검사 장치는 디코드된 디지탈 시그네이쳐(단계 238)의 메시지 다이제스트(DS-MDA)와 계산된 메시지 다이제스트(MDA)를 비교하고 만약 두 개의 메시지 다이제스트가 매칭하면 검사 승인 메시지를 호출 프로시저(단계 240)로 리턴하고 만약 두 개의 메시지 다이제스트가 매칭하지 않으면 검사 거부 메시지(단계 242)를 리턴한다.
만약 검사 장치가 프로그램 모듈 A(단계 216)의 프로그램 검사를 거부하면, 프로시저 B는 "제외되고" 중단된다(단계 244).
만약 검사 장치가 프로그램 모듈 A(단계 240)의 검사를 승인하면, 프로시저 B는 완료(단계 250)되도록 실행되고 실행 프로시저 B에 의해 생성된 결과는 프로시저 A(단계 252)로 리턴된다. 마지막으로, 프로시저 A는 프로시저 B(단계 254)로부터 수신된 결과를 사용하여 그것의 실행을 완료한다.
몇몇의 다른 실시예에서 한 그룹의 프로그램 모듈에서 일부분의 프로그램 모듈만 "민감한" 알고리듬을 포함하거나 그렇지 않으면 다른 프로그램 모듈보다 신뢰적인 것이 중요하다. 예를들어, 제 1 실시예에서 한세트의 프로그램 모듈(여기에서 "프로그램 모듈의 전체 세트"라 불리운다) 분배자는 그룹에서 프로그램 모듈(여기에서 "제한된 프로그램 모듈의 서브세트"라 불린다)이 그룹에서 다른 프로그램 모듈만이 사용되는 것을 보장하지만, 잔류 프로그램 모듈이 그룹외의 프로그램 모듈조차, 인가자에 의해 자유롭게 사용된다. 이런 실시예에서, 단지 제한된 세트의 프로그램 모듈은 검사 장치 모듈에 대한 프로시저 호출을 포함한다. 이들 검사 장치에 대한 엔트리 포인트 프로시저 호출은 호출 프로그램 모듈의 신뢰도를 검사하기 위하여 사용되고, 호출 프로그램 모듈이 신뢰적인 그룹의 부분인 것을 검사중에, 호출된 프로그램 모듈은 호출 프로그램 모듈에 의해 요구된 계산을 수행한다.
제 2 실시예에서, 한세트의 프로그램 프로시저의 분배자는 한세트의 "제한된 프로그램 모듈"의 사용을 제한하는데 관련되지 않고 대신 실제적으로 제한된 프로그램 모듈의 서비스를 사용하기 위하여 시도하는 모든 호출 프로시저가 제한된 프로그램 모듈의 신뢰적인 버전 서비스를 얻는것에 관련된다. 이런 실시예에서, 제한된 프로그램 모듈에 프로시저를 호출하는 모든 프로시저는 제한된 프로그램 모듈에 대한 프로시저 호출전에 인접하여 논리적으로 배치된 검사 장치 모듈에 대한 프로시저 호출을 포함한다. 이들 검사 장치 프로시저 호출은 제한된 프로그램 모듈의 신뢰도를 검사하기 위하여 사용된다. 그러나, 이런 실시예에서 제한된 프로그램 모듈의 프로시저는 호출 프로그램 모듈의 신뢰도를 증명하기 위하여 검사 장치 프로시저 호출을 포함하지 않는다. 호출된 제한된 프로그램 모듈이 신뢰적이라는 것을 검사하는 중에, 호출 프로그램 모듈은 그것의 프로시저 호출을 신뢰도있는 제한 프로그램 모듈에 송신한다.
본 발명이 약간의 특정 실시예를 참조하여 기술되었지만, 상기 설명은 본 발명을 도시하는 것이고 본 발명을 제한하도록 구성되지 않았다. 다양한 변형은 첨부된 청구 범위에 의해 제한된 바와같은 본 발명의 진실한 사상 및 범위로부터 벗어나지 않는다.
본 발명은 각각의 실행 가능 모듈이 그것의 신뢰도가 검사되는 다른 실행 가능 모듈에만 동적으로 링크될 수 있도록 실행 가능 모듈 사용을 제한하기 위한 시스템 및 방법을 제공하여 종래 문제점을 해결한다.

Claims (21)

  1. 프로그램과 데이터를 저장하는 메모리;
    상기 메모리에 저장된 프로그램을 실행하는 데이터 처리 유니트;
    상기 메모리에 저장되고, 상기 데이터 처리 유니트에 의하여 실행될 수 있으며, 임의의 특정한 프로그램 모듈의 인증을 식별하고 상기 각각의 프로시저 호출에 응답하여 식별 승인 또는 거부를 리턴하여 상기 프로그램 모듈에 대하여 프로시저 호출에 응답하도록 구성된 프로그램 모듈 식별자;
    상기 메모리에 저장된 제1프로그램 모듈; 그리고
    상기 메모리에 저장된 제2프로그램 모듈을 포함하며,
    상기 제1프로그램 모듈은 상기 데이터 처리 유니트에 의하여 실행가능한 프로시저를 포함하는데, 상기 제1프로그램 모듈의 프로시저는;
    상기 제2프로그램 모듈에 대한 프로시저 호출;
    제2모듈의 인증을 식별하기 위하여 상기 프로그램 모듈 식별자에 대한 프로시저 호출을 포함하며, 상기 프로그램 식별자에 대한 프로시저 호출은 상기 제2프로그램 모듈에 대한 상기 프로시저 호출의 실행이전에 실행되도록 상기 제1프로그램 모듈에 논리적으로 위치하며; 그리고
    상기 프로그램 식별자에 대한 상기 프로시저 호출이 상기 프로그램 모듈 식별자에 의하여 리턴된 식별 거절을 초래할 때 상기 제2프로그램 모듈에 대한 상기 프로시저의 실행을 막는 명령을 포함하며;
    상기 제2프로그램 모듈은 상기 데이터 처리 유니트에 의하여 실행가능한 프로시저를 포함하는데, 상기 제2프로그램 모듈의 프로시저는:
    상기 제2프로그램 모듈에 대한 상기 프로시저 호출에 응답하여 실행되는 실행가능 프로시저;
    상기 제1모듈의 인증을 식별하기 위한 상기 프로그램 모듈 식별자에 대한 프로시저 호출을 포함하며, 상기 프로그램 모듈 식별자에 대한 프로시저 호출은 상기 실행가능 프로시저의 실행 이전에 실행될 수 있도록 상기 제2프로그램 모듈에 논리적으로 위치하며; 그리고
    상기 프로그램 모듈 식별자에 대한 상기 프로시저 호출이 상기 프로그램 모듈 식별자에 의하여 리턴된 식별 거절을 초래할 때, 상기 실행가능 절차의 실행을 막는 명령을 포함하는 컴퓨터 시스템.
  2. 제 1항에 있어서,
    상기 프로그램 식별자 모듈은 특정 프로그램 모듈의 명령이 상기 특정 프로그램 모듈이 인증될 것으로 알려진 대응 프로그램 모듈과 동일한지를 지시할 때 임의의 특정 프로그램 모듈에 대한 인증 식별을 발행하고, 그렇지 않다면 인증 식별 거절을 발행하는 명령을 포함하며; 그리고
    상기 프로시저 호출의 실행을 막는 상기 명령은 상기 프로그램 모듈 식별자에 대한 상기 프로시저 호출이 상기 프로그램 모듈 식별자에 의하여 리턴된 식별자 거절을 초래할 때 상기 제1프로그램 모듈의 실행을 중지하는 명령을 포함하는 것을특징으로 하는 컴퓨터 시스템.
  3. 제 1항에 있어서,
    상기 제1프로그램 모듈은 제1디지털 시그네이쳐 및 제1실행가능 프로시저를 포함하며;
    상기 제2프로그램 모듈은 제2디지털 시그네이쳐 및 제2실행가능 프로시저를 포함하며;
    상기 프로그램 식별자 모듈은 (A1) 대응 디코딩 키를 이용하여 상기 제2프로그램 모듈의 상기 제2 디지털 시그네이쳐를 디코딩하며, (A2) 미리 정의된 메세지 다이제스트 기능에 따라 상기 제2프로그램 모듈의 적어도 일부의 메세지 다이제스트를 생성하며, (A3) 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭할 때 식별 승인을 리턴하며, (A4) 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭되지 않을 때 식별 거절을 리턴함으로써, 상기 제2프로그램 모듈의 식별을 요청하는 프로시저 호출에 응답하는 명령을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  4. 프로그램과 데이터를 저장하는 메모리;
    상기 메모리에 저장된 프로그램을 실행하는 데이터 처리 유니트;
    (A) 상기 메모리에 저장되고, 임의의 특정 프로그램 모듈의 인증을 식별하고, 상기 데이터 처리 유니트에 의하여 실행가능하며, 각각의 프로시저 호출에 응답하여 식별 승인 또는 거절을 리턴함으로써 상기 프로그램 모듈 식별자에 대한 프로시저 호출에 응답하도록 구성된 프로그램 모듈 식별자;
    (B) 상기 메모리에 저장되고, 상기 데이터 처리 유니트에 의하여 실행가능한 제1프로시저를 가지는 제1프로그램 모듈; 및
    (C) 상기 메모리에 저장된 제2프로그램 모듈을 포함하며,
    상기 제1프로그램 모듈은 상기 제2프로그램 모듈에 대한 프로시저 호출을 포함하며;
    상기 제2프로그램 모듈은:
    (C1) 상기 제2프로그램 모듈에 대한 상기 프로시저 호출에 응답하여 실행될 수 있는 상기 데이터 처리 유니트에 의하여 실행가능한 제2프로시저;
    (C2) 상기 제1모듈의 인증을 식별하는 상기 프로그램 모듈 식별자에 대한 프로시저 호출을 포함하며, 상기 프로그램 모듈 식별자에 대한 프로시저 호출은 상기 제2실행가능 프로시저의 실행이 완료되기 전에 실행될 수 있도록 상기 제2 프로그램 모듈에 논리적으로 위치하며; 그리고
    (C3) 상기 프로그램 모듈 식별자에 대한 프로시저 호출이 상기 프로그램 모듈 식별자에 의하여 리턴된 식별 거절을 초래할 때 상기 제2실행가능 프로시저의 실행 완료를 막는 명령을 포함하는 컴퓨터 시스템.
  5. 제 4항에 있어서,
    상기 프로그램 식별자 모듈은 특정 프로그램 모듈의 명령이 특정 프로그램모듈이 인증될 것으로 알려진 대응 프로그램 모듈과 일치하는 것을 나타낼 때 임의의 특정 프로그램 모듈에 대한 인증 식별을 발행하고, 그렇지 않다면 인증 식별 거절을 발행하는 명령을 포함하며; 그리고
    상기 제2실행가능 프로시저의 실행완료를 막는 상기 명령은 상기 프로그램 모듈 식별자에 대한 상기 프로시저 호출이 상기 프로그램 모듈 식별자에 의하여 리턴된 승인 거절을 초래할 때 상기 제2프로그램 모듈의 실행을 중지하는 명령을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  6. 제 4항에 있어서,
    상기 제1프로그램 모듈은 제1디지털 시그네이쳐를 포함하며; 그리고
    상기 프로그램 식별자 모듈은 (A1) 대응 디코딩 키를 이용하여 상기 제1프로그램 모듈의 상기 제1 디지털 시그네이쳐를 디코딩하며, (A2) 미리 정의된 메세지 다이제스트 기능에 따라 상기 제1프로그램 모듈의 적어도 일부의 메세지 다이제스트를 생성하며, (A3) 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭할 때 식별 승인을 리턴하며, (A4) 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭되지 않을 때 식별 거절을 리턴함으로써, 상기 제1프로그램 모듈의 식별을 요청하는 프로시저 호출에 응답하는 명령을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  7. 컴퓨터 판독가능 저장 매체와 상기 매체에 내장된 컴퓨터 프로그램 메카니즘을 포함하는 컴퓨터 프로그램 제품으로서:
    상기 컴퓨터 프로그램 메카니즘은:
    (A) 임의의 특정 프로그램 모듈의 인증을 식별하고, 각각의 프로시저 호출에 응답하여 식별 승인 또는 거절을 리턴함으로써, 상기 프로그램 모듈 식별자에 대한 프로시저 호출에 응답하도록 구성된 프로그램 모듈 식별자;
    (B) 제1프로그램 모듈; 및
    (C) 제2프로그램 모듈을 포함하며;
    상기 제1프로그램 모듈은:
    (B1) 상기 제2프로그램 모듈에 대한 프로시저 호출;
    (B2) 상기 제2프로그램 모듈에 대한 상기 프로시저 호출의 실행이전에 실행될 수 있도록 상기 제1프로그램 모듈에 논리적으로 위치하는 상기 프로그램 모듈 식별자에 대한 프로시저 호출; 그리고
    (B3) 상기 프로그램 모듈 식별자에 대한 상기 프로시저 호출이 상기 프로그램 모듈 식별자에 의하여 리턴된 식별 거절을 초래할 때 상기 제2프로그램 모듈에 대한 상기 프로시저 호출의 실행을 막는 명령을 포함하며,
    상기 제2프로그램 모듈은:
    (C1) 상기 제2프로그램 모듈에 대한 상기 프로시저 호출에 응답하여 실행되는 실행가능 프로시저;
    (C2) 상기 제1모듈의 인증을 식별하는 상기 프로그램 모듈에 대한 프로시저 호출을 포함하며, 상기 프로그램 모듈 식별자에 대한 프로시저 호출은 상기 실행가능 프로시저의 실행이 완료되기 전에 실행될 수 있도록 상기 제2프로그램 모듈에 논리적으로 위치하며; 그리고
    (C3) 상기 프로그램 모듈 식별자에 대한 프로시저 호출이 상기 프로그램 모듈 식별자에 의하여 리턴된 식별 거절을 초래할 때, 상기 실행가능 프로시저의 실행완료를 막는 명령을 포함하는 컴퓨터 프로그램 제품.
  8. 제 7항에 있어서,
    상기 프로그램 식별자 모듈은 특정 프로그램 모듈의 명령이 특정 프로그램 모듈이 인증될 것으로 알려진 대응 프로그램 모듈과 일치하는 것을 나타낼 때 임의의 특정 프로그램 모듈에 대한 인증 식별을 발행하고, 그렇지 않다면 인중 식별 거절을 발행하는 명령을 포함하며; 그리고
    상기 제2실행가능 프로시저의 실행완료를 막는 상기 명령은 상기 프로그램 모듈 식별자에 대한 상기 프로시저 호출이 상기 프로그램 모듈 식별자에 의하여 리턴된 승인 거절을 초래할 때 상기 제2프로그램 모듈의 실행을 중지하는 명령을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  9. 제 7항에 있어서,
    상기 제1프로그램 모듈은 제1디지털 시그네이쳐와 제1실행가능 프로시저를 포함하며;
    상기 제2프로그램 모듈은 제2디지털 시그네이쳐와 제2실행가능 프로시저를포함하며;
    상기 프로그램 식별자 모듈은 (A1) 대응 디코딩 키를 이용하여 상기 제2프로그램 모듈의 상기 제2 디지털 시그네이쳐를 디코딩하며, (A2) 미리 정의된 메세지 다이제스트 기능에 따라 상기 제2프로그램 모듈의 적어도 일부의 메세지 다이제스트를 생성하며, (A3) 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭할 때 식별 승인을 리턴하며, (A4) 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭되지 않을 때 식별 거절을 리턴함으로써, 상기 제2프로그램 모듈의 식별을 요청하는 프로시저 호출에 응답하는 명령을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  10. 컴퓨터 판독가능 저장 매체와 상기 매체에 저장된 컴퓨터 프로그램을 포함하는 컴퓨터 프로그램 제품으로서:
    상기 컴퓨터 프로그램 메카니즘은:
    (A) 임의의 특정 프로그램 모듈의 인증을 식별하고, 각각의 프로시저 호출에 응답하여 식별 승인 또는 거절을 리턴함으로써, 상기 프로그램 모듈 식별자에 대한 프로시저 호출에 응답하도록 구성된 프로그램 모듈 식별자;
    (B) 제1실행가능 프로시저를 갖는 제1프로그램 모듈; 및
    (C) 제2프로그램 모듈을 포함하며;
    상기 제1프로그램 모듈은 상기 제2프로그램 모듈에 대한 프로시저 호출을 포함하며,
    상기 제2프로그램 모듈은:
    (C1) 상기 제2프로그램 모듈에 대한 상기 프로시저 호출에 응답하여 실행되는 제2실행가능 프로시저;
    (C2) 상기 제1모듈의 인증을 식별하는 상기 프로그램 모듈에 대한 프로시저 호출을 포함하며, 상기 프로그램 모듈 식별자에 대한 프로시저 호출은 상기 제2실행가능 프로시저의 실행이 완료되기 전에 실행될 수 있도록 상기 제2프로그램 모듈에 논리적으로 위치하며; 그리고
    (C3) 상기 프로그램 모듈 식별자에 대한 상기 프로시저 호출이 상기 프로그램 모듈 식별자에 의하여 리턴된 식별 거절을 초래할 때, 상기 제2실행가능 프로시저의 실행완료를 막는 명령을 포함하는 컴퓨터 프로그램 제품.
  11. 제 10항에 있어서,
    상기 프로그램 식별자 모듈은 특정 프로그램 모듈의 명령이 특정 프로그램 모듈이 인증될 것으로 알려진 대응 프로그램 모듈과 일치하는 것을 나타낼 때에만 임의의 특정 프로그램 모듈에 대한 인증 식별을 발행하고, 그렇지 않다면 인증 식별 거절을 발행하는 명령을 포함하며; 그리고
    상기 제2실행가능 프로시저의 실행완료를 막는 상기 명령은 상기 프로그램 모듈 식별자에 대한 상기 프로시저 호출이 상기 프로그램 모듈 식별자에 의하여 리턴된 승인 거절을 초래할 때 상기 제2프로그램 모듈의 실행을 중지하는 명령을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  12. 제 10항에 있어서,
    상기 제1프로그램 모듈은 제1디지털 시그네이쳐를 포함하며;
    상기 프로그램 식별자 모듈은 (A1) 대응 디코딩 키를 이용하여 상기 제1프로그램 모듈의 상기 제1디지털 시그네이쳐를 디코딩하며, (A2) 미리 정의된 메세지 다이제스트 기능에 따라 상기 제1프로그램 모듈의 적어도 일부의 메세지 다이제스트를 생성하며, (A3) 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭할 때 식별 승인을 리턴하며, (A4) 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭되지 않을 때 식별 거절을 리턴함으로써, 상기 제1프로그램 모듈의 식별을 요청하는 프로시저 호출에 응답하는 명령을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  13. (A) 컴퓨터 메모리에 제1프로그램 모듈과 제2프로그램 모듈을 저장하는 단계; 상기 제1 프로그램 모듈의 프로그램을 실행하는 단계, 그리고 상기 제1프로그램 모듈의 프로시저를 실행하는 동안이지만, 상기 제1프로그램 모듈로부터 상기 제2프로그램 모듈로 프로시저를 호출하기 전에, 상기 제2프로그램 모듈의 인증을 식별하는 단계;
    (B) 상기 제2프로그램 모듈의 인증을 식별할 때, 상기 제1프로그램 모듈로부터 상기 제2프로그램 모듈로 프로시저를 호출하는 단계;
    (C) 상기 제2프로그램 모듈의 인증을 식별하는데 실패할 때, 상기 제1프로그램 모듈로부터 상기 제2프로그램 모듈로 프로시저 호출을 막는 단계;
    (D) 상기 제2프로그램 모듈의 프로시저의 실행을 완료하기 전에, 상기 제1프로그램 모듈의 인증을 식별하는 단계;
    (E) 상기 제1프로그램 모듈의 인증을 식별할 때, 결과를 생성하기 위하여 상기 제2프로그램 모듈의 프로시저를 실행하는 것을 완료하며, 그 결과를 상기 제1프로그램 모듈의 프로시저로 리턴하는 단계; 그리고
    (F) 상기 제1프로그램 모듈의 인증을 식별하는데 실패할 때, 상기 제2프로그램 모듈의 프로시저의 실행완료를 막는 단계를 포함하는 방법.
  14. 제 13항에 있어서,
    제1프로그램 모듈의 인증을 식별하는 상기 단계는 제1프로그램 모듈이 인증될 것으로 알려진 대응 프로그램 모듈과 동일한지를 결정하며, 만일 상기 결정이 네거티브라면 인증 식별 거절을 발행하는 단계를 포함하며; 그리고
    단계(C)는 상기 제1프로그램 모듈의 실행을 중지하는 단계를 포함하는 것을 특징으로 하는 방법.
  15. 제 13항에 있어서,
    상기 제1프로그램 모듈은 제1디지털 시그네이쳐를 포함하며, 상기 제2프로그램 모듈은 제2디지털 시그네이쳐를 포함하며;
    상기 단계(A)는 대응 디코딩 키를 이용하여 상기 제2프로그램 모듈의 상기제2디지털 시그네이쳐를 디코딩하는 단계, 미리 정의된 메세지 다이제스트 기능에 따라 상기 제2프로그램 모듈의 적어도 일부의 메세지 다이제스트를 생성하는 단계, 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭할 때 상기 제2프로그램 모듈의 인증을 식별하고, 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭되지 않을 때 상기 제2프로그램 모듈의 인증의 식별을 거절하는 단계를 포함하는 것을 특징으로 하는 방법.
  16. 제 15항에 있어서,
    상기 단계(D)는 대응 디코딩 키를 이용하여 상기 제1프로그램 모듈의 상기 제1디지털 시그네이쳐를 디코딩하는 단계, 미리 정의된 메세지 다이제스트 기능에 따라 상기 제1프로그램 모듈의 적어도 일부의 메세지 다이제스트를 생성하는 단계, 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭할 때 상기 제1프로그램 모듈의 인증을 식별하고, 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭되지 않을 때 상기 제1프로그램 모듈의 인증의 식별을 거절하는 단계를 포함하는 것을 특징으로 하는 방법.
  17. 제 13항에 있어서,
    상기 단계(A)는 신뢰성있는 프로그램 모듈에 대한 프로시저를 호출하는 단계를 포함하며, 상기 프로그램 모듈 식별자는 상기 제2프로그램 모듈의 인증을 식별하고 상기 프로시저 호출에 응답하여 식별 승인 및 거절을 리턴함으로써 프로시저호출에 응답하는 것을 특징으로 하는 방법.
  18. 프로그램 모듈을 링크하는 방법으로서:
    (A) 컴퓨터 메모리에 제1프로그램 모듈과 제2프로그램 모듈을 저장하는 단계; 상기 제1 프로그램 모듈의 프로그램을 실행하는 단계, 그리고 상기 제1프로그램 모듈의 프로시저를 실행하는 동안, 상기 제1프로그램 모듈로부터 상기 제2프로그램 모듈로 프로시저를 호출하는 단계;
    (B) 상기 제2프로그램 모듈의 프로시저를 실행하면서 상기 제2프로그램 모듈의 프로시저의 실행완료이전에, 상기 제1프로그램 모듈의 인증을 식별하는 단계;
    (C) 상기 제1프로그램 모듈의 인증을 식별할 때, 결과를 생성하기 위하여 상기 제2프로그램 모듈의 프로시저를 실행하는 것을 완료하며, 그 결과를 상기 제1프로그램 모듈의 프로시저로 리턴하는 단계; 그리고
    (D) 상기 제1프로그램 모듈의 인증을 식별하는데 실패할 때, 상기 제2프로그램 모듈의 프로시저의 실행완료를 막는 단계를 포함하는 방법.
  19. 제 18항에 있어서,
    상기 제1프로그램 모듈은 제1디지털 시그네이쳐를 포함하며;
    상기 단계(B)는 대응 디코딩 키를 이용하여 상기 제1프로그램 모듈의 상기 제1디지털 시그네이쳐를 디코딩하는 단계, 미리 정의된 메세지 다이제스트 기능에 따라 상기 제1프로그램 모듈의 적어도 일부의 메세지 다이제스트를 생성하는 단계,상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭할 때 상기 제1프로그램 모듈의 인증을 식별하고, 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭되지 않을 때 상기 제1프로그램 모듈의 인증의 식별을 거절하는 단계를 포함하는 것을 특징으로 하는 방법.
  20. 제 18항에 있어서,
    상기 단계(A)는 상기 제1프로그램 모듈로부터 상기 제2프로그램 모듈로 프로시저를 호출하기 전에;
    (A1) 신뢰성있는 프로그램 모듈 식별자에 대한 프로시저를 호출함으로써 상기 제2프로그램 모듈의 인증을 식별하는 단계를 포함하며, 상기 프로그램 모듈 식별자는 상기 제2프로그램 모듈의 인증을 식별하고 상기 프로시저 호출에 응답하여 식별 승인 또는 거절을 리턴함으로써 응답하며;
    (A2) 상기 제2프로그램 모듈의 인증을 식별할 때, 상기 제1프로그램 모듈로부터 상기 제2프로그램 모듈로 프로시저를 호출하는 단계; 그리고
    (A3) 상기 제2프로그램 모듈의 인증 식별을 식별할 때, 상기 제1프로그램 모듈로부터 상기 제2프로그램 모듈로 프로시저 호출을 막는 단계를 포함하는 것을 특징으로 하는 방법.
  21. 제 20항에 있어서, 상기 제1프로그램 모듈은 제1디지털 시그네이쳐를 포함하며, 상기 제2프로그램 모듈은 제2디지털 시그네이쳐를 포함하며;
    상기 단계(A3)는 대응 디코딩 키를 이용하여 상기 제2프로그램 모듈의 상기 제2디지털 시그네이쳐를 디코딩하는 단계, 미리 정의된 메세지 다이제스트 기능에 따라 상기 제2프로그램 모듈의 적어도 일부의 메세지 다이제스트를 생성하는 단계, 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭할 때 상기 제2 프로그램 모듈의 인증을 식별하고, 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭되지 않을 때 상기 제2프로그램 모듈의 인증의 식별을 거절하는 단계를 포함하는 것을 특징으로 하는 방법.
KR1019960047605A 1995-10-26 1996-10-23 동적으로링크된실행모듈의사용을보호하기위한시스템및방법 KR100417443B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/547,720 US5757914A (en) 1995-10-26 1995-10-26 System and method for protecting use of dynamically linked executable modules
US08/547,720 1995-10-26

Publications (2)

Publication Number Publication Date
KR970022747A KR970022747A (ko) 1997-05-30
KR100417443B1 true KR100417443B1 (ko) 2004-04-28

Family

ID=24185862

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960047605A KR100417443B1 (ko) 1995-10-26 1996-10-23 동적으로링크된실행모듈의사용을보호하기위한시스템및방법

Country Status (6)

Country Link
US (3) US5757914A (ko)
EP (1) EP0770957A3 (ko)
JP (1) JP3982857B2 (ko)
KR (1) KR100417443B1 (ko)
CN (1) CN1130648C (ko)
TW (1) TW378304B (ko)

Families Citing this family (123)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120166807A1 (en) 1996-08-12 2012-06-28 Intertrust Technologies Corp. Systems and Methods Using Cryptography to Protect Secure Computing Environments
US7095854B1 (en) * 1995-02-13 2006-08-22 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5943422A (en) 1996-08-12 1999-08-24 Intertrust Technologies Corp. Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
CN1912885B (zh) 1995-02-13 2010-12-22 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
US6948070B1 (en) * 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US7133846B1 (en) 1995-02-13 2006-11-07 Intertrust Technologies Corp. Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management
US6157721A (en) 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US6658568B1 (en) 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
US7133845B1 (en) * 1995-02-13 2006-11-07 Intertrust Technologies Corp. System and methods for secure transaction management and electronic rights protection
US6389483B1 (en) 1995-10-17 2002-05-14 Telefonaktiebolaget L M Ericsson (Publ) System and method for reducing coupling between modules in a telecommunications environment
US5757914A (en) 1995-10-26 1998-05-26 Sun Microsystems, Inc. System and method for protecting use of dynamically linked executable modules
US6067639A (en) * 1995-11-09 2000-05-23 Microsoft Corporation Method for integrating automated software testing with software development
US20010011253A1 (en) * 1998-08-04 2001-08-02 Christopher D. Coley Automated system for management of licensed software
US6085320A (en) * 1996-05-15 2000-07-04 Rsa Security Inc. Client/server protocol for proving authenticity
US5937187A (en) * 1996-07-01 1999-08-10 Sun Microsystems, Inc. Method and apparatus for execution and preemption control of computer process entities
US7590853B1 (en) 1996-08-12 2009-09-15 Intertrust Technologies Corporation Systems and methods using cryptography to protect secure computing environments
US5920861A (en) 1997-02-25 1999-07-06 Intertrust Technologies Corp. Techniques for defining using and manipulating rights management data structures
DE19716015A1 (de) * 1997-04-17 1998-10-29 Ibm Einbringen von Information auf einer Chipkarte
US5987608A (en) * 1997-05-13 1999-11-16 Netscape Communications Corporation Java security mechanism
US7290288B2 (en) 1997-06-11 2007-10-30 Prism Technologies, L.L.C. Method and system for controlling access, by an authentication server, to protected computer resources provided via an internet protocol network
US6272631B1 (en) * 1997-06-30 2001-08-07 Microsoft Corporation Protected storage of core data secrets
JPH1131105A (ja) * 1997-07-10 1999-02-02 Fuji Xerox Co Ltd データカプセル生成装置および方法
US6000032A (en) * 1997-07-15 1999-12-07 Symantec Corporation Secure access to software modules
US6188995B1 (en) 1997-07-28 2001-02-13 Apple Computer, Inc. Method and apparatus for enforcing software licenses
US6009524A (en) * 1997-08-29 1999-12-28 Compact Computer Corp Method for the secure remote flashing of a BIOS memory
US6397331B1 (en) * 1997-09-16 2002-05-28 Safenet, Inc. Method for expanding secure kernel program memory
JPH11110193A (ja) * 1997-09-30 1999-04-23 Toshiba Corp コンピュータシステム及び同システムに適用するライブラリのリンク方法
US7092914B1 (en) * 1997-11-06 2006-08-15 Intertrust Technologies Corporation Methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
US6112181A (en) 1997-11-06 2000-08-29 Intertrust Technologies Corporation Systems and methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
IL122314A (en) * 1997-11-27 2001-03-19 Security 7 Software Ltd Method and system for enforcing a communication security policy
US6311274B1 (en) * 1997-12-15 2001-10-30 Intel Corporation Network alert handling system and method
JP2002509313A (ja) * 1998-01-16 2002-03-26 メディアドナ、インコーポレイテッド ピアコンポーネントを認証するためのシステムおよび方法
US6233687B1 (en) * 1998-01-21 2001-05-15 Nortel Networks Limited Method and apparatus for providing configuration information in a network
US7268700B1 (en) 1998-01-27 2007-09-11 Hoffberg Steven M Mobile communication device
US6173404B1 (en) * 1998-02-24 2001-01-09 Microsoft Corporation Software object security mechanism
US6532451B1 (en) * 1998-03-23 2003-03-11 Novell, Inc. Nested strong loader apparatus and method
US6701433B1 (en) 1998-03-23 2004-03-02 Novell, Inc. Method and apparatus for escrowing properties used for accessing executable modules
US6615350B1 (en) * 1998-03-23 2003-09-02 Novell, Inc. Module authentication and binding library extensions
US6751735B1 (en) 1998-03-23 2004-06-15 Novell, Inc. Apparatus for control of cryptography implementations in third party applications
US7236610B1 (en) * 1998-04-30 2007-06-26 Fraunhofer Gesellschaft Authenticating executable code and executions thereof
US6341351B1 (en) * 1998-05-07 2002-01-22 Banctec, Inc. Method for communicating and controlling transactions between unsecured parties
US6256393B1 (en) * 1998-06-23 2001-07-03 General Instrument Corporation Authorization and access control of software object residing in set-top terminals
US6105137A (en) * 1998-07-02 2000-08-15 Intel Corporation Method and apparatus for integrity verification, authentication, and secure linkage of software modules
US6735696B1 (en) * 1998-08-14 2004-05-11 Intel Corporation Digital content protection using a secure booting method and apparatus
US6343280B2 (en) * 1998-12-15 2002-01-29 Jonathan Clark Distributed execution software license server
CA2292041A1 (en) * 1998-12-22 2000-06-22 Scott Alan Thomson Software program protection mechanism
AU1889699A (en) * 1999-01-13 2000-08-01 Hitachi Limited Method and system for executing mobile code
US6802006B1 (en) * 1999-01-15 2004-10-05 Macrovision Corporation System and method of verifying the authenticity of dynamically connectable executable images
US7650504B2 (en) * 1999-07-22 2010-01-19 Macrovision Corporation System and method of verifying the authenticity of dynamically connectable executable images
US6779117B1 (en) 1999-07-23 2004-08-17 Cybersoft, Inc. Authentication program for a computer operating system
US7243236B1 (en) * 1999-07-29 2007-07-10 Intertrust Technologies Corp. Systems and methods for using cryptography to protect secure and insecure computing environments
WO2001009702A2 (en) 1999-07-30 2001-02-08 Intertrust Technologies Corp. Methods and systems for transaction record delivery using thresholds and multi-stage protocol
US7086584B2 (en) * 1999-08-09 2006-08-08 First Data Corporation Systems and methods for configuring a point-of-sale system
US7406603B1 (en) 1999-08-31 2008-07-29 Intertrust Technologies Corp. Data protection systems and methods
DE19944991B4 (de) * 1999-09-20 2004-04-29 Giesecke & Devrient Gmbh Verfahren zur Sicherung eines Programmablaufs
US6985885B1 (en) 1999-09-21 2006-01-10 Intertrust Technologies Corp. Systems and methods for pricing and selling digital goods
US6748538B1 (en) * 1999-11-03 2004-06-08 Intel Corporation Integrity scanner
AU7623600A (en) * 1999-11-16 2001-05-30 Intel Corporation A method of providing secure linkage of program modules
FI111567B (fi) * 1999-12-27 2003-08-15 Nokia Corp Menetelmä ohjelmamoduulin lataamiseksi
US6880083B1 (en) * 1999-12-31 2005-04-12 Intel Corporation Method and apparatus for creating and executing secure scripts
US6789199B1 (en) * 2000-02-08 2004-09-07 International Business Machines Corporation Tamper resistance with pseudo-random binary sequence program interlocks
US7284124B1 (en) * 2000-06-05 2007-10-16 Microsoft Corporation Trust level based platform access regulation application
US6816984B1 (en) * 2000-06-23 2004-11-09 Microsoft Corporation Method and system for verifying and storing documents during a program failure
US7051200B1 (en) 2000-06-27 2006-05-23 Microsoft Corporation System and method for interfacing a software process to secure repositories
US6889378B2 (en) 2000-07-24 2005-05-03 Sony Corporation Information processing method, inter-task communication method, and computer-executable program for the same
US6683629B1 (en) * 2000-08-03 2004-01-27 Neoplanet, Inc. Method in a computer system for embedding a child window in a parent window
JP3712366B2 (ja) * 2000-08-15 2005-11-02 株式会社ソニー・コンピュータエンタテインメント 情報処理システム、実行可能モジュール生成方法および記憶媒体
JP2004509392A (ja) * 2000-09-08 2004-03-25 インターナショナル・ビジネス・マシーンズ・コーポレーション ソフトウェアのセキュア認証済チャネル
US6971023B1 (en) * 2000-10-03 2005-11-29 Mcafee, Inc. Authorizing an additional computer program module for use with a core computer program
US20020087876A1 (en) * 2000-12-28 2002-07-04 Larose Gordon Edward Adaptive software installation process supporting multiple layers of security-related attributes
JP2002244989A (ja) * 2001-02-20 2002-08-30 Nec Corp デバイスドライバ作動方法
WO2002079955A2 (en) 2001-03-28 2002-10-10 Nds Limited Digital rights management system and method
IL142487A0 (en) * 2001-04-05 2003-09-17 Hexalock Ltd Method and system for protecting data
WO2002084496A1 (en) * 2001-04-16 2002-10-24 Sunncomm, Inc. Apparatus and method for authentication of computer-readable medium
US7581103B2 (en) 2001-06-13 2009-08-25 Intertrust Technologies Corporation Software self-checking systems and methods
US7234061B1 (en) * 2001-06-29 2007-06-19 Cisco Technology, Inc. Methods and apparatus for verifying modules from approved vendors
US7366911B2 (en) * 2001-12-11 2008-04-29 Lucent Technologies Inc. Methods and apparatus for computationally-efficient generation of secure digital signatures
US7496757B2 (en) * 2002-01-14 2009-02-24 International Business Machines Corporation Software verification system, method and computer program element
US7680743B2 (en) * 2002-05-15 2010-03-16 Microsoft Corporation Software application protection by way of a digital rights management (DRM) system
IL149759A (en) * 2002-05-20 2009-07-20 Eyal Cohen Method and system for protecting digital media from illegal copying
FR2843465B1 (fr) * 2002-08-06 2005-07-01 Checkflow Procede de communication entre applications destine a securiser l'acces aux donnees d'une application
FR2845493A1 (fr) 2002-10-04 2004-04-09 Canal Plus Technologies Logiciel embarque et procede d'authentification de celui-ci
US9818136B1 (en) 2003-02-05 2017-11-14 Steven M. Hoffberg System and method for determining contingent relevance
US7565551B2 (en) * 2003-02-19 2009-07-21 Microsoft Corporation Enhancing software integrity through installation and verification
EP3043232A1 (en) 2003-08-26 2016-07-13 Panasonic Intellectual Property Corporation of America Program execution device
JP2005115933A (ja) * 2003-09-19 2005-04-28 Fuji Electric Systems Co Ltd 電子署名装置、方法、及びそのプログラム
US7350079B2 (en) * 2003-11-20 2008-03-25 International Business Machines Corporation Apparatus and method for inter-program authentication using dynamically-generated public/private key pairs
US20050132357A1 (en) * 2003-12-16 2005-06-16 Microsoft Corporation Ensuring that a software update may be installed or run only on a specific device or class of devices
US7568195B2 (en) 2003-12-16 2009-07-28 Microsoft Corporation Determining a maximal set of dependent software updates valid for installation
US7614051B2 (en) * 2003-12-16 2009-11-03 Microsoft Corporation Creating file systems within a file in a storage technology-abstracted manner
US7549042B2 (en) * 2003-12-16 2009-06-16 Microsoft Corporation Applying custom software image updates to non-volatile storage in a failsafe manner
US20050128520A1 (en) * 2003-12-16 2005-06-16 Jeff Glickman Digital signature protection for software
US7549148B2 (en) 2003-12-16 2009-06-16 Microsoft Corporation Self-describing software image update components
US7500108B2 (en) * 2004-03-01 2009-03-03 Microsoft Corporation Metered execution of code
US7831838B2 (en) * 2004-03-05 2010-11-09 Microsoft Corporation Portion-level in-memory module authentication
JP2005268931A (ja) * 2004-03-16 2005-09-29 Matsushita Electric Ind Co Ltd 情報セキュリティ装置及び情報セキュリティシステム
JP2005275839A (ja) * 2004-03-25 2005-10-06 Nec Corp ソフトウェア利用許可方法及びシステム
US7644287B2 (en) * 2004-07-29 2010-01-05 Microsoft Corporation Portion-level in-memory module authentication
US7590589B2 (en) 2004-09-10 2009-09-15 Hoffberg Steven M Game theoretic prioritization scheme for mobile ad hoc networks permitting hierarchal deference
US7779269B2 (en) * 2004-09-21 2010-08-17 Ciena Corporation Technique for preventing illegal invocation of software programs
KR100681696B1 (ko) * 2004-11-29 2007-02-15 주식회사 안철수연구소 컴퓨터 응용 프로그램의 메모리 데이터 조작 방지 방법
US7603562B2 (en) * 2005-02-02 2009-10-13 Insyde Software Corporation System and method for reducing memory requirements of firmware
CN100594509C (zh) * 2005-02-11 2010-03-17 辛普雷克斯梅杰有限公司 软件保护方法
US7631198B2 (en) * 2005-05-10 2009-12-08 Seagate Technology Protocol scripting language for safe execution in embedded system
US7624111B2 (en) * 2005-06-27 2009-11-24 Microsoft Corporation Active content trust model
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
SE530662C2 (sv) * 2005-11-09 2008-08-05 Noll Och Ett Data Ab Förfarande och anordning
JP4537940B2 (ja) * 2005-11-21 2010-09-08 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、及びプログラム実行制御方法
US7845016B2 (en) * 2005-11-28 2010-11-30 Cisco Technology, Inc. Methods and apparatus for verifying modules from approved vendors
JP4783163B2 (ja) * 2006-01-19 2011-09-28 Okiセミコンダクタ株式会社 マイクロコントローラ
US8700902B2 (en) 2006-02-13 2014-04-15 At&T Intellectual Property I, L.P. Methods and apparatus to certify digital signatures
US8341747B2 (en) * 2006-08-08 2012-12-25 International Business Machines Corporation Method to provide a secure virtual machine launcher
US9389839B2 (en) * 2008-06-26 2016-07-12 Microsoft Technology Licensing, Llc Safe code for signature updates in an intrusion prevention system
US8769654B2 (en) * 2009-06-23 2014-07-01 Cisco Technology, Inc. Counterfeit prevention strategy for pluggable modules
US8776245B2 (en) * 2009-12-23 2014-07-08 Intel Corporation Executing trusted applications with reduced trusted computing base
US20120331308A1 (en) * 2011-06-22 2012-12-27 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
JP6792133B2 (ja) * 2014-08-07 2020-11-25 キヤノンマーケティングジャパン株式会社 サーバと、その処理方法及びプログラム
JP7226831B2 (ja) * 2018-08-02 2023-02-21 Necソリューションイノベータ株式会社 ライセンス管理装置、プログラム実行装置及び方法、並びにアプリケーションプログラム
CN109688158B (zh) * 2019-01-23 2022-07-08 平安科技(深圳)有限公司 金融执行链认证方法、电子装置及存储介质
EP4396713A1 (en) * 2021-08-30 2024-07-10 Qualcomm Incorporated Functional safety software image integrity verifier
US11822647B1 (en) * 2022-03-01 2023-11-21 CSP Inc. Data structure for trust store
US11928205B1 (en) 2022-03-01 2024-03-12 CSP Inc. Systems and methods for implementing cybersecurity using blockchain validation

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4845715A (en) * 1984-10-29 1989-07-04 Francisco Michael H Method for maintaining data processing system securing
US5224160A (en) * 1987-02-23 1993-06-29 Siemens Nixdorf Informationssysteme Ag Process for securing and for checking the integrity of the secured programs
US4930073A (en) * 1987-06-26 1990-05-29 International Business Machines Corporation Method to prevent use of incorrect program version in a computer system
CA1337132C (en) * 1988-07-15 1995-09-26 Robert Filepp Reception system for an interactive computer network and method of operation
GB9010603D0 (en) * 1990-05-11 1990-07-04 Int Computers Ltd Access control in a distributed computer system
JPH04143881A (ja) * 1990-10-05 1992-05-18 Toshiba Corp 相互認証方式
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5235642A (en) * 1992-07-21 1993-08-10 Digital Equipment Corporation Access control subsystem and method for distributed computer system using locally cached authentication credentials
US5349642A (en) * 1992-11-03 1994-09-20 Novell, Inc. Method and apparatus for authentication of client server communication
US5542045A (en) * 1993-10-15 1996-07-30 Software Security, Inc. Method for interposing a security function in a computer program
US5343527A (en) * 1993-10-27 1994-08-30 International Business Machines Corporation Hybrid encryption method and system for protecting reusable software components
GB9422389D0 (en) * 1994-11-05 1995-01-04 Int Computers Ltd Authenticating access control for sensitive functions
US5742759A (en) * 1995-08-18 1998-04-21 Sun Microsystems, Inc. Method and system for facilitating access control to system resources in a distributed computer system
US5757914A (en) 1995-10-26 1998-05-26 Sun Microsystems, Inc. System and method for protecting use of dynamically linked executable modules
US5737523A (en) * 1996-03-04 1998-04-07 Sun Microsystems, Inc. Methods and apparatus for providing dynamic network file system client authentication

Also Published As

Publication number Publication date
EP0770957A3 (en) 2000-03-15
TW378304B (en) 2000-01-01
US6546487B1 (en) 2003-04-08
JPH09231068A (ja) 1997-09-05
US5757914A (en) 1998-05-26
US5970145A (en) 1999-10-19
CN1130648C (zh) 2003-12-10
CN1154515A (zh) 1997-07-16
EP0770957A2 (en) 1997-05-02
JP3982857B2 (ja) 2007-09-26
KR970022747A (ko) 1997-05-30

Similar Documents

Publication Publication Date Title
KR100417443B1 (ko) 동적으로링크된실행모듈의사용을보호하기위한시스템및방법
EP0828208B1 (en) Application certification for an international cryptography framework
US7155743B2 (en) Method and system for controlling use of a dynamically linked software library
CN101894224B (zh) 保护客户端平台上的内容
EP0843249B1 (en) Dynamic classes of service for an international cryptography framework
US8918654B2 (en) Information processing device, program verification method, and recording medium
US6067640A (en) System for management of software employing memory for processing unit with regulatory information, for limiting amount of use and number of backup copies of software
US7739516B2 (en) Import address table verification
KR100917370B1 (ko) 프로그램을 저장한 컴퓨터 판독 가능 매체, 프로그램을실행하는 정보 처리 장치, 및 프로그램을 실행하기 위한프로그램 제어 방법
EP1594036B1 (en) Method for Confirmation of Software and Apparatus for Executing Software
JPH1124919A (ja) 安全な記憶領域でアプリケーション・データを保護する方法及び装置
JP2007514994A (ja) 耐タンパ・トラステッド仮想マシン
KR970049730A (ko) 신뢰된 소오스로부터의 검사 불가능한 프로그램을 사용하는 장치로 검사 가능한 프로그램을 실행하기 위한 시스템 및 방법
CN112764827B (zh) 一种具有安全验证的Java类热加载方法
JP4978896B2 (ja) 通信端末装置、サーバ端末装置、それらを用いる通信システム
CN111737304B (zh) 一种区块链数据的处理方法、装置及设备
JP4664055B2 (ja) プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法
US9122864B2 (en) Method and apparatus for transitive program verification
CN110245464B (zh) 保护文件的方法和装置
TWI518539B (zh) Data processing device
CN115062330B (zh) 基于tpm的智能密码钥匙密码应用接口的实现方法
CN108345804B (zh) 一种可信计算环境中的存储方法和装置
CN106415565A (zh) 保护软件项目
CN118133343A (zh) 基于隐私保护的智能合约生成方法、装置、设备及介质
CN118555084A (zh) 一种LibOS的文件时间校验方法及装置

Legal Events

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

Payment date: 20130107

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20150106

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20160104

Year of fee payment: 13

EXPY Expiration of term