KR100430147B1 - 컴퓨터 액세스 제어 - Google Patents

컴퓨터 액세스 제어 Download PDF

Info

Publication number
KR100430147B1
KR100430147B1 KR10-2001-0009231A KR20010009231A KR100430147B1 KR 100430147 B1 KR100430147 B1 KR 100430147B1 KR 20010009231 A KR20010009231 A KR 20010009231A KR 100430147 B1 KR100430147 B1 KR 100430147B1
Authority
KR
South Korea
Prior art keywords
program
message
specific identifier
receiving
sending
Prior art date
Application number
KR10-2001-0009231A
Other languages
English (en)
Other versions
KR20010096572A (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 KR20010096572A publication Critical patent/KR20010096572A/ko
Application granted granted Critical
Publication of KR100430147B1 publication Critical patent/KR100430147B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 컴퓨터상에 안전한 액세스 제어를 위한 일반적이고 유연한 메커니즘을 제공한다. 암호화 체크섬(cryptographic checksum)은 다른 프로그램에 대한 한 프로그램의 식별을 위해 이용된다. 이들 암호화 체크섬은 프로그램에 대해 자동적으로 생성된다. 각각의 프로그램은 실질적으로 유일한 값 또는 명칭으로 간주될 수 있는 프로그램-특정 식별자를 갖는다. 이러한 프로그램-특정 식별자는 다른 프로그램에 대해 한 프로그램의 유효성을 검증하는데 이용될 수 있다. 상이한 프로그램간의 상호 신뢰 관계는 이로써 용이하게 셋업될 수 있다.

Description

컴퓨터 액세스 제어{Access Control for Computers}
본원 발명은 컴퓨터 상에서의 프로그램 및 어플리케이션의 안전하고 신뢰성있는 프로세싱에 관한 것이다. 구체적으로, 본원 발명은 한 프로그램을 다른 프로그램에 식별해주는 메커니즘에 관한 것이다.
전형적인 컴퓨터 및 컴퓨터 시스템, 특히 한정된 네트워크 내의 서로 연결된컴퓨터들은 시스템 관리자에 의해 관리된다. 현재 이용되고 있는 액세스 제어 메커니즘은 시스템 관리자들에 의해 결정된 보안 정책에 기해 사용자들을 서로 분리시키는데 초점을 맞추었다. 몇몇 시스템, 주로 군사 시스템은 개별적인 사용자들의 서로 다른 상황을 분리해줄 수 있는 미세한(finer-grained) 액세스 제어 정책을 이용했지만 이들 시스템의 복잡도 때문에 엄청나게 비싸다. 따라서, 이러한 시스템 액세스 제어 메커니즘은 널리 채택되지 않았다.
다양한 데이터베이스 및 자바(Java)에서 이용가능한 액세스 제어 방안은 데이터 및 객체(object)의 미세 제어를 제공하지만 시스템 레벨에서 액세스 제어의 일반적인 문제들을 해결해 주지는 않는다.대부분의 개인용 컴퓨터(PC)는 보안 문제를 충분히 해결할 수 없다. DOS, 윈도우즈 및 맥OS(MacOS)를 포함하는 PC 운영체제는, 연속되는 바이러스, 트로이 목마, 및 말웨어(malware)라고도 지칭되는 기타 질 나쁜 소프트웨어들에 의해 공격을 받아왔다. 이러한 말웨어의 배포 및 이용은 기본적으로 고의적 파괴 행위의 한 형태가 되어왔고 인터넷의 이용과 함께 그 위험은 점차 증가하고 있다.
누군가가 경제적으로 의미있는 트랜잭션을 위해 이러한 시스템을 사용한다면, 공격자에게는 훨씬 큰 이익과 인센티브가 될 수 있다. 따라서, 보안의 필요성은 필수적이며, 따라서 적절한 액세스 제어 메커니즘에 대한 요구가 발생한다.
PDA(pesonal digit assitants)와 같은 핸드헬드 장치들의 형태적 요소 및 이용상 특성으로 인해, 이들은 많은 전자상거래 어플리케이션에서 이용하기에 매우바람직한 것으로 되었다. 그러나, 불행하게도, 현재의 PDA 운영 체제는 전자상거래 어플리케이션을 위해 필요한 보안을 제공하지 못한다. PDA들이 강력하고 범용의 컴퓨팅 장치들이란 사실은 이들을 공격받기 쉬운 대상으로 만들었다. PDA 기반 전자상거래 시스템들은, 예를 들어, 스마트카드가 포함되는 시스템까지 위험하게 할 수 있는 광범위한 공격에 공격받을 가능성이 많다.
흔히, 시스템 관리자는 특정 프로그램 및/또는 사용자에게 어느 정도의 신뢰도가 주어질 수 있는 지에 대해 판단하여야 한다. 이러한 판단은 특권으로 인스톨될 프로그램에 대해 어느 정도의 신뢰도가 요구되는지를 결정하는데 있어서 시스템 상에서의 정보 자원의 가치를 고려할 것을 포함한다. 이는 시스템 관리자가 시스템과 특권을 계속적으로 갱신해야 한다는 단점이 있다.
미국특허 제3996449호는 컴퓨터에 로딩되는 운영체제가 유효한지를 판단하기 위한 운영체제 인증자에 관한 것이다. 운영체제에 유일한 사용자의 식별 코드 또는 시크리트 키와, 유효한 운영체제와 식별 코드의 선정된 함수인 검증자 값이 각각 저장된다. 로드되는 운영체제와 식별코드의 함수인 해쉬 함수(hash function)가 인증자에 의해 생성된다. 운영체제가 로드된 후에, 인증 값으로서 해쉬 함수가 이용되고 검증자 값과 비교되어 로드된 운영체제의 진위성을 판단한다.
미국특허 제5113442호에, 다수의 사용자들간에 액세스 권리를 제어하기 위한 방법 및 이 방법을 이용한 운영체제가 개시되어 있다. 각각의 사용자에게 주요한 사용자 식별 번호가 제공되고 각각의 보안 객체(secure object)에게 이 보안 객체에 대한 동일한 액세스 권리를 갖는 모든 사용자들의 사용자 식별 번호들의적(product)이 되는 값을 포함하는 액세스 코드를 제공한다. 보안 객체를 액세스하려는 사용자의 요청에 응답하여, 상기 보안 객체에 대한 액세스 코드는 요청한 사용자의 사용자 식별 번호로 나누어진다. 요청된 보안 객체에 대한 사용자의 액세스 권리는 상기 나눗셈 결과가 "0"인가에 따라 결정된다.
요약
이하의 설명에 대한 이해를 돕기 위하여 다음과 같이 비공식적인 정의를 해두었다.
해쉬 함수(hash function): 해쉬 함수는 임의 길이의 이진 스트링을 고정된 길이의 이진 스트링으로 매핑해주는 계산적으로 효율성있는 함수이다.
단방향 해쉬 함수(one-way hash function): 이 함수는 가변길이 메시지 M 또는 임의의 데이터를 취하여 고정길이의 값, 해쉬 또는 특정 식별자라 불리우는 값을 생산한다. 특정 식별자가 주어지더라도, 이 특정 식별자를 이용하여 메시지를 찾아내는 것은 계산적으로 불가능하며, 사실상 이러한 특정 식별자를 갖고 메시지 M에 대한 임의의 유용한 정보를 판단할 수 없다. 즉, 이러한 특정 식별자를 생성하는 시간은 이 특정 식별자로부터 가변길이 메시지를 재구성하는데 걸리는 시간보다 충분히 짧다. 또한, 2개의 동일한 특정 식별자를 찾는데 걸리는 시간은 하나의 특정 식별자를 생성하는데 걸리는 시간보다 충분히 길다.
신뢰 컴퓨팅 베이스(Trusted computing base: TCB): 이는 하드웨어, 펌웨어 및 소프트웨어를 포함하는 컴퓨터 시스템 내의 전체적인 보호 메커니즘을 가리키며, 이들의 조합은 보안 정책을 강화하는 책임이 있다.
본원 발명의 목적은 종래 기술의 단점을 극복하는데 있다.
본원 발명의 또다른 목적은 컴퓨터 또는 분산 시스템 상에서 프로그램의 안전한 액세스 제어를 위한 메커니즘을 제공하기 위한 것이다.
본원 발명의 또다른 목적은 시스템 관리자를 필요로 하지 않는 액세스 제어 메커니즘을 제공하기 위한 것이다.
본원 발명의 또다른 목적은 속일 수 없고 따라서 안전하게 작동되는 액세스 제어 메커니즘을 제공하기 위한 것이다.
본원 발명의 또다른 목적은 한 컴퓨터 상에서의 프로그램의 신원(identity)을 동일하거나 상이한 컴퓨터 상의 다른 프로그램에 검증해주는 방법 및 장치를 제공하는 것이다.
도 1은 컴퓨터 시스템의 블록도를 도시한다.
도 2는 본원 발명에 따른 메시지 교환을 개략적으로 도시한 것이다.
도 3은 키를 이용하는 물건구입 시나리오를 개략적으로 도시한 것이다.
도 4는 해쉬(hash)를 이용하는 액세스 제어를 갖는 파일 시스템 객체를 개략적으로 도시한 것이다.
도 5는 디지털 서명을 이용하는 동적 셋업을 위한 도 4a의 파일 시스템 객체를 도시한 것이다.
도 6은 상호 신용 관계를 셋업하기 위해 도움자(helper) 어플리케이션을 이용하는 실시예를 개략적으로 도시한 것이다.
본원 발명의 목적은 첨부된 독립항들에 기재된 특징들에 의해 달성된다. 발명에 대한 그밖의 유용한 구현 및 실시예들은 각각의 종속항들에 기재되어 있다.
본원 발명은 하나의 컴퓨터 또는 분산 컴퓨터 상에서 안전한 액세스제어를 위한 일반적이고 유연한 메커니즘을 제공한다. 컴퓨터라 지칭하면, TCB라 약칭되는 신뢰 컴퓨팅 베이스를 갖는 임의의 종류의 컴퓨터를 포함한다. 이러한 컴퓨터는 네트워크의 한 구성원일 수 있으며 다수의 보안 도메인 또는 어플리케이션을 지원할 수 있다.
본원 발명의 근본 아이디어는 컴퓨터가 암호화 함수, 즉, 단방향 해쉬 함수라고도 지칭되는 암호화 체크섬(checksum)을 이용하여 프로그램-특정 암호화 식별자 또는 짧은 프로그램-특정 식별자를 자동으로 생성하고 이와 함께 액세스 제어 메커니즘의 기본을 형성하는 것이다. 이들 프로그램-특정 식별자들은 프로그램 이름으로 간주될 수 있으며 해쉬 함수를 이 프로그램에 적용함으로써 얻어진다. 출력값, 즉, 해쉬값이라고도 불리우는 프로그램-특정 식별자는 특정 프로그램에 대해 실질적으로 유일한 값으로서, 저장되거나 캐쉬되거나 또는 빠르게 얻어질 수 있는 값이다. 일반적으로, 이름은 TCB에 의해 제공되거나 더 상세하게는 운영체제에 의해 제공된다. 암호화 함수는 적어도 다음과 같은 조건을 만족시킨다. 이러한 특정 식별자를 생성하는 시간은 이러한 식별자로부터 프로그램 또는 프로그램 일부를 재구성하는데 걸리는 시간보다 충분히 짧다. 또한, 2개의 동일한 특정 식별자를 찾는데 걸리는 시간은 하나의 식별자를 생성하는데 걸리는 시간보다 충분히 길다.
메커니즘은 다음과 같이 실행된다. 메시지-발신 프로그램은 그로부터 유도된 이름을 포함하는 메시지를 메시지-수신 프로그램에 보낸다. 이 이름은 운영체제에 의해 제공되고 전송 또는 전달중에 메시지에 추가될 것이다. 메시지를 수신하면, 그 이름이 메시지-수신 프로그램 및/또는 TCB에 알려진 것인지의 여부를 검증한다. 이렇게 함으로써, 특별한 요청을 포함하는 메시지는 검증결과에 따라 받아들여지거나 거절될 수 있다. 메시지에 대한 응답으로서, 메시지-수신 프로그램은 소위 응답-메시지-발신 프로그램으로 변환한다. 즉, 메시지-수신 프로그램은 메시지-발신 프로그램이 되고, 그의 특정 이름과 함께 메시지-응답을 보낸다.
프로그램이라 함은, 어플리케이션 프로그램, Java-기반 프로그램, 또는 가상 머신과 같이, 컴퓨터 상에서 실행될 수 있는 임의의 종류의 코드 또는 소프트웨어로 이해되어야 할 것이다.
본 발명은 속임수가 불가능하고 쉽게 구현될 수 있다는 점과 같이, 여러 가지 장점을 보여준다. 이름은 TCB에 의해 자동적으로 생성되기 때문에, 시스템 관리자의 작업은 불필요해진다. 일반적으로, 여러 도메인 또는 어플리케이션은 안정하지 못한 프로그램에 의해 공격받지 않고 동일한 컴퓨터 상에서 작동될 수 있기 때문에, 컴퓨터의 신뢰가치도는 극적으로 증가하고 안전하고 신뢰성있는 장치가 된다.
이러한 메커니즘을 이용함으로써, 의심이 가고 공격적인 프로그램과 같은 제어불가하고 잠재적으로 안정치 못한 프로그램들은 컴퓨터를 제어할 수 없으며 민감한 프로그램 및 어플리케이션을 방해할 수 없다.
한편, 프로그램-특정 식별자, 즉, 프로그램-특정 이름이 메시지-수신 프로그램에 알려지고 메시지-발신 프로그램에 알려진 응답-프로그램-특정 식별자와 수락 또는 승인을 포함하는 응답-메시지가 전송된다면, 양 프로그램이 서로를 신뢰할 수 있고, 이에 따라 메시지-수신 프로그램은 메시지-발신 프로그램과 상호작용하고자 하게 되는 장점이 있다. 양 프로그램간의 신뢰성있는 통신이 쉽게 설정될 수 있다.
상기에 언급된 프로그램-특정 식별자는 제1 해쉬 함수를 메시지-발신 프로그램에 적용함으로써 유도가능하고 응답-프로그램-특정 식별자는 제2 해쉬 함수를 메시지-수신 프로그램에 적용함으로써 유도가능하다. 이는 일반적으로 프로그램-특정 식별자를 생성하기 위해 다양한 해쉬 함수들이 적용될 수 있고 따라서 이 메커니즘은 특정한 형태의 해쉬 함수에 국한되는 것이 아니기 때문에 장점이 있다. 유일한 가정은 서로간의 통신을 설정하기 위해 프로그램-특정 식별자는 메시지-수신 프로그램에 알려져 있어야 한다는 것이다.
그럼에도 불구하고, 적용되는 해쉬 함수는 또한 동일한 것일 수도 있으며, 따라서 MD5 또는 SHA-1과 같은 단방향 해쉬 함수가 적용가능하다. 이러한 해쉬 함수는 공지된 것이며, 신뢰성있게 작동하고, 일반적으로 사용자 또는 계산 시간에 큰 영향을 미치지 않고 밀리세컨드 시간 범위에서 처리, 즉, 프로그램에 적용될 수 있다.
해쉬-함수 생성자는 TCB로 구현되어서 프로그램-특정 식별자가 이 TCB에 의해 자동적으로 유도되고 제공되어야 한다. 상기 기본 보안 정책에 따라, TCB는 공격자에 의해 포위되거나 훼손될 수 없다.
프로그램-특정 식별자 및/또는 메시지가 프라이비트 암호화키에 의해 서명(sign)된다면 바람직하다. 이렇게 함으로써, 서로 다른 프로그램들간에 상호 신뢰가 쉽게 확립되고 설정될 수 있다. 더구나, 전적인 신뢰 관계가 생성됨으로써 사용자가 구성할 것이 아무것도 없다는 점에서 특히 유리하다.
또한, 프라이비트 암호화키에 의해 서명된 부가적인 프로그램-특정 식별자가 메시지 내에 전송된다면, 메시지-수신 프로그램이 개발자에 의해 안전하게 관리될 수 있고 이에 의해 부가적으로 신뢰성있는 프로그램이 설치될 수 있고 이와 함께도메인 또는 어플리케이션들이 쉽게 셋업될 수 있기 때문에 바람직하다. 즉, 동일한 개발자로부터 나온 상이한 프로그램들은 쉽게 서로를 신뢰할 수 있고 상호 신뢰 관계를 생성할 수 있다.
메시지-수신 프로그램 및/또는 TCB는 응답에 서명될 수 있는 퍼블릭암호화키를 가질 수도 있다. 이는 메시지-발신 프로그램, 즉, 요청한 프로그램이 올바르게 작성된 경우에, 메시지-수신 프로그램 및/또는 TCB가 사용자에 의해 인증된 문서에 대해서만 서명을 생성하게 됨을 의미한다.
프로그램-특정 식별자가 리스트 또는 데이터베이스에 미리 저장된다면, 이들 식별자들에 대한 빠른 액세스(fast access) 및 이에 따른 빠른 검증이 제공될 수 있다. 이는 신뢰되는 프로그램-특정 식별자들이 TCB 내에 전해지거나 컴퓨터가 처음에 초기화될 때 인스톨된다면 또한 바람직하다.
프로그램-특정 식별자가 메시지-수신 프로그램 및/또는 TCB에 알려지지 않는 경우에, 메시지 또는 요청은 거절되는데, 예를 들면, 메시지-발신 프로그램에 0을 보냄으로써 거절이 이루어진다. 이는 메시지-발신 프로그램이 신뢰성있는 것이 아니고 의심스럽거나 심지어는 위험한 것일 수도 있음을 의미한다. 이러한 프로그램의 경우에 특별한 도메인이 생성될 수 있다. 그러나, 긍정적인 점은 이러한 프로그램이 다른 것들 (예를 들면, 컴퓨터 상의 신뢰성있는 프로그램, 관련 문서, 또는 개인 레코드)을 방해할 수 없음을 의미한다.
이하 도면을 참조하면, 암호화 함수를 이용한 컴퓨터의 액세스 제어 메커니즘의 기본 특징이 자세하게 설명되어 있다. 우선, 몇가지 일반적인 것들을 설명하겠다.
해쉬 함수(Hash function)
임의의 길이의 이진 스트링을 고정 길이의 이진 스트링으로 매핑해주는 계산적으로 효율적인 함수이다.
단-방향 해쉬 함수(one-way hash function)
단-방향 해쉬 함수는 가변 길이의 메시지를 취하여 고정 길이의 해위 또는 값을 산출해내는 함수이다. 따라서, h=H(M) 이며, H는 단-방향 해쉬 함수이고, M은 메시지이며, h는 메시지 M에 대한 해쉬 값이다. 해쉬값 h가 주어지더라도 이 해쉬값으로 메시지 M을 찾아내는 것은 계산적으로 불가능하다. 사실, 해쉬 값으로 메시지 M에 대한 어떠한 유용한 정보도 판단할 수 없다. 어떠한 단-방향 해쉬 함수의 경우에는 동일한 해쉬값을 산출해내는 2개의 메시지를 결정하는 것 또는 계산적으로 불가능하다. 더욱이, 단-방향 해쉬 함수는 암호화 함수와 같이 기밀이거나(private) 공개적일(public) 수 있다. MD5, SHA-1 및 Snefru가 공개 단-방향 해쉬 함수의 예이다.
이러한 단-방향 해쉬 함수가 임의의 프로그램인 프로그램 E에 적용된다면, 출력값, 즉 해쉬값 h는 사실상 유일한 값으로서, 프로그램-특정 식별자라고도 불리운다. 이러한 프로그램-특정 식별자는 특정 프로그램 E에 주어지는 이름으로 볼 수도 있다. 즉, 바이트 스트림 E={b0,b1,b2...}으로 간주될 수 있는 프로그램 E는 사실상 유일한 이름 H(E)와 연관될 수 있다. 프로그램 E가 실행되면, 이는 라벨H(E)로써 실행된다. 프로그램 E에 의해 생성된 영속성 데이터는 프로그램 E에 의해서만 액세스가능하고 또는 이름H(E)를 갖는다.
예를 들어, 상기에서 언급한 단-방향 해쉬 함수 SHA-1를 이용하면, 2개의 동일한 프로그램-특정 식별자를 발견할 확률은 약 280의 1정도이며, 하나의 프로그램과 동일한 프로그램-식별자를 갖는 또다른 프로그램을 발견할 확률은 약 2160의 1정도이다.
TCB(Trusted Computing Base)
TCB라 약칭되는 신뢰 컴퓨팅 베이스는, 하드웨어, 펌웨어 및 소프트웨어를 포함하는 컴퓨터 시스템 내의 전체적인 보호 메커니즘으로서, 이들 조합이 보안 정책을 강화하는 책임을 진다. 운영 체제는 TCB의 일 부분일 수 있다. 보안 정책은 TCB가 손상되거나 훼손될 수 없음, 즉, 공격에 대해 안전할 것을 요구한다.
현재의 액세스 제어 메커니즘은 컴퓨터 및 컴퓨터 시스템에서 일반적으로 이용될 수 있다. 컴퓨터라 함은, 로컬 네트워크의 구성원이 될 수 있는 임의의 형태의 디바이스를 의미한다. 디바이스의 예는, 랩탑 컴퓨터, 워크패드(workpads), 노드패드(nodepades), 퍼스널 디지트 어시스턴트(PDAs), 노트북 컴퓨터, 인터넷 터미널 및 그밖의 컴퓨팅 시스템, 셋-탑 박스, 캐시 레지스터(cash-register), 바코드 스캐너, 세일즈 단말(point of sales terminals), 키오스크(kiosk) 시스템, 셀룰러 폰, 페이저, 손목 시계, 전자 시계, 배지(badge), 스마트카드, 그밖의 핸드헬드 구현 장치들이다. 그밖의 고려될 수 있는 장치에는, 헤드셋, 휴먼인터페이스 디바이스(Human Interface Device: HID) 종속 주변기기, 데이터 및 음성 액세스 포인트, 카메라, 프린터, 팩스머신, 키보드, 조이스틱, 주방가전, 툴, 연기 및/또는 화재 센서, 및 그밖의 다른 가상 디지털 장치가 있다.
본 발명과 관련하여 이용될 수 있는 착용식(wearable) 컴퓨터의 다른 예에는, 컴퓨터와 같은 하드웨어가 장착된, "스마트 월럿(smart wallet)" 컴퓨터, 귀급속 또는 의류제품과 같은, 퍼스널 이펙트(pesonal effect)가 있다. "스마트 월럿" 컴퓨터 이외에도 착용식 컴퓨터의 다양한 변형품이 다수 있다. "벨트(belt)" 컴퓨터는 사용자가 이동중에, 서핑하고, 구술로 지시하고, 문서를 편집할 수 있게 해주는 하나의 예이다. 또다른 예로서, 초등학교 학생들의 PDA에 견줄만한 어린이 컴퓨터가 있다. 어린이 컴퓨터는 숙제를 보관하고, 계산을 수행하고, 어린이들이 그들의 숙제를 관리하는 것을 돕는다. 이는 다른 어린이들의 컴퓨터와 인터페이스하여 어린이들의 협동을 돕고, 선생님의 컴퓨터에 액세스하여 숙제 또는 피드백을 다운로드받을 수 있다. 임의의 형태의 착용식 컴퓨터 또는 휴대용 장치, 임의의 사무실 기구 또는 장치, 가전 기구 또는 장치, 차량용 시스템, 공중 이용 시스템(자동판매기, 티켓팅 머신, 자동지급기 등) 등이 본 발명과 관련하여 이용될 수 있다.
본 발명의 이해를 돕기 위해, 도 1은 컴퓨터 2의 상위수준 블록도를 도시하고 있다.
컴퓨터(2)는 하나 이상의 중앙처리장치(CPU, 6), 랜덤액세스메모리(RAM, 8) 및 입/출력(I/O) 인터페이스(10)와 같은 하드웨어 구성요소(4)를 포함한다. 또한,컴퓨터(2)는 운영체제(20)를 포하한다. (하드 드라이브와 같은) 보조저장장치(12), (키보드, 마우스, 터치 스크린, 마이크로폰, 또는 적외선 또는 RF 수신기와 같은) 입력 장치(14), (모니터 또는 LCD 디스플레이와 같은) 디스플레이 장치(16) 및 (프린터 또는 적외선 또는 RF 송신기와 같은) 출력 장치(18) 등의 다양한 주변장치가 컴퓨터(2)에 연결될 수 있다. 또한, 스마트카드 장치가 입/출력 장치(14, 18)에 연결될 수 있다. 다수의 프로그램 (22,24,26)이 컴퓨터(2)에서 실행된다. 프로그램(22,24,26)은 컴퓨터(2)에서 순서적으로 실행될 수도 있지만, 바람직하게는 컴퓨터 시스템(2)에서 병렬로 실행될 수도 있다.
하드웨어 구성요소(4)와 운영체제(20)는 TCB를 형성하며, 이는 안정하고 신뢰성있는 계산의 기반을 구성한다. TCB에, 프로그램-특정 식별자를 생성하기 위한 생성-모듈(21)이 구현된다. 생성 모듈(21)은 기본적으로 하드웨어뿐만 아니라 소프트웨어로 구현될 수 있는 암호화 함수 생성기(21)이다. 해쉬 함수, 바람직하게는 전술한 바와 같은 단-방향 해쉬 함수를 적용함으로써 해쉬 값을 생성하는 것은 프로세서 측면에서 많은 시간이 낭비되는 것이 아니기 때문에, 암호화-함수 생성기(21)은 운영체제(20) 자체에 구현될 수도 있다. 사실상 유일한 값을 산출하는 어떠한 암호화-함수라도 적합하다.
도 1을 참조하여 설명한 바와 같이, 컴퓨터(2)의 구조는 기초가 되는 디바이스로서 간주될 것이며, 다음의 실시예에서 이용될 수 있다.
도 2를 참조하면, 메시지 교환을 상위 수준의 개략도로서 도시한 것이다. 몇몇 기초사항들이 다음에서 설명된다. 메시지-발신 프로그램 D는, 또다른 프로그램인, 메시지-수신 프로그램 S와 통신하고 싶어한다.
메시지-수신 프로그램 S는 하나 이상의 프로그램-특정 식별자를 알고 있다. 이들 식별자는 미리 저장되거나 캐싱될 수 있으며 또한 운영체제(20)에 알려져 있을 수 있다. 우선, 메시지-발신 프로그램 D는 메시지 내에 요청 m을 메시지-수신 프로그램 S에 전송한다. 이에 따라, 운영체제(20)의 일부인 생성 모듈(21)은 메시지-발신 프로그램 D로부터 프로그램-특정 식별자 H(D)를 유출하여 이 프로그램-특정 식별자 H(D)를 메시지에 추가하는데, H(D), m이라 라벨링된 화살표에 의해 표시된 바와 같다.
일반적으로, 운영체제(20)는 메시지-수신 프로그램에 메시지-발신 프로그램이 전송하는 모든 요청에 메시지-발신 프로그램의 개별 프로그램-특정 식별자를 추가하며, 이 식별자는 나중에 메시지-수신 프로그램에 의해 검증되거나 확인된다.
간략화를 위해, 생성 모듈(21)은 도 2에 도시되어 있지 않다. 프로그램-특정 식별자 H(D)는 또한 메시지-발신 프로그램 D로부터 미리 저장될 수 있다. 메시지-수신 프로그램 S는, 프로그램-특정 식별자 H(D)와 요청 m을 포함하는 메시지를 수신한 후에, 프로그램-특정 식별자 H(D)를 추출하여 그가 알고 있는 식별자로써 이를 검증한다. 프로그램-특정 식별자 H(D)가 메시지-수신 프로그램 S에 알려져 있다면 (여기에서는 상자 S 내에H(D)라고 표시되어 있음), 메시지-수신 프로그램 S는 메시지-발신 프로그램 D와 더 나아간 통신을 받아들일 것이다. 이에 대해, 메시지-수신 프로그램 S는 응답 n과, 응답-프로그램-특정 식별자 H(S)라고도 지칭되는, 프로그램-특정 식별자 H(S)를 포함하는 응답-메시지를 메시지-발신 프로그램 D에 전송하는데, 상자 S에서 상자 D로 가는 화살표에 의해 표시되어 있다. 응답-프로그램-특정-식별자 H(S)는 또한 운영체제(20)에 의해 제공된다. 메시지-발신 프로그램 D와 메시지-수신 프로그램 S는 네트워크를 통해 연결될 수 있는 상이한 컴퓨터 또는 시스템 상에서 실행될 수 있기 때문에, 각각의 프로그램 D, S는 프로그램-특정 식별자를 제공하는 자신의 TCB를 구비할 수 있다. 네트워크로의 접속은, 유선, 적외선 RF 등과 같은 공지된 기술에 의해 제공된다.
다음에, 본 발명의 다양한 예시적 실시예가 설명된다.
도 3은 키(key)를 이용한 구매 시나리오의 개략적인 예시도이다. TCB 및 이와 함께 운영체제(20)에 근거하여, 여러개의 프로그램 또는 어플리케이션들이 구분되어 실행되는데, 여기에서 이를 브라우즈 (프로그램) B, 디스플레이 (프로그램) D 및 서명 (프로그램) S라 칭한다. 본 실시예의 기본 개념은 누구라도 어떠한 것에 대해 요청할 수 있어야 된다는 것이다. 디스플레이 D와 서명 S는 안전한 부분(compartment)에서 실행되기 때문에 신뢰성이 있지만 브라우즈 B는 그렇지 않기 때문에, 브라우즈 B 또는 다른 프로그램은 디스플레이 D에 요청을 보낼 수 있다.
예를 들어, 서명이 요구될 때에, 문서는, 디스플레이, 인증 및 서명 생성을 위해, 안전한 부분인 디스플레이 D와 서명 S로 보내진다. 이 기법의 보안은 오로지 서명 S 및 디스플레이 D 부분과 정보를 사용자에게 디스플레이 해주는 그의 능력과 상기 디스플레이 D로부터의 요청을 받아들이는 서명 요소의 능력에 달려있다. 박스 S에 표시된 바와 같이, 서명 프로그램 S만이 서명키 k에 대한 액세스를 필요로 한다.
사용자에게 데이터를 디스플레이하는 디스플레이 D 부분의 능력에는 다음 두개의 주요 가정(assumption)이 있다. 이 부분은 디스플레이 D에 대한 리소스 로크(resource lock)를 얻을 수 있으며 데이터 그 자체는 단일의잘 정의된 의미를 갖는다는 것이다. 디스플레이 D를 로크할 수 있는 능력은 트로이 목마의 위협을 감소시키는데 유용하다. 시스템 자원에 대한 배타적인 로크를 승인함으로써 악의있는(malicious) 코드가 시스템을 소프트 또는 하드로크하도록 함으로써 이로써 서비스 공격을 부정(denial)하는 단계에 이른다. 모든 시스템 로크가 소프트 로크될 수 있도록 된다면, 이러한 위협은 흥미를 끌지 못한다. 따라서, 주요 이슈는 시스템이 충분한 숫자의 리소스를 로크할 수 있어야 하는 경우이다. 이들 리소스에는, 디스플레이, 터치 스크린, 그밖의 다양한 입/출력 장치, 메모리 페이지 등이 포함된다.
서명 S는 그의 키 k를 보호하고 관리할 수 있어야 하며 문서를 서명하고자 하는 요청이 브라우즈 B로부터 발생했음을 보장할 수 있어야 한다. 이들 데이터를 보호하고 관리하는 것은 이들이 서명의 외부 인터페이스를 통해 다른 부분들에 의해서는 액세스만이 가능하여야 함을 의미한다. 이는 시스템의 일정한 로우 레벨 속성을 의미하는데, 시스템은 메모리로의 미숙한(raw) 액세스를 허용해서는 안되며, 메시지의 보전(IPC)이 유지되어야 하며, 시스템 자원으로의 액세스가 완전한 특권(complete privilege)을 이용하지 않음을 의미한다.
각 부분에 대해 프로그램-특정 식별자를 생성하는 상기 방법을 이용함으로써, 네이밍(naming) 시스템이 제공되어 부분들간에 잘 정의된 차이가 있게 된다.
사용자가 항목을 선택하여 구입하고자 한다고 가정한다. 이 항목은, 도 1에 설명된 컴퓨터에 기초를 들 수 있는 PDA 상에서 실행되는, WAP(Wireless Application Protocol)의 브라우저로서, 브라우즈 B를 이용하여 선택될 수 있다. 브라우저는 신뢰되지 않은 사용자들에 의해 지원되는 복잡한 데이터에 대해 작동하는 매우 복잡한 소프트웨어의 일종이다. 그러나, 브라우저 B가 지불 인증을 위해 디스플레이 D 및 서명 S에 넘겨지는 요청을 생성하는 것은 가능하다. 이를 위해, 브라우저 B는 디스플레이 D로의 메시지 내에 문서에 서명하고자 하는 요청 m을 전송하고, 이에 의해, 운영체제(20)는 브라우저 B의 프로그램-특정 식별자 H(B)를 요청 m에 첨부한다. 이는 H(B), m이라 라벨링된 화살표에 의해 표시된다.
브라우즈 B에 비해 작은 소프트웨어에 해당하는, 디스플레이 D는 요청 m을 프로그램-특정 식별자 H(D)와 함께 포워드하는데, 이는 H(D), m이라 라벨링된 화살표에 의해 표시된다. 서명 부분, 서명 S는 스마트카드에 해당할 수 있으며, 이는 그의 공지된 프로그램-특정 식별자로써 수신된 메시지를 검증한다. 프로그램-특정 식별자 H(D)가 서명 S에 알려져 있으면 (이는 상자 S에서H(D)라 표시됨), 요청 m은 받아들여진다. 또한, 디스플레이 D가 올바르게 작성되었다면, 서명 S는 사용자에 의해 인증된 문서에 대해서만 서명을 생성한다.
키 k하에서 요청 m에 대한 서명은 k-1로 표시된다. 서명 S는 요청 m에 서명하고 이를 그의 프로그램-특정 식별자와 함께 디스플레이 D로 전송한다. 이는H(S), k-1m이라 라벨링된 화살표에 의해 표시되어 있다. 또한, 디스플레이 D는 그의 프로그램-특정 식별자와 함께 서명된 요청을 브라우즈 B로 보낸다. 이는 H(D),k-1m이라 라벨링된 화살표에 의해 표시되어 있다.
도 4는 해쉬를 이용하여 액세스 제어를 하는 파일 시스템 객체를 개략적으로 도시하고 있다. 당연히, 객체라고도 불리우는 서로 다른 어플리케이션간에 데이터를 공유할 필요가 있다. 도 4는 영속하는 객체, 즉, 객체 A, 객체 F 및 객체 G를 표시하고 있으며,객체 A와 객체 G는 객체 F에 연결되고, 객체 F는 신뢰성있는 객체이다. 또한, 객체 F는 오직 A에 대한 엔트리를 갖는 액세스 제어 리스트(40)를 갖는다. 객체 F는 2개의 판독 요청 r(n1)과 r(n2)를 수신하고, 양자는 각각의 프로그램-특정 식별자 H(A)와 H(G)에 의해 동반된다 (각각, 객체 F를 향하는 H(A),r(n1)과 H(G),r(n2)로 라벨링된 화살표에 의해 표시된다.) 첫 번째 요청 r(n1)은 객체 A로부터 오고, 이는 객체 F의 액세스 제어 리스트(40)에 보인다. 이는 승인되어, H(F), d1라 라벨링된 화살표에 의해 표시된 바와 같이, 객체 F에 의해 d1이 리턴된다. 두 번째 요청 r(n2)는 객체 G로부터 나오고, 이는 객체 F의 액세스 제어 리스트(40)에 보이지 않는다. 따라서, 두 번째 요청 r(n2)는 부정되고, H(F), Ø으로 라벨링된 화살표에 의해 표시된 바와 같이, 널(null) 값이 리턴된다. 판독 및 기입 권한에 대해 상이한 액세스 제어 리스트가 유지될 수 있다.
일반화된 소망의 액세스 제어 정책을 구현하기 위해, 풍부한 방법 세트를 갖는 더 복잡한 객체 F가 동일한 형의 구성을 이용할 수 있다.
도 4가 신뢰받는 객체 집합의 갱신을 허용하지 않는 정적 셋업을 도시하는 반면에, 도 6은 도 4의 구성에 기초한 동적 셋업용 파일 시스템 객체를 도시하고 있다. 도 4의 구성은 디지털 서명을 이용하여 갱신될 수 있다. 따라서, 객체 F는, 상자 F에 표시된 바와 같이, 퍼블릭키 K를 갖는다. 객체 F 및 G는 제1 운영 체제(42)에 기초를 두지만, 객체 C라 지칭되는 도움자 어플리케이션은 공지된 바와 같이 채널(460)에 의해 연결되는 제2 운영체제에 기초를 둔다. 제1 운영체제(42)는 사용자측에서 실행되는 반면에, 제2 운영체제(44)는 개발자측 또는 신뢰 엔티티에서 실행된다. 객체 C는 k-1H(G)(k-1는 프라이비트 키)를 객체 F에 운반하는데 이용되며, F는 서명의 유효성을 검증하고 그의 액세스 제어 리스트(40)에 객체 G의 프로그램-특정 식별자 H(G)를 추가한다. 이제, 객체 G에서 객체 F로의 H(G),r(n1)과 같은 액세스 요청은 객체 F에 의해 승인될 것이며, 객체 F는 각각의 화살표에 의해 표시된 바와 같이 H(F), d1을 리턴한다.
상기 구성은 디지털 서명을 포함하는 것이 그 서명이 유효한 한 신뢰될 필요가 없다는 사실에 달려 있다.
이와 같은 사실은 도움자 어플리케이션을 이용하여 독단적으로 복잡한 신뢰 관계를 설정하는데 이용될 수 있다.
도 6은 객체 A와 객체 G간의 상호 신뢰(MT) 관계를 셋업하기 위해, 도움자 어플리케이션(여기서는, 객체 C)를 이용하는 실시예를 개략적으로 도시하고 있다. 양 객체 A와 G는, 객체 A 및 G 각각의 아래에 표시된 바와 같이, 퍼블릭키 k와 그들 자신의 특정 액세스 제어 리스트를 갖는다. 도움자 어플리케이션으로서 객체 C를 이용하면, 객체 C는 객체 A에 그의 프로그램-특정 식별자 H(G)와 함께 k-1H(G)를 전달하고, 객체 A는 서명의 유효성을 검증하고 프로그램-특정 식별자 H(G)를 액세스 제어 리스트에 추가한다. 반면에, 객체 C는 객체 G에 프로그램-특정 식별자 H(C)와 함께 k-1H(A)를 전달하고, 객체 G는 서명의 유효성을 검증하고 프로그램-특정 식별자 H(A)를 액세스 제어 리스트에 추가한다. 이후의 통신을 위해, 객체 A는 객체 G를 직접 접촉할 수 있으며 그 반대의 경우도 가능한데, 이는 상자 A와 G 사이의 점선에 의해 표시된 바와 같이, 이제 이들이 서로를 알고 신뢰하게 되었기 때문이다.
도 6을 참조하여 설명한 기법은, 키의 가공하기 어려운 계층 구조, 인증, 개발자 등록 등을 필요로 하는 종래의 코드 서명화(code signing)와 다르다. 이 기법은 시스템 특권을 판단하기 위해 코드 서명화를 이용하지 않고, 대신에 개발자 소프트웨어 그룹의 증명서(credentials)로서 서명을 이용한다.
이 기법이 유용할 수 있는 예는 은행이 공통키를 공유하고자 하는 여러개의 지불기법을 갖는 경우이다. 개별 요소들은 독립적으로 갱신될 수 있다.
다음의 실시예는 암호화 함수에 기초한 액세스 제어 메커니즘을 이용하는 디지털 서명을 이용하는 지불 시스템 설계를 설명한다. 이 시스템은 WAP 자체의 보안에 의존하지 않고 WAP을 통해 이용되도록 설계된다. 여러 단계들이 다음에 설명된다.
글로벌 셋업(Global Setup)
은행의 초기 셋업은, 은행이 장치 제조업자, 즉, PDA 또는 컴퓨터의 제조업자들을 접촉할 필요가 없기 때문에, 그다지 방해되지 않는다.
1. 은행은 개별 사용자들의 키를 서명하기 위해 퍼블릭키/프라이비트 키 쌍을 생성한다. 이 키 쌍은 mk/mk-1이라 지칭한다. 이는 은행 마스터 키 또는 이들의 파생물일 수 있다.
2. 은행은 은행 수트 어플리케이션(banks suite of applications)에서 맴버쉽을 확인하기 위해 퍼블릭키/프라이비트 키 쌍을 생성한다. 이 키 쌍은 ak/ak-1이라 지칭한다.
3. 은행은 퍼블릭키 mk와 ak를 포함하는 서명 프로그램 S를 작성한다.
4. 또한, 은행은 도 3을 참조하여 설명한 바와 같이 디스플레이 프로그램 D를 작성한다. 이는 서명될 것, 예를 들어, 수취인, 금액, 날짜 및 기재사항에 대한 간단한 설명으로서 받아들인다. 디스플레이 프로그램 D는 그 후에 물리적 디스플레이 장치를 로크하고 그 다음에 사용자에게 필요한 정보를 디스플레이해준다. 사용자가 동의하면, 디스플레이 프로그램 D는 로크를 해제하고, 도 3을 참조하여 언급된 바와 같이, 서명 프로그램 S에 조건(term)들이 전달될 것이다.
5. 은행은 ka-1H(D)를 계산하고, 도 6에 도시된 바와 같이, 이를 도움자 또는 등록 프로그램 C에 위치시킨다.
개별 셋업(individual setup)
은행이 사용자를 위한 키를 생성하여 분배하고자 한다고 가정한다.
1. 각각의 사용자 U에 대해, 은행은 키 쌍 uk/uk-1와, 서명된 키 쌍 mk-1(uk/uk-1)를 수반하는 어플리케이션 CU를 생성한다.
2. 은행은 사용자 U에게 디스플레이 프로그램 D, 서명 프로그램 S, 등록 프로그램 C 및 어플리케이션 CU를 제공한다. 어플리케이션 CU만이 사용자 U에 달려 있으며, 보안을 필요로 하는 유일한 구성요소이다. 은행은 일정한 방식으로 보안을 분할하고자 할 수 있다.
3. 그런 후에, 사용자 U는 전단계에서 언급한 어플리케이션들을 설치하고 시스템은 각각의 프로그램-특정 식별자 H(D), H(S), H(C) 및 H(CU)에 대응하는 4개의 새로운 보안 도메인을 자동적으로 셋업한다.
4. 사용자 U는 mk-1(uk/uk-1)를 포함하는 메시지를 서명 프로그램 S에 전송하는 어플리케이션 CU를 실행한다. 서명 프로그램 S는 키 mk를 이용하여 uk/uk-1가 유효한 사용자 키인지를 검증한다. 그리고나서, 어플리케이션 CU는 등록 프로그램 C를 호출하고, 이제 더 이상 존재할 목적이 없으므로 스스로 삭제된다. 등록 프로그램 C는 서명 프로그램 S에 ka-1H(D)를 포함하는 메시지를 전송한다. 다음에, 서명 프로그램 S는 ka를 이용하여 디스플레이 프로그램 D가 신뢰받는 어플리케이션인지를 검증한다. 이에 따라, 서명프로그램 S는 디스플레이 프로그램 D를 신뢰한다.
WAP 브라우저로서, 어플리케이션 또는 프로그램이 서명을 생성하고자 할 때, 이는 디스플레이 및 승인을 위해 디스플레이 프로그램 D에 텍스트 또는 문서를 전달한다. 사용자 U가 그것에 서명할 서명 프로그램 S에 요청이 전해지는 것을 승인하면, 서명 프로그램 S는 그 요청이 신뢰받는 디스플레이 프로그램 D로부터 온 것이기 때문에 그 것이 사용자가 소망하는 것을 반영한 것임을 알게 된다. 서명은 결국 처음 어플리케이션에 리턴된다.
은행이, 서명 프로그램 S에 의해 신뢰되는, 새로운 어플리케이션 N, 예를 들면 홈뱅킹용 어플리케이션을 생성하고자 한다면, 그들은 단지 ka-1H(N)를 수반하는 도움자 어플리케이션 C´를 생성하면 된다.
스마트카드
은행이 사용자 키 쌍중 프라이비트 부분을 보호하기 위해 스마트카드를 사용하고자 한다면, 다음과 같이 개별 셋업이 변형될 수 있다.
1, 각각의 사용자 U에 대해, 은행은 키 쌍 uk/uk-1를 생성하여 이를 스마트카드에 넣는다. 이 키 쌍 uk/uk-1은 은행의 마스터키 mk-1(uk/uk-1)를 이용하여 서명될 수 있다.
2. 은행은 사용자 U에게, 적어도 디스플레이 프로그램 D와 등록 프로그램 C를 제공한다.
3. 그러면, 사용자 U는 전술한 단계에서 언급된 어플리케이션들을 설치하고 시스템은 각각의 프로그램-특정 식별자 H(D) 및 H(C)에 대응하는 2개의 새로운 보안 도메인을 자동으로 셋업한다.
4. 사용자 U는 스마트카드에 ka-1H(D)를 포함하는 메시지를 전송하는 등록 프로그램 C를 실행시킨다. 스마트카드는 ka를 이용하여 디스플레이 프로그램 D가 신뢰받는 어플리케이션임을 검증하고 따라서 이후에 디스플레이 프로그램 D를 신뢰한다.
디스플레이 프로그램 D가 스마트카드에 요청을 보내면, 요청은 디스플레이 프로그램 D의 프로그램-특정 식별자와 함께 운반된다.
상기에 개시된 실시예는 도시되거나 전술된 다른 실시예중 하나 또는 몇몇과 결합될 수 있다. 이는 또한 실시예의 하나 이상의 특징에 대해서도 가능하다.
본 발명은, 하드웨어, 소프트웨어, 하드웨어 및 소프트웨어의 조합으로 실현될 수 있다. 전술한 방법을 수행하기 위해 채택된 임의의 종류의 컴퓨터 시스템 또는 장치가 수행된다. 하드웨어 및 소프트웨어의 전형적인 조합은 컴퓨터 프로그램이 로드되어 실행될 때 컴퓨터 시스템이 전술한 방법을 실행하도록 제어해주는 프로그램과 범용 컴퓨터 시스템일 수 있다. 본 발명은 또한 컴퓨터 프로그램 제품으로 구현되어, 전술한 방법의 구현을 가능하게 하는 모든 특징을 포함하며, 컴퓨터 시스템에 로드될 때 이들 방법을 실행할 수 있다.
본 발명의 관점에서 컴퓨터 프로그램 수단 또는 컴퓨터 프로그램은 정보처리능력을 갖는 시스템이 a)또다른 언어, 코드 또는 표시로의 변환, b)상이한 제품 형태로의 재생산 이후에 직접 또는 그 이후에 특정 기능을 수행하도록 하는, 임의의 언어, 코드 또는 기호로 된, 명령 집합의 표현을 의미한다.
프로그램-특정 식별자, 즉, 프로그램-특정 이름이 메시지-수신 프로그램에 알려지고 메시지-발신 프로그램에 알려진 응답-프로그램-특정 식별자와 수락 또는 승인을 포함하는 응답-메시지가 전송된다면, 양 프로그램이 서로를 신뢰할 수 있고, 이에 따라 메시지-수신 프로그램은 메시지-발신 프로그램과 상호작용하고자 하게 되는 장점이 있다. 양 프로그램간의 신뢰성있는 통신이 쉽게 설정될 수 있다.

