KR101085638B1 - 피어 투 피어 네트워크에서의 안전한 계층적 이름 공간 - Google Patents

피어 투 피어 네트워크에서의 안전한 계층적 이름 공간 Download PDF

Info

Publication number
KR101085638B1
KR101085638B1 KR1020040056365A KR20040056365A KR101085638B1 KR 101085638 B1 KR101085638 B1 KR 101085638B1 KR 1020040056365 A KR1020040056365 A KR 1020040056365A KR 20040056365 A KR20040056365 A KR 20040056365A KR 101085638 B1 KR101085638 B1 KR 101085638B1
Authority
KR
South Korea
Prior art keywords
peer
namespace
resolution
authority
name
Prior art date
Application number
KR1020040056365A
Other languages
English (en)
Other versions
KR20050010717A (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 KR20050010717A publication Critical patent/KR20050010717A/ko
Application granted granted Critical
Publication of KR101085638B1 publication Critical patent/KR101085638B1/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
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/22Arrangements for preventing the taking of data from a data transmission channel without authorisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/167Adaptation for transition between two IP versions, e.g. between IPv4 and IPv6
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Abstract

위임된 기관의 IP 주소를 요구하는 것과 독립적으로 위임된 기관의 계층 구조적 또는 연쇄된 룩업을 통해 이름 레졸루션을 가능하게 해주는 방법 및 데이터 구조가 제공된다. 일 실시예에서, 본 방법은 먼저 이름 공간과 관련된 암호키를 생성하는 단계에 의한 룩업을 제공한다. 상기 암호키 중 하나를 사용하여 기관이 생성된다. 그 다음에, 본 방법은 이름 공간의 이름이 상기 기관으로 리졸빙되도록 상기 이름 공간과 관련된 기관들에 피어 투 피어 유형 레졸루션을 발행하도록 요청함으로써 상기 이름 공간이 상기 기관을 참조하는 것을 가능하게 해주는 단계를 제공한다. 다른 원하는 이름 공간들에 대해, 본 방법은 나머지 기관들로 리졸빙될 나머지 이름 공간들과 관련된 이름들 및 상기 기관을 지명하는 레졸루션을 발행하는 단계를 제공한다. 서비스에 대해서는, 상기 기관 및 서비스 이름이 임의적인 데이터, IP 주소, 프로토콜 명, 또는 포트 등의 최종 결과를 수신하기 위해 게시된다.
이름 레졸루션, 이름 공간, 암호키, 피어 투 피어 레졸루션

Description

피어 투 피어 네트워크에서의 안전한 계층적 이름 공간{SECURE HIERARCHICAL NAMESPACES IN PEER-TO-PEER NETWORKS}
도 1은 본 발명이 구현되는 예시적인 컴퓨터 시스템을 개괄적으로 나타낸 블록도.
도 2는 본 발명의 일 실시예에 따른 시스템의 블록도.
도 3은 피어 투 피어 유형 레졸루션을 나타낸 블록도.
도 4는 본 발명의 일 실시예에 따른 방법을 나타낸 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
202: Win API
206: 암호 API
208: 그래핑
210: 플러딩 및 동기화
212: 저장
214: 그래프 보관
216: 그룹핑
218: 그룹 보안
220: 그룹 SSP
226: ID 관리자
228: Microsoft TCP/IP 버전 6 프로토콜
본 발명은 일반적으로 컴퓨터 시스템에 관한 것으로서, 보다 상세하게는 디렉토리 서비스의 보안 및 매핑 기능에 관한 것이다.
피어 투 피어 네트워킹(peer-to-peer networking)이란 단지 클라이언트 기반 컴퓨팅 작업 이상의 것을 위해 퍼스널 컴퓨터를 사용하는 것을 말한다. 보다 구체적으로는, 피어 투 피어 컴퓨팅은 최신의 퍼스널 컴퓨터가 고속 프로세서, 대량의 메모리, 및 대용량 하드 드라이브(이들 중 어느 것도 이메일 및 웹 브라우징 등의 통상의 컴퓨팅 작업을 수행할 때 충분히 이용되지 않는다)를 갖는다는 사실을 이용한다. 퍼스널 컴퓨터가 클라이언트와 서버 둘다로서 기능할 때, 그 컴퓨터는 "피어"(peer)로서 기능하고 있다.
많은 응용에서의 일반적인 컴퓨팅 모델은 클라이언트/서버 모델이다. 서버 컴퓨터는 일반적으로 대량의 자원을 가지고 있으며 클라이언트 컴퓨터로부터의 자원 및 데이터의 요청에 응답한다. 클라이언트 컴퓨터는 서버 컴퓨터에 자원 또는 데이터의 요청을 개시한다. 클라이언트/서버 모델의 컴퓨팅의 좋은 일례가 웹 브라우징이다. 인터넷 상의 웹 서버는 일반적으로 초고속 프로세서(또는 다중 프로세서) 및 대규모 하드 디스크 어레이를 갖는 하이-엔드 전용 서버 컴퓨터이다. 웹 서버는 웹 사이트와 관련된 콘텐츠의 전부(HTML 파일, 그래픽, 오디오 및 비디오 파일 등)를 저장하고 특정의 웹 페이지 상의 정보를 보려고 하는 착신 요청이 오는지 리스닝한다. 페이지가 요청되면, 웹 서버는 그 페이지 및 그의 관련 파일을 요청측 클라이언트로 전송한다.
클라이언트/서버와 피어 투 피어 네트워킹 사이의 차이점은 도메인 네임 서비스(Domain Name Service, DNS)의 사용이다. 서버 컴퓨터는 일반적으로 클라이언트 컴퓨터가 이름(name)을 서버 컴퓨터의 인터넷 프로토콜 주소로 리졸빙(resolve)할 수 있도록 DNS에 등록되어 있다. 많은 클라이언트 컴퓨터가 일시적인 연결을 가지며 예측할 수 없는 시간 동안 연결되고 또 각각의 연결에 대해 새로운 인터넷 프로토콜 주소를 할당받을 수 있기 때문에, 클라이언트 컴퓨터는 일반적으로 DNS에 등록되어 있지 않다. 또한, 클라이언트 컴퓨터는 공유 자원을 가지고 있지 않으며 자원의 요청에 응답하지 않는다. 따라서, 다른 컴퓨터들은 클라이언트 컴퓨터의 이름을 리졸빙할 필요가 없다. 클라이언트 컴퓨터의 DNS 주소 등록은 필요없다.
한편, 피어 컴퓨터는 공유할 자원을 갖는다. 그렇지만, 피어 컴퓨터는 여전히 일시적인 연결을 갖는다. 피어 컴퓨터는 그의 이름을 등록하기 위해 DNS 동적 갱신(dynamic update)을 사용할 수 있지만, 인터넷 상의 DNS 서버 중 DNS 동적 갱신을 지원하는 것은 아주 적다. 피어 컴퓨터는 피어 투 피어 네트워킹을 성공하기 위해, 기존의 DNS 기반 구조에 의존하지 않는다. 따라서, DNS에 의존하지 않고 피어 이름(peer name)을 그의 주소로 리졸빙하기 위해서는, PNRP(Peer Name Resolution Protocol, 피어 이름 레졸루션 프로토콜)이라고 하는 메카니즘 또는 P-GRID 등의 다른 피어 투 피어 이름 레졸루션 프로토콜이 사용될 수 있다.
피어 투 피어 이름 레졸루션 프로토콜 및 DNS 둘다 문제점이 있다. 예를 들어, DNS는 이름 공간이 변경될 때 관리 비용이 많이 들고, 피어 투 피어 이름 레졸루션 프로토콜은 피어 이름을 IP 주소, 프로토콜 명 및 포트 식별 번호(port identification)로 리졸빙하는 것으로 제한되어 있다. 보다 적은 관리 비용으로 향상된 결과를 제공하는 이름 레졸루션 및 이름 매핑 방법이 필요하다.
따라서, 본 발명은 피어 이름이 임의적인 데이터로 리졸빙될 수 있게 해주고 또 DNS에 대한 안전한 대안을 제공하는 룩업을 수행하는 방법을 제공한다. 본 방법은 또한 다중 이름 공간 루트(multiple namespace root)를 지원한다. 일 실시예에서, 룩업을 가능하게 해주는 본 방법은 먼저 이름 공간과 관련된 하나 이상의 암호키를 생성하는 단계를 제공한다. 이어서, 본 방법은 상기 암호키 중 하나를 사용하여 기관(authority)을 생성하는 단계를 제공한다. 그 다음에, 본 방법은 이름 공간의 이름이 상기 기관으로 리졸빙되도록 하나 이상의 이름 공간과 관련된 기관들에 피어 투 피어 유형 레졸루션을 발행하도록 요청함으로써 상기 하나 이상의 이름 공간이 상기 기관을 참조하는 것을 가능하게 해주는 단계를 제공한다. 그와의 통신이 요망되는 임의의 다른 이름 공간들에 대해, 본 방법은 나머지 기관들 중 하나 이상으로 리졸빙될 나머지 이름 공간들과 관련된 하나 이상의 이름들 및 상기 기관을 지명하는 레졸루션을 발행하는 단계를 제공한다. 본 방법은 IP 주소, 프로토콜 명 및 포트를 수신할 서비스 이름 및 상기 기관을 게시하는 것에 의해 서비스를 제공하는 단계도 제공한다.
일 실시예에 따른 다른 방법은 인터넷을 통해 서비스를 구현하는 것에 관한 것이다. 본 방법은 기관을 제공하기 위해 상기 서비스에 대한 하나 이상의 키를 생성하는 단계, 그 다음에 최상위 도메인의 관리자에게 상기 서비스로의 레졸루션을 게시하도록 요청하는 단계, 이어서 상기 기관을 상기 서비스의 서브그룹으로 위임하는 단계, 및 상기 인터넷을 통해 상기 서비스를 게시하는 단계를 포함한다. 상기 서비스를 게시하는 상기 단계는 상기 서비스에 대한 포트 번호, 프로토콜 명, 및 IP 주소를 식별해주는 레졸루션을 게시하는 단계를 포함한다.
또다른 실시예는 이름 레졸루션 서비스를 운영하는 방법에 관한 것으로서, 이 방법은 기관과 이름의 조합을 제2 기관으로 리졸빙하는 단계, 및 상기 제2 기관을 추가의 기관, 또는 임의적인 데이터, 포트, 프로토콜 명 또는 IP 주소 등의 최종 결과로 리졸빙하는 단계를 포함한다. 따라서, 이름 레졸루션은 위임된 기관의 IP 주소를 요구하는 것과는 독립적으로 위임된 기관의 계층적 또는 연쇄된 룩업을 포함한다.
본 발명의 부가의 특징 및 이점은 첨부 도면을 참조하여 기술된 예시적인 실시예에 대한 이하의 상세한 설명으로부터 명백하게 될 것이다.
첨부된 청구항들이 본 발명의 특징들을 상세히 기술하고 있지만, 본 발명은, 그의 목적 및 이점과 함께, 첨부 도면과 연계하여 기술된 이하의 상세한 설명으로부터 잘 이해될 수 있다.
유사한 참조 번호가 유사한 구성요소를 가리키고 있는 도면을 참조하면, 본 발명은 적당한 컴퓨팅 환경에서 구현되는 것으로 예시되어 있다. 꼭 그럴 필요는 없지만, 본 발명은 퍼스널 컴퓨터에 의해 실행되는, 프로그램 모듈 등의 컴퓨터 실행가능 명령어의 일반적인 측면에서 기술되어 있다. 일반적으로, 프로그램 모듈에는 특정의 작업을 수행하거나 특정의 추상 데이터 유형을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등이 포함된다. 게다가, 당업자라면 본 발명이 핸드헬드 장치, 멀티-프로세서 시스템, 마이크로프로세서 기반 또는 프로그램가능한 가전 제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 비롯한 다른 컴퓨터 시스템 구성에서 실시될 수 있음을 잘 알 것이다. 본 발명은 또한 작업들이 통신 네트워크를 통해 링크되어 있는 원격 프로세싱 장치에 의해 수행되는 분산 컴퓨팅 환경에서도 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 국부 및 원격 메모리 저장 장치 양쪽 모두에 위치할 수 있다.
도 1은 본 발명이 구현될 수 있는 적당한 컴퓨팅 시스템 환경(100)의 일례를 나타낸 것이다. 컴퓨팅 시스템 환경(100)은 적절한 컴퓨팅 환경의 일례에 불과한 것으로서 본 발명의 사용 또는 기능의 범위에 관한 어떤 제한을 암시하고자 하는 것이 아니다. 마찬가지로, 컴퓨팅 환경(100)이 전형적인 오퍼레이팅 환경(100)에 도시된 컴포넌트들 중의 임의의 하나 또는 그 조합에 관하여 어떤 종속성(dependency) 또는 요건(requirement)을 갖는 것으로 해석되어서도 안된다.
본 발명은 많은 다른 범용 또는 특수 목적 컴퓨팅 시스템 환경들 또는 구성들과 함께 동작될 수 있다. 본 발명과 함께 사용하기에 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경, 및/또는 구성의 예로는, 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드(hand-held) 또는 랩탑 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 시스템, 셋탑 박스(set top box), 프로그램가능한 가전제품(programmable consumer electronics), 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기의 시스템 또는 장치 중의 임의의 것을 포함하는 분산 컴퓨팅 환경 등이 포함될 수 있지만, 이에 한정되지 않는다.
본 발명은 컴퓨터에 의해 실행되는, 프로그램 모듈과 같은 컴퓨터 실행가능 명령어의 일반적인 측면을 바탕으로 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 작업을 수행하거나 특정의 추상 데이터 유형을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 본 발명은 또한 통신 네트워크를 통해 링크된 원격 프로세싱 장치에 의해 작업이 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 포함하는 국부 및 원격 컴퓨터 저장 매체 내에 위치할 수 있다.
도 1을 참조하면, 본 발명을 구현하기 위한 전형적인 시스템은 컴퓨터(110)의 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들로는, 프로세싱 유닛(120), 시스템 메모리(130), 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트를 프로세싱 유닛(120)에 연결시키는 시스템 버스(121)가 포함될 수 있지만, 이에 한정되는 것은 아니다. 시스템 버스(121)는 다양한 버스 아키텍처 중의 임의의 것을 사용하는 로컬 버스, 주변 버스, 및 메모리 버스 또는 메모리 컨트롤러를 포함하는 몇가지 유형의 버스 구조 중의 임의의 것일 수 있다. 예로서, 이러 한 아키텍처는 산업 표준 아키텍처(ISA) 버스, 마이크로 채널 아키텍처(MCA) 버스, 확장 ISA(Enhanced ISA; EISA) 버스, 비디오 일렉트로닉스 표준 어소시에이션(VESA) 로컬 버스, 및 메자닌(Mezzanine) 버스라고도 하는 주변 컴포넌트 상호접속(PCI) 버스를 포함하지만, 이에 한정되는 것은 아니다.
컴퓨터(110)는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(110)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있으며, 휘발성 및 비휘발성 매체, 분리형(removable) 및 비분리형(non-removable) 매체 둘다를 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만, 이에 한정되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광학 디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터(110)에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함할 수 있지만, 이에 한정되지 않는다. 통신 매체는 통상적으로 반송파 또는 기타 전송 메카니즘 등의 변조된 데이터 신호에 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하도록 그 신호의 특성 중 하나 이상이 설정되거나 변환된 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속 등의 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다. 상술한 것들 중의 임의의 것의 조합도 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
시스템 메모리(130)는 ROM(131) 및 RAM(132) 등의 휘발성 및/또는 비휘발성 메모리의 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에 컴퓨터(110) 내의 구성요소들 간에 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(133)(BIOS)은 일반적으로 ROM(131)에 저장된다. RAM(132)은 일반적으로 프로세싱 유닛(120)에 의해 즉시 액세스될 수 있는 및/또는 프로세싱 유닛(120)에 의해 현재 작동되고 있는, 프로그램 모듈 및/또는 데이터를 포함한다. 예로서, 도 1에는 오퍼레이팅 시스템(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)가 도시되어 있지만, 이에 한정되는 것은 아니다.
컴퓨터(110)는 또한 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체도 포함할 수 있다. 단지 예로서, 도 1에는 비분리형 비휘발성 자기 매체로부터 판독하거나 그 자기 매체에 기록하는 하드 디스크 드라이브(141), 분리형 비휘발성 자기 디스크(152)로부터 판독하거나 그 자기 디스크에 기록하는 자기 디스크 드라이브(151), 및 CD-ROM 또는 기타 광학 매체 등의 분리형 비휘발성 광학 디스크(156)로부터 판독하거나 그 광학 디스크에 기록하는 광학 디스크 드라이브(155)가 도시되어 있다. 전형적인 오퍼레이팅 환경에서 사용될 수 있는 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체는 자기 테이프 카세트, 플래쉬 메모리 카 드, DVD(Digital versatile disk), 디지털 비디오 테이프, 고체 상태 RAM, 고체 상태 ROM 등을 포함하지만 이에 한정되지 않는다. 하드 디스크 드라이브(141)는 일반적으로 인터페이스(140)와 같은 비분리형 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광학 디스크 드라이브(155)는 일반적으로 인터페이스(150)와 같은 분리형 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
앞서 기술되고 도 1에 도시된 드라이브 및 그 관련 컴퓨터 저장 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 및 컴퓨터(110)의 기타 데이터의 저장을 제공한다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 오퍼레이팅 시스템(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시되어 있다. 이들 컴포넌트는 오퍼레이팅 시스템(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일한 것이거나 그와 다른 것일 수 있음에 유의한다. 오퍼레이팅 시스템(144), 애플리케이션 프로그램(145), 다른 프로그램 모듈(146), 및 프로그램 데이터(147)는 최소한 이들이 서로 다른 복사본(different copies)임을 나타내기 위하여 다른 번호가 부여되어 있다. 사용자는 일반적으로 마우스, 트랙볼, 또는 터치 패드라 불리우는 포인팅 장치(161) 및 키보드(162), 마이크로폰(163), 태블릿 또는 전자 디지타이저(164)와 같은 입력 장치를 통해 컴퓨터(110)에 명령 및 정보를 입력할 수 있다. (도시되지 않은) 기타 입력 장치로는 조이스틱, 게임 패드, 위성 안테나, 스캐너 등이 있을 수 있다. 이들 입력 장치 및 그외의 입력 장치는 시스템 버스에 연결된 사용자 입력 인터페이스(160)를 통해 종종 프로세싱 유닛(120)에 접속되지만, 병렬 포트, 게임 포트 또는 유니버설 시리얼 버스(USB)와 같은 기타 인터페이스 및 버스 구조에 의해 접속될 수 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속되어 있다. 모니터(191)는 또한 터치-스크린 패널 등과 일체화될 수 있다. 모니터 및/또는 터치 스크린 패널은 태블릿 타입의 퍼스널 컴퓨터에서와 같이 컴퓨팅 장치(110)가 포함되어 있는 하우징에 물리적으로 결합될 수 있음에 유의해야 한다. 게다가, 컴퓨팅 장치(110) 등의 컴퓨터는 출력 주변 인터페이스(195) 등을 통해 접속될 수 있는 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치도 포함할 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용하여 네트워크화된 환경에서 운영될 수 있다. 비록 도 1에는 메모리 저장 장치(181)만이 도시되어 있지만, 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어(peer) 장치, 또는 기타 통상의 네트워크 노드일 수 있으며, 컴퓨터(110)에 관하여 상술한 구성요소 중 다수 또는 그 모두를 일반적으로 포함할 수 있다. 도 1에 도시된 논리적 접속은 근거리 통신망(LAN; 171) 및 원거리 통신망(WAN; 173)을 포함하지만, 그 외의 네트워크도 포함할 수 있다. 이러한 네트워킹 환경은 사무실, 기업 규모의 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다. 예를 들어, 본 발명에서, 컴퓨터 시스템(110)은 데이터의 출처가 되는 소스 머신(source machine)을 포함할 수 있으며, 원격 컴퓨터(180)는 목적지 머신(destination machine)을 포함할 수 있다. 그렇지만, 소스 및 목적지 머신은 네트워크 또는 임의의 다른 수단에 의해 연결될 필요가 없지만 그 대신에 소스 플랫폼에 의해 기록되고 목적지 플랫폼 또는 플랫폼들에 의해 판독될 수 있는 임의의 매체를 통해 데이터가 이동될 수 있다.
LAN 네트워킹 환경에서 사용되는 경우, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용되는 경우, 컴퓨터(110)는 일반적으로 인터넷 등의 WAN(173)을 통해 통신을 설정하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메카니즘을 통해 시스템 버스(121)에 접속될 수 있다. 네트워크화된 환경에서, 컴퓨터(110)에 관하여 도시된 프로그램 모듈 또는 그 일부분은 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 1에서는 원격 애플리케이션 프로그램(185)이 메모리 장치(181)에 존재하는 것으로 도시되어 있지만, 이에 한정되는 것은 아니다. 도시된 네트워크 접속은 전형적인 것이며, 컴퓨터들간의 통신 링크를 구축하는 그 외의 수단이 사용될 수 있음을 잘 알 것이다.
이하의 설명에서, 본 발명은 달리 언급하지 않는 한, 하나 이상의 컴퓨터에 의해 수행되는 동작의 심볼 표현 및 작용을 참조하여 기술될 것이다. 그 자체로서, 때때로 컴퓨터로 실행되는 것으로 말해지는 이러한 작용 및 동작은 데이터를 구조화된 형태로 표현하는 전기 신호를 컴퓨터의 프로세싱 유닛에 의해 처리하는 것을 포함함을 잘 알 것이다. 이러한 처리는 데이터를 변환하거나 그 데이터를 컴퓨터의 메모리 시스템 내의 장소에 저장하며, 이는 당업자라면 잘 알고 있는 방식으로 컴퓨터의 동작을 재구성하거나 또는 다른 방법으로 변경하게 된다. 데이터가 보관되어 있는 데이터 구조는 데이터의 포맷에 의해 정의된 특정의 속성을 갖는 메모리의 물리적 장소이다. 그렇지만, 본 발명이 상기의 관점에서 기술되고 있지만, 당업자라면 이후에 기술되는 여러가지 작용 및 동작이 하드웨어로도 구현될 수 있음을 잘 알 것이므로 그것은 한정을 위한 것이 아니다.
도 2를 참조하면, 블록도는 피어 투 피어 네트워킹 아키텍처(200)를 나타낸 것이다. 도시되어 있는 바와 같이, 아키텍처(200)는 Win32 API(application programming interface)(202), WinSock API(204), 및 암호 지원(cryptographic support)을 제공하는 API(206)에 연결될 수 있다. 아키텍처(200)는 그래프라고 하는 일련의 연결 노드(connected node)를 보관하는 일과 그 그래프를 거쳐 데이터의 플러딩(flooding) 및 복제를 제공하는 일을 맡고 있는 그래핑 컴포넌트(graphing component)(208)를 포함한다. 그래핑 컴포넌트(208)는 플러딩 및 동기화 컴포넌트(flood and synchronization component)(210), 저장 컴포넌트(store component)(212), 및 그래프 보관 컴포넌트(graph maintenance component)(214)를 사용한다.
아키텍처(200)는 그룹핑 컴포넌트(grouping component)(216)를 더 포함한다. 그룹핑 컴포넌트(216)는 그래프의 최상위에 디폴트로 제공되는 보안 계층으로서 구현될 수 있다. 보안 계층은 그룹 생성, 초대, 및 그 그룹으로의 연결을 바탕으로 한 보안 모델을 정의한다. 게다가, 그룹핑 컴포넌트(216)는 이름 레졸루션 프로토콜로서 PNRP를 이용하고 또 다수의 애플리케이션이 동일한 그래프를 공유할 수 있도록 구성될 수 있다. 그룹핑 컴포넌트(216)는 그룹 보안 서브컴포넌트(218) 및 그룹 보안 서비스 제공업체(security service provider, SSP) 서브컴포넌트(220)를 사용한다.
아키텍처(200)는 네임 서비스 제공업체(name service provider, NSP) 컴포넌트(222)를 더 포함한다. NSP 컴포넌트(222)는 임의의 네임 서비스 제공업체에 액세스하는 메카니즘을 제공한다. 따라서, 당업자라면 잘 알고 있는 바와 같이, 특정의 네임 서비스 제공업체에 대한 참조는 예시적인 것으로 이해되어야 한다. Windows
Figure 112004032050985-pat00001
피어 투 피어 네트워킹의 경우, 피어 투 피어 애플리케이션은 NSP 인터페이스를 사용하여 PNRP에 액세스한다.
아키텍처(200)는 피어 투 피어 이름 레졸루션을 제공하는 PNRP 컴포넌트(224), 및 피어 투 피어 식별자의 생성 및 관리를 제공하는 ID 관리자(identity manager)(226)를 더 포함한다.
도 2는 Microsoft TCP/IP 버전 6 프로토콜(228)을 포함하는 것으로 도시되어 있다. Microsoft TCP/IP 버전 6 프로토콜(IPv6)은 예시적인 것으로서, 그를 통해 Windows
Figure 112004032050985-pat00002
피어 투 피어 네트워킹이 동작하는 전송(transport)을 제공한다.
PNRP 컴포넌트(224)는 피어 이름이 IP 주소, 프로토콜 및 포트로 리졸빙될 수 있게 해주는 피어 투 피어 이름 레졸루션 프로토콜을 사용한다. 보다 구체적으로 설명하면, 피어들 사이에서 통신하기 위해, 각각의 피어는 상대방의 존재를 발 견하고 이름 또는 다른 유형의 식별자로부터 상대방의 네트워크 장소(주소, 프로토콜 및 포트)를 리졸빙할 수 있어야만 한다. 피어가 통신을 위해 상대방을 발견하고 상대방의 이름을 리졸빙하는 방법은 일시적인 연결 및 DNS에 주소 등록이 되어 있지 않음에 의해 복잡하게 된다.
P-Grid 및 PNRP 등의 피어 투 피어 네트워크 레졸루션 프로토콜은 이름 레졸루션을 위해 분산형이고 서버리스(serverless)인 이름 레졸루션 및 피어 발견 방식(name resolution and peer discovery scheme)을 제공한다. PNRP는 DNS처럼 클라우드 전체에 있는 컴퓨터들 상에 저장된 이름의 전체 리스트를 제공한다. DNS와는 달리, 이름 레졸루션을 제공하는 서버가 없다. 각각의 피어는 그 리스트의 일부를 자신의 캐시에 저장하고 또 다른 피어들을 참조할 수 있다. 이름을 리졸빙하기 위해 중앙 서버가 사용되지 않는다. 그렇지만, 초기화를 용이하게 해주는 씨드 노드 컴퓨터(seed node computer)가 있기 때문에, 엄격히 말하면 PNRP는 서버리스가 아니다.
PNRP는 DNS에서의 정식 도메인 이름(fully qualified domain name) 등의 이름을 사용하지 않고, 식별자를 사용하여 피어 엔티티(peer entity)를 식별한다. 식별자는 번호에 불과하며, 따라서 언어 및 상표 또는 저작권 문제와 관련이 없다. PNRP는 각각의 개별적인 피어 컴퓨터, 사용자, 그룹, 장치, 서비스 또는 다른 유형의 피어 노드가 그 자신의 피어 식별자를 가질 수 있게 해준다. 식별자의 리스트는 각각의 노드 상에 최소한의 자원을 요구하면서 이름 레졸루션을 수십억개의 식별자로 확장할 수 있게 해주는 멀티-레벨 캐시 및 참조 시스템(multi-level cache and referral system)을 사용하여 피어들 사이에 분산되어 있다.
PNRP는 이름 레졸루션 및 피어 발견을 위해 피어들 간에 메시지를 전송하는 데 사용되는 프로토콜이다. PNRP는 다중 클라우드를 사용하며, 이 경우 클라우드는 특정 범위의 주소를 사용하는 컴퓨터들의 그룹이다. 범위란 그 영역에 걸쳐 주소가 고유한 네트워크의 한 영역을 말한다. PNRP 클라우드는 IPv6 주소의 주소 범위에 기초를 두고 있다. 클라우드는 글로벌 IPv6 주소 범위에 대응하는 글로벌 클라우드(global cloud)를 포함할 수 있으며 IPv6 인터넷 전체 상의 모든 컴퓨터를 나타낸다. 단 하나의 글로벌 클라우드만이 있다. 사이트 특정 클라우드(site-specific cloud)는 사이트 IPv6 주소 범위와 사이트 로컬 주소(site-local address)에 대응한다. 사이트란 지리적 또는 토폴로지 경계를 정의하는 조직 네트워크(organization network)의 일부분을 말한다. 다수의 사이트 특정 클라우드가 있을 수 있다. 링크 로컬 클라우드(link-local cloud)는 링크 로컬 IPv6 주소 범위와 링크 로컬 주소에 대응한다. 링크 로컬 클라우드는 특정의 링크에 대한 것으로서, 일반적으로 로컬적으로 접속된 서브넷과 동일하다. 다수의 링크 로컬 클라우드가 있을 수 있다.
피어 이름 및 피어 투 피어 ID
피어 이름(peer name)은 IPv6 주소로 리졸빙하기를 원하는 컴퓨터, 사용자, 그룹, 서비스, 또는 그 밖의 것일 수 있는 통신의 엔드 포인트(endpoint)이다. 피어 이름은 무보안 이름 또는 보안 이름으로서 등록될 수 있다. 무보안 이름(unsecured name)은 누구라도 똑같은 무보안 이름을 등록할 수 있기 때문에 스푸핑 (spoofing)에 노출되어 있는 텍스트 문자열(text string)일 뿐이다. 무보안 이름은 사설 또는 다른 보안 네트워크에서 사용하는 것이 가장 좋다. 보안 이름(secured name)은 소유자에 의해서만 등록될 수 있으며 인증서 및 디지털 서명에 의해 보호된다.
PNRP 식별자는 길이가 256 비트일 수 있으며, 피어 투 피어 식별자라고 하는 일련의 상위 128 비트와, 엔드 포인트에 할당되는 피어 이름의 해쉬를 포함할 수 있다.
엔드 포인트의 피어 이름은 이하의 형식, 즉 Authority.Classifier의 형식을 갖는다. 보안 이름의 경우, Authority는 16진수 문자로 된 피어 이름의 공개키의 보안 해쉬 알고리즘(Security Hash Algorithm, SHA) 해쉬이다. 무보안 이름의 경우, Authority는 단일 문자 "0"이다. Authority는 일반적으로 base64 인코딩된 바이너리 데이터(base64-encoded binary data)이다. 따라서, Authority는 피어 이름을 안전하게 만드는 수단을 제공한다. 피어 이름의 게시자는 기관의 기초가 되는 공개키에 대응하는 비밀키의 소유권의 증명을 제공하도록 요구받을 수 있다. 구체적으로 말하면, PNRP로 게시된 데이터는 일반적으로 기관 비밀키(authority private key)를 사용하여 서명된다[(주소, 프로토콜 명, 포트 번호) 튜플의 구체적인 경우, 게시된 데이터는 인증된 피어 주소(certified peer address, CPA)라고 한다].
Classifier는 애플리케이션을 식별해주는 문자열로서 최대 150 문자 길이의 임의의 유니코드 문자열일 수 있다.
하위 128 비트는 서비스 장소를 위해 사용되는 것으로, 동일한 클라우드 내의 동일한 피어 투 피어 식별자의 서로 다른 인스턴스를 일의적으로 식별해주는 생성된 번호이다.
피어 투 피어 식별자와 서비스 장소의 256 비트 조합은 다수의 PNRP 식별자가 단일 컴퓨터로부터 등록될 수 있게 해준다.
각각의 클라우드에 있어서, 각각의 피어 노드(peer node)는 그 자신의 등록된 PNRP 식별자와 시간에 따라 캐싱된 엔트리 둘다를 포함하는 PNRP 식별자의 캐시를 관리한다. 클라우드 내의 모든 피어 노드 상에 위치한 PNRP 식별자 세트 전부는 분산된 해쉬 테이블을 포함한다. 게다가, 주어진 PNRP 식별자에 대한 엔트리는 다수의 피어 상에 위치될 수 있다. PNRP 캐시 내의 각각의 엔트리는 등록 노드의 IPv6 주소, CPA 및 PNRP 식별자를 포함하고 있다. CPA는 PNRP 식별자에 대한 인증 보호를 제공하는 자체 서명 인증서(self-signed certificate)로서, 애플리케이션 엔드 포인트 정보(주소, 프로토콜 번호, 및 포트 번호)를 포함한다.
따라서, 이름 레졸루션 프로세스는 PNRP 식별자를 CPA로 리졸빙하는 단계로 이루어져 있다. CPA가 획득된 후에, 원하는 엔드 포인트와의 통신이 시작될 수 있다. 따라서, PNRP는 다른 노드들이 피어 이름을 검색하고 데이터를 결정할 수 있도록 노드가 "<피어 이름> -> <데이터>" 연계(association)를 게시하는 방법을 제공한다.
이름 레졸루션
피어가 피어 이름을 그의 주소, 프로토콜, 및 포트 번호로 리졸빙하고자 하 는 경우, 그 피어는 피어 이름에 기초하여 피어 투 피어 식별자를 작성한다. 기술 분야에 몇가지 피어 투 피어 레졸루션 프로토콜이 있으며, 본 명세서에서의 논의는 예시적인 프로토콜로서 PNRP를 참조한다. 그렇지만, 당업자라면 이 개시 내용을 보고서 다른 레졸루션 프로토콜이 본 명세서의 실시예들을 활용할 수 있음을 잘 알 것이다.
피어는 피어 투 피어 식별자와 매칭하는 엔트리가 있는지 그 자신의 캐시 내의 엔트리들을 검사한다. 있는 경우, 피어는 PNRP 요청 메시지를 그 피어로 전송하고 응답을 기다린다. 이러한 동작은 통신할 상대방인 피어 노드가 클라우드 내에서 작동 중에 있는 것을 확인한다. 없는 경우, 피어는 PNRP 요청 메시지를, 리졸빙되고 있는 피어 투 피어 식별자와 가장 가깝게 매칭하는 피어 투 피어 식별자를 갖는 엔트리에 대응하는 피어로 전송한다. PNRP 요청 메시지를 수신하는 노드는 그 자신의 캐시를 검사한다. 있는 경우, 노드는 그 요청을 상기 의도한 노드로 포워딩하고 의도한 노드는 요청 경로를 통해 다시 응답을 보낸다. 없는 경우, 노드는 PNRP 요청 메시지를, 리졸빙되고 있는 피어 투 피어 식별자와 가장 가깝게 매칭하는 피어 투 피어 식별자를 갖는 엔트리에 대응하는 피어로 전송하고, 올바른 피어가 발견될 때까지 이를 계속한다. 보다 구체적으로 말하면, 피어는 식별자의 범위보다 10 이상 및 10 이하인 것을 비롯한 피어 투 피어 식별자의 범위를 알고 있으며, 이상의 설명 및 이하의 일례는 간명함을 위해 단순화되었다. 피어의 그래프를 통해 순회하는 데 요구되는 홉의 실제 수는 log(피어 투 피어 식별자의 번호 공간)이다.
이제 도 3을 참조하면, 일련의 피어 노드가 이름 레졸루션의 일례를 제공한 다. 피어 A(310)는 그 자신의 PNRP 식별자(200) 및 450 및 500의 PNRP 식별자에 대한 엔트리를 갖는다. 한 노드로부터 다른 노드로의 화살표는 화살표가 시작되는 노드가 그 자신의 캐시 내에, 화살표가 가리키고 있는 노드에 대한 엔트리를 가지고 있음을 의미한다.
이 예에서, 피어 A(310)는 800의 PNRP ID를 리졸빙하고자 하는 것으로 가정하자. 피어 A(310)는 PNRP 요청 메시지를, 800에 가장 가까운 PNRP ID를 갖는 노드, 즉 피어 C(320)에 의해 보유된 노드로 전송하게 되는데, 그 이유는 500이 숫자적으로 피어 A(310)에 의해 보유되어 있는 나머지 엔트리보다 800에 더 가깝기 때문이다. 도시한 바와 같이, 피어 C(320)는 800의 PNRP ID에 대한 엔트리를 가지고 있지 않으며 800에 보다 가까운 엔트리를 가지고 있지 않다. 피어 C(320)는 그러한 사정을 알려주는 응답을 피어 A로 다시 전송한다.
450이 800에 그 다음으로 숫자적으로 더 가까운 PNRP ID이기 때문에, 피어 A(310)는 PNRP 요청 메시지를 노드 피어 B(330)로 전송하는데, 그 이유는 피어 A(310)가 450의 PNRP ID를 등록하고 있기 때문이다. 피어 B(330)는 그 요청을, 800의 PNRP ID를 등록한 IP 주소, 즉 피어 E(340)로 포워딩한다. 비록 피어 B가 그의 캐시 내에 피어 E에 대한 엔트리를 가지고 있지만, 캐시 엔트리의 존재는 피어 E가 그 네트워크 상에서 현재 이용가능하다고 보장하지 않는다. 따라서, 피어 E(340)는 응답을 다시 피어 B(330)으로 전송한다. 이어서, 피어 B(330)는 응답을 다시 피어 A(310)로 전송한다. 350의 PNRP ID를 갖는 피어 D(350)는 이름 레졸루션 과정에 따라 어떤 메시지도 수신하지 않는다. PNRP 요청 메시지의 포워딩에서 루프를 방지하기 위해, 각각의 메시지는 그 요청을 이미 포워딩한 피어의 리스트를 가지고 있다. PNRP 요청 메시지가 포워딩되고 있는 동안, 그의 내용은 그 메시지를 포워딩하는 노드들의 캐시를 채워가는(populate) 데 사용된다. 응답이 반환 경로를 통해 다시 전송되고 있을 때, 그의 내용은 또한 노드 캐시를 채워가는 데 사용된다.
PNRP에서의 문제점은 피어와 통신하기 위해서는 기관이 그 피어에 대해 알고 있어야만 한다는 것이다. 기관은 피어가 통신하기를 원하는 상대방인 다른 피어들에게 그 기관을 전달할 필요가 없도록 하기 위해 그에 대한 레졸루션 프로토콜이 없는 큰 번호이다. 응답이 안전한 이유는 그 응답이 RSA 키와 연계되어 있고 안전한 것으로 입증될 수 있기 때문이다. PNRP는 또한 기관.이름(authority.name)이 IP 주소를 제공할 수 있는 것으로 규정하고 포트를 찾아내는 것으로 제한되어 있다.
상기 일례는 PNRP가 피어 노드에 대한 피어 이름을 어떻게 매핑하는지를 설명한 것이다. 본 명세서의 실시예들은 피어 이름을 임의의 데이터로 매핑하는 것을 지원하도록 PNRP를 일반화시키는 시스템 및 방법을 제공한다. 본 명세서에 기술된 실시예들은 도메인 네임 서비스(DNS)에 대한 안전한 대안을 제공하기 위해 PNRP 매핑 기능을 이용한다. DNS에서, 최상위 도메인(TLD)은 ICANN(The Internet Corporation for Assigned Names and Numbers)에 의해 관리된다. 인터넷의 DNS는 사용자가 인터넷 상의 각각의 컴퓨터에 할당되어 있는 모두 숫자로된 IP 주소(예를 들어, "192.0.34.65")보다는 기억하기 쉬운 도메인 이름을 사용하여 웹 사이트 및 다른 자원을 참조할 수 있게 해준다. 각각의 도메인 이름은 점(dot)으로 분리된 일련의 문자열("라벨"이라고 함)로 이루어져 있다. 도메인 이름에서 최우측 라벨은 그의 "최상위 도메인"(TLD)이라고 한다.
DNS는 트리와 같은 계층 구조를 형성한다. 각각의 TLD는 많은 제2 레벨 도메인("www.icann.org"에서 볼 수 있는 "ICANN" 등)을 포함하며, 각각의 제2 레벨 도메인은 다수의 제3 레벨 도메인("www.icann.org"에서의 "www")을 포함할 수 있고, 이하 마찬가지이다.
각각의 TLD를 운영하는 책임[TLD 내에 제2 레벨 도메인의 레지스트리(registry)를 유지하는 것을 포함함]은 특정의 조직에 위임되어 있다. 이들 조직은 "레지스트리 운영자(registry operator)", "스폰서(sponsor)", 또는 간단히 "피위임자(delegee)"라고 한다.
DNS는 .com, .info, .net, .gov 등에 대한 서비스를 비롯한 루트 이름 서비스(root name service)를 제공한다. 예를 들어, www.microsoft.com에 대한 요청은 먼저 "com"을 찾아내고, 그 요청은 "com"을 맡고 있는 몇개의 서버 중 하나로 포워딩된다. 이어서, 그 서버들은 "microsoft"와 관련된 주소를 검색한다. 이어서, microsoft.com을 맡고 있는 서버는 www.microsoft.com의 www 부분에 대한 주소를 제공한다. DNS에서의 문제점은 "microsoft.com" 공간에 당신 자신의 이름을 생성하는 것이 가능하지 않다는 것이다. 게다가, 이름을 변경하기 위해서는, 시스템 관리자가 그 주소를 실행시키고, 적시에 이루어지지 않는 몇개의 머신을 지나는 전파를 통해 서버에 알려주어야만 한다.
SPKI(Simple Public Key Infrastructure, 단순 공개키 기반 구조)는 내 키에대해 권위있게 대변해줄 수 있는 장치만이 키의 생성자인 것으로 규정하는 체계이다. 이것은 장치를 신뢰할 것인지 여부의 결정을 다른 장치에 위임한다. 예를 들어, 장치는 (내 이름, 내 공개 키)비밀키 (첨자는 이름과 키가 서명되어 있음을 알려줌)등의 키 쌍을 제공할 수 있다. 그 장치는 또한 상대방 장치의 알려진 키를 사용하여 인증서에 서명할 수 있다: (내 이름, 상대방 이름, 상대방 공개키, 내 공개키)내비밀키. 상대방 장치는 그 자신의 키에 대한 인증서를 발행할 수도 있다: (상대방 이름, 상대방 공개키)상대방비밀키. 따라서, 장치가 상대방 공개키를 검색하기를 원하고 이 장치가 그 키를 게시하는 장치를 신뢰하는 경우, 그 장치는 그 키의 소유자로부터 직접 그 키를 검색할 필요가 없다.
SPKI에서, 사용자가 키를 찾아내고자 하는 경우, 그 키를 갖는 다른 인증서에 질의를 하여, 신원을 증명하고 그 키의 소유자(이 키의 소유자에게도 질의를 할 수 있음)와 접촉하는 방법을 제공하도록 할 수 있다. SPKI는 일반적으로 공개키 및 이름을 제공하는 것이 키를 제공할 수 있는 것으로 규정하며, SPKI는 원하는 키를 찾아내기 위한 계층 구조를 허용한다.
본 개시의 목적상, 표기법 []는 기관(authority)을 표현하기 위해 사용되어진다. {}[auth]는 기관 비밀키로 서명하는 것을 나타내기 위해 사용되어진다. 본 명세서의 실시예들은 이름 및 기관이 IP 주소를 지정하지 않고 제2 기관을 생성 [([auth], 이름) -> (auth2)]할 수 있는 것으로 규정함으로써 다중 이름 공간 루트(multiple name space root)를 지원하는 네임 서비스에 관한 것이다. IP 주소가 요구되는 경우, 룩업의 결과는 IP 주소가 결과로서 제공될 때까지 다른 룩업을 위해 사용될 수 있다.
도 4를 참조하면, 흐름도는 일 실시예에 따른 방법을 나타낸 것이다. 블록 410은 머신 또는 이름 공간에 대한 키를 발생하는 동작을 제공한다. 키는 자체 서명 인증서(이들 중 일부는 X.509 인증서로서 포맷될 수 있음)를 사용하여 인증이 제공되도록 SPKI 유형 키일 수 있다. 블록 420은 기관 [A]을 생성하기 위해 상기 발생된 공개키를 해싱하는 동작을 제공한다. 공개키에 대한 임의의 입증가능한 충돌 회피 감축 변환이 사용되거나 또는 크기가 문제되지 않는 시스템에 대해서는 실제의 공개키가 사용될 수 있다.
블록 430은 이름 공간의 이름이 기관으로 리졸빙되도록 하나 이상의 이름 공간과 관련된 기관에 피어 투 피어 유형 레졸루션을 발행하도록 요청함으로써 하나 이상의 이름 공간이 기관을 참조할 수 있게 해주는 동작을 제공한다. 따라서, 기관으로의 통신 및 그에 대한 참조가 요망되는 이름 N1, N2,..., NN을 갖는 다른 이름 공간 S1, S2,...,SN이 있는 경우, 이름 N1, N2가 A(기관)로 리졸빙될 수 있도록 PNRP 등의 피어 투 피어 이름 레졸루션 프로토콜을 사용하여 그 이름 공간에 대한 기관들에게 ([S1].N1)->A, ([S2].N2)->A, ..., ([SN].NN)->A을 발행하도록 요청한다. 블록 440은, 그와의 통신이 요망되는 임의의 다른 기관에 대해, 그 기관 및 다른 기관과 관련된 이름을 지명하고 다른 기관을 제공하는 레졸루션을 발행하는 동작을 제공한다. 따라서, 그와의 통신이 요망되는 이름 공간 N1, N2,..., NN을 갖는 임의의 다른 기관 A1, A2,...,AN에 대해서, ([A].N1)->A1, ([A].N2)->A2,..., ([A].NN)->AN 로 레졸루션을 발행하는 동작을 제공한다. 블록 450은 제공되는 임의의 서비스에 대해, 기관 및 서비스 이름을 게시하고 IP 주소, 프로토콜 명 및 포트 중 하나 이상의 최종 결과를 반환하는 동작을 제공한다. 따라서, 제공되는 임의의 서비스에 대해, ([A].서비스이름)의 게시->(IP주소, 프로토콜 명, 포트)을 행한다.
서비스들도 원하는 바에 따라 임의적인 데이터를 제공하도록 리졸빙될 수 있다. 예를 들어, 컴퓨터는 본 명세서에 기술된 실시예들을 사용하여 서로 다른 물품 세트에 대한 재고목록을 추적할 수 있다. 일 실시예에 따르면, 물품들은 계층 구조의 이름 공간을 통해 찾아낼 수 있다. 일례에서, 최상위 회사를 갖는 계층 구조가 작성될 수 있다. 그 다음 레벨은 그 회사 내의 창고일 수 있다. 각각의 창고는 부품명(part name)을 식별해주는 레벨을 지원할 수 있다. 부품명 레벨은 재고목록 레벨(inventory level) 및 가격 레벨을 지원할 수 있다. 재고목록 레벨 및 가격 레벨 각각은 현재의 재고(stock on hand)를 식별하기 위해 리졸빙될 수 있다. 일 실시예에 따르면, 포트 이름, 프로토콜 및 IP 주소를 제공하는 대신에, 예를 들면 이용가능성에 관한 데이터를 제공하도록 질의가 최종 결과로 리졸빙되어진다. 일 실시예에서, 최종 결과는 어느 회사가 최저 가격을 제공하고 이용가능한 제품을 가지고 있는지에 대한 질의일 수 있으며, 이 경우 최종 결과는 발신측 회사일 수 있다.
일 실시예에서, IP 주소, 포트 및 프로토콜 명을 찾아내는 데 사용되는 기관은 피어 투 피어 네트워크 내의 캐시로부터 검색될 수 있다. 그렇지만, IP 주소, 포트 및 프로토콜 명이 캐시로부터 검색되는 경우, 도전(challenge)을 할 소유자에 도달하기 위해 추가의 레졸루션이 요구될 것이다.
일 실시예에 따른 방법에 의하면, 서비스는 기관 = 해쉬(서비스의 공개키) 등의 기관을 제공하도록 그 서비스에 대한 키를 발생할 수 있다. 그 다음에, 서비스는 ICANN.com에 대한 기관 또는 TLD의 다른 관리자가 게시([com], 서비스)->해쉬(서비스에 대한 공개키)을 행하도록 요청할 수 있다. 그 다음에, 본 방법에 따르면, 서비스는 기관을 서브그룹 등의 이름 공간에 위임한다, 즉 , ([서비스], 서브그룹)->해쉬(서브그룹의 공개키). 그 다음에, 본 방법은 웹 서비스를 게시하는 동작을 제공한다, 즉 ([서비스].www)->(IP주소, TCP, 80).
따라서, ICANN을 사용하여 본 발명을 구현하고 본 방법을 사용하여 도메인 네임 서비스를 제공하기 위해, ICANN은 공개키/비밀키 쌍을 가질 수 있으며 공개키를 사용하여 기관 [ICANN]을 도출할 수 있다. 이어서, ICANN은 TLD 각각의 관리자가 키 쌍 및 관련 기관([com], [edu], [org], 등)을 생성하도록 규정할 수 있다. 이어서, ICANN은 각각의 TLD에 대한 바인딩을 게시한다.
{[ICANN].com}->[com]}[ICANN]
{[ICANN].edu}->[edu]}[ICANN]
{[ICANN].org}->[org]}[ICANN]
다른 일례에서, Microsoft
Figure 112004032050985-pat00003
는 키 쌍을 생성하고 기관 [Microsoft]을 com 도메인의 관리자에게 제공한다. 이어서 그 관리자는 {[com].microsoft->[Microsoft]}[com]을 게시한다. Microsoft 관리자는 이어서 호스트 대신에 외부에서 볼 수 있는 Microsoft
Figure 112004032050985-pat00004
서비스에 대한 CPA를 게시할 수 있다, 즉 {[Microsoft].www->(주소, TCP, 80)}[Microsoft] . 따라서, 본 방법은 단지 주소만 제공하는 것이 아니라 포트 및 프로토콜 정보를 제공한다. 서비스로의 리졸빙을 가능하게 해줌으로써, 본 방법은 DNS 등의 호스트만으로 리졸빙하는 룩업 방법보다 유용하다. [ICANN]이 단지 하나의 가능한 루트 기관(root authority)이고 다른 것들은 용이하게 생성될 수 있음에 유의해야 한다. 서로 다른 주소 범위에서 동작하는 로컬 이름 공간이 설정될 수 있다.
제공된 방법은 DNS 유형 룩업에 비해 이점을 갖는다. 예를 들어, 본 방법은 DNS에 비해 향상된 보안을 제공하는 서명된 이름을 사용한다.
본 방법은 또한 PNRP 등의 일반적인 피어 투 피어 이름 레졸루션 프로토콜에 비해 이점을 갖는다. 앞서 기술한 바와 같이, PNRP는 글로벌 PNRP 클라우드를 통해 구현될 수 있다. 모든 게시자가 글로벌 PNRP 클라우드에 참여하고 있는 경우, 1차 네임 서버 레코드/2차 네임 서버 레코드(primary/secondary name server records)를 가질 필요가 없으며, 이들 변경 및 상위 레벨 도메인 관리자가 그의 구성을 갱신해야 하고 DNS 캐시에 대한 변경이 전파되어야만 하는 경우 부수적인 관 리 부담이 있게 된다. 본 명세서에 제공된 본 방법에 따라 수행되는 룩업은 관리자 임무의 경감을 가져다준다. "업스트림" 관리자(upstream administrator)가 레코드를 변경할 필요가 있는 유일한 때는 누군가가 새로운 키 쌍을 생성하고 이전의 기관을 퇴역시킬 때이며, 이는 심각한 보안 침해가 있는 경우에만 일어나야 한다.
게다가, 종래의 룩업 방법과는 달리, 새로운 기관을 생성하여 기관을 추가로 위임하는 것만으로 동적 주소가 간단히 지원될 수 있다. 예를 들어, Microsoft
Figure 112004032050985-pat00005
웹 서버가 동적 호스트 제어 프로토콜(DHCP)-할당 주소를 사용하는 경우, 그 서버는 키 쌍을 가질 수도 있다. 이 키 쌍은 그 서버가 기관 [www]을 생성할 수 있게 해주며, Microsoft
Figure 112004032050985-pat00006
관리자는 실제의 IP 주소를 갱신할 필요없이 {[Microsoft].www->[www]}[Microsoft]를 게시할 수 있다.
웹 서버가 새로운 주소를 할당받을 때마다, 그 웹 서버는 다음을 게시한다.
{[www].->(주소, TCP, 80)}[www]
따라서, 본 방법은 동적 DNS-유형 룩업을 제공하며, 이 때 각각의 호스트는 중앙 서버를 갱신할 필요없이 자유로이 상세를 갱신할 수 있다. 본 방법의 일 실시예에서, 동적 룩업의 결과 마지막 기관과 첫번째 기관이 동일한 순환형 기관 체인(cyclical chain of authorities)이 얻어질 수 있다. 예를 들어, 다른 서비스의 제1 벤더가 질의에 응답하여 기관을 제공할 수 있으며, 이 때 그 기관은 소정의 특성들을 갖는 벤더에 룩업을 제공하는 동작을 하는 서비스와 관련되어 있다. 제1 벤더가 소정의 특성들 중 하나 이상을 갖는 경우, 기관 반환은 질의에 응답하여 제 1 벤더에 대한 기관을 포함한다.
본 발명의 원리들이 적용될 수 있는 많은 가능한 실시예들을 살펴보면, 첨부 도면을 참조하여 본 명세서에 기술된 실시예는 단지 예시적인 것으로서 본 발명의 범위를 제한하는 것으로 보아서는 안된다는 것을 잘 알 것이다. 예를 들어, 당업자라면 소프트웨어로 도시된 예시된 실시예의 구성요소가 하드웨어로 구현될 수 있고 그 역도 마찬가지라는 것 또는 예시된 실시예가 본 발명의 사상을 벗어나지 않고 구성 및 상세에 있어서 수정될 수 있다는 것을 잘 알 것이다. 따라서, 본 명세서에 기술된 본 발명은 이하의 청구항 및 그의 균등물의 범위 내에 속할 수 있는 이러한 모든 실시예를 다 생각한 것이다.
본 발명은 위임된 기관의 IP 주소를 요구하는 것과 독립적으로 위임된 기관의 계층 구조적 또는 연쇄된 룩업을 통해 이름 레졸루션을 가능하게 해주는 방법 및 데이터 구조를 제공한다.

