KR20070122495A - 피어-투-피어 인증 및 허가 - Google Patents

피어-투-피어 인증 및 허가 Download PDF

Info

Publication number
KR20070122495A
KR20070122495A KR1020077023983A KR20077023983A KR20070122495A KR 20070122495 A KR20070122495 A KR 20070122495A KR 1020077023983 A KR1020077023983 A KR 1020077023983A KR 20077023983 A KR20077023983 A KR 20077023983A KR 20070122495 A KR20070122495 A KR 20070122495A
Authority
KR
South Korea
Prior art keywords
computing device
user
trusted
certificates
certificate
Prior art date
Application number
KR1020077023983A
Other languages
English (en)
Other versions
KR101150108B1 (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 KR20070122495A publication Critical patent/KR20070122495A/ko
Application granted granted Critical
Publication of KR101150108B1 publication Critical patent/KR101150108B1/ko

Links

Images

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
    • 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/321Cryptographic 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 a third party or a trusted authority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual 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
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3265Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Abstract

인증 메커니즘은 컴퓨팅 장치들의 사용자들에 의하여 개별적으로 채워질 수 있는 신뢰된 사람 저장소를 이용하며, 인증 권한의 기능을 하도록 사용자가 바라는 엔터티들의 인증서들을 포함할 수 있다. 따라서, 각각의 장치가 신뢰된 사람 저장소에 존재하는 장치에 의하여 서명된 인증서 또는 인증서 체인을 제시하는 한, 어떤 장치도 제3자 인증 권한에 의하여 서명된 인증서 또는 인증서 체인을 제시하지 않는 경우에도 피어-투-피어 접속이 이루어질 수 있다. 인증이 되면, 원격 사용자는 로컬 프로세스들이 사용자를 가장하여 사용자의 패스워드 또는 패스워드형을 사용자의 인증서의 해시로 변경한 후 그 사용자를 로그온하여 적절한 토큰을 생성하게 함으로써 호스트 장치 상의 신뢰된 리소스들을 액세스할 수 있다. 토큰은 표준 방식으로 참조되어 원격 사용자가 신뢰된 리소스에 액세스하도록 허가되어 있는지 여부를 결정할 수 있다.
인증서, 컴퓨팅 장치, 리소스, 해시, 원격 사용자, 토큰, 엔터티

Description

피어-투-피어 인증 및 허가{PEER-TO-PEER AUTHENTICATION AND AUTHORIZATION}
본 발명은 일반적으로 피어-투-피어 통신에 관한 것이며, 특히, 피어-투-피어 네트워크에서 피어들을 인증 및 허가하기 위한 메커니즘들에 관한 것이다.
전통적으로, 네트워크 접속은 클라이언트 컴퓨팅 장치와 서버 컴퓨팅 장치 사이에 형성되었으며, 서버는 데이터의 중앙 리포지토리(central repository) 기능을 하였다. 따라서, 클라이언트는 클라이언트의 요구를 충족시킬 특정 서버를 선택하고 그 서버에 접속을 시도한다. 서버에 접속을 시도하는 경우, 클라이언트는 한 형태의 ID(identification) 및, 적절한 경우, 보안된 정보에 대한 클라이언트 액세스를 허용하는 패스워드 또는 유사한 보안 정보를 제공한다. 서버는 클라이언트의 ID 및, 필요하다면, 보안 정보를 서버가 액세스를 부여하기로 동의한 클라이언트들의 데이터베이스와 비교한다. 클라이언트의 ID와 보안 정보가 데이터베이스 내의 엔트리와 매칭되면, 서버는 클라이언트 액세스를 부여한다.
그러나, 상기 시스템은 클라이언트가 서버의 신원(identity)를 확인할 수 있는 어떤 메커니즘을 가지고 있는 것을 가정한다. 예를 들면, 많은 클라이언트들은 전화 회사에 의하여 할당된 전화 번호를 다이얼함으로써 특정의 서버로의 모뎀 접 속을 통하여 그 서버에 접속되었다. 그러한 경우, 클라이언트는 적절한 서버가 클라이언트의 인증 정보를 수신하고 있는 것을 확인할 수 있는데, 그 이유는 전화 번호는 할당된 수신지(assigned destination)에만 접속하도록 전화 회사에 의하여 보장되었기 때문이다. 그러나, 인터넷과 월드 와이드 웹의 성장이 두드러짐에 따라, 라우터들로 공지된 중간 컴퓨팅 장치를 통한 전용 네트워킹 접속들을 경유하여, 클라이언트들과 서버들 사이에 보다 많은 접속들이 형성되었다. 그러한 라우터들은 인간 판독 가능 서버 명칭들을 종종 가변적인 인터넷 어드레스들에 상관시키는 라우팅 테이블들 또는 유사한 정보에 기초하여 클라이언트 통신을 특정 서버로 향하게 한다. 하나 이상의 라우팅 테이블들이 손상된 경우, 클라이언트의 통신은 부적절한 서버로 향할 수 있다. 그러한 부적절한 서버들은 종종 클라이언트의 인증 정보를 획득하기 위한 시도에서 자신을 적절한 서버로서 제시한다. 따라서, 서버가 클라이언트에게 그 서버가 진정으로 자신을 나타내는 것임을 증명할 수 있는 메커니즘에 대한 요구가 발생하였다.
CA(Certificate authority)는 클라이언트가 통신중인 서버가 진정으로 자신을 나타내는 것임에 대한 독립적인 확인으로서 기능할 수 있다. 특히, 서버는 클라이언트가 신뢰하는 제3자 CA를 이용하여 확인할 수 있는, 서명된 인증서(signed certificate)와 같은 보호된 식별자를 클라이언트에게 제공할 수 있다. 오늘날 채용된 통상의 일 메커니즘에서, 클라이언트는 보호된 식별자를 확인할 수 있는데 그 이유는 클라이언트가, 신뢰할 만한 방식으로, 클라이언트가 보호된 식별자를 디코드하는데 이용할 수 있는 CA의 공용키를 수신하였기 때문이다. 그러한 메커니즘을 이용하여, 서버가 클라이언트에 제공한 보호된 식별자는, CA의 개인키에 의하여 서명된 서버의 인증서일 수 있다. CA만이 CA의 공용키에 액세스할 수 있고, CA의 공용키만이 예를 들어 서명된 인증서를 디코드할 수 있으므로, 서명된 인증서가 CA의 공용키를 이용하여 클라이언트에 의하여 적절히 디코드되면, 클라이언트는 CA가 그 인증서에 서명하였고 그곳에 포함된 정보를 확인한 것으로 결정한다. 서버가 의도되었던 서버인 것으로 클라이언트가 만족하면, 클라이언트는 계속해서 전술된 바와 같이 서버에 대하여 그 자신을 식별시킬 수 있다.
그러나, 피어-투-피어 네트워크에는, 클라이언트가 접속할 수 있는 중앙 서버가 없다. 대신, 클라이언트 컴퓨팅 장치들은, 일련의 클라이언트-투-클라이언트 접속으로부터 네트워크를 형성하여 서로 통신한다. 클라이언트-투-클라이언트 접속은 전술된 방식으로 확보될 수 있지만, 각각의 개별 클라이언트 장치가 그 자신을 독립적인 제3자 CA(independent third party)에 등록하는 것은 실용적이지 못하다. 따라서, 필요한 것은 제3자 CA에 등록하는 비용 및 복잡성을 요구하지 않고, 한 클라이언트가 다른 클라이언트에 그 자신을 인증할 수 있는 메커니즘이다. 유사하게, 클라이언트가 인증되면, 한 클라이언트가 다른 클라이언트의 데이터 및 리소스들에 액세스할 수 있게 해주는 허가 메커니즘(authorization mechanisms)에 대한 요구가 존재한다.
발명의 개요
따라서, 본 발명의 일 실시예에 따르면, 신뢰된 사람 저장소(trusted people store)는 인증서들로 수동으로 채워질 수 있으므로, 신뢰된 사람 저장소 내의 인증서들과 매칭하는 인증서들을 제시하는 클라이언트들은 제3자 인증서 인증자들(third party certificate authenticators)이 필요 없이 인증될 수 있다.
다른 실시예에서, 클라이언트 그룹은 특별히 생성된 그룹 인증서를 통하여 인증될 수 있다.
또 다른 실시예에서, 클라이언트 또는 클라이언트 그룹은 클라이언트의 인증서들로부터 신뢰된 사람 저장소 또는 신뢰된 루트 저장소(trusted root store)에 존재하는 인증서에 이르는 신뢰의 체인(chain)를 증명하는 인증서 체인을 제시함으로써 인증될 수 있다.
또 다른 실시예에서, 한 클라이언트가 다른 클라이언트에 의하여 인증되면, 제2 클라이언트 상의 제1 클라이언트 계정(account)의 패스워드를 알려진 값으로 변경하고, 그 후 제2 클라이언트의 데이터 및 리소스들에 대한 액세스를 부여하는데 이용될 수 있는 사용자 토큰(user token)을 생성하기 위하여 제1 클라이언트를 로그온함으로써, 그 한 클라이언트에게 다른 클라이언트 상의 데이터 및 리소스들에 대한 액세스가 부여될 수 있다.
본 명세서의 설명은 주로 피어-투-피어 네트워크에서 컴퓨팅 장치들의 인증 및 허가에 초점을 맞추고 있지만, 본 설명은 종래의 클라이언트 서버 네트워크 환경들, 또는 제3자 인증서 권한(third party certificate authority)의 이용이 실용적이지 못한 임의의 네트워크 토폴로지에 동일하게 적용 가능한 것이 자명할 것이다. 더욱이, 이하의 설명은 별도의 컴퓨팅 장치들 상에서 실행중인 프로세스들을 참조하지만, 여기에 기술된 메커니즘들은 복수의 프로세서들을 가지거나, 복수의 프로세싱 방식으로 동작하는 단일의 컴퓨팅 장치에 동일하게 적용 가능하다. 본 발명의 추가적인 특징들 및 장점들은 첨부도면들을 참조로 진행되는 예시적인 실시예들에 대한 이하의 상세한 설명으로부터 자명할 것이다.
첨부된 청구범위는 본 발명의 특징들을 상세히 설명하지만, 본 발명은, 그 목적들 및 장점들과 함께, 첨부도면들과 연계한 이하의 상세한 설명으로부터 가장 잘 이해될 수 있다.
도 1은 본 발명의 실시예들이 실시될 수 있는 예시적인 컴퓨팅 장치를 일반적으로 도시하는 블럭도이다.
도 2는 본 발명의 일 실시예에 따른 인증 메커니즘의 동작을 일반적으로 도시한다.
도 3은 본 발명의 일 실시예에 따른 인증 메커니즘에 의하여 수행된 동작들을 일반적으로 도시한다.
도 4는 본 발명의 일 실시예에 의하여 고려된 허가 메커니즘에 의하여 이용된 소프트웨어 컴포넌트들을 일반적으로 도시한다.
도 5는 본 발명의 일 실시예에 따른 허가 메커니즘에 의하여 수행된 동작들을 일반적으로 도시한다.
컴퓨팅 장치 상의 신뢰된 사람 저장소는 신뢰된 장치들에 관한 정보로 수동 으로 채워질 수 있으며, 제3자 CA에 의하여 서명된 인증서들의 비용 및 복잡성이 없이, 상기 신뢰된 장치들이 컴퓨팅 장치에게 그 자신을 인증하는 것을 가능하게 하는데 이용될 수 있다. 본질적으로, CA의 기능들은, 어느 장치들이 신뢰되어 그들의 정보가 신뢰된 사람 저장소에 위치될 것인지 결정하는 경우, 사용자에 의하여, 또는 컴퓨팅 장치 상의 신뢰된 프로세스에 의하여 수동으로 수행된다. 일단 신뢰된 사람 저장소에서, 정보는 다른 장치들로부터 수신된 식별 정보에 비교되어, 식별 정보를 송신하는 장치가 진정으로 신뢰된 장치인지 여부를 컴퓨팅 장치가 결정할 수 있게 한다.
장치가 인증되면, 인증된 장치에 적절한 사용자 토큰을 생성함으로써 데이터 및 컴퓨팅 리소스들에 대한 액세스가 부여될 수 있다. 신뢰된 장치에 대응하는 계정에 대한 패스워드는, 커널 모드(kernel mode)에서 동작하는 프로세스들에 의하여 알려진 값 - 예를 들면, 신뢰된 사람 저장소에 저장된 정보로부터 도출될 수 있는 식별자 - 으로 변경될 수 있다. 변경되면, 인증된 장치에 로그온함으로써 사용자 토큰이 생성되어, 특정한 리소스들 및 데이터에 액세스하는 것을 허가할 수 있다.
장치들의 인증, 및 시스템 리소스들 및 데이터에 액세스하기 위한 그들의 허가 모두의 경우, 기존의 소프트웨어 및 하드웨어 컴포넌트들이 영향을 받아 역방향 호환성(backwards compatibility)의 가장 큰 양을 제공하고 인증 및 허가 기능성이 가급적 효율적으로 설계되는 것을 가능하게 할 수 있다.
유사한 참조부호들이 유사한 구성요소들을 나타내는 도면을 참조하면, 본 발명은 도 1에 도시된 컴퓨팅 장치(100)와 같은 상호접속된 컴퓨팅 장치들과 관련하 여 구현되는 것으로서 예시된다. 요구되지는 않지만, 본 발명은 일반적으로 컴퓨팅 장치에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어와 관련하여 기술될 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 개체, 컴포넌트, 데이터 구조 등을 포함한다. 더욱이, 당업자는 본 발명은, 핸드-헬드 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그램가능한 가전제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 기타 등등을 비롯한, 많은 상이한 컴퓨팅 장치들로 실되될 수 있음을 이해할 것이다. 본 발명은 또한 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 둘다에 위치할 수 있다.
도 1은, 본 발명이 구현될 수 있는 예시적인 컴퓨팅 장치(100)의 일례를 도시하고 있다. 컴퓨팅 장치(100)는 적합한 컴퓨팅 장치의 일례에 불과하며, 본 발명의 용도 또는 기능성의 범위에 관해 어떤 제한을 암시하고자 하는 것이 아니다. 예시적인 컴퓨팅 장치(100)는, 예를 들면 메모리 파티션, 가상 머신, 복수의 프로세서, 또는 한 물리적 컴퓨팅 구조가 복수의 컴퓨팅 장치에 속한 것으로 후술된 기능들을 수행하도록 하는 유사한 프로그래밍 기술들을 통하여, 하나 이상의 가상 컴퓨팅 장치들을 구현할 수 있다.
본 발명은 일반적으로 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어와 관련하여 기술될 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 개체, 컴포넌트, 데이터 구조 등을 포함한다. 분산 컴퓨팅 환경에서, 태스크는 통신 네트워크를 통해 연결되어 있는 원격 프로세싱 장치들에 의해 수행될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 비롯한 로컬 및 원격 컴퓨터 저장 매체 둘다에 위치할 수 있다.
컴퓨팅 장치(100)의 컴포넌트들은 처리 장치(120), 시스템 메모리(130), 및 시스템 메모리를 비롯한 각종 시스템 컴포넌트들을 처리 장치(120)에 연결시키는 시스템 버스(121)를 포함하지만 이에 제한되는 것은 아니다. 시스템 버스(121)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 예로서, 이러한 아키텍처는 ISA(industry standard architecture) 버스, MCA(micro channel architecture) 버스, EISA(Enhanced ISA) 버스, VESA(video electronics standard association) 로컬 버스, 그리고 메자닌 버스(mezzanine bus)로도 알려진 PCI(peripheral component interconnect) 버스 등을 포함하지만 이에 제한되는 것은 아니다. 더욱이, 처리 장치(120)는 하나 이상의 물리적 프로세서들 또는 프로세싱 코어들을 포함할 수 있다.
컴퓨팅 장치(100)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨팅 장치(100)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체를 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함하지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨팅 장치(100)에 의해 액세스되고 원하는 정보를 저장할 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 송신 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들의 모든 조합이 또한 컴퓨터 판독가능 매체의 영역 안에 포함되는 것으로 한다.
시스템 메모리(130)는 판독 전용 메모리(ROM)(131) 및 랜덤 액세스 메모리(RAM)(132)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에, 컴퓨터(110) 내의 구성요소들 사이의 정보 송신 을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(133)은 통상적으로 ROM(131)에 저장되어 있다. RAM(132)은 통상적으로 처리 장치(120)가 즉시 액세스 할 수 있고 및/또는 현재 동작시키고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예로서, 도 1은 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136) 및 프로그램 데이터(137)를 도시하고 있지만 이에 제한되는 것은 아니다.
컴퓨팅 장치(100)는 또한 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장매체를 포함한다. 단지 예로서, 도 1은 비이동식·비휘발성 자기 매체에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브(141), 이동식·비휘발성 자기 디스크(152)에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브(151), CD-ROM 또는 기타 광 매체 등의 이동식·비휘발성 광 디스크(156)에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브(155)를 포함한다. 예시적인 운영 환경에서 사용될 수 있는 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 기억 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고상(solid state) RAM, 고상 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라이브(141)는 통상적으로 인터페이스(140)와 같은 비이동식 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광 디스크 드라이브(155)는 통상적으로 인터페이스(150)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
위에서 설명되고 도 1에 도시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체는, 컴퓨팅 장치(100)를 위해, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터를 저장한다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시되어 있다. 여기서 주의할 점은 이들 컴포넌트가 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일하거나 그와 다를 수 있다는 것이다. 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146) 및 프로그램 데이터(147)에 다른 번호가 부여되어 있다는 것은 적어도 이들이 다른 사본(copy)이라는 것을 나타내기 위한 것이다. 사용자는 키보드(162), 및 보통은 마우스, 트랙볼(trackball) 또는 터치 패드로 호칭되는 포인팅 장치(161) 등의 입력 장치를 통해 명령 및 정보를 컴퓨터(110)에 입력할 수 있다. 다른 입력 장치(도시 생략)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스에 결합된 사용자 입력 인터페이스(160)를 통해 처리 장치(120)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속될 수 있다. 모니터 외에, 컴퓨터는 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치를 포함할 수 있고, 이들은 출력 주변장치 인터페이스(195)를 통해 접속될 수 있다.
컴퓨팅 장치(100)는 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 도 1은 원격 컴퓨팅 장치(180)로의 일반적인 네트워크 접속(171)을 도시한다. 일반적인 네트워크 접속(171), 및 도 1에 도시된 네트워크 접속은, LAN(Local Area Network), WAN(Wide-Area Network), 무선 네트워크, 토큰-링 프로토콜, 이더넷 프로토콜을 따르는 네트워크, 또는 인터넷이나 World Wide Web을 비롯한 기타 논리적, 물리적, 또는 무선 네트워크를 비롯한 각종 네트워크 및 네트워크 접속 중 임의의 것일 수 있다.
네트워킹 환경에서 사용될 때, 컴퓨팅 장치(100)는 유선 또는 무선 네트워크 인터페이스 카드, 모뎀, 또는 유사한 네트워킹 장치일 수 있는 네트워크 인터페이스 또는 어댑터(170)를 통해 일반 네트워크 접속(171)에 접속된다. 네트워크화된 환경에서, 컴퓨팅 장치(110) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 이해할 것이다.
후속하는 설명에서, 본 발명은, 달리 지시되지 않으면, 하나 이상의 컴퓨팅 장치들에 의하여 수행되는 동작들의 기능 및 상징적 표현을 참조하여 기술될 것이다. 때때로 컴퓨터 실행되는 것으로 언급되는 그러한 기능들 및 동작들은 구조적 형태로 데이터를 나타내는 전기 신호의 컴퓨팅 장치의 처리 장치에 의한 조작을 포함한다는 점이 이해될 것이다. 이 조작은 데이터를 변환하거나 그것을 컴퓨팅 장치의 메모리 시스템 내의 위치들에 유지시키며, 이것은 당업자에게 잘 알려진 방식으로 컴퓨팅 장치의 동작을 재구성하거나 달리 변경시킨다. 데이터가 유지되는 데 이터 구조들은 데이터의 포맷에 의하여 정의된 특정 속성들을 가지는 메모리의 물리적 위치들이다. 그러나, 본 발명이 이전의 문맥에서 기술되고 있지만, 이것이 제한적인 것을 의미하는 것은 아니며, 이는 이후 기술된 다양한 기능 및 동작이 하드웨어로도 구현될 수 있음을 당업자는 이해하는 바와 같다.
도 2를 참조하면, 컴퓨팅 장치(201)와 컴퓨팅 장치(202) 사이의 일련의 통신들이 예시된다. 컴퓨팅 장치들(201 및 202)는 전술된 컴퓨팅 장치(100)과 동일 유형의 컴퓨팅 장치들일 수 있거나, 역시 상기 열거된 컴퓨팅 장치들의 임의의 다른 유형(핸드헬드 컴퓨팅 장치들, 랩톱 컴퓨팅 장치들, 메인 프레임 컴퓨팅 장치들, 특정 태스크 컴퓨팅 장치들, 등을 포함하지만 이들에 한정하는 것은 아님)일 수 있다. 도 2에 도시된 바와 같이, 어느 컴퓨팅 장치도 멀티 클라이언트 네트워크의 허브가 되도록 설계된 전용 서버로서 동작하지 않는 한은 컴퓨팅 장치들(201 및 202)은 "피어(peers)"이다. 대신 컴퓨팅 장치들(201 및 202)은 유사한 컴퓨팅 능력을 포함하기 쉽고 하나 이상의 인간 사용자들에 의하여 직접 사용되기 쉽다. 그러나, 당업자에게 자명한 바와 같이, 피어 컴퓨팅 장치들은 피어들로서 기능하기 위하여 반드시 계산적으로(computationally) 유사하게 되어야 하는 것은 아니다.
피어-투-피어 네트워크 통신 접속이 컴퓨팅 장치(201)와 컴퓨팅 장치(202) 사이에 형성될 수 있다. 도 2는 TLS(Transport Layer Security) 프로토콜로 호칭되는 통상적으로 사용된 보안 프로토콜을 도시한다. 이하의 설명은 TLS 프로토콜에 초점을 맞출 것이지만, 당업자에게 알려질 바와 같이, 본 발명은 그러한 프로토콜에 한정되는 것은 아니며, 많은 다른 프로토콜들이 컴퓨팅 장치들(201 및 202)의 각각에 컴퓨팅 장치들(201 및 202)가 본 발명의 실시예들에 의하여 고려된 인증 메커니즘들을 수행하게 하기에 충분한 정보를 제공할 수 있다.
도 2에 도시된 바와 같이, TLS 프로토콜은, 본 예시에서는 컴퓨팅 장치(201)인 한 피어 장치가, ClientHello 구조를 포함할 수 있는 하나 이상의 개시 메시지들(210)을 다른 피어 장치에 송신하는 것에 의하여 개시될 수 있다. ClientHello 구조는, 특히, 현재 시간, 랜덤 값, 장치(201)에 의하여 지원되는 암호화 알고리즘들의 리스트, 및, 장치(201)에 의하여 지원된 압축 알고리즘의 리스트를 포함할 수 있다. 도 2에 도시된 통신들을 설명하기 위하여, 용어들 "클라이언트" 및 "서버"가 TLS 프로토콜에 의하여 이용되는 바와 같이 이용될 것이다: 즉, "클라이언트"는 통신을 개시하는 컴퓨팅 장치이고, "서버"는 그것을 이용하여 통신이 개시되고 있는 컴퓨팅 장치이다. 또한, 당업자에게 공지되는 바와 같이, ClientHello 구조를 포함하는 메시지들(210)이 개시 메시지들인 것으로 도시되지만, 도 2에 도시된 통신은 컴퓨팅 장치(201)가 ClientHello 구조를 송신하도록 하는, 컴퓨팅 장치(202)로부터의 요청에 의하여 동일하게 개시될 수 있다. 그 경우, 컴퓨팅 장치(202)로부터의 요청은 전술된 ClientHello 구조를 포함하는 메시지들(210)에 의하여 응답될 것이다.
메시지들(210)에 응답하여, 컴퓨팅 장치(202)는 ServerHello 구조, 장치(202)에 대한 인증서 또는 인증서 체인, ServerKeyExchange 구조, CertificateRequest 구조, 및 ServerHelloDone 메시지를 포함하는 메시지들(212)을 송신할 수 있다. ServerHello 구조는 특히, 랜덤 값(ClientHello 내의 랜덤 값과 상이함), 세션 식별자, ClientHello 내에 제공된 리스트로부터 선택된 선택 암호화 알고리즘, 및 ClientHello 내에 제공된 리스트로부터 선택된 선택 압축 알고리즘을 포함할 수 있다. 이하에 보다 상세히 기술될, 장치(202)에 대한 인증서 또는 인증서들은 ServerHello 구조 내에서 특정된 선택 암호화 알고리즘에 적합한 인증서 또는 인증서 체인을 포함할 수 있다. ServerKeyExchange 구조는 프리마스터 비밀(premaster secret)의 통신을 보호하거나 프리마스터 비밀을 발생시키는 키 교환을 완료하기 위하여 컴퓨팅 장치(201)에 의해 이용될 수 있는, 공용키와 같은 정보를 포함할 수 있다. 컴퓨팅 장치(201)가 프리마스터 비밀을 교환하도록 하기에 충분한 정보를 인증서 또는 인증서들의 체인이 포함한다면 메시지들(212)은 ServerKeyExchange 구조를 포함할 필요가 없다. CertificateRequest 구조는, 컴퓨팅 장치(201)가 그 인증서들을 제공하도록 하는 요청을 포함할 수 있고 요청된 인증서들의 유형들의 리스트 및 허용 가능한 인증서 권한들(certificate authorities)의 리스트를 더 포함할 수 있다. ServerHelloDone 메시지는 메시지들(212)로서 송신될 전술된 정보의 송신의 완료를 나타낼 수 있다.
메시지들(212)에 응답하여, 컴퓨팅 장치(201)는 메시지들(212)을 통하여 수신된 인증서 또는 인증서 체인을 이용하여, 신뢰된 사람 저장소(203) 또는 신뢰된 루트 저장소(205)에 저장되어 있는 인증서들을 참조함으로써 컴퓨팅 장치(202)를 인증할 수 있다. 특히, 이하에 보다 상세히 기술되는 바와 같이, 컴퓨팅 장치(201)는 메시지들(212)을 통하여 수신된 인증서 또는 인증서 체인을, 신뢰된 사람 저장소(203) 또는 신뢰된 루트 저장소(205) 내의 인증서로의 체인에 저장되어 있는 인증서들과 비교할 수 있다. 컴퓨팅 장치(202)가 인증되면, 컴퓨팅 장치(201)는 컴퓨팅 장치(201)에 대한 인증서 또는 인증서 체인, ClientKeyExchange 구조, CertificateVerify 구조, ChangeCipherSpec 메시지, 및 Finished 메시지를 포함하는 메시지들(214)을 송신할 수 있다. 장치(201)에 대한 인증서 또는 인증서들은, 이하에 보다 상세히 기술되는 바와 같이, 메시지들(212)의 ServerHello 구조에서 특정된 선택 암호화 알고리즘에 적합한 인증서 또는 인증서 체인을 포함할 수 있다. ClientKeyExchange 구조는 프리마스터 비밀의 암호화 버전, 또는 컴퓨팅 장치들(201 및 202) 모두가 동일한 프리마스터 비밀을 독립적으로 도출하기에 충분한 정보를 포함할 수 있다. CertificateVerify 구조는 장치(201)의 인증서 또는 인증서들의 명확한 확인을 제공한다. ChangeCipherSpec 메시지는, 동의된 암호화 알고리즘을 컴퓨팅 장치(201)가 채택하였고, 동의된 키들로, 그 암호화 알고리즘을 이용하여, 전술된 바와 같이, 메시지(214)에 포함된 정보의 송신이 완료되었음을 나타내는 Finished 메시지인 후속 메시지를 송신할 것을 나타낸다.
메시지들(214)에서 장치(201)로부터 인증서 또는 인증서 체인을 수신한 후, 컴퓨팅 장치(202)는 인증서 또는 인증서 체인을 이용하여, 이하에 보다 상세히 기술되는 방식으로, 신뢰된 루트 저장소(206) 또는 신뢰된 사람 저장소(204)에 저장된 인증서들을 참조함으로써 컴퓨팅 장치(201)를 인증할 수 있다. 컴퓨팅 장치(201)가 인증되면, 장치(202)는 메시지들(214)의 일부로서 송신된 Finished 메시지를 확인하여 적절한 암호화 알고리즘들 및 암호화 키들이 사용 중인 것을 확실히 한다. 컴퓨팅 장치(202)는 후속하여, 장치(202)가 후속 통신들을 암호화하기 위한 동의된 암호화 알고리즘들 및 키들을 이용할 것임을 나타내는 표시, 및 표시된 대로 암호된 Finished 메시지를 포함하는 메시지들(214)을 송신할 것이다.
컴퓨팅 장치(201)가 메시지들(214)의 일부로서 송신된 Finished 메시지를 적절히 디코드할 수 있는 경우, 장치(202)가 적절한 암호화 알고리즘들 및 키들을 이용하고 있는 중이라는 것을 확인할 수 있다. 두 장치들(201 및 202)은 서로에 대하여 자신을 인증하고, 공통의 암호화 알고리즘 및 키 세트를 설정하였으므로, 그들은 보안 방식으로 데이터(220)를 교환하는 것을 진행할 수 있다.
전술된 바와 같이, 종래에는 인증서들이 컴퓨팅 장치를 인증하였는데, 그 이유는 인증서들이 CA(Certificate Authority)에 의하여 서명되었기 때문이다. 한 공지의 메커니즘에서 CA는 CA의 개인 키를 이용하여, 인증서 자체로부터의 데이터와 같은 어떤 데이터를 암호화함으로써 인증서에 서명한다. 당업자들이 알고 있는 바와 같이, 개인 키(private key)는 단일 엔터티에 의하여 비밀로 유지되며, 대응하는 공용 키에 의하여 암호해독될 수 있는 정보를 암호화하는데 이용된다. 개인 키는 공용 키로부터 도출될 수 없으므로, 공용 키는 널리 배포될 수 있다. 따라서, 컴퓨팅 장치가 CA의 공용 키를 인식하였고, 인증서 내의 암호화된 데이터를 적절히 디코드할 수 있으면, 컴퓨팅 장치는 CA가 그 인증서에 서명한 것으로 결정할 수 있다. 더욱이, 컴퓨팅 장치가 CA를 "신뢰"한다면, 컴퓨팅 장치는 그 신뢰를, 상기 서명된 인증서를 제시하는 장치에까지 확장하여, 그 장치를 인증할 수 있다.
종래의 CA들은 정보 및 서명 인증서들을 확인하는 것을 업무로 하는 회사들, 및, 내부 네트워크들의 경우, 회사 IT(Information Technology) 부서들을 포함한 다. 예를 들어, 회사의 IT 부서에 의하여 유지 및 보안되고 있는 회사 네트워크에서, IT 부서는 CA로서 기능할 수 있고 회사의 종업원들의 인증서들에 서명하여 그들이 다른 종업원들에 의하여 신뢰될 수 있음을 나타낼 수 있다. 그러나, 그러한 CA는 사내 통신의 경우에만 유용하다. 종업원이 회사 외부의 컴퓨팅 장치에 접속하고자 하는 경우, 외부 장치는 회사의 IT 부서를 신뢰된 권한으로서 인식않을 것이며, 따라서, 회사의 IT 부서에 의하여 서명된 인증서에 기초하여 종업원을 인증하지 않기 쉽다. 그런 경우, 정보를 확인하는 것을 업무로 하는 회사와 같은 제3자 CA가 이용될 수 있을 것이다. 예를 들면, 제3자 회사는 독립된 CA로서 기능할 수 있으며 그 CA에 의하여 서명된 인증서를 제공하고자 하는 어느 누구라도 회사가 그들의 인증서에 서명하기 전에 요청자의 신원(identity) 및 합법성(legitimacy)을 확인할 수 있도록 다양한 정보를 제공할 것이 요구될 수 있다. 회사가 인증서들에 서명하기 전에 부지런히 정보를 확인하였다면, 신뢰할 만한 CA로서의 평판을 발전시킬 수 있을 것이고, 상이한 회사 엔터티들과 같은 상이한 환경들로부터의 둘 이상의 컴퓨팅 장치들이 서로를 인증하는 것을 가능하게 하는데 이용될 수 있을 것이다.
인증서 내에 포함된 암호화된 정보는 CA의 자신의 개인 키에 의하여 암호화되므로, CA로부터의 인증서는 "자기 서명(self-signed)"되는 것으로 언급된다. CA로부터의 그러한 자기 서명된 인증서들은 "루트(root)" 인증서들로서 알려지며, 신뢰할 만한 방식으로 하나 이상의 컴퓨팅 장치들에 전달될 수 있다. 예를 들면, 전술된 회사 시나리오에서, 회사의 IT 부서가 CA로서 기능할 수 있게 하는 루트 인증 서가 각각의 컴퓨터 장치 상의 IT 부서에 의하여 사전설치될 수 있거나, 또는 휴대형 저장 매체를 이용하여 IT 부서의 구성원들에 의하여 수동으로 설치될 수 있다. 그러한 경우에, 회사의 컴퓨팅 장치들 중 하나가 서로 접속하려고 할 때, 회사의 IT 부서에 의하여 서명된 인증서를 제시할 수 있다. 다른 장치는 인증서를 확인할 수 있는데, 왜냐하면, 암호화된 정보를 암호해독하여, 인증서를 확인하는데 필요한 공용 키는 이미 루트 인증서의 일부로서 장치 상에 존재하기 때문이다. 유사하게, 독립적인 제3자 CA에 대한 루트 인증서는 제조자에 의하여 컴퓨팅 장치 상에 사전 설치될 수 있거나, 공지된 소프트웨어 회사들 또는 조직들로부터의 웹브라우저나 파일 송신 프로그램과 같은, 개별 사용자들이 신뢰하는 소스로부터의 소프트웨어와 번들될 수 있을 것이다. 그 경우, 한 컴퓨팅 장치가 공지된 제3자 CA에 의하여 서명된 인증서를 다른 컴퓨팅 장치에 제시하면, 다른 컴퓨팅 장치는 인증서를 확인하고 제1 컴퓨팅 장치를 인증할 수 있는데, 왜냐하면, 제3자 CA의 자기 서명된 인증서가 사전 설치되어, 다른 컴퓨팅 장치에 CA의 공용 키를 제공하는 것, 및 암호화된 정보가 CA의 개인 키를 이용하여 암호화된 것을 다른 컴퓨팅 장치가 확인하게 해주어, 상기 제시하는 장치를 인증한다는 사실 때문이다.
불행하게도, 상기에서 표시된 바와 같이, 독립적인 제3자 CA들은 종종 인증서에 서명하는데 돈을 지불해줄 것을 요구하여, 개인들, 작은 조직들, 교육 기관들, 자선 단체들, 등이 그러한 CA들을 이용하는 것을 비실용적으로 만든다. 예를 들면, 소규모 천문학 클럽은 피어-투-피어 접속으로 구성된 네트워크를 통하여 그 멤버들이 그들의 천체사진(astrophotos)을 공유하는 것을 가능하게 하여, 클럽이 전용 서버 컴퓨팅 장치를 구입하는 것을 절약하기를 바랄 수 있다. 유사하게, 개인은 그의 친구들과 게임을 하거나 파일을 공유하기 위하여 피어-투-피어 네트워크를 설정하기를 바랄 수 있다. 어느 경우라도, 비용이 많이 드는 제3자 CA에 기초하지 않은 그러한 피어-투-피어 접속을 설정하고자 하는 컴퓨팅 장치들을 인증하기 위한 메커니즘이 필요하다.
도 3을 참조하면, 본 발명의 일 실시예에 따라 장치들을 인증하기 위한 메커니즘이 도시되어 있다. 종래에는, 전술된 바와 같이, CA에 대한 루트 인증서가 일부 신뢰된 수단을 통하여 컴퓨팅 장치 상에 사전 저장될 것이다. 그러한 인증서들은 CA 및 그 공용 키를 식별하였고, 대응하는 개인 키를 이용하여 자기 서명되었다. 장치 상에 저장될 때, 루트 인증서들은 "신뢰된 루트 저장소(trusted root store)"로 호칭될 수 있는 공통의 개소에 저장될 수 있다. 당업자가 인식하는 바와 같이, 도 2에 도시된, 신뢰된 루트 저장소들(205 및 206)과 같은 신뢰된 루트 저장소는 특정한 폴더 또는 유사한 파일 시스템 엔터티일 필요는 없으며, 단지 주어진 컴퓨팅 장치의 파일 시스템 내의 어느 위치이든지, 루트 인증서들의 개념적인 수집을 의미할 수 있다.
따라서, 도 3에 도시된 바와 같이, 본 발명의 일 실시예에 따라 접속하는 장치를 인증하기 위하여, 수신 장치는 먼저 단계(301)에 도시된 바와 같이 인증서를 수신할 수 있다. 다음, 단계(303)에서, 수신 장치는 수신한 인증서가, 신뢰된 루트 저장소에 저장되어 있는 인증서를 갖는 CA에 의하여 서명되었는지 여부를 결정하려고 시도할 수 있다. 종종, 접속하는 장치는 자신의 인증서를 체인 내의 제1 인증서로 하여, 인증서들의 체인을 제공할 것이다. 그 제1 인증서는 인증서 체인 내의 후속 인증서에서 특정된 공용 키를 이용하여 암호해독될 수 있는 암호화 부분을 포함할 수 있다. 개인 키의 소유자만이 암호화된 부분을 만들 수 있었을 것이므로, 제1 인증서의 암호화된 부분은 제2 인증서에 대응하는 엔터티에 의한 제1 인증서의 확인으로서 기능한다. 그러한 방식으로, 각각의 인증서는 인증서 체인 내의 다음의 인증서에 의하여 확인된다. 그러나, 궁극적으로는, 신뢰된 루트 저장소에 인증서를 저장하게 한 CA에 의하여 서명된 인증서로 체인이 종료하지 않는다면, 수신 컴퓨팅 장치는 접속하는 장치를 인증하지 않을 수 있다.
따라서, 단계(303)에서, 수신 장치는 먼저 접속하는 장치에 의하여 송신된 인증서가 수신 장치가 신뢰하는 CA에 의하여 인증되어 있는지 여부를 결정할 수 있다. 전술된 바와 같이, CA는 그 CA의 인증서가 클라이언트의 신뢰된 루트 저장소에 저장되어 있으면 클라이언트에 의하여 신뢰된다. 역시 전술된 바와 같이, 인증서가, CA의 인증서에 의하여 지정된 공용 키에 의하여만 암호해독될 수 있는 암호화된 데이터를 포함한다면, CA만이 그 자신의 개인 키에 액세스할 수 있으므로, 그 인증서는 CA에 의하여 암호화된 것이고, 따라서, 그 인증서는 CA에 의하여 인증되는 것으로 결정된다. 인증서 체인이 송신되면, 수신 장치는, 단계(303)에서, 체인 내의 최종 인증서가 수신 장치가 신뢰하는 CA에 의하여 인증되었는지 여부를 결정할 수 있다.
수신 장치가 신뢰하는 CA에 의하여 인증서가 인증되면, 수신 장치는 다음으로, 단계(307)에 의하여 도시된 바와 같이, 접속하는 장치에 인증서가 대응하는지 여부를 결정할 수 있다. 인증서가 단순히 인증서들의 체인 내의 최종 인증서라면, 접속하는 장치를 식별하지 않을 것이다. 그러나, 접속하는 장치가 단일의 인증서만 송신하였다면, 그 인증서는 수신 장치가 신뢰하는 CA에 의하여 인증되고, 또한 접속하는 장치를 적절히 식별해야 한다. 이 두 가지가 모두 해당되면, 도 3의 단계(317)에 의하여 지시된 바와 같이 수신 장치는 그 접속을 허용할 수 있다.
그러나, 접속하는 장치가 오직 하나의 인증서만 송신하였고, 접속하는 장치를 식별하지 않았다면, 단계(307)에서 수신 장치는 그 인증서는 접속하는 장치를 식별하지 않는 것으로 결정하며, 단계(309)에서 더 이상 다른 인증서들이 존재하지 않는 것으로 결정하면 단계(315)에 의하여 도시된 바와 같이 접속하는 장치가 시도하는 접속을 거부할 것이다. 유사하게, 수신 장치는 인증서 체인이 접속하는 장치를 식별한 인증서로 시작하지 않았다면 그 접속을 거부할 것이다.
단계(309)에서, 신뢰된 CA에 의하여 인증된 최종 인증서를 갖는 인증서 체인 내의 추가적인 인증서들이 존재하는 것으로 수신 장치가 결정하면, 수신 장치는 단계(311)에서 직전의 인증서를 조사하여, 단계(313)에 의해 도시된 바와 같이, 이전 인증서가 다음 인증서에 의하여 인증되어 있는지 여부를 결정할 수 있다. 당업자에게 공지되는 바와 같이, 인증서 체인 내의 각각의 인증서가 이전의 인증서를 확인하지 않으면, 신뢰 관계는 붕괴될 수 있으며 인증서 체인은 그것을 송신하는 장치를 확인하는데 실패할 수 있다. 따라서, 단계(313)에서, 인증서 체인 내에 붕괴가 존재하는 것으로 수신 장치가 결정하면, 예시된 바와 같이, 단계(315)에서 그 접속을 거부할 수 있다. 그러나, 현재 조사중인 인증서가 다음 인증서에 의하여 인증되면, 수신 장치는 단계(307)로 루프백하여 현재 조사중인 인증서가 접속하는 장치를 식별하는지 여부를 결정할 수 있다. 전술된 바와 같이, 그러한 경우라면, 수신 장치는 송신 장치를 인증하고 단계(317)에서 그 접속을 허용할 수 있는 한편, 그렇지 않은 경우라면, 수신 장치는 전술된 바와 같이, 단계(309)에서 도시된 바와 같이, 체인 내의 추가적인 인증서들을 검사할 수 있다.
그러나, 전술된 바와 같이, 다양한 피어-투-피어 네트워킹 상황들의 개별 장치들이 제3자 CA들에 의하여 서명된 인증서들을 제시할 것을 요구하는 것은 실용적이지 않을 수 있다. 따라서, 신뢰된 루트 저장소 이외에, 본 발명의 일 실시예에 의하여 고려된 "신뢰된 사람 저장소"가 이용될 수 있다. 신뢰된 루트 저장소와 같이, 신뢰된 사람 저장소는 주어진 컴퓨팅 장치 상의 특정 사용자가 신뢰하는 엔터티들로부터의 인증서들로 채워질 수 있다. 그러나, 신뢰된 루트 저장소와는 달리, 자신의 인증서들이 신뢰된 사람 저장소에 있는 엔터티들은 그 사용자에 대하여 CA들로서 기능하는 것이 허용되지 않을 것이다. 신뢰된 루트 저장소를 참조하여 전술된 바와 같이, 신뢰된 사람 저장소는 컴퓨팅 장치의 파일 시스템의 특정한 섹션이나 엘리먼트를 반드시 의미하는 것은 아니며, 오히려 파일 시스템 내에 어느 곳에 존재할 수 있든, 신뢰된 사람 저장소의 고려된 부분인 인증서들의 모두의 개념적 수집(conceptual collection)을 의미한다. 신뢰된 루트 저장소와 신뢰된 사람 저장소 사이의 다른 차이점은 신뢰된 사람 저장소는 개별 사용자들에 의하여 용이하게 채워질 수 있다는 점이다. 개별 사용자들이 신뢰할 사람을 선택하게 하는 것은 잠재적인 보호수단을 감소시킬 수 있으므로, 신뢰된 사람 저장소의 적용 가능 범위를 처음에 어느 인증서들이 그 저장소에 배치될 것인지를 선택했던 사용자들로만 한정함으로써 위험의 증가가 상쇄될 수 있다.
사용자들은 다양한 메커니즘들을 통하여 인증서들을 수신할 수 있고, 그 인증서들을 신뢰할 것인지 여부를 개별적으로 결정할 수 있다. 예를 들면, 두 친구는 그들의 컴퓨터들이 피어-투-피어 접속을 형성하도록 하기 위하여 전화 호출 또는 개인적인 대화를 통하여 서로 그들의 인증서들을 이메일하기로 동의할 수 있다. 그 후, 그 친구들 중 하나가 인증서를 포함하며, 다른 친구로부터 온 것이라는 이메일을 수신하면, 수신인이 그 인증서를 자신의 신뢰된 사람 저장소에 추가하는 것을 선택할 수 있는 신뢰성의 충분한 표시가 존재한다. 대안적으로, 신뢰할 만한 인증서들은, 예를 들면 휴대형 컴퓨터 판독 가능 매체 상의 인증서를 들고 와서 그것을 컴퓨팅 장치에 복사하거나, 패키지 배달 서비스를 통하여 휴대형 컴퓨터 판독 가능 매체 상의 인증서를 보내는 것과 같이, 대역외(out-of-band)로 수신될 수 있다.
컴퓨팅 장치 상의 신뢰된 사람 저장소가 신뢰된 엔터티를 위한 인증서를 포함하면, 그 엔터티는 제3자 CA에 의해 서명된 인증서를 먼저 획득하지 않고 그 컴퓨팅 장치와 피어-투-피어 접속을 형성할 수 있다. 특히, 엔터티의 인증서가 신뢰된 사람 저장소에 있다면, 인증서가 이용되어 엔터티를 인증할 수 있다. 예를 들면, 송신 컴퓨팅 장치가 수신 컴퓨팅 장치의 신뢰된 사람 저장소 내의 것과 일치하는 자기 서명된 인증서를 이미 가지고 있다면, 송신 컴퓨팅 장치는 자기 서명된 인증서를 제공함으로써 인증될 수 있다. 그러한 자기 서명된 인증서는, 전술된 바와 같이, 송신 장치에 대한 정보를 포함하고, 송신 장치의 개인 키에 의하여 암호화된 암호화된 정보를 포함한다. 송신 장치의 자기 인증서가 신뢰된 사람 저장소에 이미 존재하므로, 수신 장치는 신뢰된 사람 저장소 내의 인증서에 의하여 제공된 공용 키를 이용할 수 있고, 송신 장치에 의하여 송신된 자기 서명된 인증서의 일부인 암호화된 정보를 해독할 수 있으며, 그리하여 자기 서명된 인증서가 송신 장치의 개인 키에 의해 진정으로 서명된 것으로 결정하여 송신 장치를 인증할 수 있다.
대안의 예로서, 송신 컴퓨팅 장치는 그것을 식별하는 제3자 서명된 인증을 수신 컴퓨팅 장치의 신뢰된 사람 저장소에 저장되게 할 수 있다. 그 경우, 송신 컴퓨팅 장치는 상세히 전술된 바와 유사한 방식으로, 그 제3자 서명된 인증서를 제공함으로써 인증될 수 있다. 그러한 구성은 제3자에 의하여 서명된 어떠한 인증서도 받을 필요 없이(신뢰된 루트 저장소에 제3자가 단순히 추가된 경우일 것임) 사용자들이 그들의 신뢰된 사람 저장소를 제3자 서명된 인증서들로 채우는 것을 가능하게 하는 추가의 장점을 갖는다. 따라서, 이해될 수 있는 바와 같이, 신뢰된 사람 저장소에 저장된 인증서들은 엔터티를 식별하기만 하면 되며, 본 발명에 기초하 여서는 그러한 인증서들이 오로지 자기 서명된 인증서들이어야 하는 요건이 존재하지 않는다.
도 3으로 돌아가서, 단계(303)에서, 수신 장치가 수신된 인증서 또는 인증서 체인이 신뢰된 루트 저장소에 인증서들을 갖는 어떠한 CA에 의해서도 서명되지 않은 것으로 결정하면, 그 수신 장치는 단계(305)에서 신뢰된 사람 저장소를 조사한다. 따라서, 그 장치들 중 하나가, 예를 들어, 수신 장치와의 피어-투-피어 네트 워크를 형성하려고 자기 서명된 인증서를 송신할 것이라면, 그 서명된 인증서가 그것을 인증하는데 충분할 것이며, 그 이유는 그 장치의 인증서가 신뢰된 사람 저장소에 있고 장치는 그 자체로 CA로서 기능할 수 있기 때문이다. 그러한 방식에서, 피어-투-피어 접속을 형성하려는 장치들은 그들의 인증서들이 제3자 CA들에 의하여 서명되도록 하는 비용 및 비효율성을 초래할 필요가 없다.
상세히 전술된 바와 같이, 및 도 3의 단계들(307-313)에 의하여 도시된 바와 같이, 접속하는 장치는 수신 장치에 그것을 인증시키는 인증서들의 체인을 송신할 수 있다. 그러한 인증서들의 체인은, 루트 인증서로서, 하나의 그룹에 대하여 단일의 인증서를 개인이 생성할 수 있도록 하여, 소규모 조직, 클럽, 자선단체, 등의 엔터티들 간의 피어-투-피어 접속들을 단순화시킬 수 있는 그룹 인증서를 갖는 경우 동일하게 효과적일 수 있다. 예를 들면, 그 구성원들 중 일부 간에 피어-투-피어 네트워크를 설정하여 이미지 공유를 용이하게 하려는 천문학 클럽의 상기 가정으로 돌아가면, 구성원들 중 하나는, 전술한 바와 같이, 자기 서명된 인증서와 유사한 그룹 인증서를 생성할 수 있고, 그 후 다른 구성원들이 그 그룹 인증서를 허용하게 할 수 있다. 특히, 다른 구성원들의 각각이 그룹 인증서를 "허용"하는 경우, 그들은 그들이 기꺼이 그룹의 임의의 구성원을 인증하려는 것을 나타낸다. 따라서, 그룹 인증서는 전술된 루트 인증서와 유사한 방식으로 기능할 수 있다. 그러나, 신뢰된 루트 저장소, 또는 신뢰된 사람 저장소에 그룹 인증서를 부가하는 경우 발생되는 보안 문제를 회피하기 위하여, 본 발명의 일 실시예에 의하여 고려된 한 메커니즘은 그룹 인증서를 그 고유의 저장소에 유지하고, 그것을 요구될 때 인 증 프로세스에 제공할 수 있다. 따라서, 인증 프로세스들은 전술된 바와 같이 진행하며, 그룹 인증서를 루트 인증서로서 취급할 수 있다. 예를 들면, 그룹의 임의의 구성원이 임의의 다른 구성원과 피어-투-피어 접속을 형성하기 위하여, 각각의 구성원은 단순히 다른 구성원에게 그룹 인증서에 의하여 서명된 그들의 인증서를 제시할 수 있다. 그룹 인증서는 루트 인증서로서 취급되므로, 그룹 인증서에 의하여 서명된 인증서는 송신하는 구성원을 인증하기에 충분하다. 그러나, 그룹 인증서는 실제적으로 루트 저장소, 또는 신뢰된 사람 저장소에 존재하지 않으므로, 그룹의 구성원들의 인증은 인증 프로세스에 그룹 인증서를 제공하는 메커니즘에 의하여 제어될 수 있는 개별적 방식(individual basis)으로 발생할 수 있다.
더욱이, 그룹 생성자(group creator)에 컨택하지 못할 수도 있는 다른 구성원들은, 관리자와 같은, 인증서들을 발행하는 권한을 갖고 있는 다른 참여중인 그룹 구성원들 중 하나에게 그들의 인증서를 서명해줄 것을 요청할 수 있다. 그 구성원들이 피어-투-피어 접속을 형성하려는 경우, 그들은 그들의 인증서 및 다른 구성원의 인증서를 포함하는 인증서들의 체인을 제시할 수 있으며, 이 경우 그들의 인증서는 다른 구성원의 인증서에 의하여 서명되어 있고, 다른 구성원의 인증서는 그룹 인증서에 의하여 서명되어 있다. 도 3에 도시된 바와 같이, 단계(301)에서, 수신 장치가 그러한 인증 체인을 수신하면, 단계(303)에 의하여 예시된 바와 같이, 체인 내의 최종 인증서가 루트 인증서로서 기능하는 그룹 인증서에 의하여 서명되어 있는지 여부를 결정할 수 있다. 만일 그렇다면, 수신 장치는 단계(307-313)에 의하여 예시된 바와 같이 체인에 걸쳐 반복하여, 각각의 인증서가 다음 인증서에 의하여 서명되어 있고 체인 내의 제1 인증서가 피어-투-피어 접속을 구성하려는 장치를 식별하는 것을 확인한다. 상기 예에서, 그러한 프로세스는 체인 내의 최종 인증서, 즉 다른 구성원의 인증서는 CA로서 기능할 수 있는 그룹 인증서에 의하여 서명되었고, 참여중인 구성원의 인증서는 다른 구성원에 의하여 서명되었음을 밝힐 것이며, 그리하여 체인을 종료하고 참여중인 구성원을 인증할 것이다.
전술된 바와 같이, 인증서들 및 인증서 체인들은, 이전에 상세히 기술된 TLS 알고리즘과 같은 알고리즘의 일부로서 교환된다. 따라서, 본 발명의 일 실시예에 의하여 고려된 메커니즘들은 TLS와 같은 알고리즘의 능력에 영향을 미치고 단순히 추가적인 메커니즘들을 삽입하여 인증서들이 이미 교환된 후 전술된 단계들을 수행함으로써 효율적으로 수행될 수 있다. 그러한 삽입은 신뢰된 루트 저장소에 저장된 CA들에 기초하여 장치들을 인증한 TLS와 같은 알고리즘들의 엘리먼트들에 영향을 미칠 수 있기 때문에, 본 발명의 일 실시예에 의하여 고려된 추가적인 메커니즘들은 도 3의 단계(303)에 의하여 지시된 바와 같이, 이 유형의 인증을 수행할 수 있다. 대안적으로, 본 발명의 일 실시에에 의하여 고려된 메커니즘들은 신뢰된 사람 저장소에 저장된 CA들에 기초하여 궁극적으로 인증된 인증서들 또는 인증서 체인들을 제시하는 엔터티들의 인증에만 초점을 맞출 수 있다.
도 4를 참조하면, 전술된 메커니즘들 중 하나의 가능한 구현은, 도 4에 도시된 peerssp.dll(403)과 같은, DLL(Dynamically Linked Library) 또는 유사한 컴포넌트를 통하여 이루어질 수 있다. peerssp.dll(403)은, 예를 들면, 신뢰된 루트 저장소, 신뢰된 사람 저장소, 또는 그룹 인증서를 참조함으로써와 같은, 피어-투- 피어 접속시 엔터티들을 인증하는 능력을 포함하는 peerssp.dll(403)의 능력들을 애플리케이션이 액세스하게 하는 SSP(Security Service Provider) 인터페이스(405)를 제공할 수 있다.
둘 이상의 장치들이 피어-투-피어 네트워크를 통하여 접속되면, 장치들 중 하나는 다른 장치의 신뢰된 리소스를 액세스하고자 할 수 있다. 그러한 경우 신뢰된 리소스를 호스트하는 장치는 요청하는 장치가 액세스하는 것이 허가되어 있는지 여부를 결정함으로써 요청하는 장치에 대한 액세스를 부여할지 여부를 결정할 수 있다. 일반적으로, 피어-투-피어 네트워크들과 관계없이, 사용자는 그가 컴퓨팅 장치의 리소스들에 액세스하는 것을 허용하는 컴퓨팅 장치 계정을 가지고 있다면 컴퓨팅 장치의 리소스에 액세스하는 것이 허가되어 있다. 그러한 계정 허용(account permission)은, 사용자가 그 컴퓨팅 장치 상의 그들의 계정에 로그인할 때 컴퓨팅 장치의 오퍼레이팅 시스템의 LSA(Local System Authority) 컴포넌트에 의하여 생성된 토큰 내에 반영될 수 있다. 통상적으로, 사용자는 사용자명 및 패스워드로 LSA를 제공함으로써 그들의 계정에 로그인한다. 사용자명과 패스워드가 특정한 계정에 할당된 사용자명 및 패스워드와 매칭하면, 사용자는 LSA로 그 계정에 로그인하며 적절한 토큰이 생성된다. 그 후 사용자가 신뢰된 리소스에 액세스하려는 경우, 사용자에게 리소스에 대한 액세스를 부여하는 운영 체제, 또는 다른 프로세스는 먼저 사용자의 토큰을 검사하여 사용자가 신뢰된 리소스에 액세스하는 것이 허가되어 있는지 여부를 결정할 수 있다. 사용자가 허가되어 있다면, 운영 체제 또는 다른 프로세스는 사용자의 요청에 응답할 것이다. 특히, 리소스들에 액 세스하기 위한 사용자 요청들은 일반적으로는 도 4에 도시된 애플리케이션(401)과 같은 애플리케이션을 통하여 만들어진다. 애플리케이션(401)은 사용자의 지령(behest)시, "오픈 파일(open file)" 커맨드, 또는 유사한 명령을 이용하여 신뢰된 리소스에 액세스를 시도하여, 신뢰된 리소스를 요청의 파라미터로서 지정할 수 있다. 리소스에 대한 액세스를 부여할 운영 체제, 또는 다른 프로세스는 사용자의 토큰을 검사한 후, 사용자에게 리소스에 대한 액세스를 부여할지 여부를 결정할 수 있다. 사용자가 허가되어 있다면, 운영 체제, 또는 다른 프로세스는 성공 표시자(success indicator)로 응답할 수 있다. 상기 표시자 수신시, 애플리케이션(401)은 신뢰된 리소스의 컨텐츠를 실질적으로 수신하기 위한 "바이트 송신(send bytes)" 또는 유사한 요청을 발행하여 그들을 처리하고 사용자에게 그 정보를 제공할 수 있다. 그러나, 사용자가 허가되지 않았다면, 운영 체제, 또는 다른 프로세스는 대화 상자 E또는 유사한 통지의 형태로 애플리케이션(401)에 의하여 사용자에게 제시될 수 있는 실패 표시자(failure indicator)로 응답할 수 있다.
피어-투-피어 네트워크에서의 사용자들은 유사한 수단(analogous means)을 통하여 원격 컴퓨팅 장치들 상의 신뢰된 리소스들에 대한 액세스를 부여받을 수 있다. 특히, 피어-투-피어 네트워크를 통한 애플리케이션 통신은 액세스중인 컴퓨터 장치 상에서 실행중인 원격 프로세스가 액세스하는 사용자를 가장(impersonate)하게 할 수 있다. 그러나, 액세스 중인 컴퓨팅 장치 상에서 액세스하는 사용자에 대한 토큰을 발생시키기 위하여, 액세스하는 사용자는 컴퓨팅 장치에 로그온하는 것이 허용될 수 있다. 컴퓨팅 장치마다 모든 사용자에 대하여 계정들을 수동으로 생 성하는 것을 회피하기 위하여, 본 발명의 실시예들은 사용자가 수동으로 계정을 생성하지 않고 로그온될 수 있는 자동화된 메커니즘을 고려한다.
도 5를 참조하면, 본 발명의 일 실시예에 의하여 고려된 원격 컴퓨팅 장치에 사용자를 자동으로 로그온하기 위한 메커니즘이 예시된다. 도시된 바와 같이, 사용자의 정보는 상세히 전술된 방식으로 단계(501)에서 신뢰된 사용자 저장소에 추가될 수 있다. 신뢰된 사용자 저장소에 사용자가 추가되면, 단계(503)에 의하여 도시된 바와 같이, 그 신뢰된 사용자 저장소에 추가된 컴퓨팅 장치 상의 그 사용자에 대하여 계정이 생성될 수 있다. 그 후, 요청하는 장치로부터 작업하는 사용자가 호스트 장치와 피어-투-피어 접속을 형성한 후, 단계(505)에 의하여 예시된 바와 같이, 사용자는 신뢰된 리소스와 같은 인증을 요구하는 리소스를 요청할 수 있다.
요청된 리소스에 대한 액세스를 사용자에게 부여할지 여부에 대하여 결정하도록, 호스트 장치상의 사용자를 가장하기 위하여, 본 발명의 일 실시예에 의하여 고려된 하나 이상의 프로세스들은, 단계(503)에서 생성된 계정 및 프로세스들이 알려진 값으로 변경할 수 있는 패스워드를 이용하여 호스트 장치에 원격 사용자를 로그온함으로써 원격 사용자에 대한 토큰이 생성되게 할 수 있다. 가장화(impersonation)를 수행하는 하나 이상의 프로세스들은 로컬 시스템 프로세스들로서 실행될 수 있으므로, 그들은 단계(503)에서 생성된 계정의 패스워드를 변경시킬 수 있다. 특히, 패스워드는, 원격 사용자의 인증서 내에 포함된 정보의 일부 또는 전부의 해시와 같은, 사용자를 가장하는 프로세스 또는 프로세스들에 의하여 자동으로 결정될 수 있는 값으로 변경될 수 있다. 따라서, 단계(507)에 도시된 바와 같이, 원격 사용자가 단계(505)에서 신뢰된 리소스를 요청한 후, 호스트 컴퓨팅 장치 상의 원격 사용자를 가장하는 프로세스 또는 프로세스들은 사용자 계정의 패스워드를 알려진 값으로 변경시킬 수 있고, 그 후 새로 선택된 패스워드를 이용하여 사용자 계정에 로그인함으로써 단계(509)에서 사용자 토큰이 생성되게 할 수 있다. 어떤 운영 체제에서는, 원격 사용자 계정에 대응하는 패스워드를 변경하는 것 대신에, 원격 사용자를 가장하는 프로세스 또는 프로세스들은, 사용자가 로그인하고 있는 동안, 케베로스(Kerberos) 패스워드와 같은 보다 종래의 패스워드보다는, 인증서 해시(certificate hash)와 같은 다른 유형의 패스워드를 단순히 지정할 수 있다.
사용자 토큰이 생성되면, 신뢰된 리소스는 상세히 전술된 바와 유사한 방식으로 액세스가 시도될 수 있다. 특히, 호스트 컴퓨팅 장치 상의 원격 사용자를 가장하는 프로세스 또는 프로세스들은 "오픈 파일" 커맨드를 이용하여, 운영 체제, 또는 신뢰된 리소스에 대한 액세스를 제어하는 다른 프로세스로 하여금 사용자의 토큰을 검사하게 하여 사용자가 그 신뢰된 리소스에 액세스하도록 허가되어 있는지 여부를 결정할 수 있다. 사용자가 신뢰된 리소스에 액세스하는 것이 허가되어 있지 않다면, 운영 체제, 또는 신뢰된 리소스에 대한 액세스를 제어하는 다른 프로세스는, 원격 사용자를 가장하는 프로세스 또는 프로세스들에 실패 표시자를 리턴할 수 있으며, 표시된 그 실패는 피어-투-피어 접속을 통하여, 사용자에게 실패를 통지할 수 있는 요청하는 장치 상의 하나 이상의 프로세스들에 전달된다. 그러나, 사용자가 신뢰된 리소스에 액세스하는 것이 허가되어 있다면, 운영 체제, 또는 신뢰된 리소스에 대한 액세스를 제어하는 다른 프로세스는 원격 사용자를 가장하는 프로세스 또는 프로세스들에 성공 표시자를 리턴할 수 있으며, 이 경우 그 가장 프로세스 또는 프로세스들은 "바이트 송신" 커맨드를 이용하여 신뢰된 리소스에 포함된 데이터를 요청할 수 있다. 그러나, 호스트 컴퓨팅 장치 상의 데이터를 소모하는 것 대신에, 단순히 "바이트 송신" 커맨드의 결과로서 수신된 데이터가 피어-투-피어 접속을 통하여 원격 컴퓨팅 장치에 전달될 수 있으며, 여기에서 로컬 프로세스 또는 프로세스들이 데이터를 소모하고 그것을 사용자에게 제시할 수 있다.
도 4를 다시 참조하면, peerssp.dll(403)과 같은 단일 DLL은 전술된 가장화 기능의 대부분을 제공할 수 있다. 예를 들어, 원격 장치 상에서를 제외하고, 애플리케이션(401)과 같은 애플리케이션은, 애플리케이션의 프로세스 공간 내에 예시된, peersp.dll(403)과 같은 원격 장치 상의 DLL에 의하여 노출된 적절한 기능들을 인보크함으로써 호스트 장치 상의 신뢰된 리소스가 액세스되도록 요청할 수 있다. 상기 요청은, 호스트 장치 상에서 원격 사용자를 가장할 수 있는, 도 4에 도시된 peerssp.dll(403)과 같은, 호스트 장치 상의 DLL에 전송될 수 있다. 토큰들의 생성은 고특권(highly privilege) 프로세스일 수 있으므로, peerssp.dll(403)은 인증 서비스(411)와 같은, 상위 특권을 갖는 컴포넌트와 통신할 수 있다. 따라서, 원격 사용자를 가장하는 경우, peerssp.dll(403)과 같은 프로세스는 고특권 인증 서비스(411)에 사용자를 로그온시키는데 필요한 자격 증명(credentials)을 원격 프로시저 호출(407)을 통하여 보낼 수 있다. 사용자의 로그온이 성공적이었다면, 고특권 인증 서비스(411)는, 결과적인 토큰을 유사한 원격 프로시저 호출 메커니즘들을 통하여 peerssp.dll과 같은 사용자 모드 프로세스에 리턴할 수 있다.
어떤 현대 운영 체제는 복수의 사용자들이 컴퓨팅 장치에 동시에 로그온하게 할 수 있다. 그러한 경우에, 한 사용자는 피어 컴퓨팅 장치에 대한 인증서를 자신의 신뢰된 사람 저장소에 추가할 수 있을 것이지만, 다른 사용자들은 그렇지 않을 수 있다. 본 발명의 일 실시예에 의하여 고려된 메커니즘은 어느 사용자가 현재 컴퓨팅 장치의 리소스에 액세스하고 있는지 여부를 결정하기 위한 검사가 이루어지게 할 수 있고 그 사용자의 신뢰된 사람 저장소를 원격 장치를 인증하기 위한 기초로서 사용한다.
이해할 수 있는 바와 같이, 본 발명의 실시예들은 사용자의 제어하에 채워질 수 있고, 제3자 CA들에 의하여 궁극적으로 서명되는 인증서들 또는 인증서 체인들이 필요없이 피어 장치들이 인증되도록 할 수 있는 신뢰된 사람 저장소를 고려한다. 또한, 본 발명의 실시예들은 원격 사용자가 신뢰된 리소스들을 액세스하는 것이 허가되어 있는지 여부를 결정하기 위한 기존 메커니즘에 영향을 미치도록 호스트 컴퓨팅 장치 상의 원격 사용자의 가장화를 고려한다. 전술된 설명들은 특정한 알고리즘들에 기초하였지만, 본 발명에 대한 어떤 것도 다른 유사한 알고리즘들을 제외하고 그 알고리즘들만을 요구하지 않는다. 예를 들면, 전술된 인증서들은 공용/개인 키 암호화를 이용하여 서명되었지만, 임의의 적절한 암호화 알고리즘들에 의하여 보안된 임의의 인증서들이 본 발명에 동일하게 적용 가능하다. 유사하게, 전술된 설명들은 단일의 DLL 모듈을 참조하였지만, 본 발명의 실시예들은 라이브러 리들, 루틴들, 서브루틴들, 운영 체제 프로세스들, 또는 임의의 다른 프로그래밍 가능한 구성체들의 임의의 조합으로 구현될 수 있다.
본 발명의 원리들이 적용될 수 있는 많은 가능한 실시예들의 관점에서, 도면들과 관련하여 여기에 기술된 실시예들은 단지 예시적인 것이며 본 발명의 범위를 제한하는 것으로 간주되어서는 안된다. 예를 들면, 당업자는 소프트웨어로 도시된 예시된 실시예들의 일부 엘리먼트들은 하드웨어로 구현될 수 있고(및 그 역의 경우도 성립함) 예시된 실시예들은 본 발명의 취지로부터 벗어나지 않고 구성 및 세부 사항이 수정될 수 있음을 인식할 것이다. 따라서, 여기에 기술된 본 발명은 그러한 모든 실시예들을 이하의 청구범위 및 그 균등물의 범위 내에 포함되는 것으로 고려한다.

