KR100417443B1 - 동적으로링크된실행모듈의사용을보호하기위한시스템및방법 - Google Patents
동적으로링크된실행모듈의사용을보호하기위한시스템및방법 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 216
- 230000004044 response Effects 0.000 claims abstract description 13
- 230000006870 function Effects 0.000 claims description 38
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013475 authorization Methods 0.000 claims 7
- 238000012360 testing method Methods 0.000 abstract description 45
- 238000007689 inspection Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000007717 exclusion Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, 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프로그램 모듈; 그리고상기 메모리에 저장된 제2프로그램 모듈을 포함하며,상기 제1프로그램 모듈은 상기 데이터 처리 유니트에 의하여 실행가능한 프로시저를 포함하는데, 상기 제1프로그램 모듈의 프로시저는;상기 제2프로그램 모듈에 대한 프로시저 호출;제2모듈의 인증을 식별하기 위하여 상기 프로그램 모듈 식별자에 대한 프로시저 호출을 포함하며, 상기 프로그램 식별자에 대한 프로시저 호출은 상기 제2프로그램 모듈에 대한 상기 프로시저 호출의 실행이전에 실행되도록 상기 제1프로그램 모듈에 논리적으로 위치하며; 그리고상기 프로그램 식별자에 대한 상기 프로시저 호출이 상기 프로그램 모듈 식별자에 의하여 리턴된 식별 거절을 초래할 때 상기 제2프로그램 모듈에 대한 상기 프로시저의 실행을 막는 명령을 포함하며;상기 제2프로그램 모듈은 상기 데이터 처리 유니트에 의하여 실행가능한 프로시저를 포함하는데, 상기 제2프로그램 모듈의 프로시저는:상기 제2프로그램 모듈에 대한 상기 프로시저 호출에 응답하여 실행되는 실행가능 프로시저;상기 제1모듈의 인증을 식별하기 위한 상기 프로그램 모듈 식별자에 대한 프로시저 호출을 포함하며, 상기 프로그램 모듈 식별자에 대한 프로시저 호출은 상기 실행가능 프로시저의 실행 이전에 실행될 수 있도록 상기 제2프로그램 모듈에 논리적으로 위치하며; 그리고상기 프로그램 모듈 식별자에 대한 상기 프로시저 호출이 상기 프로그램 모듈 식별자에 의하여 리턴된 식별 거절을 초래할 때, 상기 실행가능 절차의 실행을 막는 명령을 포함하는 컴퓨터 시스템.
- 제 1항에 있어서,상기 프로그램 식별자 모듈은 특정 프로그램 모듈의 명령이 상기 특정 프로그램 모듈이 인증될 것으로 알려진 대응 프로그램 모듈과 동일한지를 지시할 때 임의의 특정 프로그램 모듈에 대한 인증 식별을 발행하고, 그렇지 않다면 인증 식별 거절을 발행하는 명령을 포함하며; 그리고상기 프로시저 호출의 실행을 막는 상기 명령은 상기 프로그램 모듈 식별자에 대한 상기 프로시저 호출이 상기 프로그램 모듈 식별자에 의하여 리턴된 식별자 거절을 초래할 때 상기 제1프로그램 모듈의 실행을 중지하는 명령을 포함하는 것을특징으로 하는 컴퓨터 시스템.
- 제 1항에 있어서,상기 제1프로그램 모듈은 제1디지털 시그네이쳐 및 제1실행가능 프로시저를 포함하며;상기 제2프로그램 모듈은 제2디지털 시그네이쳐 및 제2실행가능 프로시저를 포함하며;상기 프로그램 식별자 모듈은 (A1) 대응 디코딩 키를 이용하여 상기 제2프로그램 모듈의 상기 제2 디지털 시그네이쳐를 디코딩하며, (A2) 미리 정의된 메세지 다이제스트 기능에 따라 상기 제2프로그램 모듈의 적어도 일부의 메세지 다이제스트를 생성하며, (A3) 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭할 때 식별 승인을 리턴하며, (A4) 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭되지 않을 때 식별 거절을 리턴함으로써, 상기 제2프로그램 모듈의 식별을 요청하는 프로시저 호출에 응답하는 명령을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
- 프로그램과 데이터를 저장하는 메모리;상기 메모리에 저장된 프로그램을 실행하는 데이터 처리 유니트;(A) 상기 메모리에 저장되고, 임의의 특정 프로그램 모듈의 인증을 식별하고, 상기 데이터 처리 유니트에 의하여 실행가능하며, 각각의 프로시저 호출에 응답하여 식별 승인 또는 거절을 리턴함으로써 상기 프로그램 모듈 식별자에 대한 프로시저 호출에 응답하도록 구성된 프로그램 모듈 식별자;(B) 상기 메모리에 저장되고, 상기 데이터 처리 유니트에 의하여 실행가능한 제1프로시저를 가지는 제1프로그램 모듈; 및(C) 상기 메모리에 저장된 제2프로그램 모듈을 포함하며,상기 제1프로그램 모듈은 상기 제2프로그램 모듈에 대한 프로시저 호출을 포함하며;상기 제2프로그램 모듈은:(C1) 상기 제2프로그램 모듈에 대한 상기 프로시저 호출에 응답하여 실행될 수 있는 상기 데이터 처리 유니트에 의하여 실행가능한 제2프로시저;(C2) 상기 제1모듈의 인증을 식별하는 상기 프로그램 모듈 식별자에 대한 프로시저 호출을 포함하며, 상기 프로그램 모듈 식별자에 대한 프로시저 호출은 상기 제2실행가능 프로시저의 실행이 완료되기 전에 실행될 수 있도록 상기 제2 프로그램 모듈에 논리적으로 위치하며; 그리고(C3) 상기 프로그램 모듈 식별자에 대한 프로시저 호출이 상기 프로그램 모듈 식별자에 의하여 리턴된 식별 거절을 초래할 때 상기 제2실행가능 프로시저의 실행 완료를 막는 명령을 포함하는 컴퓨터 시스템.
- 제 4항에 있어서,상기 프로그램 식별자 모듈은 특정 프로그램 모듈의 명령이 특정 프로그램모듈이 인증될 것으로 알려진 대응 프로그램 모듈과 일치하는 것을 나타낼 때 임의의 특정 프로그램 모듈에 대한 인증 식별을 발행하고, 그렇지 않다면 인증 식별 거절을 발행하는 명령을 포함하며; 그리고상기 제2실행가능 프로시저의 실행완료를 막는 상기 명령은 상기 프로그램 모듈 식별자에 대한 상기 프로시저 호출이 상기 프로그램 모듈 식별자에 의하여 리턴된 승인 거절을 초래할 때 상기 제2프로그램 모듈의 실행을 중지하는 명령을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
- 제 4항에 있어서,상기 제1프로그램 모듈은 제1디지털 시그네이쳐를 포함하며; 그리고상기 프로그램 식별자 모듈은 (A1) 대응 디코딩 키를 이용하여 상기 제1프로그램 모듈의 상기 제1 디지털 시그네이쳐를 디코딩하며, (A2) 미리 정의된 메세지 다이제스트 기능에 따라 상기 제1프로그램 모듈의 적어도 일부의 메세지 다이제스트를 생성하며, (A3) 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭할 때 식별 승인을 리턴하며, (A4) 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭되지 않을 때 식별 거절을 리턴함으로써, 상기 제1프로그램 모듈의 식별을 요청하는 프로시저 호출에 응답하는 명령을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
- 컴퓨터 판독가능 저장 매체와 상기 매체에 내장된 컴퓨터 프로그램 메카니즘을 포함하는 컴퓨터 프로그램 제품으로서:상기 컴퓨터 프로그램 메카니즘은:(A) 임의의 특정 프로그램 모듈의 인증을 식별하고, 각각의 프로시저 호출에 응답하여 식별 승인 또는 거절을 리턴함으로써, 상기 프로그램 모듈 식별자에 대한 프로시저 호출에 응답하도록 구성된 프로그램 모듈 식별자;(B) 제1프로그램 모듈; 및(C) 제2프로그램 모듈을 포함하며;상기 제1프로그램 모듈은:(B1) 상기 제2프로그램 모듈에 대한 프로시저 호출;(B2) 상기 제2프로그램 모듈에 대한 상기 프로시저 호출의 실행이전에 실행될 수 있도록 상기 제1프로그램 모듈에 논리적으로 위치하는 상기 프로그램 모듈 식별자에 대한 프로시저 호출; 그리고(B3) 상기 프로그램 모듈 식별자에 대한 상기 프로시저 호출이 상기 프로그램 모듈 식별자에 의하여 리턴된 식별 거절을 초래할 때 상기 제2프로그램 모듈에 대한 상기 프로시저 호출의 실행을 막는 명령을 포함하며,상기 제2프로그램 모듈은:(C1) 상기 제2프로그램 모듈에 대한 상기 프로시저 호출에 응답하여 실행되는 실행가능 프로시저;(C2) 상기 제1모듈의 인증을 식별하는 상기 프로그램 모듈에 대한 프로시저 호출을 포함하며, 상기 프로그램 모듈 식별자에 대한 프로시저 호출은 상기 실행가능 프로시저의 실행이 완료되기 전에 실행될 수 있도록 상기 제2프로그램 모듈에 논리적으로 위치하며; 그리고(C3) 상기 프로그램 모듈 식별자에 대한 프로시저 호출이 상기 프로그램 모듈 식별자에 의하여 리턴된 식별 거절을 초래할 때, 상기 실행가능 프로시저의 실행완료를 막는 명령을 포함하는 컴퓨터 프로그램 제품.
- 제 7항에 있어서,상기 프로그램 식별자 모듈은 특정 프로그램 모듈의 명령이 특정 프로그램 모듈이 인증될 것으로 알려진 대응 프로그램 모듈과 일치하는 것을 나타낼 때 임의의 특정 프로그램 모듈에 대한 인증 식별을 발행하고, 그렇지 않다면 인중 식별 거절을 발행하는 명령을 포함하며; 그리고상기 제2실행가능 프로시저의 실행완료를 막는 상기 명령은 상기 프로그램 모듈 식별자에 대한 상기 프로시저 호출이 상기 프로그램 모듈 식별자에 의하여 리턴된 승인 거절을 초래할 때 상기 제2프로그램 모듈의 실행을 중지하는 명령을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
- 제 7항에 있어서,상기 제1프로그램 모듈은 제1디지털 시그네이쳐와 제1실행가능 프로시저를 포함하며;상기 제2프로그램 모듈은 제2디지털 시그네이쳐와 제2실행가능 프로시저를포함하며;상기 프로그램 식별자 모듈은 (A1) 대응 디코딩 키를 이용하여 상기 제2프로그램 모듈의 상기 제2 디지털 시그네이쳐를 디코딩하며, (A2) 미리 정의된 메세지 다이제스트 기능에 따라 상기 제2프로그램 모듈의 적어도 일부의 메세지 다이제스트를 생성하며, (A3) 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭할 때 식별 승인을 리턴하며, (A4) 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭되지 않을 때 식별 거절을 리턴함으로써, 상기 제2프로그램 모듈의 식별을 요청하는 프로시저 호출에 응답하는 명령을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
- 컴퓨터 판독가능 저장 매체와 상기 매체에 저장된 컴퓨터 프로그램을 포함하는 컴퓨터 프로그램 제품으로서:상기 컴퓨터 프로그램 메카니즘은:(A) 임의의 특정 프로그램 모듈의 인증을 식별하고, 각각의 프로시저 호출에 응답하여 식별 승인 또는 거절을 리턴함으로써, 상기 프로그램 모듈 식별자에 대한 프로시저 호출에 응답하도록 구성된 프로그램 모듈 식별자;(B) 제1실행가능 프로시저를 갖는 제1프로그램 모듈; 및(C) 제2프로그램 모듈을 포함하며;상기 제1프로그램 모듈은 상기 제2프로그램 모듈에 대한 프로시저 호출을 포함하며,상기 제2프로그램 모듈은:(C1) 상기 제2프로그램 모듈에 대한 상기 프로시저 호출에 응답하여 실행되는 제2실행가능 프로시저;(C2) 상기 제1모듈의 인증을 식별하는 상기 프로그램 모듈에 대한 프로시저 호출을 포함하며, 상기 프로그램 모듈 식별자에 대한 프로시저 호출은 상기 제2실행가능 프로시저의 실행이 완료되기 전에 실행될 수 있도록 상기 제2프로그램 모듈에 논리적으로 위치하며; 그리고(C3) 상기 프로그램 모듈 식별자에 대한 상기 프로시저 호출이 상기 프로그램 모듈 식별자에 의하여 리턴된 식별 거절을 초래할 때, 상기 제2실행가능 프로시저의 실행완료를 막는 명령을 포함하는 컴퓨터 프로그램 제품.
- 제 10항에 있어서,상기 프로그램 식별자 모듈은 특정 프로그램 모듈의 명령이 특정 프로그램 모듈이 인증될 것으로 알려진 대응 프로그램 모듈과 일치하는 것을 나타낼 때에만 임의의 특정 프로그램 모듈에 대한 인증 식별을 발행하고, 그렇지 않다면 인증 식별 거절을 발행하는 명령을 포함하며; 그리고상기 제2실행가능 프로시저의 실행완료를 막는 상기 명령은 상기 프로그램 모듈 식별자에 대한 상기 프로시저 호출이 상기 프로그램 모듈 식별자에 의하여 리턴된 승인 거절을 초래할 때 상기 제2프로그램 모듈의 실행을 중지하는 명령을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
- 제 10항에 있어서,상기 제1프로그램 모듈은 제1디지털 시그네이쳐를 포함하며;상기 프로그램 식별자 모듈은 (A1) 대응 디코딩 키를 이용하여 상기 제1프로그램 모듈의 상기 제1디지털 시그네이쳐를 디코딩하며, (A2) 미리 정의된 메세지 다이제스트 기능에 따라 상기 제1프로그램 모듈의 적어도 일부의 메세지 다이제스트를 생성하며, (A3) 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭할 때 식별 승인을 리턴하며, (A4) 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭되지 않을 때 식별 거절을 리턴함으로써, 상기 제1프로그램 모듈의 식별을 요청하는 프로시저 호출에 응답하는 명령을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
- (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프로그램 모듈의 프로시저의 실행완료를 막는 단계를 포함하는 방법.
- 제 13항에 있어서,제1프로그램 모듈의 인증을 식별하는 상기 단계는 제1프로그램 모듈이 인증될 것으로 알려진 대응 프로그램 모듈과 동일한지를 결정하며, 만일 상기 결정이 네거티브라면 인증 식별 거절을 발행하는 단계를 포함하며; 그리고단계(C)는 상기 제1프로그램 모듈의 실행을 중지하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 13항에 있어서,상기 제1프로그램 모듈은 제1디지털 시그네이쳐를 포함하며, 상기 제2프로그램 모듈은 제2디지털 시그네이쳐를 포함하며;상기 단계(A)는 대응 디코딩 키를 이용하여 상기 제2프로그램 모듈의 상기제2디지털 시그네이쳐를 디코딩하는 단계, 미리 정의된 메세지 다이제스트 기능에 따라 상기 제2프로그램 모듈의 적어도 일부의 메세지 다이제스트를 생성하는 단계, 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭할 때 상기 제2프로그램 모듈의 인증을 식별하고, 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭되지 않을 때 상기 제2프로그램 모듈의 인증의 식별을 거절하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 15항에 있어서,상기 단계(D)는 대응 디코딩 키를 이용하여 상기 제1프로그램 모듈의 상기 제1디지털 시그네이쳐를 디코딩하는 단계, 미리 정의된 메세지 다이제스트 기능에 따라 상기 제1프로그램 모듈의 적어도 일부의 메세지 다이제스트를 생성하는 단계, 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭할 때 상기 제1프로그램 모듈의 인증을 식별하고, 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭되지 않을 때 상기 제1프로그램 모듈의 인증의 식별을 거절하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 13항에 있어서,상기 단계(A)는 신뢰성있는 프로그램 모듈에 대한 프로시저를 호출하는 단계를 포함하며, 상기 프로그램 모듈 식별자는 상기 제2프로그램 모듈의 인증을 식별하고 상기 프로시저 호출에 응답하여 식별 승인 및 거절을 리턴함으로써 프로시저호출에 응답하는 것을 특징으로 하는 방법.
- 프로그램 모듈을 링크하는 방법으로서:(A) 컴퓨터 메모리에 제1프로그램 모듈과 제2프로그램 모듈을 저장하는 단계; 상기 제1 프로그램 모듈의 프로그램을 실행하는 단계, 그리고 상기 제1프로그램 모듈의 프로시저를 실행하는 동안, 상기 제1프로그램 모듈로부터 상기 제2프로그램 모듈로 프로시저를 호출하는 단계;(B) 상기 제2프로그램 모듈의 프로시저를 실행하면서 상기 제2프로그램 모듈의 프로시저의 실행완료이전에, 상기 제1프로그램 모듈의 인증을 식별하는 단계;(C) 상기 제1프로그램 모듈의 인증을 식별할 때, 결과를 생성하기 위하여 상기 제2프로그램 모듈의 프로시저를 실행하는 것을 완료하며, 그 결과를 상기 제1프로그램 모듈의 프로시저로 리턴하는 단계; 그리고(D) 상기 제1프로그램 모듈의 인증을 식별하는데 실패할 때, 상기 제2프로그램 모듈의 프로시저의 실행완료를 막는 단계를 포함하는 방법.
- 제 18항에 있어서,상기 제1프로그램 모듈은 제1디지털 시그네이쳐를 포함하며;상기 단계(B)는 대응 디코딩 키를 이용하여 상기 제1프로그램 모듈의 상기 제1디지털 시그네이쳐를 디코딩하는 단계, 미리 정의된 메세지 다이제스트 기능에 따라 상기 제1프로그램 모듈의 적어도 일부의 메세지 다이제스트를 생성하는 단계,상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭할 때 상기 제1프로그램 모듈의 인증을 식별하고, 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭되지 않을 때 상기 제1프로그램 모듈의 인증의 식별을 거절하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 18항에 있어서,상기 단계(A)는 상기 제1프로그램 모듈로부터 상기 제2프로그램 모듈로 프로시저를 호출하기 전에;(A1) 신뢰성있는 프로그램 모듈 식별자에 대한 프로시저를 호출함으로써 상기 제2프로그램 모듈의 인증을 식별하는 단계를 포함하며, 상기 프로그램 모듈 식별자는 상기 제2프로그램 모듈의 인증을 식별하고 상기 프로시저 호출에 응답하여 식별 승인 또는 거절을 리턴함으로써 응답하며;(A2) 상기 제2프로그램 모듈의 인증을 식별할 때, 상기 제1프로그램 모듈로부터 상기 제2프로그램 모듈로 프로시저를 호출하는 단계; 그리고(A3) 상기 제2프로그램 모듈의 인증 식별을 식별할 때, 상기 제1프로그램 모듈로부터 상기 제2프로그램 모듈로 프로시저 호출을 막는 단계를 포함하는 것을 특징으로 하는 방법.
- 제 20항에 있어서, 상기 제1프로그램 모듈은 제1디지털 시그네이쳐를 포함하며, 상기 제2프로그램 모듈은 제2디지털 시그네이쳐를 포함하며;상기 단계(A3)는 대응 디코딩 키를 이용하여 상기 제2프로그램 모듈의 상기 제2디지털 시그네이쳐를 디코딩하는 단계, 미리 정의된 메세지 다이제스트 기능에 따라 상기 제2프로그램 모듈의 적어도 일부의 메세지 다이제스트를 생성하는 단계, 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭할 때 상기 제2 프로그램 모듈의 인증을 식별하고, 상기 디코딩된 디지털 시그네이쳐가 상기 메세지 다이제스트와 매칭되지 않을 때 상기 제2프로그램 모듈의 인증의 식별을 거절하는 단계를 포함하는 것을 특징으로 하는 방법.
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)
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)
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 |
-
1995
- 1995-10-26 US US08/547,720 patent/US5757914A/en not_active Expired - Lifetime
-
1996
- 1996-10-09 EP EP96307347A patent/EP0770957A3/en not_active Withdrawn
- 1996-10-15 TW TW085112575A patent/TW378304B/zh active
- 1996-10-22 JP JP27920796A patent/JP3982857B2/ja not_active Expired - Lifetime
- 1996-10-23 KR KR1019960047605A patent/KR100417443B1/ko not_active IP Right Cessation
- 1996-10-24 CN CN96122021A patent/CN1130648C/zh not_active Expired - Fee Related
-
1997
- 1997-12-17 US US08/992,079 patent/US5970145A/en not_active Expired - Lifetime
-
1999
- 1999-10-19 US US09/420,946 patent/US6546487B1/en not_active Expired - Lifetime
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 |