Claims (38)

  1. 연결된 장치들 간에 보안된 중앙화된 계층적 룩업(a secured, centralized hierarchical lookup)을 가능하게 해주는 피어 투 피어 유형 레졸루션(peer-to-peer type resolution)을 이용하는 방법에 있어서,
    제1 도메인의 제1 이름 공간과 관련된 하나 이상의 제1 암호키들을 생성하는 단계 - 상기 제1 도메인은 이름 공간들의 중앙화된 계층적 도메인들의 세트의 한 멤버임 - ,
    상기 하나 이상의 제1 암호키들 중 하나를 이용하여 제1 기관(authority)을 생성하는 단계,
    다음 상위 레벨 이름 공간과 관련된 하나 이상의 다음 암호키들을 생성하는 단계 - 상기 다음 상위 레벨 이름 공간은 상기 제1 이름 공간보다 상위 레벨의 도메인에 있으며, 상기 상위 레벨의 도메인은 상기 이름 공간들의 중앙화된 계층적 도메인들의 세트 중 다른 멤버임 - ,
    상기 하나 이상의 다음 암호키들 중 하나를 이용하여 다음 상위 레벨의 기관을 생성하는 단계, 및
    상기 피어 투 피어 유형 레졸루션을 이용하여, 상기 제1 이름 공간과 상기 다음 상위 레벨 이름 공간 간의 관련성(association)을 게시하는 단계 - 상기 관련성은 상기 제1 이름 공간의 고유 이름을 상기 제1 기관으로 리졸빙(resolving)하는 서명된 레졸루션을 포함하며, 상기 서명된 레졸루션은 상기 하나 이상의 다음 암호키들 중 상기 하나로 서명되고, 상기 고유 이름은 상기 다음 상위 레벨 기관과 상기 제1 이름 공간을 포함함 -
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 연결된 장치들은 피어 투 피어 네트워크 클라우드(cloud)의 일부인 방법.
  3. 제1항에 있어서, 상기 제1 이름 공간이 서비스를 포함하면, 제2 관련성을 게시하는 단계를 더 포함하며, 상기 제2 관련성은 상기 제1 기관을 데이터를 제공하는 최종 결과(end result)로 리졸빙하는 서명된 서비스 레졸루션을 포함하고, 상기 서명된 서비스 레졸루션은 상기 하나 이상의 제1 암호키들 중 상기 하나로 서명되는 방법.
  4. 제1항에 있어서, 상기 제1 이름 공간이 서비스를 포함하면, 제2 관련성을 게시하는 단계를 더 포함하며, 상기 제2 관련성은 상기 제1 기관을 IP 주소, 프로토콜 명, 및 포트로 리졸빙하는 서명된 서비스 레졸루션을 포함하고, 상기 서명된 서비스 레졸루션은 상기 하나 이상의 제1 암호키들 중 상기 하나로 서명되는 방법.
  5. 제1항에 있어서, 기관 위임을 통하여 초기 주소로부터 새로운 주소로의 상기 제1 이름 공간의 주소의 동적 변경을 지원하고, 상기 피어 투 피어 유형 레졸루션을 이용하여 상기 새로운 주소와 상기 제1 이름 공간 간의 새로운 관련성을 게시하는 단계를 더 포함하며, 상기 새로운 관련성은 상기 제1 기관을 상기 새로운 주소로 리졸빙하는 서명된 새로운 레졸루션을 포함하고, 상기 서명된 새로운 레졸루션은 상기 하나 이상의 제1 암호키들 중 상기 하나로 서명되는 방법.
  6. 제1항에 있어서, 상기 서명된 레졸루션은 상기 고유 이름을 호스트 및 서비스로 이루어진 그룹 중 하나로 리졸빙하는 방법.
  7. 제1항에 있어서, 상기 제1 기관을 생성하는 단계는 상기 하나 이상의 제1 암호키들 중 상기 하나의 제1 해쉬를 수행하는 단계를 포함하며, 상기 하나 이상의 제1 암호키들 중 상기 하나는 제1 비밀키-공개키 쌍으로부터의 제1 공개키이고,
    상기 다음 상위 레벨의 기관을 생성하는 단계는 상기 하나 이상의 다음 암호키들 중 상기 하나의 다음 해쉬를 수행하는 단계를 포함하며, 상기 하나 이상의 다음 암호키들 중 상기 하나는 다음 비밀키-공개키 쌍으로부터의 다음 공개키인 방법.
  8. 이름 레졸루션 프로토콜을 구현하기 위한 데이터 구조를 생성하는 방법에 있어서,
    제1 공개키와 관련된 제1 기관 컴포넌트를 포함하는 제1 필드를 생성하는 단계 - 상기 제1 공개키는 제1 비밀키-공개키 쌍의 일부이고 상기 제1 기관 컴포넌트는 제1 도메인의 제1 이름 공간에 대응하며, 상기 제1 도메인은 중앙화된 계층적 이름 공간들의 세트의 한 멤버임 - ,
    제2 이름 공간과 관련된 제2 이름 컴포넌트를 포함하는 제2 필드를 생성하는 단계 - 상기 제2 이름 공간은 제2 기관에 대응하고 상기 제2 이름 공간의 도메인은 상기 중앙화된 계층적 이름 공간들의 세트의 다른 멤버이고 상기 제1 이름 공간의 도메인보다는 하위의 레벨에 있으며, 상기 제1 기관 컴포넌트 및 상기 제2 이름 컴포넌트는 상기 제2 기관으로 리졸빙할 수 있음 - , 및
    상기 제1 기관 컴포넌트 및 상기 제2 이름 컴포넌트를 상기 제2 기관으로 리졸빙하는 레졸루션을 게시하기 위하여 상기 이름 레졸루션 프로토콜에 상기 생성된 데이터 구조를 제공하는 단계
    를 포함하는 방법.
  9. 제8항에 있어서, 상기 제2 이름 공간이 서비스이면, 상기 제2 기관을 상기 서비스의 포트 번호, 포트명, 및 IP 주소로 리졸빙하는 제2 레졸루션을 게시하기 위하여 상기 이름 레졸루션 프로토콜에 상기 제2 기관 컴포넌트를 제공하는 단계를 더 포함하는 방법.
  10. 제8항에 있어서, 상기 제1 이름 공간이 제1 호스트이면, 상기 제1 기관 컴포넌트 및 상기 제2 이름 컴포넌트는 상기 제2 기관에 대응하는 제2 호스트로 리졸빙할 수 있는 방법.
  11. 제8항에 있어서, 캐시로부터 IP 어드레스, 프로토콜 명, 및 포트 번호로 이루어진 그룹 중 하나 이상을 검색하는 단계를 더 포함하는 방법.
  12. 연결된 장치들 간에 보안된 중앙화된 계층적 룩업을 가능하게 해주는 피어 투 피어 유형 레졸루션을 이용하기 위한 단계들을 수행하기 위한 컴퓨터에 의해 실행 가능한 명령어의 프로그램을 유형으로(tangibly) 구현하는 컴퓨터 판독 가능 기록 매체에 있어서, 상기 단계들은,
    제1 도메인의 제1 이름 공간과 관련된 하나 이상의 제1 암호키들을 생성하는 단계 - 상기 제1 도메인은 이름 공간들의 중앙화된 계층적 도메인들의 세트의 한 멤버임 - ,
    상기 하나 이상의 제1 암호키들 중 하나를 이용하여 제1 기관(authority)을 생성하는 단계,
    다음 상위 레벨 이름 공간과 관련된 하나 이상의 다음 암호키들을 생성하는 단계 - 상기 다음 상위 레벨 이름 공간은 상기 제1 이름 공간보다 상위 레벨의 도메인에 있으며, 상기 상위 레벨의 도메인은 상기 이름 공간들의 중앙화된 계층적 도메인들의 세트 중 다른 멤버임 - ,
    상기 하나 이상의 다음 암호키들 중 하나를 이용하여 다음 상위 레벨의 기관을 생성하는 단계, 및
    상기 피어 투 피어 유형 레졸루션을 이용하여, 상기 제1 이름 공간과 상기 다음 상위 레벨 이름 공간 간의 관련성(association)을 게시하는 단계 - 상기 관련성은 상기 제1 이름 공간의 고유 이름을 상기 제1 기관으로 리졸빙하는 서명된 레졸루션을 포함하며, 상기 서명된 레졸루션은 상기 하나 이상의 다음 암호키들 중 상기 하나로 서명되고, 상기 고유 이름은 상기 다음 상위 레벨 기관과 상기 제1 이름 공간을 포함함 -
    를 포함하는 컴퓨터 판독 가능 기록 매체.
  13. 제12항에 있어서, 상기 연결된 장치들은 피어 투 피어 네트워크 클라우드(cloud)의 일부인 컴퓨터 판독 가능 기록 매체.
  14. 제12항에 있어서, 상기 단계들은 상기 제1 이름 공간이 서비스이면, 제2 관련성을 게시하는 단계를 더 포함하며, 상기 제2 관련성은 IP 주소, 프로토콜 명, 및 포트로 이루어진 그룹 중 하나 이상으로의 상기 제1 기관의 서명된 서비스 레졸루션을 포함하고, 상기 서명된 서비스 레졸루션은 상기 하나 이상의 제1 암호키들 중 상기 하나로 서명되는 컴퓨터 판독 가능 기록 매체.
  15. 제12항에 있어서, 상기 단계들은 기관 위임을 통하여 초기 주소로부터 새로운 주소로의 상기 제1 이름 공간의 주소의 동적 변경을 지원하고, 상기 피어 투 피어 유형 레졸루션을 이용하여 상기 새로운 주소와 상기 제1 이름 공간 간의 새로운 관련성을 게시하는 단계를 더 포함하며, 상기 새로운 관련성은 상기 제1 기관을 상기 새로운 주소로 리졸빙하는 서명된 새로운 레졸루션을 포함하고, 상기 서명된 새로운 레졸루션은 상기 하나 이상의 제1 암호키들 중 상기 하나로 서명되는 컴퓨터 판독 가능 기록 매체.
  16. 제12항에 있어서, 상기 서명된 레졸루션은 상기 고유 이름을 호스트 및 서비스로 이루어진 그룹 중 하나로 리졸빙하는 컴퓨터 판독 가능 기록 매체.
  17. 삭제
  18. 제12항에 있어서, 상기 제1 기관을 생성하는 단계는 상기 하나 이상의 제1 암호키들 중 상기 하나의 제1 해쉬를 수행하는 단계를 포함하며, 상기 하나 이상의 제1 암호키들 중 상기 하나는 제1 비밀키-공개키 쌍으로부터의 제1 공개키이고,
    상기 다음 상위 레벨의 기관을 생성하는 단계는 상기 하나 이상의 다음 암호키들 중 상기 하나의 다음 해쉬를 수행하는 단계를 포함하며, 상기 하나 이상의 다음 암호키들 중 상기 하나는 다음 비밀키-공개키 쌍으로부터의 다음 공개키인 컴퓨터 판독 가능 기록 매체.
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
KR1020040056365A 2003-07-21 2004-07-20 피어 투 피어 네트워크에서의 안전한 계층적 이름 공간 KR101085638B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/623,994 2003-07-21
US10/623,994 US7516482B2 (en) 2003-07-21 2003-07-21 Secure hierarchical namespaces in peer-to-peer networks