Claims (20)

  1. 제2 컴퓨팅 장치에서 제1 컴퓨팅 장치를 인증하기 위한 컴퓨터 실행 가능 명령어들을 갖는 컴퓨터 판독 가능 매체로서, 상기 컴퓨터 판독 가능 명령어들은,
    상기 제2 컴퓨팅 장치에서 상기 제1 컴퓨팅 장치로부터의 하나 이상의 인증서들을 수신하는 단계;
    상기 하나 이상의 인증서들 중 최종 인증서가 신뢰된 사람 저장소 엔터티에 의하여 서명되어 있는지 여부를 결정하는 단계 - 상기 신뢰된 사람 저장소 엔터티는 상기 제2 컴퓨팅 장치의 신뢰된 사람 저장소에 위치된 서명된 인증서에 의하여 식별되며, 상기 제2 컴퓨팅 장치의 상기 신뢰된 사람 저장소는 상기 제2 컴퓨팅 장치의 신뢰된 루트 저장소와는 상이한 증명서들을 더 포함함 - ;
    상기 하나 이상의 인증서들 중 제1 인증서가 상기 제1 컴퓨팅 장치를 식별하는지 여부를 결정하는 단계;
    상기 하나 이상의 인증서들 중의 각각의 인증서가 상기 하나 이상의 인증서들 중의 선행 인증서에 의하여 인증되는지 여부를 결정하는 단계; 및
    상기 하나 이상의 인증서들 중 상기 최종 인증서가 상기 신뢰된 사람 저장소 엔터티에 의하여 서명되어 있고, 상기 하나 이상의 인증서들 중 상기 제1 인증서가 상기 제1 컴퓨팅 장치를 식별하며, 상기 하나 이상의 인증서들 중의 각각의 인증서가 상기 하나 이상의 인증서들 중의 상기 선행 인증서에 의하여 인증되어 있는 경우, 상기 제1 컴퓨팅 장치를 인증하는 단계
    를 포함하는 단계들을 수행하는, 컴퓨터 판독 가능 매체.
  2. 제1항에 있어서, 상기 제2 컴퓨팅 장치의 상기 신뢰된 사람 저장소는 상기 제2 컴퓨팅 장치의 사용자에 의하여 신뢰할 만한 것으로 간주된 엔터티들의 서명된 인증서들을 포함하며, 상기 서명된 인증서들은 상기 제2 컴퓨팅 장치의 사용자의 지시하에 상기 제2 컴퓨팅 장치의 상기 신뢰된 사람 저장소에 위치되는 컴퓨터 판독 가능 매체.
  3. 제1항에 있어서, 상기 하나 이상의 인증서들은 그룹 인증서로 종료하는 인증서 체인을 포함하며, 상기 그룹 인증서는 상기 신뢰된 루트 저장소 또는 상기 신뢰된 사람 저장소 내에 저장되지 않고 개별적으로 루트 인증서로서 제공되는 컴퓨터 판독 가능 매체.
  4. 제1항에 있어서, 상기 제2 컴퓨팅 장치의 상기 신뢰된 사람 저장소는 상기 제2 컴퓨팅 장치에 현재 로그온된 사용자에 대응하는 로그온 사용자의 신뢰된 사람 저장소이며, 상기 제2 컴퓨팅 장치의 각각의 사용자는 대응하는 신뢰된 사람 저장소를 가지는 컴퓨터 판독 가능 매체.
  5. 제1항에 있어서, 상기 제2 컴퓨팅 장치의 상기 신뢰된 사람 저장소 내의 서명된 인증서에 의하여 식별된 각각의 엔터티는 상기 제2 컴퓨팅 장치 상에 대응 계 정을 가지는 컴퓨터 판독 가능 매체.
  6. 제1항에 있어서, 상기 컴퓨터 실행 가능 명령어들은,
    상기 제1 컴퓨팅 장치의 사용자로부터, 상기 제2 컴퓨팅 장치 상의 신뢰된 리소스에 액세스하기 위한 요청을 수신하는 단계;
    상기 제2 컴퓨팅 장치 상의 사용자의 계정의 패스워드 엘리먼트를 변경시키는 단계;
    상기 변경된 패스워드 엘리먼트를 이용하여 상기 사용자의 계정에 로그인함으로써 상기 사용자를 가장하는(impersonating) 단계 - 상기 사용자의 계정에 로그인하는 것은 토큰을 생성함 - ;
    상기 토큰으로 상기 신뢰된 리소스를 액세스하는 단계; 및
    상기 액세스의 결과들을 상기 제1 컴퓨팅 장치의 상기 사용자에게 제공하는 단계
    를 더 포함하는 단계들을 더 수행하는 컴퓨터 판독 가능 매체.
  7. 제6항에 있어서, 상기 사용자의 계정에 로그인하는 것은 원격 프로시저 호출을 통하여 커널 모드 프로세스(kernel mode process)에 자격 증명(credentials) 및 상기 변경된 패스워드 엘리먼트를 제공하는 것을 포함하는 컴퓨터 판독 가능 매체.
  8. 제1 컴퓨팅 장치의 사용자가 제2 컴퓨팅 장치에 있는 신뢰된 리소스에 액세 스하는 것을 허가하기 위한 컴퓨터 실행 가능 명령어들을 갖는 컴퓨터 판독 가능 매체로서, 상기 컴퓨터 판독 가능 명령어들은,
    상기 사용자로부터, 상기 제2 컴퓨팅 장치 상의 상기 신뢰된 리소스에 액세스하기 위한 요청을 수신하는 단계;
    상기 제2 컴퓨팅 장치 상의 상기 사용자의 계정의 패스워드 엘리먼트를 변경시키는 단계;
    상기 변경된 패스워드 엘리먼트를 이용하여 상기 사용자의 계정에 로그인함으로써 상기 사용자를 가장하는 단계 - 상기 사용자의 계정에 로그인하는 것은 토큰을 생성함 - ;
    상기 토큰으로 상기 신뢰된 리소스를 액세스하는 단계; 및
    상기 제1 컴퓨팅 장치의 상기 사용자에게 상기 액세스의 결과들을 제공하는 단계
    를 포함하는 단계들을 수행하는, 컴퓨터 판독 가능 매체.
  9. 제8항에 있어서, 상기 사용자의 계정의 상기 패스워드 엘리먼트를 변경시키는 단계는 상기 사용자의 인증서의 해시를 이용하여 상기 사용자의 계정에 로그인하도록 패스워드 프로토콜을 변경시키는 단계를 포함하는 컴퓨터 판독 가능 매체.
  10. 제8항에 있어서, 상기 사용자의 계정에 로그인하는 것은 원격 프로시저 호출을 통하여 고특권(high privilege) 프로세스에 자격 증명 및 상기 변경된 패스워드 엘리먼트를 제공하는 것을 포함하는 컴퓨터 판독 가능 매체.
  11. 제8항에 있어서, 상기 결과들을 제공하는 단계는 상기 토큰을 이용한 상기 신뢰된 리소스의 액세스가 성공적이지 않았다면 상기 제1 컴퓨팅 장치의 사용자에게 실패 표시를 제공하고, 상기 토큰을 이용한 상기 신뢰된 리소스의 액세스가 성공적이었다면 상기 제1 컴퓨팅 장치의 사용자에게 상기 신뢰된 리소스로부터의 데이터를 제공하는 단계를 포함하며, 상기 데이터는 바이트 송신형(send-bytes-type) 커맨드를 통하여 획득되는 컴퓨터 판독 가능 매체.
  12. 제8항에 있어서, 상기 컴퓨터 실행 가능 명령어들은,
    상기 제2 컴퓨팅 장치에서 상기 제1 컴퓨팅 장치로부터의 하나 이상의 인증서들을 수신하는 단계;
    상기 하나 이상의 인증서들 중 최종 인증서가 신뢰된 사람 저장소 엔터티에 의하여 서명되어 있는지 여부를 결정하는 단계 - 상기 신뢰된 사람 저장소 엔터티는 상기 제2 컴퓨팅 장치의 신뢰된 사람 저장소 내에 위치된 서명된 인증서에 의하여 식별되며, 상기 제2 컴퓨팅 장치의 상기 신뢰된 사람 저장소는 상기 제2 컴퓨팅 장치의 신뢰된 루트 저장소와는 상이한 인증서들을 더 포함함 - ;
    상기 하나 이상의 인증서들 중 제1 인증서가 상기 제1 컴퓨팅 장치를 식별하는지 여부를 결정하는 단계;
    상기 하나 이상의 인증서들 중 각각의 인증서가 상기 하나 이상의 인증서들 중의 선행 인증서에 의하여 인증되는지 여부를 결정하는 단계; 및
    상기 하나 이상의 인증서들 중 상기 최종 인증서가 상기 신뢰된 사람 저장소 엔터티에 의하여 서명되어 있고, 상기 하나 이상의 인증서들 중 상기 제1 인증서가 상기 제1 컴퓨팅 장치를 식별하며, 상기 하나 이상의 인증서들 중 각각의 인증서가 상기 하나 이상의 인증서들의 상기 선행 인증서에 의하여 인증되는 경우, 상기 제1 컴퓨팅 장치를 인증하는 단계
    를 포함하는 단계들을 더 수행하는 컴퓨터 판독 가능 매체.
  13. 제12항에 있어서, 상기 제2 컴퓨팅 장치의 상기 신뢰된 사람 저장소는 상기 제2 컴퓨팅 장치의 사용자에 의하여 신뢰할 만한 것으로 간주되는 엔터티들의 서명된 인증서들을 포함하며, 상기 서명된 인증서들은 상기 제2 컴퓨팅 장치의 사용자의 지시하에 상기 제2 컴퓨팅 장치의 상기 신뢰된 사람 저장소에 위치되어 있는 컴퓨터 판독 가능 매체.
  14. 제12항에 있어서, 상기 제2 컴퓨팅 장치의 상기 신뢰된 사람 저장소는 상기 제2 컴퓨팅 장치에 현재 로그온된 사용자에 대응하는 로그온 사용자의 신뢰된 사람 저장소이며, 상기 제2 컴퓨팅 장치의 각각의 사용자는 대응하는 신뢰된 사람 저장소를 갖는 컴퓨터 판독 가능 매체.
  15. 컴퓨팅 장치로서,
    신뢰된 사람 저장소와는 상이한 서명된 증명서들을 포함하는 신뢰된 루트 저장소;
    상기 컴퓨팅 장치의 사용자에 의하여 신뢰할 만한 것으로 간주되는 엔터티들의 서명된 인증서들을 포함하는 신뢰된 사람 저장소 - 상기 서명된 인증서들은 상기 사용자의 지시하에 상기 신뢰된 사람 저장소에 위치됨 - ;
    네트워크 인터페이스 - 상기 네트워크 인터페이스는 다른 컴퓨팅 장치로부터 하나 이상의 인증서들을 수신하는 단계를 포함하는 단계들을 수행함 - ; 및
    처리 장치 - 상기 처리 장치는 상기 하나 이상의 인증서들 중 최종 인증서가 신뢰된 사람 저장소 엔터티에 의하여 서명되어 있고. 상기 하나 이상의 인증서들 중 제1 인증서가 상기 다른 컴퓨팅 장치를 식별하고, 상기 하나 이상의 인증서들 중 각각의 인증서가 상기 하나 이상의 인증서들 중 선행 인증서에 의하여 인증되는 경우, 상기 다른 컴퓨팅 장치를 인증하는 단계를 포함하는 단계들을 수행하며, 상기 신뢰된 사람 저장소 엔터티는 상기 신뢰된 사람 저장소 내의 서명된 인증서에 의하여 식별됨 -
    를 포함하는 컴퓨팅 장치.
  16. 제15항에 있어서, 상기 네트워크 인터페이스는 상기 다른 컴퓨팅 장치 상의 사용자로부터, 상기 컴퓨팅 장치 상의 신뢰된 리소스를 액세스하기 위한 요청을 수신하는 단계를 포함하는 단계들을 더 수행하며, 상기 처리 장치는, 상기 컴퓨팅 장치 상의 상기 사용자의 계정의 패스워드 엘리먼트를 변경시키는 단계, 상기 변경된 패스워드 엘리먼트를 이용하여 상기 사용자의 계정에 로그인함으로써 상기 사용자를 가장하는 단계 - 상기 사용자의 계정에 로그인하는 것은 토큰을 생성함 -, 상기 토큰으로 상기 신뢰된 리소스에 액세스하는 단계 , 및 상기 다른 컴퓨팅 장치의 사용자에게 상기 액세스의 결과들을 제공하는 단계를 포함하는 단계들을 더 수행하는 컴퓨팅 장치.
  17. 제16항에 있어서, 상기 사용자의 계정의 상기 패스워드 엘리먼트를 변경시키는 단계는 상기 사용자의 인증서의 해시를 이용하여 사용자의 계정에 로그인하도록 패스워드 프로토콜을 변경시키는 단계를 포함하는 컴퓨팅 장치.
  18. 제16항에 있어서, 상기 사용자의 계정에 로그인하는 것은 원격 프로시저 호출을 통하여 상기 컴퓨팅 장치 상의 커널 모드 프로세스에 자격 증명 및 상기 변경된 패스워드 엘리먼트를 제공하는 것을 포함하는 컴퓨팅 장치.
  19. 제15항에 있어서, 상기 신뢰된 사람 저장소는 상기 컴퓨팅 장치의 각각의 사용자에 특정한 것인 컴퓨팅 장치.
  20. 제15항에 있어서, 상기 신뢰된 사람 저장소 내의 서명된 인증서에 의하여 식별된 각각의 엔터티는 상기 컴퓨터 장치 상에 대응하는 계정을 갖는 컴퓨팅 장치.