Claims (15)

  1. 메시지-수신 프로그램(S)에 의해 메시지-발신 프로그램(D)의 신원(identity)을 검증하는 방법에 있어서, 상기 방법은
    상기 메시지-발신 프로그램(D)으로부터 프로그램-특정 식별자 (H(D)) - 상기 프로그램-특정 식별자는 신뢰 컴퓨팅 베이스(trusted computing base: TCB)에 의해 상기 메시지-발신 프로그램(D)에 대해 제공됨) -를 포함하는 메시지를 수신하는 단계와,
    상기 수신된 프로그램-특정 식별자(H(D))가 상기 메시지-수신 프로그램(S)에 알려져 있는지를 검증하는 단계
    를 포함하는 검증 방법.
  2. 메시지-발신 프로그램(D)의 신원을 메시지-수신 프로그램(S)에 밝히는 방법에 있어서, 상기 방법은
    상기 메시지-발신 프로그램(D)로부터 상기 메시지-수신 프로그램(S)에 프로그램-특정 식별자(H(D))-상기 프로그램-특정 식별자는 신뢰 컴퓨팅 베이스(TCB)에 의해 상기 메시지-발신 프로그램에 대해 제공됨-를 포함하는 메시지를 전송하는 단계를 포함하며, 상기 프로그램-특정 식별자가 상기 메시지-수신 프로그램(S)에 알려져 있는지를 상기 메시지-수신 프로그램(S)에서 검증할 수 있는 검증 방법.
  3. 메시지-수신 프로그램(S)에 의해 메시지-발신 프로그램(D)의 신원을 검증하는 방법에 있어서, 상기 방법은
    신뢰 컴퓨팅 베이스(TCB)에 의해 상기 메시지-발신 프로그램(D)에 대한 프로그램-특정 식별자(H(D))를 제공하는 단계와,
    상기 프로그램-특정 식별자(H(D))를 포함하는 메시지를 상기 메시지-발신 프로그램(D)로부터 상기 메시지-수신 프로그램(S)에 전송하는 단계와,
    상기 메시지-수신 프로그램(S)에서 상기 메시지를 수신하는 단계와,
    상기 수신된 프로그램-특정 식별자(H(D))가 상기 메시지-수신 프로그램(S)에 알려져 있는지를 검증하는 단계
    를 포함하는 검증 방법.
  4. 제1항 내지 제3항중 어느 한 항에 있어서, 상기 수신된 프로그램-특정 식별자(H(D))가 상기 메시지-수신 프로그램(S)에 알려져 있는지를 검증한 이후에, 상기 메시지-수신 프로그램(S)은 응답-메시지-발신 프로그램이 되어 상기 메시지-발신 프로그램(D)에 응답-메시지를 전송하며, 상기 응답-메시지는
    상기 신뢰 컴퓨팅 베이스(TCB)에 의해 상기 응답-메시지-발신 프로그램에 대해 제공된 응답-프로그램-특정 식별자(H(S))와,
    상기 프로그램-특정 식별자(H(D))가 알려진 것으로 검증된 경우에 승인(acknowledge)
    을 포함하는 검증 방법.
  5. 제1항 내지 제3항중 어느 한 항에 있어서, 상기 메시지-발신 프로그램(D)에 암호화 함수(H), 바람직하게는 해쉬 함수, 더 바람직하게는 MD5 또는 SHA-1과 같은 단-방향-해쉬 함수를 적용함으로써 유도되는 실질적으로 유일한 암호 식별자를 상기 프로그램-특정 식별자(H(D))로서 이용하는 검증 방법.
  6. 제1항 내지 제3항중 어느 한 항에 있어서, 상이한 프로그램들간에 신뢰를 확립하기 위해 프라이비트 암호키(k-1)를 이용하여 상기 프로그램-특정 식별자(H(D)), 또는 상기 메시지, 또는 상기 프로그램-특정 식별자(H(D)) 및 상기 메시지를 서명하는 단계를 더 포함하는 검증 방법.
  7. 제6항에 있어서, 상기 메시지는 상기 상이한 프로그램들간에 확립된 신뢰 관계에 부가적인 프로그램의 신뢰를 확립하기 위해 상기 프라이비트 암호키(k-1)를 이용하여 서명되는 부가적인 프로그램-특정 식별자 (H(G))를 더 포함하는 검증 방법.
  8. 제1항 내지 제3항중 어느 한 항에 있어서, 상기 메시지-수신 프로그램(S)는 퍼블릭 암호키(k)를 갖는 검증 방법.
  9. 제1항 내지 제3항중 어느 한 항에 있어서, 상기 메시지-수신 프로그램(S), 또는 상기 신뢰 컴퓨팅 베이스(TCB), 또는 상기 메시지-수신 프로그램(S) 및 상기 신뢰 컴퓨팅 베이스(TCB)는 미리 저장된 프로그램-특정 식별자들을 포함하는 리스트를 이용하고 상기 메시지-수신 프로그램(S)는 상기 프로그램-특정 식별자(H(D))가 상기 미리 저장된 프로그램-특정 식별자들중의 하나와 동일한 지를 검증하는 검증 방법.
  10. 제1항 내지 제3항중 어느 한 항에 있어서, 상기 메시지-수신프로그램(S)는 상기 프로그램-특정 식별자(H(D))가 알려진 것으로 검증되지 않은 경우에 거절-메시지를 전송하는 검증 방법.
  11. 제1항 내지 제3항중 어느 한 항에 있어서, 상기 메시지-발신 프로그램(D)와 상기 메시지-수신 프로그램(S)은 서로 다른 시스템에서 실행되며 네트워크를 통해 연결가능하고, 각각은 프로그램-특정 암호화 식별자를 제공하기 위한 신뢰 컴퓨팅 베이스(TCB)를 구비하는 검증 방법.
  12. 삭제
  13. 제1항 내지 제3항중 어느 한 항에 따른 방법을 수행하는 컴퓨터 프로그램을 기록한 컴퓨터에 의해 판독가능한 기록매체.
  14. 컴퓨터상에서 메시지-수신 프로그램(S)에 의해 메시지-발신 프로그램(D)의 신원을 검증하기 위한 장치에 있어서, 상기 장치는
    컴퓨팅 수단과,
    상기 메시지-발신 프로그램(D)로부터 프로그램-특정 식별자(H(D)) -상기 프로그램-특정 식별자(H(D))는 신뢰 컴퓨팅 베이스(TCB)에 의해 상기 메시지-발신 프로그램(D)에 대해 제공됨-를 포함하는 메시지를 수신하기 위한 수신-모듈과,
    상기 프로그램-특정 식별자(H(D))가 상기 메시지-수신 프로그램(S)에 알려져 있는지를 검증하는 검증-모듈
    을 포함하는 검증 장치.
  15. 컴퓨터상에서 메시지-수신 프로그램(S)에 의해 메시지-발신 프로그램(D)의 신원을 밝히기 위한 장치에 있어서, 상기 장치는
    컴퓨팅 수단과,
    프로그램-특정 식별자(H(D))를 생성하기 위한 생성-모듈을 포함하는 신뢰 컴퓨팅 베이스(TCB)와,
    상기 프로그램-특정 식별자(H(D))를 포함하는 메시지를 상기 메시지-발신 프로그램(D)으로부터 전송하기 위한 전송-모듈을 포함하며, 상기 프로그램-특정 식별자(H(D))가 상기 메시지-수신 프로그램(S)에 알려져 있는지 상기 메시지-수신 프로그램(S)에서 검증할 수 있는 검증 장치.