Publications (2)

Publication Number Publication Date
KR20050010717A KR20050010717A (ko) 2005-01-28
KR101085638B1 true KR101085638B1 (ko) 2011-11-22

Family

ID=33490863

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040056365A KR101085638B1 (ko) 2003-07-21 2004-07-20 피어 투 피어 네트워크에서의 안전한 계층적 이름 공간

Country Status (5)

Country Link
US (1) US7516482B2 (ko)
EP (1) EP1501252A3 (ko)
JP (1) JP4698180B2 (ko)
KR (1) KR101085638B1 (ko)
CN (1) CN100586072C (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100642935B1 (ko) * 2005-05-06 2006-11-10 (주)아이디스 네임 서비스 시스템 및 방법
JP2006319909A (ja) * 2005-05-16 2006-11-24 Konica Minolta Holdings Inc データ通信の方法、ピアツーピア型のネットワーク、および情報処理装置
US20070005658A1 (en) * 2005-07-02 2007-01-04 International Business Machines Corporation System, service, and method for automatically discovering universal data objects
US7987368B2 (en) 2005-10-28 2011-07-26 Microsoft Corporation Peer-to-peer networks with protections
US7788484B2 (en) * 2005-11-30 2010-08-31 Microsoft Corporation Using hierarchical identity based cryptography for authenticating outbound mail
JP4876209B2 (ja) * 2006-03-14 2012-02-15 株式会社日本レジストリサービス 識別子認証システム
JP4876210B2 (ja) * 2006-03-14 2012-02-15 株式会社日本レジストリサービス 識別子認証システム
US7770188B2 (en) * 2006-04-20 2010-08-03 Microsoft Corporation Winsock APIs
US7711853B2 (en) * 2006-07-14 2010-05-04 Microsoft Corporation Resolving names to network endpoints
US8693392B2 (en) * 2007-02-21 2014-04-08 Avaya Canada Corp. Peer-to-peer communication system and method
US8528058B2 (en) * 2007-05-31 2013-09-03 Microsoft Corporation Native use of web service protocols and claims in server authentication
CN101388898B (zh) * 2007-09-11 2011-11-02 华为技术有限公司 对等网络平台的架构
US8769285B2 (en) * 2009-08-13 2014-07-01 Qualcomm Incorporated Methods and apparatus for deriving, communicating and/or verifying ownership of expressions
US20120246609A1 (en) 2011-03-24 2012-09-27 International Business Machines Corporation Automatic generation of user stories for software products via a product content space
US9087155B2 (en) 2013-01-15 2015-07-21 International Business Machines Corporation Automated data collection, computation and reporting of content space coverage metrics for software products
US9141379B2 (en) 2013-01-15 2015-09-22 International Business Machines Corporation Automated code coverage measurement and tracking per user story and requirement
US9659053B2 (en) 2013-01-15 2017-05-23 International Business Machines Corporation Graphical user interface streamlining implementing a content space
US9075544B2 (en) 2013-01-15 2015-07-07 International Business Machines Corporation Integration and user story generation and requirements management
US9069647B2 (en) 2013-01-15 2015-06-30 International Business Machines Corporation Logging and profiling content space data and coverage metric self-reporting
US9081645B2 (en) 2013-01-15 2015-07-14 International Business Machines Corporation Software product licensing based on a content space
US9063809B2 (en) * 2013-01-15 2015-06-23 International Business Machines Corporation Content space environment representation
US9218161B2 (en) 2013-01-15 2015-12-22 International Business Machines Corporation Embedding a software content space for run-time implementation
US9396342B2 (en) 2013-01-15 2016-07-19 International Business Machines Corporation Role based authorization based on product content space
US9111040B2 (en) 2013-01-15 2015-08-18 International Business Machines Corporation Integration of a software content space with test planning and test case generation
KR101457654B1 (ko) * 2014-01-22 2014-11-07 주식회사 오비고 웨비노스 플랫폼에서 선택적으로 서비스를 제공하는 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
US9894041B2 (en) * 2015-09-25 2018-02-13 Microsoft Technology Licensing, Llc Secure domain name resolution in computer networks
CN107342964B (zh) 2016-04-28 2019-05-07 华为技术有限公司 一种报文解析方法及设备
US10735369B2 (en) * 2018-06-22 2020-08-04 Microsoft Technology Licensing, Llc Hierarchical namespace service with distributed name resolution caching and synchronization
US11010478B2 (en) * 2019-05-06 2021-05-18 Dell Products L.P. Method and system for management of secure boot certificates
US11855831B1 (en) 2022-06-10 2023-12-26 T-Mobile Usa, Inc. Enabling an operator to resolve an issue associated with a 5G wireless telecommunication network using AR glasses

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1248441A2 (en) 2001-04-02 2002-10-09 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith
EP1253766A2 (en) 2001-04-24 2002-10-30 Sun Microsystems, Inc. Peer group name server
US20030056094A1 (en) 2001-09-19 2003-03-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) security infrastructure and method
US20030070070A1 (en) 2001-07-31 2003-04-10 Yeager William J. Trust spectrum for certificate distribution in distributed peer-to-peer networks

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381627B1 (en) 1998-09-21 2002-04-30 Microsoft Corporation Method and computer readable medium for discovering master DNS server computers for a given domain name in multiple master and multiple namespace configurations
EP1220173A1 (en) 2000-12-29 2002-07-03 THOMSON multimedia System and method for the secure distribution of digital content in a sharing network
DE10143754A1 (de) 2001-09-06 2003-04-03 Siemens Ag Skalierbares Peer-to-Peer-Netzwerk mit einem Verzeichnisdienst
US7068789B2 (en) 2001-09-19 2006-06-27 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) group security infrastructure and method
US7051102B2 (en) 2002-04-29 2006-05-23 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) security infrastructure and method
US7200862B2 (en) 2002-09-30 2007-04-03 Microsoft Corporation Securing uniform resource identifier namespaces

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1248441A2 (en) 2001-04-02 2002-10-09 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith
EP1253766A2 (en) 2001-04-24 2002-10-30 Sun Microsystems, Inc. Peer group name server
US20030070070A1 (en) 2001-07-31 2003-04-10 Yeager William J. Trust spectrum for certificate distribution in distributed peer-to-peer networks
US20030056094A1 (en) 2001-09-19 2003-03-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) security infrastructure and method