KR1020077023983A 2005-04-20 2005-08-01 피어-투-피어 인증 및 허가 KR101150108B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/110,592 US7350074B2 (en) 2005-04-20 2005-04-20 Peer-to-peer authentication and authorization
US11/110,592 2005-04-20
PCT/US2005/027273 WO2006115522A1 (en) 2005-04-20 2005-08-01 Peer-to-peer authentication and authorization

Publications (2)

Publication Number Publication Date
KR20070122495A true KR20070122495A (ko) 2007-12-31
KR101150108B1 KR101150108B1 (ko) 2012-06-11

Family

ID=37188454

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077023983A KR101150108B1 (ko) 2005-04-20 2005-08-01 피어-투-피어 인증 및 허가

Country Status (11)

Country Link
US (1) US7350074B2 (ko)
EP (1) EP1872502B1 (ko)
JP (1) JP4965558B2 (ko)
KR (1) KR101150108B1 (ko)
CN (1) CN101171782B (ko)
BR (1) BRPI0520174A2 (ko)
MX (1) MX2007011601A (ko)
MY (1) MY149418A (ko)
RU (1) RU2390945C2 (ko)
TW (1) TWI407750B (ko)
WO (1) WO2006115522A1 (ko)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7065587B2 (en) * 2001-04-02 2006-06-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith
US20060294381A1 (en) * 2005-06-22 2006-12-28 Mitchell Douglas P Method and apparatus for establishing a secure connection
US8417949B2 (en) * 2005-10-31 2013-04-09 Microsoft Corporation Total exchange session security
JP4983165B2 (ja) * 2006-09-05 2012-07-25 ソニー株式会社 通信システムおよび通信方法、情報処理装置および方法、デバイス、プログラム、並びに記録媒体
US8091134B2 (en) * 2006-11-29 2012-01-03 Lenovo (Singapore) Pte. Ltd. System and method for autonomic peer-to-peer virus inoculation
US8590002B1 (en) 2006-11-29 2013-11-19 Mcafee Inc. System, method and computer program product for maintaining a confidentiality of data on a network
US8621008B2 (en) 2007-04-26 2013-12-31 Mcafee, Inc. System, method and computer program product for performing an action based on an aspect of an electronic mail message thread
SE531820C2 (sv) * 2007-06-13 2009-08-18 Headweb Ab Förfarande och system för legal fildelning
US8199965B1 (en) 2007-08-17 2012-06-12 Mcafee, Inc. System, method, and computer program product for preventing image-related data loss
US20130276061A1 (en) 2007-09-05 2013-10-17 Gopi Krishna Chebiyyam System, method, and computer program product for preventing access to data with respect to a data access attempt associated with a remote data sharing session
US7949771B1 (en) * 2007-09-05 2011-05-24 Trend Micro Incorporated Authentication of unknown parties in secure computer communications
GB2456290B (en) * 2007-10-05 2011-03-30 Iti Scotland Ltd Distributed protocol for authorisation
PL2056563T3 (pl) * 2007-11-05 2013-04-30 Alcatel Lucent Sieć typu każdy z każdym
CN100553212C (zh) 2007-11-16 2009-10-21 西安西电捷通无线网络通信有限公司 一种基于三元对等鉴别的可信网络接入控制系统
US8893285B2 (en) 2008-03-14 2014-11-18 Mcafee, Inc. Securing data using integrated host-based data loss agent with encryption detection
US8353053B1 (en) * 2008-04-14 2013-01-08 Mcafee, Inc. Computer program product and method for permanently storing data based on whether a device is protected with an encryption mechanism and whether data in a data structure requires encryption
US7979899B2 (en) 2008-06-02 2011-07-12 Microsoft Corporation Trusted device-specific authentication
US8996726B2 (en) 2008-06-19 2015-03-31 Qualcomm Incorporated Methods and apparatus for event distribution and routing in peer-to-peer overlay networks
US9077684B1 (en) 2008-08-06 2015-07-07 Mcafee, Inc. System, method, and computer program product for determining whether an electronic mail message is compliant with an etiquette policy
JP5347403B2 (ja) * 2008-09-22 2013-11-20 ソニー株式会社 情報処理装置および方法、プログラム、並びに、情報処理システム
US8412930B2 (en) 2008-10-09 2013-04-02 Microsoft Corporation Device authentication within deployable computing environment
US8032930B2 (en) 2008-10-17 2011-10-04 Intuit Inc. Segregating anonymous access to dynamic content on a web server, with cached logons
US20100235625A1 (en) * 2009-03-13 2010-09-16 Ravi Kant Pandey Techniques and architectures for preventing sybil attacks
CN101534262B (zh) * 2009-03-30 2011-04-20 成都市华为赛门铁克科技有限公司 消息传输方法、网络装置及网络系统
US8281381B2 (en) * 2009-08-03 2012-10-02 Novell, Inc. Techniques for environment single sign on
US8914628B2 (en) 2009-11-16 2014-12-16 At&T Intellectual Property I, L.P. Method and apparatus for providing radio communication with an object in a local environment
US8875285B2 (en) * 2010-03-24 2014-10-28 Microsoft Corporation Executable code validation in a web browser
US10482254B2 (en) * 2010-07-14 2019-11-19 Intel Corporation Domain-authenticated control of platform resources
US8826010B2 (en) * 2010-09-17 2014-09-02 Skype Certificate revocation
US8856516B2 (en) 2010-09-17 2014-10-07 Skype Certificate revocation
US9270471B2 (en) 2011-08-10 2016-02-23 Microsoft Technology Licensing, Llc Client-client-server authentication
US9544148B2 (en) * 2011-12-02 2017-01-10 Blackberry Limited Method of sending a self-signed certificate from a communication device
KR20160127167A (ko) * 2012-03-08 2016-11-02 인텔 코포레이션 다중 팩터 인증 기관
US8811950B2 (en) * 2012-03-30 2014-08-19 Qualcomm Incorporated Methods and apparatus for controlling devices with no or limited WWAN capability in peer to peer communication
US9202016B2 (en) * 2012-08-15 2015-12-01 Verizon Patent And Licensing Inc. Management of private information
CN103873248B (zh) * 2012-12-16 2017-04-12 航天信息股份有限公司 带有证书的基于身份的加密方法和装置
US9197700B2 (en) * 2013-01-18 2015-11-24 Apple Inc. Keychain syncing
US9077759B2 (en) 2013-01-18 2015-07-07 Apple Inc. Conflict resolution for keychain syncing
US20140281502A1 (en) * 2013-03-15 2014-09-18 General Instrument Corporation Method and apparatus for embedding secret information in digital certificates
US10404520B2 (en) 2013-05-29 2019-09-03 Microsoft Technology Licensing, Llc Efficient programmatic memory access over network file access protocols
US9641614B2 (en) 2013-05-29 2017-05-02 Microsoft Technology Licensing, Llc Distributed storage defense in a cluster
US9838424B2 (en) 2014-03-20 2017-12-05 Microsoft Technology Licensing, Llc Techniques to provide network security through just-in-time provisioned accounts
US20150281225A1 (en) * 2014-03-27 2015-10-01 Microsoft Corporation Techniques to operate a service with machine generated authentication tokens
US9716716B2 (en) * 2014-09-17 2017-07-25 Microsoft Technology Licensing, Llc Establishing trust between two devices
US10489309B2 (en) * 2014-10-21 2019-11-26 Intel Corporation Memory protection key architecture with independent user and supervisor domains
TW201626767A (zh) * 2015-01-15 2016-07-16 Universal Global Scient Ind Co 物聯網裝置離線分享之存取權限控制方法
GB2535165B (en) * 2015-02-09 2021-09-29 Arm Ip Ltd A method of establishing trust between a device and an apparatus
CN104703252B (zh) * 2015-02-13 2018-06-22 小米科技有限责任公司 终端设备接入无线网络的方法及装置
CN106209734B (zh) * 2015-04-30 2019-07-19 阿里巴巴集团控股有限公司 进程的身份认证方法和装置
US9979553B2 (en) * 2015-08-06 2018-05-22 Airwatch Llc Secure certificate distribution
SG11201803010UA (en) 2015-10-14 2018-05-30 Cambridge Blockchain Llc Systems and methods for managing digital identities
US10614532B1 (en) 2016-03-11 2020-04-07 Opower, Inc. Interactive analytics platform responsive to data inquiries
US10050963B2 (en) * 2016-03-29 2018-08-14 Microsoft Technology Licensing, Llc Securing remote authentication
WO2018022109A1 (en) * 2016-07-29 2018-02-01 Hewlett-Packard Development Company, L.P. Workflow-authorizing computing device authentication
US10320571B2 (en) * 2016-09-23 2019-06-11 Microsoft Technology Licensing, Llc Techniques for authenticating devices using a trusted platform module device
US11182349B2 (en) * 2017-06-04 2021-11-23 Apple Inc. Synchronizing content
GB2565282B (en) * 2017-08-02 2021-12-22 Vnc Automotive Ltd Remote control of a computing device
US11290466B2 (en) * 2017-08-16 2022-03-29 Cable Television Laboratories, Inc. Systems and methods for network access granting
EP3585028A1 (de) * 2018-06-20 2019-12-25 Siemens Aktiengesellschaft Verfahren zur anbindung eines endgerätes in eine vernetzbare rechner-infrastruktur
US11316857B2 (en) * 2018-07-11 2022-04-26 Cyber Ark Software Ltd. Automated creation of dynamic privileged access resources
CN108833445B (zh) * 2018-07-31 2021-04-16 中国银联股份有限公司 一种适用于物联网系统的认证方法及装置
US10965676B2 (en) * 2018-10-02 2021-03-30 Ca, Inc. Peer authentication by source devices
US11068598B2 (en) * 2018-11-01 2021-07-20 Dell Products L.P. Chassis internal device security
US10873468B2 (en) * 2019-02-22 2020-12-22 Beyond Identity Inc. Legacy authentication for user authentication with self-signed certificate and identity verification
US11172362B2 (en) * 2019-05-09 2021-11-09 Samsung Electronics Co., Ltd. Method and apparatus for managing and verifying certificate
CN110728386A (zh) * 2019-08-28 2020-01-24 中铁程科技有限责任公司 信息验证方法、装置和计算机设备
CN110728611A (zh) * 2019-08-28 2020-01-24 中铁程科技有限责任公司 接送站服务的提供方法、装置和计算机设备
WO2021230636A1 (en) * 2020-05-11 2021-11-18 Samsung Electronics Co., Ltd. System and method for certificate based authentication for tethering
CN114168924B (zh) * 2022-02-10 2022-07-12 亿次网联(杭州)科技有限公司 一种基于数字证书的群成员相互认证的方法和系统

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638448A (en) * 1995-10-24 1997-06-10 Nguyen; Minhtam C. Network with secure communications sessions
US6144959A (en) * 1997-08-18 2000-11-07 Novell, Inc. System and method for managing user accounts in a communication network
US6134327A (en) * 1997-10-24 2000-10-17 Entrust Technologies Ltd. Method and apparatus for creating communities of trust in a secure communication system
US6308266B1 (en) * 1998-03-04 2001-10-23 Microsoft Corporation System and method for enabling different grades of cryptography strength in a product
US6615347B1 (en) * 1998-06-30 2003-09-02 Verisign, Inc. Digital certificate cross-referencing
US6304974B1 (en) * 1998-11-06 2001-10-16 Oracle Corporation Method and apparatus for managing trusted certificates
US6363376B1 (en) * 1999-08-02 2002-03-26 Individual Software, Inc. Method and system for querying and posting to multiple career websites on the internet from a single interface
US7065587B2 (en) * 2001-04-02 2006-06-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith
US7380279B2 (en) * 2001-07-16 2008-05-27 Lenel Systems International, Inc. System for integrating security and access for facilities and information systems
US7068789B2 (en) * 2001-09-19 2006-06-27 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) group security infrastructure and method
US7493363B2 (en) * 2001-09-19 2009-02-17 Microsoft Corporation Peer-to-peer group management and method for maintaining peer-to-peer graphs
US7299351B2 (en) * 2001-09-19 2007-11-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) security infrastructure and method
TWI221722B (en) * 2001-11-15 2004-10-01 Ind Tech Res Inst Access control system of work-flow proceeded on basis of electronic certificate and method thereof
US7120691B2 (en) * 2002-03-15 2006-10-10 International Business Machines Corporation Secured and access controlled peer-to-peer resource sharing method and apparatus
US7130999B2 (en) * 2002-03-27 2006-10-31 Intel Corporation Using authentication certificates for authorization
US7051102B2 (en) * 2002-04-29 2006-05-23 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) security infrastructure and method
US20030236976A1 (en) * 2002-06-19 2003-12-25 Microsoft Corporation Efficient membership revocation by number
US7392375B2 (en) * 2002-09-18 2008-06-24 Colligo Networks, Inc. Peer-to-peer authentication for real-time collaboration
US7461260B2 (en) * 2002-12-31 2008-12-02 Intel Corporation Methods and apparatus for finding a shared secret without compromising non-shared secrets
US7397922B2 (en) * 2003-06-27 2008-07-08 Microsoft Corporation Group security
US7188254B2 (en) * 2003-08-20 2007-03-06 Microsoft Corporation Peer-to-peer authorization method
US7546373B2 (en) * 2003-11-14 2009-06-09 Microsoft Corporation Secure dynamic credential distribution over a network

