KR20010032955A - 상이한 어드레스 공간에서 다른 프로세스를 인증하는 방법및 장치 - Google Patents

상이한 어드레스 공간에서 다른 프로세스를 인증하는 방법및 장치 Download PDF

Info

Publication number
KR20010032955A
KR20010032955A KR1020007006300A KR20007006300A KR20010032955A KR 20010032955 A KR20010032955 A KR 20010032955A KR 1020007006300 A KR1020007006300 A KR 1020007006300A KR 20007006300 A KR20007006300 A KR 20007006300A KR 20010032955 A KR20010032955 A KR 20010032955A
Authority
KR
South Korea
Prior art keywords
module
response
secret key
challenge request
request
Prior art date
Application number
KR1020007006300A
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=25535283&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20010032955(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 피터 엔. 데트킨, 인텔 코오퍼레이션 filed Critical 피터 엔. 데트킨
Publication of KR20010032955A publication Critical patent/KR20010032955A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response

Abstract

본 발명에 따르면, 로컬 프로세스(10)와 상이한 어드레스 공간에서 동작하는 원격 프로세스(12)를 인증하는 방법이 제공되며, 이 방법은 로컬 프로세스에 의해 임시 비밀키(16)를 포함하는 탬퍼 방지 모듈(14)을 생성하는 단계; 상기 로컬 프로세스로부터 상기 원격 프로세스로 상기 탬퍼 방지 모듈 및 도전요구(18)를 전송하는 단계; 상기 원격 프로세스에 의해 상기 탬퍼 방지 모듈을 실행하고, 상기 원격 프로세스의 무결성이 상기 탬퍼 방지 모듈에 의해 검증될 때 상기 비밀키를 복구(recover)하는 단계; 응답(20)을 생성하기 위해 상기 비밀키를 이용하여 상기 도전요구를 인코딩하는 단계; 상기 응답을 상기 로컬 프로세스로 전송하는 단계; 및 상기 로컬 프로세스에 의해 상기 응답을 디코딩하는 단계를 포함한다. 선택적으로, 상기 탬퍼 방지 모듈은 상기 원격 프로세스로부터의 정보에 대한 요구를 포함하고, 상기 응답은 상기 정보 요구에 대한 회답을 포함한다.

Description

상이한 어드레스 공간에서 다른 프로세스를 인증하는 방법 및 장치{METHOD FOR STRONGLY AUTHENTICATING ANOTHER PROCESS IN A DIFFERENT ADDRESS SPACE}
암호 시스템(cryptographic system)에서 도전-응답 프로토콜을 수행하는 현재의 방법은 프로토콜을 수행하는 당사자(parties) 또는 프로세스들이 높은 값의 영구 비밀키(high-value persistent secret)를 공유할 필요가 있거나 또는 양 당사자가 모두 2개의 비대칭 암호키 쌍의 적절한 부분을 처리해야 할 필요가 있다. 이들 두 시나리오 모두에서, 당사자들 사이의 비밀키의 사전 통신이나 또는 다른 당사자의 암호키 쌍의 공개키 요소에 관한 지식이 요구된다. 이러한 도전-응답 프로토콜의 대부분의 버전은 "침입자(man-in-the-middle)"의 공격에 취약성이 있으며, 이것은 두 당사자가 네트워크를 통해 통신하는 경우에 특히 문제가 된다. 그러므로, 일반적인 도전-응답 프로토콜은 비밀키를 공유하는 2개의 엔드포인트 사이에 검증된 채널이 설정된 경우에만 입증한다. 그러나, 엔드포인트 중 하나가 불확실할 수 있다. 다른 당사자가 비밀키를 공유하고 있다는 것을 단지 검증하는 것과 대비하여, 다른 당사자가 해킹당하거나 변경되지 않았다는 것을 보증하기 위해 한 당사자가 다른 당사자를 인증할 수 있다면 바람직할 것이다. 이것은 당사자들이 동일한 어드레스 공간을 공유할 때, 다른 당사자의 메모리 내용을 검사하고, 그 디지털 서명(digital signature)을 컴퓨팅하고, 그 무결성(integrity)을 검증함으로써 수행될 수 있다. 그러나, 이것은 메모리가 공유되지 않는 한 서로 다른 프로세스 어드레스 공간을 통해서는 달성될 수 없다. Bruce Schneier의 "Applied Cryptography"(제2판, 1996)에는 다양한 도전-응답 프로토콜 및 그 결함에 대해 기술되어 있다. 따라서, 비밀키가 현재 가치가 없는 것이 될 수 있도록 요구되는 비밀키를 인증 프로세스의 일부로서 안전하게 통신함으로써 종래 기술의 문제점 및 결함을 극복하고 비밀키를 미리 통신할 필요가 없는 프로토콜이 요구된다.
본 발명은 일반적으로 컴퓨터 시스템의 원격 보안 프로토콜에 관한 것으로서, 특히 상이한 어드레스 공간에서 동작하는 프로세스의 확실성(authenticity)을 보증하기 위한 도전-응답 프로토콜(challenge-response protocols)에 관한 것이다.
본 발명의 특징 및 장점은 다음의 상세한 설명으로부터 명백해질 것이다.
도1은 본 발명에 따른 보안 방식으로 서로 통신하는 2개의 프로세스를 도시한 도면.
도2는 본 발명에 따라 다른 프로세스를 인증하기 위한 단계의 흐름도.
도3은 본 발명의 일실시예에 따라 인증 방법이 프로그램되기에 적절한 컴퓨터 시스템의 일례를 도시한 도면.
발명의 요약
본 발명의 일실시예는 제2 프로세스와 상이한 어드레스 공간에서 동작하는 제1 프로세스를 인증하는 방법에 관한 것이며, 이 방법은 상기 제2 프로세스에 의해 비밀키를 포함하는 모듈을 생성하는 단계; 상기 제2 프로세스로부터 상기 제1 프로세스로 상기 모듈 및 도전요구(challenge)를 전송하는 단계; 상기 제1 프로세스에 의해 상기 모듈을 실행하고, 상기 제1 프로세스의 무결성이 상기 모듈에 의해 검증될 때 상기 비밀키를 복구(recover)하는 단계; 응답(response)을 생성하기 위해 상기 비밀키를 이용하여 상기 도전요구를 인코딩하는 단계; 상기 응답을 상기 제2 프로세스로 전송하는 단계; 및 상기 제2 프로세스에 의해 상기 응답을 디코딩하는 단계를 포함한다.
다음의 설명에서는, 본 발명의 다양한 관점이 설명될 것이다. 그러나, 이 기술분야에 통상의 지식을 가진 자에게는, 본 발명의 이러한 관점의 단지 일부 또는 전부에 의해 본 발명이 실시될 수 있다는 것이 명백할 것이다. 설명 목적상, 본 발명의 완전한 이해를 제공하기 위해 특정 번호, 재료 및 구성이 설명된다. 그러나, 이 기술분야에 통상의 지식을 가진 자에게는 이러한 특정 세부사항 없이도 본 발명이 실시될 수 있다는 것은 자명할 것이다. 예를 들어, 잘 알려진 특징들은 본 발명을 모호하게 만들지 않기 위해 생략되거나 간략화되었다.
도1은 본 발명에 따른 보안 방식으로 서로 통신하는 2개의 프로세스를 도시하고 있다. 도1은 2개의 프로세스, 즉 프로세스 A(10) 및 프로세스 B(12)를 도시하고 있다. 이들 프로세스는 어드레스 공간을 공유하지 않으며, 동일한 프로세서 또는 컴퓨터 시스템에 존재할 수도 있고 존재하지 않을 수도 있다. 통상적으로, 이들 프로세스는 전자 상거래와 같은 트랜잭션에 대한 당사자가 되며, 프로세스 B(12)가 프로세스 A(10)에게 수행될 서비스에 대해 요구한다. 이러한 서비스의 예로는 소비자 구매가 있으며, 네트워크에 의해 접속된 두 당사자를 수반하는 보안이 요구되는 어떠한 트랜잭션도 고려될 수 있다. 프로세스 A가 서비스에 대한 프로세스 B의 요구를 충족시키기 전에, 프로세스 A는 확실성을 입증하고 프로세스 B의 무결성을 검증하기 위해 시도한다. 확실성(authenticity)이란 프로세스 B가 되고자 하는 엔티티가 중간에 있는 부정한 침입자가 아니라 실제적으로 프로세스 B라는 것을 의미한다. 무결성 검증은 프로세스 B가 어떤 방식으로든지 변경되거나 또는 해킹되지 않았다는 것을 의미한다. 본 발명의 일실시예에서, 프로세스 A는 프로세스 B의 무결성을 검증할 수 있는 탬퍼 방지 모듈(tamper resistant module)(14)을 생성한다. 이 탬퍼 방지 모듈은 하나의 프로세스로부터 다른 프로세스로 쉽게 전달될 수 있고 수신측 시스템에서 실행될 수 있는 실행가능 소프트웨어의 작은 일부분이다. 프로세스 A는 임시 비밀키를 생성하고, 프로세스 B의 신임장(credential)과 메모리 내의 실제 이미지가 일치하는 경우에만 탬퍼 방지 모듈이 비밀키를 누설하게 되도록 탬퍼 방지 모듈 내의 상기 임시 비밀키를 프로세스 B로 전달한다. 프로세스 B의 신임장은 프로세스 A가 프로세스 B의 신임장을 미리 알고 있는 경우에 탬퍼 방지 모듈과 함께 전송될 수 있으며, 또는 프로세스 B의 시스템에서 탬퍼 방지 모듈에 의해 검사될 수 있다(즉, 프로세스 B의 시스템 상의 신임장의 위치가 그것이 실행되기 전에 인수로서 탬퍼 방지 모듈로 전달될 수 있다). 신임장은 통상적으로 프로세스 B의 코드 이미지의 소정의 서명된 목록(signed manifest)이 된다.
탬퍼 방지 모듈은 관찰 및 수정을 방지하는 소프트웨어이다. 이것은 부당한 침입이 존재하는 경우에도 소정의 한계 내에서 의도된 바대로 동작하도록 기대할 수 있다. 탬퍼 방지 소프트웨어는 위치에 무관해야 하며 메모리에서의 재배치를 필요로 하지 않는다. 그러므로, 탬퍼 방지 소프트웨어는 그것이 생성된 동일한 어드레스 공간 또는 프로세서에서 실행될 필요가 없다. 이 소프트웨어는 탬퍼 방지 컴파일러(도시 안됨)를 이용하여 생성된다. 탬퍼 방지 컴파일러는 완전하게 준비된 소프트웨어 모듈에 적용될 때 플레인-텍스트(plain-text) 소스 코드 생성 이미지를 새로운 이미지로 대체하는 컴파일러이다. 이러한 자기-복호(self-decrypting) 소프트웨어는 이미지의 어떤 부분도 그것이 탬퍼 방지 컴파일러에 의해 컴파일된 때로부터 변경되지 않은 경우에만 적절하게 실행되게 된다. 탬퍼 방지 컴파일러는 소프트웨어의 커널(kernels)에 "히든(hidden)" 실행 모드로 실행하는 능력을 제공하기 위한 소프트웨어 접근법이다. 어떤 소프트웨어가 실제적으로 실행되고 있는지 또는 소프트웨어에 어떠한 수정이 이루어졌는지 해독하기 위한 시도는 결과적으로 커널의 완전한 장애를 초래하게 된다(즉, 적절하게 해독되지 않게 된다).
탬퍼 방지 모듈(14)은 무결성 검증 커널(Integrity Verification Kernel)(IVK)이며, IVK는 프로그램 이미지가 공급된 디지털 서명과 일치하는지 검증하는 소프트웨어이다. 이것은 실행중인 소프트웨어에 대해 이루어진 변경을 검출하기 위한 견고한 메카니즘을 제공하며, 이러한 변경은 소프트웨어에 대한 부정한 침입이나 또는 전송 에러에 의해 유발될 수 있다. 소프트웨어에 대한 변경은 검증 프로세스에서 장애를 초래한다. 탬퍼 방지 소프트웨어를 위한 IVK는 객체 코드의 자체-검사, 상대방 모듈의 쌍무 인증(bilateral authentication), 및 소프트웨어 모듈의 무결성을 검증하기 위한 로컬 및 원격 데이터에 검사를 수행하도록 구성된다. IVK는 자체-수정, 자체-해독 및 설치가 고유하다. 서로 통신할 필요가 있는 2개의 인터프로세스(interprocess) 소프트웨어 모듈은 호출하고 있는 모듈이 피호출 모듈의 디지털 서명을 컴퓨팅하고 그 컴퓨팅된 서명을 소정의 값에 비교함으로써 기대하고 있는 것이 되도록 설정될 수 있다. 이러한 프로세스는 쌍무 인증 프로세스로 불린다. 본 발명에서, IVK는 프로세스 B의 무결성을 검증하기 위해 사용된다. "Tamper Resistent Methods and Apparatus"란 명칭의 미국특허출원 제08/662,679호 및 "Tamper Resistent Methods and Apparatus"란 명칭의 미국특허출원 제08/924,740호에는 탬퍼 방지 모듈을 생성하고 무결성 검증 프로세스에 IVK 및 쌍무 인증을 제공하는 상세한 방법이 기재되어 있으며, 이들 두 특허출원은 본 발명과 동일한 양수인에게 양도되어 있고, 여기에 참조로서 포함된다.
또한, 탬퍼 방지 모듈(14)은 비밀키(16)를 포함하고 있으며, 이 비밀키는 프로세스 B(12)에 대한 무결성 검증이 성공할 때까지 탬퍼 방지 모듈이 누설하지 않게 된다. 이 비밀키는 프로세스 A에 의해 선택되는 임의적인 디지털 값이 될 수 있다. 프로세스 A(10)는 도전요구(challenge)(18)와 함께 비밀키를 포함하는 탬퍼 방지 모듈(14)을 프로세스 B(12)로 전달한다. 이 탬퍼 방지 모듈은 도전 이전, 도전 이후 및 도전과 동시에 프로세스 B로 전송될 수 있다. 다음에, 프로세스 B는 그 자신의 시스템에서 탬퍼 방지 모듈을 실행시킨다. 탬퍼 방지 모듈은 그것이 실행되고 있는 동안에는 검사 또는 변경이 매우 어렵다. 만일 탬퍼 방지 모듈이 적절하게 실행되고 메모리 내의 프로세스 B의 현재 이미지가 프로세스 B의 이미지의 서명된 목록(17)에 따라 성공적으로 검증되면, 프로세스 B는 비밀키를 복구하고, 그 비밀키를 이용하여 제공된 도전요구를 인코딩하여 적절한 응답(response)을 발생하게 된다. 그러므로, 응답(20)은 암호화된 도전요구 E(challenge)(22)를 포함하게 된다. 이 응답은 다시 프로세스 A로 전송된다. 비밀키를 이미 알고 있는 프로세스 A는 암호화된 도전요구를 복호한다. 만일 응답이 프로세스 A가 기대하고 있는 것이면, 프로세스 A는 프로세스 B가 확실하고 그 무결성이 손상되지 않았다는 것을 알게 된다. 다음에는 당사자들 사이에 다른 대화가 시작될 수 있다.
본 발명은 비밀키(16)가 오직 한 번만 사용되는 일시적이고 낮은 값의 비밀키인 경우에 더욱 효과적이다. 이 비밀키는 현재 영구적인 가치가 없는 것이 바람직하다. 그러므로, 프로세스 A는 도전-응답 시퀀스마다 비밀키를 변경한다. 또한, 응답(20)이 지정된 짧은 시간 주기 내에 리턴되도록 프로세스 A에서 타임아웃 메카니즘이 사용될 수 있다. 이것은 프로세스 B에서 부정한 사용자가 탬퍼 방지 모듈을 인터셉트하고 여기서 설명된 고유의 보안성을 파괴하기 위한 도전 및 시도를 할 수 없도록 만드는데, 그 이유는 침입이 할당된 시간 내에 성공적으로 수행될 수 없기 때문이다. 선택적으로, 프로세스 A는 도전의 일부로서 프로세스 B로부터 정보를 요구할 수 있다. 이 정보는 다음에 다시 도전요구와 함께 프로세스 A로 리턴되는 응답(20) 내에 인코딩된다.
도2는 본 발명에 따라 다른 프로세스를 인증하기 위한 단계들의 흐름도가 도시되어 있다. 단계(100)에서, 프로세스 A는 비밀키를 포함하는 탬퍼 방지 모듈을 생성한다. 이 비밀키는 프로세스 A가 알고 있는 임의의 디지털 값이 될 수 있다. 바람직하게는, 이것은 새로 생성되는 난수(random number)와 같은 일시적인 낮은 값의 비밀키가 될 수 있다. 단계(102)에서, 프로세스 A는 비밀키 및 도전요구와 선택적으로는 정보에 대한 요구를 포함하는 탬퍼 방지 모듈을 프로세스 B로 전송한다. 다음에, 단계(104)에서 프로세스 B는 탬퍼 방지 모듈을 실행시키고, 그것에 의해 실행중인 탬퍼 방지 모듈에 의해 컴퓨팅된 프로세스 B의 디지털 서명이 프로세스 B의 이미지의 서명된 목록에 일치하는 경우에 그 비밀키를 복구한다. 만일 프로세스 B의 이미지가 서명된 목록에 따른 검증에 실패하면, 탬퍼 방지 모듈은 탬퍼링 또는 다른 에러 상태를 검출하고, 프로세스 A 또는 프로세스 B에 의해 더 이상 처리가 수행되지 않는다. 다음에, 프로세스 A는 프로세스 B가 확실성이 없거나 또는 부정한 사용자가 탬퍼 방지 모듈을 해킹하려고 시도한 것으로 가정한다. 그렇지 않은 경우에, 프로세스 B는 프로세스 A로부터 수신된 도전요구를 인코딩하고 응답을 발생한다(단계 106). 인코딩 연산은 키로서 비밀키를 이용하는 적절한 암호화 알고리즘의 실행을 포함한다. 단계(108)에서, 프로세스 B는 필요한 경우에 프로세스 A의 정보 요구에 대한 회답(answer)을 인코딩한다. 다음에, 프로세스 B는 단계(110)에서 응답 및 선택적 회답을 프로세스 A로 전송한다. 마지막으로, 프로세스 A는 B를 확인하기 위해 응답을 디코딩하고, 선택적으로는 그 정보 요구에 대한 회답을 습득한다. 만일 디코딩된 응답이 프로세스 A가 프로세스 B로 전송한 도전요구를 포함하면, 프로세스 B는 인증한 것이다.
이 기술분야에 통상의 지식을 가진 자는 본 발명이 탬퍼 방지 검증 프로세스의 일부로서 비밀키를 안전하게 전송하고, 이 비밀키는 현재 영구적 가치가 없는 것이라는 것을 이해할 것이다. 또한, 비밀키가 통신 프로세스에 의해 미리 공유될 필요가 없으며, 2개의 비대칭 키 쌍 요소들이 프로세스에 의해 공유되지 않는다. 본 발명에서, 원격 프로세스의 인증을 원하는 당사자는 그 확실성을 판단하기 위해 원격 프로세스로 에이전트(즉, 탬퍼 방지 모듈)을 전송한다. 이 에이전트는 그것이 부정한 사용자에 의해 변경될 수 없는 방식으로 구성된다. 그러나, 도시된 실시예에서 한가지 제한은 프로세스 A가 프로세스 B의 운영체제 및 프로세서 상에서 실행될 수 있는 탬퍼 방지 모듈을 구성할 수 있어야 한다는 것이다. 프로세스 A 및 프로세스 B가 서로 멀리 떨어진 시스템 상에 있을 때, 프로세스 A는 제1 표본(sample) 컴퓨터 시스템 상에서 실행되고 있고, 프로세스 B는 네트워크를 통해 상기 제1 표본 컴퓨터 시스템에 접속된 제2 표본 컴퓨터 시스템 상에서 실행되고 있는 것이다. 도3의 표본 컴퓨터 시스템(200)은 프로세서 버스(205)를 통해 상호 접속된 중앙처리장치(CPU)(202)와 캐시 메모리(204)를 포함하고 있다. 이 표본 컴퓨터 시스템(200)은 또한 고성능 I/O 버스(208)와 표준 I/O 버스(218)를 포함하고 있다. 프로세서 버스(205)와 고성능 I/O 버스(208)는 호스트 브릿지(206)에 의해 브릿지되고, 고성능 I/O 버스(208)와 표준 I/O 버스(218)는 I/O 버스 브릿지(210)에 의해 브릿지된다. 고성능 I/O 버스(208)에는 메인 메모리(212)와 비디오 메모리(214)가 연결된다. 비디오 메모리(214)에는 비디오 디스플레이(216)가 연결되어 있다. 표준 I/O 버스(218)에는 대용량 기억장치(220)와 키보드 및 포인팅 장치(222)가 연결되어 있다.
이들 구성요소는 이 기술분야에 잘 알려진 그들의 규정된 기능을 수행한다. 특히, 대용량 기억장치(220)는 인증 및 탬퍼 방지 프로그램/애플리케이션의 실행가능한 명령어들을 위한 영구적인 저장을 제공하기 위해 사용되고, 메인 메모리(212)는 CPU(202)에 의한 실행 중에 인증 및 탬퍼 방지 프로그램/애플리케이션의 실행가능한 명령어들을 일시적으로 저장하기 위해 사용된다.
비록 본 발명이 실시예를 참조하여 설명되었지만, 이러한 설명이 제한적인 의미로 해석되어서는 안된다. 이 기술분야에 통상의 지식을 가진 자에게 명백한 본 발명의 다른 실시예 및 이들 실시예의 다양한 변형도 본 발명의 사상 및 범위에 속하는 것으로 간주되어야 한다.

Claims (23)

  1. 제2 프로세스와 상이한 어드레스 공간에서 동작하는 제1 프로세스를 인증하는 방법에 있어서,
    상기 제2 프로세스에 의해 비밀키를 포함하는 모듈을 생성하는 단계;
    상기 제2 프로세스로부터 상기 제1 프로세스로 상기 모듈 및 도전요구(challenge)를 전송하는 단계;
    상기 제1 프로세스에 의해 상기 모듈을 실행하고, 상기 제1 프로세스의 무결성이 상기 모듈에 의해 검증될 때 상기 비밀키를 복구(recover)하는 단계;
    응답(response)을 생성하기 위해 상기 비밀키를 이용하여 상기 도전요구를 인코딩하는 단계;
    상기 응답을 상기 제2 프로세스로 전송하는 단계; 및
    상기 제2 프로세스에 의해 상기 응답을 디코딩하는 단계
    를 포함하는 프로세스 인증 방법.
  2. 제 1 항에 있어서,
    상기 모듈은 탬퍼 방지 모듈인
    프로세스 인증 방법.
  3. 제 1 항에 있어서,
    상기 비밀키는 오직 한 번만 이용되는
    프로세스 인증 방법.
  4. 제 1 항에 있어서,
    상기 비밀키는 현재 영구적 가치가 없는 것인
    프로세스 인증 방법.
  5. 제 1 항에 있어서,
    상기 응답이 소정의 시간 주기 내에서 수신되지 않으면, 상기 제1 프로세스가 확실성이 없는 것으로 판단하는 단계
    를 더 포함하는 프로세스 인증 방법.
  6. 제 1 항에 있어서,
    상기 모듈에 의해 판단이 이루어진 상기 제1 프로세스의 디지털 서명이 상기 제1 프로세스의 서명된 목록(signed manifest)과 일치하는 경우에 상기 제1 프로세스가 상기 모듈에 의해 인증되는
    프로세스 인증 방법.
  7. 제 1 항에 있어서,
    상기 도전요구는 상기 제1 프로세스로부터의 정보에 대한 요구를 포함하는
    프로세스 인증 방법.
  8. 제 7 항에 있어서,
    상기 응답에 상기 정보 요구에 대한 회답(answer)을 인코딩하는 단계
    를 더 포함하는 프로세스 인증 방법.
  9. 제 8 항에 있어서,
    상기 제2 프로세스에 의해 상기 회답을 디코딩하는 단계
    를 더 포함하는 프로세스 인증 방법.
  10. 제2 프로세스와 상이한 어드레스 공간에서 동작하는 제1 프로세스를 인증하기 위한 장치에 있어서,
    프로그래밍 명령어를 실행하기 위한 처리 유닛; 및
    상기 처리 유닛에 의해 실행될 상기 제2 프로세스의 다수의 프로그래밍 명령어를 저장하고 있는 저장 매체
    를 포함하고,
    상기 다수의 프로그래밍 명령어는 실행될 때, 비밀키를 포함하는 모듈을 생성하고, 도전요구를 생성하고, 상기 모듈 및 도전요구를 상기 제1 프로세스로 전송하고, 상기 제1 프로세스로부터 상기 도전요구에 대한 응답을 수신하고, 상기 응답을 디코딩하는
    프로세스 인증 장치.
  11. 제 10 항에 있어서,
    상기 모듈은 탬퍼 방지 모듈인
    프로세스 인증 장치.
  12. 제 10 항에 있어서,
    상기 도전요구는 상기 제1 프로세스로부터의 정보에 대한 요구를 포함하는
    프로세스 인증 장치.
  13. 제 10 항에 있어서,
    상기 비밀키는 현재 영구적 가치가 없는
    프로세스 인증 장치.
  14. 제2 프로세스와 상이한 어드레스 공간에서 동작하는 제1 프로세스를 인증하기 위한 장치에 있어서,
    프로그래밍 명령어를 실행하기 위한 처리 유닛; 및
    상기 처리 유닛에 의해 실행될 상기 제2 프로세스의 다수의 프로그래밍 명령어를 저장하고 있는 저장 매체
    를 포함하고,
    상기 다수의 프로그래밍 명령어는 실행될 때, 상기 제2 프로세스로부터 모듈을 수신하고, 상기 모듈의 실행을 개시하고, 상기 모듈의 실행 중에 상기 제1 프로세스의 무결성이 검증되는 경우에 상기 모듈에 내장된 비밀키를 복구하고, 상기 제2 프로세스로부터 도전요구를 수신하고, 응답을 생성하기 위해 상기 비밀키를 이용하여 상기 도전요구를 인코딩하고, 상기 응답을 상기 제2 프로세스로 전송하는
    프로세스 인증 장치.
  15. 제 14 항에 있어서,
    상기 모듈은 탬퍼 방지 모듈을 포함하는
    프로세스 인증 장치.
  16. 제 14 항에 있어서,
    상기 모듈에 의해 판단이 이루어진 상기 제1 프로세스의 디지털 서명이 상기 제1 프로세스의 서명된 목록과 일치하는 경우에 상기 제1 프로세스가 검증되는
    프로세스 인증 장치.
  17. 제 14 항에 있어서,
    상기 도전요구는 상기 제1 프로세스로부터의 정보에 대한 요구를 포함하고, 상기 다수의 프로그래밍 명령어는 상기 응답에 상기 정보 요구에 대한 회답을 인코딩하는
    프로세스 인증 장치.
  18. 제2 프로세스와 상이한 어드레스 공간에서 동작하는 제1 프로세스를 인증하기 위한 장치에 있어서,
    프로그래밍 명령어를 실행하기 위한 처리 유닛; 및
    상기 처리 유닛에 의해 실행될 다수의 프로그래밍 명령어를 저장하고 있는 저장 매체
    를 포함하고,
    상기 다수의 프로그래밍 명령어는 실행될 때, 비밀키를 포함하는 모듈을 생성하고, 도전요구를 생성하고, 상기 모듈 및 도전요구를 상기 제1 프로세스로 전송하고, 상기 제1 프로세스의 어드레스 공간에서 상기 모듈의 실행을 개시하고, 상기 모듈의 실행 중에 상기 제1 프로세스의 무결성이 검증되는 경우에 상기 모듈에 내장된 비밀키를 복구하고, 상기 제2 프로세스로부터 도전요구를 수신하고, 응답을 생성하기 위해 상기 비밀키를 이용하여 상기 도전요구를 인코딩하고, 상기 응답을 상기 제2 프로세스로 전송하고, 상기 제1 프로세스로부터 상기 도전요구에 대한 응답을 수신하고, 상기 응답을 디코딩하는
    프로세스 인증 장치.
  19. 로컬 프로세스와 원격 프로세스의 쌍무 인증을 위한 장치에 있어서,
    프로그래밍 명령어를 실행하기 위한 처리 유닛; 및
    상기 처리 유닛에 의해 실행될 로컬 프로세스의 다수의 프로그래밍 명령어를 저장하고 있는 저장 매체
    를 포함하고,
    상기 다수의 프로그래밍 명령어는 실행될 때, 제1 비밀키를 포함하는 제1 모듈을 생성하고, 제1 도전요구를 생성하고, 상기 제1 모듈 및 상기 제1 도전요구를 원격 프로세스로 전송하고, 상기 원격 프로세스로부터 상기 제1 도전요구에 대한 제1 응답을 수신하고, 상기 제1 응답을 디코딩하고, 제2 모듈을 수신하고, 상기 제2 모듈의 실행을 개시하고, 상기 제2 모듈의 실행 중에 상기 로컬 프로세스의 무결성이 검증되는 경우에 상기 제2 모듈에 내장된 제2 비밀키를 복구하고, 상기 원격 프로세스로부터 제2 도전요구를 수신하고, 제2 응답을 생성하기 위해 상기 제2 비밀키를 이용하여 제2 도전요구를 인코딩하고, 상기 제2 응답을 상기 원격 프로세스로 전송하는
    프로세스 인증 장치.
  20. 프로세서에 의해 실행되도록 설계된 다수의 머신 판독가능 명령어를 저장하고 있는 머신 판독가능 매체에 있어서,
    상기 머신 판독가능 명령어는 비밀키를 포함하는 모듈을 생성하고, 도전요구를 생성하고, 상기 모듈 및 도전요구를 원격 프로세스로 전송하고, 원격 프로세스로부터 상기 도전요구에 대한 응답을 수신하고, 상기 응답을 디코딩하기 위한 것인
    머신 판독가능 매체.
  21. 프로세서에 의해 실행되도록 설계된 다수의 머신 판독가능 명령어를 저장하고 있는 머신 판독가능 매체에 있어서,
    상기 머신 판독가능 명령어는 원격 프로세스로부터 모듈을 수신하고, 상기 모듈의 실행을 개시하고, 상기 모듈의 실행 중에 로컬 프로세스의 무결성이 검증되는 경우에 상기 모듈에 내장된 비밀키를 복구하고, 원격 프로세스로부터 도전요구를 수신하고, 응답을 생성하기 위해 상기 비밀키를 이용하여 상기 도전요구를 인코딩하고, 상기 응답을 원격 프로세스로 전송하기 위한 것인
    머신 판독가능 매체.
  22. 프로세서에 의해 실행되도록 설계된 다수의 머신 판독가능 명령어를 저장하고 있는 머신 판독가능 매체에 있어서,
    상기 머신 판독가능 명령어는 비밀키를 포함하는 모듈을 생성하고, 도전요구를 생성하고, 상기 모듈 및 도전요구를 제1 프로세스로 전송하고, 상기 제1 프로세스의 어드레스 공간에서 모듈의 실행을 개시하고, 상기 모듈의 실행 중에 상기 제1 프로세스의 무결성이 검증되는 경우에 상기 모듈에 내장된 비밀키를 복구하고, 제2 프로세스로부터 도전요구를 수신하고, 응답을 생성하기 위해 상기 비밀키를 이용하여 상기 도전요구를 인코딩하고, 상기 응답을 제2 프로세스로 전송하고, 상기 제1 프로세스로부터 상기 도전요구에 대한 응답을 수신하고, 상기 응답을 디코딩하기 위한 것인
    머신 판독가능 매체.
  23. 프로세서에 의해 실행되도록 설계된 다수의 머신 판독가능 명령어를 저장하고 있는 머신 판독가능 매체에 있어서,
    상기 머신 판독가능 명령어는 제1 비밀키를 포함하는 제1 모듈을 생성하고, 제1 도전요구를 생성하고, 상기 제1 모듈 및 제1 도전요구를 원격 프로세스로 전송하고, 상기 원격 프로세스로부터 상기 제1 도전요구에 대한 제1 응답을 수신하고, 상기 제1 응답을 디코딩하고, 상기 원격 프로세스로부터 제2 모듈을 수신하고, 상기 제2 모듈의 실행을 개시하고, 상기 제2 모듈의 실행 중에 로컬 프로세스의 무결성이 검증되는 경우에 상기 제2 모듈에 내장된 제2 비밀키를 복구하고, 상기 원격 프로세스로부터 제2 도전요구를 수신하고, 제2 응답을 생성하기 위해 상기 제2 비밀키를 이용하여 상기 제2 도전요구를 인코딩하고, 상기 제2 응답을 상기 원격 프로세스로 전송하기 위한 것인
    머신 판독가능 매체.
KR1020007006300A 1997-12-12 1998-12-12 상이한 어드레스 공간에서 다른 프로세스를 인증하는 방법및 장치 KR20010032955A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8/989,615 1997-12-12
US08/989,615 US5974550A (en) 1997-12-12 1997-12-12 Method for strongly authenticating another process in a different address space
PCT/US1998/025633 WO1999031841A1 (en) 1997-12-12 1998-12-12 Method for strongly authenticating another process in a different address space

Publications (1)

Publication Number Publication Date
KR20010032955A true KR20010032955A (ko) 2001-04-25

Family

ID=25535283

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007006300A KR20010032955A (ko) 1997-12-12 1998-12-12 상이한 어드레스 공간에서 다른 프로세스를 인증하는 방법및 장치

Country Status (7)

Country Link
US (1) US5974550A (ko)
EP (1) EP1042882A4 (ko)
JP (1) JP2002509388A (ko)
KR (1) KR20010032955A (ko)
AU (1) AU2085699A (ko)
TW (1) TW431105B (ko)
WO (1) WO1999031841A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6892308B1 (en) * 1999-04-09 2005-05-10 General Instrument Corporation Internet protocol telephony security architecture
US7243236B1 (en) * 1999-07-29 2007-07-10 Intertrust Technologies Corp. Systems and methods for using cryptography to protect secure and insecure computing environments
US7051200B1 (en) * 2000-06-27 2006-05-23 Microsoft Corporation System and method for interfacing a software process to secure repositories
US7039801B2 (en) * 2000-06-30 2006-05-02 Microsoft Corporation System and method for integrating secure and non-secure software objects
US7003800B1 (en) * 2000-11-06 2006-02-21 Ralph Victor Bain Self-decrypting web site pages
FI115098B (fi) 2000-12-27 2005-02-28 Nokia Corp Todentaminen dataviestinnässä
EP2267626B8 (en) * 2001-03-28 2016-11-30 NDS Limited Digital rights management system and method
US7680743B2 (en) * 2002-05-15 2010-03-16 Microsoft Corporation Software application protection by way of a digital rights management (DRM) system
US7581095B2 (en) * 2002-07-17 2009-08-25 Harris Corporation Mobile-ad-hoc network including node authentication features and related methods
US20050039002A1 (en) * 2003-07-29 2005-02-17 International Business Machines Corporation Method, system and program product for protecting a distributed application user
JP4270033B2 (ja) * 2004-06-11 2009-05-27 ソニー株式会社 通信システムおよび通信方法
US7877608B2 (en) * 2004-08-27 2011-01-25 At&T Intellectual Property I, L.P. Secure inter-process communications
US20060048223A1 (en) * 2004-08-31 2006-03-02 Lee Michael C Method and system for providing tamper-resistant software
US8788829B2 (en) 2006-08-17 2014-07-22 Aol Inc. System and method for interapplication communications
US8010995B2 (en) * 2006-09-08 2011-08-30 International Business Machines Corporation Methods, systems, and computer program products for implementing inter-process integrity serialization
US8782408B2 (en) 2009-03-25 2014-07-15 Pacid Technologies, Llc Method and system for securing communication
WO2010111440A2 (en) 2009-03-25 2010-09-30 Pacid Technologies, Llc Token for securing communication
WO2010111447A1 (en) 2009-03-25 2010-09-30 Pacid Technologies, Llc Method and system for securing a file
US8934625B2 (en) * 2009-03-25 2015-01-13 Pacid Technologies, Llc Method and system for securing communication
WO2010111438A2 (en) 2009-03-25 2010-09-30 Pacid Technologies, Llc System and method for protecting a secrets file
US8479021B2 (en) 2011-09-29 2013-07-02 Pacid Technologies, Llc Secure island computing system and method
US9940486B2 (en) * 2015-02-23 2018-04-10 Cisco Technology, Inc. Detection of hardware tampering
US11017102B2 (en) * 2017-09-12 2021-05-25 Sophos Limited Communicating application information to a firewall

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0711051A1 (en) * 1994-11-05 1996-05-08 International Computers Limited Data processing system with verification of authenticity of cryptographic algorithms according to the challenge/response principle
US5537474A (en) * 1994-07-29 1996-07-16 Motorola, Inc. Method and apparatus for authentication in a communication system
KR19990072733A (ko) * 1998-02-19 1999-09-27 리아오 행큉 데이터네트워크상의박형의클라이언트장치와서버장치사이에암호-발효프로세스를실행시키기위한방법및장치
KR19990076101A (ko) * 1998-03-27 1999-10-15 이재우 패스워드 교환방식을 이용한 사용자-서버간의 상호 신분 인증방법
KR20000012072A (ko) * 1998-07-31 2000-02-25 루센트 테크놀러지스 인크 두 당사자 인증 및 키 일치 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4521846A (en) * 1981-02-20 1985-06-04 International Business Machines Corporation Mechanism for accessing multiple virtual address spaces
FR2601795B1 (fr) * 1986-07-17 1988-10-07 Bull Cp8 Procede pour diversifier une cle de base et pour authentifier une cle ainsi diversifiee comme ayant ete elaboree a partir d'une cle de base predeterminee, et systeme pour la mise en oeuvre
US4964163A (en) * 1988-04-04 1990-10-16 Motorola, Inc. Method and apparatus for controlling access to a communication system
US5311594A (en) * 1993-03-26 1994-05-10 At&T Bell Laboratories Fraud protection for card transactions
DE69704684T2 (de) * 1996-02-23 2004-07-15 Fuji Xerox Co., Ltd. Vorrichtung und Verfahren zur Authentifizierung von Zugangsrechten eines Benutzers zu Betriebsmitteln nach dem Challenge-Response-Prinzip

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537474A (en) * 1994-07-29 1996-07-16 Motorola, Inc. Method and apparatus for authentication in a communication system
EP0711051A1 (en) * 1994-11-05 1996-05-08 International Computers Limited Data processing system with verification of authenticity of cryptographic algorithms according to the challenge/response principle
KR19990072733A (ko) * 1998-02-19 1999-09-27 리아오 행큉 데이터네트워크상의박형의클라이언트장치와서버장치사이에암호-발효프로세스를실행시키기위한방법및장치
KR19990076101A (ko) * 1998-03-27 1999-10-15 이재우 패스워드 교환방식을 이용한 사용자-서버간의 상호 신분 인증방법
KR20000012072A (ko) * 1998-07-31 2000-02-25 루센트 테크놀러지스 인크 두 당사자 인증 및 키 일치 방법

Also Published As

Publication number Publication date
WO1999031841A1 (en) 1999-06-24
EP1042882A1 (en) 2000-10-11
EP1042882A4 (en) 2002-06-12
JP2002509388A (ja) 2002-03-26
TW431105B (en) 2001-04-21
AU2085699A (en) 1999-07-05
US5974550A (en) 1999-10-26

Similar Documents

Publication Publication Date Title
US5974550A (en) Method for strongly authenticating another process in a different address space
CN109361668B (zh) 一种数据可信传输方法
EP1161715B1 (en) Communications between modules of a computing apparatus
CN108418691B (zh) 基于sgx的动态网络身份认证方法
US8112787B2 (en) System and method for securing a credential via user and server verification
US6138239A (en) Method and system for authenticating and utilizing secure resources in a computer system
CN101005361B (zh) 一种服务器端软件保护方法及系统
CN116112184A (zh) 采用可信硬件的安全动态阈值签名方案
CN111639325B (zh) 基于开放平台的商户认证方法、装置、设备和存储介质
US9055061B2 (en) Process of authentication for an access to a web site
US10263782B2 (en) Soft-token authentication system
JP2004508619A (ja) トラステッド・デバイス
CN106372497B (zh) 一种应用编程接口api保护方法和保护装置
CN109831311B (zh) 一种服务器验证方法、系统、用户终端及可读存储介质
WO2017193750A1 (zh) 一种防止拷贝攻击的处理方法、服务器及客户端
US7073062B2 (en) Method and apparatus to mutually authentication software modules
WO2023236720A1 (zh) 设备认证和校验的方法、装置、设备和存储介质
US20150170150A1 (en) Data verification
CN111651740B (zh) 一种面向分布式智能嵌入式系统的可信平台共享系统
Kocher Public Key Cryptography in Computer and Network Security
CN114024702A (zh) 信息安全保护的方法以及计算设备
US20230237199A1 (en) Remote command execution over an air-gap secured system
WO2023145240A1 (ja) 情報処理装置および情報処理システム
CN113139166B (zh) 基于云证书的评标专家签名方法及装置
Hastings et al. A case study of authenticated and secure file transfer: the Iowa Campaign Finance Reporting System (ICFRS)

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E601 Decision to refuse application