Also Published As

Publication number Publication date
EP1501252A2 (en) 2005-01-26
KR20050010717A (ko) 2005-01-28
EP1501252A3 (en) 2005-04-13
CN1578230A (zh) 2005-02-09
US7516482B2 (en) 2009-04-07
CN100586072C (zh) 2010-01-27
US20050039045A1 (en) 2005-02-17
JP4698180B2 (ja) 2011-06-08
JP2005056407A (ja) 2005-03-03

Similar Documents

Publication Publication Date Title
KR101085638B1 (ko) 피어 투 피어 네트워크에서의 안전한 계층적 이름 공간
Afanasyev et al. NDNS: A DNS-like name service for NDN
Mahadevan et al. CCN-krs: A key resolution service for ccn
US7228417B2 (en) Simple secure login with multiple-authentication providers
US8681995B2 (en) Supporting DNS security in a multi-master environment
EP2518970B1 (en) Dnssec inline signing
US9258293B1 (en) Safe and secure access to dynamic domain name systems
US11824829B2 (en) Methods and systems for domain name data networking
US20170279617A1 (en) Dns provider configuring a registry dnssec record
US20080260160A1 (en) Opt-in process and nameserver system for IETF DNSSEC
US11533161B1 (en) DNS-based public key infrastructure for digital object architectures
Evdokimov et al. Multipolarity for the object naming service
Göndör et al. Distributed and domain-independent identity management for user profiles in the SONIC Online Social Network Federation
Allman Personal Namespaces.
Vettorello et al. Some notes on security in the service location protocol version 2 (slpv2)
JP2004159159A (ja) 名前解決方法、名前解決システム、名前解決ディレクトリ、通信端末装置、プログラム及び記録媒体
Liu et al. A TLV-structured data naming scheme for content-oriented networking
Matsumoto et al. Designing a global authentication infrastructure
Snigdha A Framework for Security of DNS Using Cryptography
Schanzenbach et al. RFC 9498 The GNU Name System
JP2012199607A (ja) Dnssec代理装置
Overeinder et al. Design of a secure and decentralized location service for agent platforms
Chetioui et al. Cryptographic Encapsulation in the New ENC-DNSSEC Protocol
Shahane et al. A Modified Approach for the Domain Name System Security
HERBERT The people who can destroy a thing, they control it Dune

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
LAPS Lapse due to unpaid annual fee