KR10-2001-0009231A 2000-03-15 2001-02-23 컴퓨터 액세스 제어 KR100430147B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP00105529.2 2000-03-15
EP00105529 2000-03-15

Publications (2)

Publication Number Publication Date
KR20010096572A KR20010096572A (ko) 2001-11-07
KR100430147B1 true KR100430147B1 (ko) 2004-05-03

Family

ID=8168110

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0009231A KR100430147B1 (ko) 2000-03-15 2001-02-23 컴퓨터 액세스 제어

Country Status (3)

Country Link
US (1) US7134018B2 (ko)
JP (1) JP3731867B2 (ko)
KR (1) KR100430147B1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2826811B1 (fr) * 2001-06-27 2003-11-07 France Telecom Procede d'authentification cryptographique
US20030084436A1 (en) * 2001-10-30 2003-05-01 Joubert Berger System and method for installing applications in a trusted environment
US7487365B2 (en) 2002-04-17 2009-02-03 Microsoft Corporation Saving and retrieving data based on symmetric key encryption
US7890771B2 (en) 2002-04-17 2011-02-15 Microsoft Corporation Saving and retrieving data based on public key encryption
GB0226874D0 (en) * 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Switching between secure and non-secure processing modes
CA2413690A1 (en) * 2002-12-06 2004-06-06 Ibm Canada Limited-Ibm Canada Limitee Zero knowledge document comparison between mutually distrustful parties
JP4729844B2 (ja) * 2003-10-16 2011-07-20 富士ゼロックス株式会社 サーバ装置、情報の提供方法、及びプログラム
JP4064914B2 (ja) 2003-12-02 2008-03-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、サーバ装置、情報処理装置のための方法、サーバ装置のための方法および装置実行可能なプログラム
US7849326B2 (en) * 2004-01-08 2010-12-07 International Business Machines Corporation Method and system for protecting master secrets using smart key devices
US7711951B2 (en) * 2004-01-08 2010-05-04 International Business Machines Corporation Method and system for establishing a trust framework based on smart key devices
US7565538B2 (en) * 2004-04-05 2009-07-21 Microsoft Corporation Flow token
US20060029000A1 (en) * 2004-05-14 2006-02-09 International Business Machines Corporation Connection establishment in a proxy server environment
US7788260B2 (en) 2004-06-14 2010-08-31 Facebook, Inc. Ranking search results based on the frequency of clicks on the search results by members of a social network who are within a predetermined degree of separation
US7484247B2 (en) 2004-08-07 2009-01-27 Allen F Rozman System and method for protecting a computer system from malicious software
US7409589B2 (en) * 2005-05-27 2008-08-05 International Business Machines Corporation Method and apparatus for reducing number of cycles required to checkpoint instructions in a multi-threaded processor
AU2009222007A1 (en) * 2008-03-04 2009-09-11 Apple Inc. System and method of authorizing execution of software code based on accessible entitlements
US20100287104A1 (en) * 2009-05-06 2010-11-11 Luc Leroy Systems and Methods for Collaborative Innovation Management
KR101478415B1 (ko) * 2009-10-15 2014-12-31 인터디지탈 패튼 홀딩스, 인크 가입 기반 서비스에 액세스하기 위한 등록 및 크리덴셜 롤 아웃
US8527989B2 (en) 2010-07-12 2013-09-03 International Business Machines Corporation Tracking loading and unloading of kernel extensions in isolated virtual space
US8397245B2 (en) 2010-07-12 2013-03-12 International Business Machines Corporation Managing loading and unloading of shared kernel extensions in isolated virtual space
US8448169B2 (en) * 2010-07-12 2013-05-21 International Business Machines Corporation Managing unique electronic identification for kernel extensions in isolated virtual space
US20120297485A1 (en) * 2010-12-08 2012-11-22 Manabu Maeda Information processing device and information processing method
DE102012222715B4 (de) * 2012-12-11 2020-06-04 Hyundai Motor Company Vorrichtung und Verfahren zum vorausschauenden Erkennen einer Fahrzeugkollision
US11387978B2 (en) * 2019-09-23 2022-07-12 Live Nation Entertainment, Inc. Systems and methods for securing access rights to resources using cryptography and the blockchain

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990023602A (ko) * 1997-08-15 1999-03-25 루센트 테크놀러지스 인크 암호화된 프로그램 송신 및 수신 방법, 복호화 방법 및 제조 물품
KR100207815B1 (ko) * 1992-11-03 1999-07-15 브래드포드 데이비드 알 클라이언트-서버 통신 인증방법 및 장치
US5940513A (en) * 1995-08-25 1999-08-17 Intel Corporation Parameterized hash functions for access control
KR20010007044A (ko) * 1999-05-07 2001-01-26 루센트 테크놀러지스 인크 해시 함수 및 프로그램 식별자를 이용하여 전송 프로그램내용으로의 액세스를 제한하는 암호화 방법 및 장치
US6263432B1 (en) * 1997-10-06 2001-07-17 Ncr Corporation Electronic ticketing, authentication and/or authorization security system for internet applications

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5343527A (en) * 1993-10-27 1994-08-30 International Business Machines Corporation Hybrid encryption method and system for protecting reusable software components
US5841978A (en) * 1993-11-18 1998-11-24 Digimarc Corporation Network linking method using steganographically embedded data objects
CN1912885B (zh) * 1995-02-13 2010-12-22 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
US5657390A (en) * 1995-08-25 1997-08-12 Netscape Communications Corporation Secure socket layer application program apparatus and method
US5872844A (en) * 1996-11-18 1999-02-16 Microsoft Corporation System and method for detecting fraudulent expenditure of transferable electronic assets
US5922074A (en) 1997-02-28 1999-07-13 Xcert Software, Inc. Method of and apparatus for providing secure distributed directory services and public key infrastructure
JPH1124917A (ja) 1997-06-30 1999-01-29 I N S Eng Kk コピープロテクト方法及びコンピュータ装置のコピープロテクト方式
US6023764A (en) * 1997-10-20 2000-02-08 International Business Machines Corporation Method and apparatus for providing security certificate management for Java Applets
WO1999044133A2 (en) 1998-02-26 1999-09-02 Sun Microsystems, Inc. Method and system for deterministic hashes to identify remote methods
US6748538B1 (en) * 1999-11-03 2004-06-08 Intel Corporation Integrity scanner

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100207815B1 (ko) * 1992-11-03 1999-07-15 브래드포드 데이비드 알 클라이언트-서버 통신 인증방법 및 장치
US5940513A (en) * 1995-08-25 1999-08-17 Intel Corporation Parameterized hash functions for access control
KR19990023602A (ko) * 1997-08-15 1999-03-25 루센트 테크놀러지스 인크 암호화된 프로그램 송신 및 수신 방법, 복호화 방법 및 제조 물품
US6263432B1 (en) * 1997-10-06 2001-07-17 Ncr Corporation Electronic ticketing, authentication and/or authorization security system for internet applications
KR20010007044A (ko) * 1999-05-07 2001-01-26 루센트 테크놀러지스 인크 해시 함수 및 프로그램 식별자를 이용하여 전송 프로그램내용으로의 액세스를 제한하는 암호화 방법 및 장치