Also Published As

Publication number Publication date
RU2390945C2 (ru) 2010-05-27
JP2008537256A (ja) 2008-09-11
US7350074B2 (en) 2008-03-25
EP1872502B1 (en) 2019-07-17
CN101171782B (zh) 2012-08-15
EP1872502A1 (en) 2008-01-02
TW200638723A (en) 2006-11-01
MX2007011601A (es) 2007-11-22
BRPI0520174A2 (pt) 2009-04-22
EP1872502A4 (en) 2008-08-06
TWI407750B (zh) 2013-09-01
CN101171782A (zh) 2008-04-30
JP4965558B2 (ja) 2012-07-04
WO2006115522A1 (en) 2006-11-02
US20060242405A1 (en) 2006-10-26
RU2007138936A (ru) 2009-04-27
KR101150108B1 (ko) 2012-06-11
MY149418A (en) 2013-08-30

Similar Documents

Publication Publication Date Title
KR101150108B1 (ko) 피어-투-피어 인증 및 허가
CA2407482C (en) Security link management in dynamic networks
KR101247007B1 (ko) 프로토콜을 위한 사용자 맵핑 정보 익스텐션
JP5038531B2 (ja) 信頼できる機器に限定した認証
RU2439692C2 (ru) Управляемое политиками делегирование учетных данных для единой регистрации в сети и защищенного доступа к сетевым ресурсам
US8209394B2 (en) Device-specific identity
Chari et al. Universally composable security analysis of OAuth v2. 0
US7757275B2 (en) One time password integration with Kerberos
US20090287935A1 (en) Common access card heterogeneous (cachet) system and method
EP2171911A2 (en) Device provisioning and domain join emulation over non-secured networks
Baka et al. SSL/TLS under lock and key: a guide to understanding SSL/TLS cryptography
Ioannis Integration of OpenId Connect with Fido Uaf for Android Environments
Makropodis Integration of OpenID Connect with FIDO UAF for Android environments
Hosseyni et al. Formal security analysis of the OpenID FAPI 2.0 Security Profile with FAPI 2.0 Message Signing, FAPI-CIBA, Dynamic Client Registration and Management: technical report

Legal Events

Date Code Title Description
A201 Request for examination
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: 20160419

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170420

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180417

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190417

Year of fee payment: 8