Also Published As

Publication number Publication date
KR20010096572A (ko) 2001-11-07
US7134018B2 (en) 2006-11-07
JP3731867B2 (ja) 2006-01-05
US20020066016A1 (en) 2002-05-30
JP2001282375A (ja) 2001-10-12

Similar Documents

Publication Publication Date Title
KR100430147B1 (ko) 컴퓨터 액세스 제어
Sandhu et al. Peer-to-peer access control architecture using trusted computing technology
KR100868121B1 (ko) 런타임 패키지 서명에서 트러스트된, 하드웨어 기반의 신원증명을 사용하여 모바일 통신과 고액 거래 실행을 보안처리하기 위한 방법
US7165179B2 (en) Digital signature verification and program transmission
KR100800346B1 (ko) 신뢰 컴퓨팅 플랫폼에서 동적으로 생성된 배서 키에 대한가상 배서 증명서를 확립하는 방법, 장치 및 프로그램을기록한 컴퓨터로 판독 가능한 기록 매체
US7793097B2 (en) Extension of X.509 certificates to simultaneously support multiple cryptographic algorithms
Karnik et al. A security architecture for mobile agents in Ajanta
US11764976B2 (en) System and method for secure internet communications
US6996719B2 (en) Secure password entry
Nyman et al. Citizen electronic identities using TPM 2.0
EP1227386A1 (en) Access control for computers
Nauman et al. Token: Trustable keystroke-based authentication for web-based applications on smartphones
Li et al. A capability-based distributed authorization system to enforce context-aware permission sequences
Ur Rahman et al. Practical security for rural internet kiosks
KR102542840B1 (ko) 오픈 api 기반의 금융 인증 서비스 제공 방법 및 시스템
KR102498688B1 (ko) 인증 서비스 제공 방법 및 시스템
Pradhan et al. Remote Authentication of IoT Devices Based Upon Fog Computing
Sobel Secure Input Overlays: increasing security for sensitive data on Android
Piščević Reducing E-commerce risks using digital certificates
Deepthi et al. Lightweight Capability-Based Access Control for Internet of Things (IoT)
Fietkau et al. Secure Authentication for Everyone! Enabling 2nd-Factor Authentication Under Real-World Constraints
Riordan Access Control for PDAs
WO2024112394A1 (en) Sharing security settings between entities using verifiable credentials
Gnanasekar et al. Distributed cryptographic key management for mobile agent security
Dos Santos The use of safe areas of computation (SAC) for secure computing

Legal Events

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

Payment date: 20070402

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee