KR20070092196A - 보안 텔레통신과 관련된 개량 - Google Patents

보안 텔레통신과 관련된 개량 Download PDF

Info

Publication number
KR20070092196A
KR20070092196A KR1020077002255A KR20077002255A KR20070092196A KR 20070092196 A KR20070092196 A KR 20070092196A KR 1020077002255 A KR1020077002255 A KR 1020077002255A KR 20077002255 A KR20077002255 A KR 20077002255A KR 20070092196 A KR20070092196 A KR 20070092196A
Authority
KR
South Korea
Prior art keywords
server
communication
peer
computer
user
Prior art date
Application number
KR1020077002255A
Other languages
English (en)
Inventor
제프레이 모리스
에릭 풋
로버트 바
라날드 와버튼
Original Assignee
암테우스 시큐어 커뮤니케이션즈 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 암테우스 시큐어 커뮤니케이션즈 리미티드 filed Critical 암테우스 시큐어 커뮤니케이션즈 리미티드
Publication of KR20070092196A publication Critical patent/KR20070092196A/ko

Links

Images

Classifications

    • 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
    • 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
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
    • 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/4541Directories for service discovery
    • 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/4552Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
    • 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/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/54Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

데이터 통신 매체를 통해 제1 원격지 컴퓨터와 제2 원격지 컴퓨터 사이에서 이메일과 같은 보안 피어-투-피어 데이터 통신을 수행하는 방법이 기술된다. 상기 방법은 각각의 원격지 컴퓨터의 어드레스 상세 및 데이터 통신 매체로의 현재 접속 상태를 수신하는 단계; 상기 제1 원격지 컴퓨터에서 데이터 통신을 생성하는 단계; 상기 제2 원격지 컴퓨터의 현재 접속 상태를 체크하는 단계; 및 데이터 통신 중에 어떠한 저장 없이 상기 제2 원격지 컴퓨터의 접속 상태가 현재 데이터 통신 매체에 접속되어 있음을 표시하는 경우에만 상기 제1 원격지 컴퓨터로부터 상기 제2 원격지 컴퓨터로 직접 데이터 통신을 전송하는 단계를 포함한다.

Description

보안 텔레통신과 관련된 개량{IMPROVEMENTS RELATING TO SECURE TELECOMMUNICATIONS}
본 발명은 보안 텔레통신과 관련된 개량과 관련되어 있고, 좀더 자세히 보면, 독점적인 것은 아닐지라도, IP를 통한 보이스(Voice over IP) 뿐만아니라 안전한 피어-투-피어 이메일 및 데이터 통신과 관련된다. 본 발명의 다른 측면은 네트워트 어드레스 전송자(NATs)가 통신 네트워크를 보호하고 그것의 IP 어드레스 범위를 증폭하는데 제공되는 경우에 직접적 피어-투-피어 통신을 지지하는 방법과 관련되어 있다. 본 발명은 또한 그러한 통신 시스템을 사용하는 네트워크와 통신 시스템내 매우 높은 레벨의 보안을 수행하는데 확장된다.
간접적인 통신이 요구되는 경우 통신 네트워크를 통해 메시지를 전송하는 다른 많은 방법이 있다. 그러나 해커가 읽기에 유용한 저장된 메시지의 카피를 가져 본질적으로 불안정하다는 점에 있어, 이러한 형태의 메시지와 관련된 본질적인 문제가 있다. WO 03/014955 Al에 기술된 이러한 몇몇의 문제는 피어-투-피어 통신의 사용에 의해 어드레스 된다. 그러나 제안된 해법을 가지고 이전에 사용된 주요 이슈는 그러한 통신을 셋업하는 것의 복잡함에 대한 것이다. 이러한 이전의 기술 문서에 의해 제공된 상기 해법은 그것은 여전히 통신을 용이하게 하는 중심 서버의 작용을 요구하고 있다는 점에서, 본질적으로 불안정하고 성가신 일이다. 이것은 전체의 프로세스를 힘들게 하고 보안 남용에 오픈되게 한다.
암호화 기술은 통신 프로세스 동안 저장된 이메일의 보안을 개량하는 것으로 알려져 있다. 그러나, 그렇게 정교한 해킹 기술을 가진 경우 완벽하게 보안성을 가진 암호화 기술은 없어서, 이것 자체만으로는 실행 가능한 대체물이 되지는 않는다.
NATs는 다수의 컴퓨터가 인터넷 접속과 같은 통신을 위해 어드레스 공간을 공유하게 하는데 사용되는 장치이다. NATs는 그러한 통신이 일반 PC 사용자의 능력을 훨씬 뛰어넘는 복잡한 셋업이 없이 NAT 뒤에서 일반적으로 작동하지 않는다는 점에서 피어-투-피어 통신을 수행하는데 불리하다. 상기 문제는 US 2004/0064584 Al에 기술된 피어-투-피어 통신의 문맥내 NATs와 관련되어 있다.
상술된 시스템상에 개량이 요구되고, 더욱이 더욱 보안 시스템에 대한 요구가 있다. 관리하기 더 쉽고 사용자가 사용하기에 더욱 간단한 시스템을 제공하는 것이 또한 요구된다. 특히, 피어-투-피어 통신 동안 노드에 메시지의 순간적인 저장을 포함하는 피어-투-피어 통신을 쉽게 하기 위해 사용자가 중심 서버에 로그온할 필요가 없는 통신 시스템이 요구된다. 따라서, '순수한' 피어-투-피어 통신 시스템이 이상적으로 필요하다.
본 발명의 일 측면은 가장 좋은 보안 피어-투-피어 이메일 통신이 불안정한 환경즉 소스 또는 목적지가 아니라 통신 루트상에 어떠한 지역에서 메시지의 저장을 필요로 하지 않는 것을 인정하는데 있다. 이러한 방법으로, 해커가 이메일이 전송되는 도중에 이메일을 읽을 경우는 매우 적게된다. PKI(Public Key Infrastructure)를 사용하여 전송도중의 이메일을 암호화함으로써, 전송 도중의 해킹의 위험을 최소화할 수 있다.
또한 본 발명의 일측면에 따라, 데이터 통신 매체를 통해 제1 원격지 컴퓨터와 제2 원격지 컴퓨터 사이에서 이메일 통신과 같은 보안 피어-투-피어 데이터 통신을 수행하는 방법으로서, 각각의 원격지 컴퓨터의 어드레스 상세 및 데이터 통신 매체로의 현재 접속 상태를 수신하는 단계; 상기 제1 원격지 컴퓨터에서 데이터 통신을 생성하는 단계; 상기 제2 원격지 컴퓨터의 현재 접속 상태를 체크하는 단계; 및 상기 제2 원격지 컴퓨터의 접속 상태가 현재 데이터 통신 매체에 접속되어 있음을 표시하는 경우에만, 데이터 통신 중에 어떠한 저장도 없이 상기 제1 원격지 컴퓨터로부터 상기 제2 원격지 컴퓨터로 직접 데이터 통신을 송신하는 단계를 포함하는 통신 방법이 존재한다.
'저장'이라는 용어는 완전한 메시지의 저장을 참고하여 여기서 사용된다고 인식된다. 그러한 저장은 인증되지 않은 제3 지(party)가 불법적으로 완벽한 메시지의 카피를 얻는 것을 제공할 수 있다. 통신 프로토콜은 종종 메시지 부분-예를 들면 패킷 단위로 쪼개진 것-의 임시 저장을 포함한다. 제3 지가 전송중인 메시지의 완벽한 카피를 얻는 것을 허용하지 않기 때문에 그러한 임시적이고 부분적인 메시지 부분의 저장은 본 발명의 본 측면에서 허용된다.
그리하여, 본 발명은 소스로부터 목적지 도중에 완벽한 데이터 메시지의 불안정한 저장이 없다는 면에서 이전의 기술보다 중대한 개량을 제공한다. 또한,
목적지가 온라인이 아니라할지라도, 피어-투-피어 통신 채널이 목적지로 설정되는 때까지 메시지는 항상 안전하게 일시적으로 소스에 저장되며, 그리하여 데이터 메시지의 불안정한 저장이 도중에 요구되지 않는다.
본 발명은 사용자명 및 그의 IP 어드레스의 중심 저장소가 있는 시스템내 구현된다. 그러나 중심 저장소는 실제 피어-투-피어 통신 자체에서는 사용되지 않고, 송신인 위치에서 제공되는 통신 수단을 업데이트하는데 제공된다. 사용자는 중심 저장소에 등록하며 그들의 특별한 IP 어드레스를 위해 이름이 할당된다. 상기 등록된 사용자는 피어-투-피어 통신을 쉽게 하기 위해 그들의 컴퓨터에 개인 통신 서버를 다운받아 설치한다. 등록된 사용자가 온라인-그들의 개인적 통신 서버를 사용함으로써 결정되는 때-이 되는 경우마다, 중심 저장소는 통지되고 사용자의 상태는 오프라인에서 온라인으로 변화될 수 있다. 이러한 상태의 변화는 또한 푸시 메커니즘을 통해 모든 다른 사용자에게 전해질 수 있어서, 수신인 및 송신인이 이러한 때에 통신을 송/수신할 수 있어야 한다는 것을 알게 됨으로써 현존하는 온라인 사용자 및 막 접속한 사용자간에 수행되는 것이 필요한 피어-투-피어 통신은 안정적으로 행해질 수 있다.
또한, 상기 시스템은 클라이언트 개인 컴퓨터내 상주하여 메시지 기능을 제어하는 다운로드된 소프트웨어 구성요소를 가진다. 이것은 이후 자세히 기술될 것이지만, 이메일 메시지 실시예를 위해 사용자가 어떤 중심서버에 접속 또는 실제로 사용자 상호작용을 요구되지 않고 모든 데이터 메시지를 송수신하는 것을 다루는 Microsoft OutlookTM과 같은 지역 이메일 클라이언트와 공동 작업하는 이메일 서버를 포함한다. 다른말로 하면, 클라이언트의 개인 컴퓨터는 희망하는 피어-투-피어 통신을 제어할 수 있고 프로세스는 사용자의 관점에서 매우 쉽게 된다.
본 발명의 또다른 이점은, 특히 이메일 메시지와 관련하여, 스팸 이메일 수신을 방지하는 능력을 포함한다. 이메일 어드레스가 중심 데이터베이스에 의해 모든 자격이 주어는 경우, 스팸의 소스는 즉시 금지될 수 있다. 또한, 수신인의 어드레스는 종전의 이메일 어드레스와 다르게 본 발명에서 유용하지 않다.
사용자가 즉시 전화 대화가 유용한 사람을 통지 -즉 전화를 하고 싶어하는 사람에게 이러한 정보가 제공되는 때에 온라인이라는- 받을 수 있기 때문에, VoIP는 비교적 쉽게 제공될 수 있다. VoIP 접속이 인터넷을 통하는 경우, 전화는 무료이다. 그리하여 사용자에 의해 지불되는 기준 인터넷 요금 외에 추가적인 비용없이 원거리 및 근거리 전화가 가능하다.
본 발명은 사용자가 기밀의 비지니스 및 개인적인 정보를 몰래 송신 및 수신할 수 있게 한다. 또한 만약 본 발명이 종래의 이메일과 함께 사용된다면, 과실, 재난, 물리적 또는 사이버적 공격의 경우 서비스의 연속성을 제공하기 위해 본 발명은 종래의 이메일 서버에 백업 시스템을 제공한다.
본 발명은 ISPs와 같은 제3지가 더 이상 수신된 이메일로부터 광고 또는 다른 목적을 위해 수신인 및 그들의 비지니스에 대한 개인정보를 수집할 수 없음을 의미한다. 또한, 고가의 이메일 서버와 같은 추가적인 장비는 필요 없으며 기술 지원의 비용 또한 이전되어 비용을 상당히 감소시킬 수 있다.
본 발명은 방화벽을 통해 작동할 수 있고 추가적인 구성을 요구하지 않는다. 본 발명은 Microsoft OulookTM 및 Novell GroupwiseTM와 같은 존재하는 이메일 어플리케이션을 손상없이 통합할 수 있다.
IP 어드레스를 가진 피어-투-피어 통신은 상기 IP 어드레스가 수신인의 실제 IP 어드레스인 경우 상대적으로 쉽다. 그러나, NAT가 채용되는 경우, 송신인이 유일하게 수신인을 확인할 수 없고 NAT가 방화벽으로서 가능한 보안기능이 있기 때문에, 피어-투-피어 통신은 더욱 어렵게 된다. 본 발명의 다른 측면이 이러한 특별한 이슈와 연결된다(이후 기술됨).
본 발명의 본 측면은 또한 데이터 통신 네트워크를 통해 서버를 포함하는 제1 원격지 컴퓨터와 제2 원격지 컴퓨터 사이에서 이메일 통신과 같은 보안 피어-투-피어 데이터 통신을 수행하는 통신 서버로서, 각각의 원격지 컴퓨터의 어드레스 상세 및 데이터 통신 네트워크로의 현재 접속 상태를 수신하는 수신 수단; 상기 제1 원격지 컴퓨터에서 데이터 통신을 생성하는 메시지 생성 모듈; 상기 제2 원격지 컴퓨터의 현재 접속 상태를 체크하는 체크 모듈; 및 데이터 통신 중에 어떠한 저장 없이 상기 제2 원격지 컴퓨터의 접속 상태가 현재 데이터 통신 네트워크에 접속되어 있음을 표시하는 경우에만, 상기 제1 원격지 컴퓨터로부터 상기 제2 원격지 컴퓨터로 직접 데이터 통신을 전송하는 전송 모듈을 포함하는 통신 서버를 제공한다.
본 발명의 본 측면은 또한 통신 시스템에 있어서, 청구항 14항에 따른 복수개의 통신 서버; 및 데이터 통신 네트워크에 의해 복수개의 통신 서버에 접속 가능한 데이터 서버를 포함하고, 상기 데이터 서버는 상기 통신 서버 각각의 상기 데이터 네트워크로의 현재 접속 상태를 각각의 통신 서버의 현재 네트워크 어드레스와 함께 수신, 대조 및 저장하고, 이 정보 중 적어도 일부를 복수개의 통신 서버에 포워드하여 복수개의 통신 서버 개체들 사이에서 피어-투-피어 통신이 가능하도록 동작시키는, 통신 시스템으로 확장된다.
본 발명의 제2 측면에 따라, 데이터 통신 네트워크를 통해 제1 및 제2 사용자 컴퓨터 사이에서 이메일 통신과 같은 보안 피어-투-피어 데이터 통신을 설정하는 데 기여하는 통신 서버로서, 상기 서버는 복수개의 통신 서버로 구성된 서버 네트워크 내의 부여된 계층 레벨에서 제공되며, 상기 서버는: 상기 통신 서버가 상기 서버 네트워크 내의 다른 계층 레벨에 있는 다른 통신 서버에 동작 접속할 수 있도록 하는 접속 수단; 복수 개의 지역 사용자 컴퓨터를 통신 서버에 등록하는 등록 수단; 및 등록된 지역 사용자 컴퓨터 각각의 등록 상세를 저장하는 데이터 저장 수단 - 상기 등록 상세는 각각의 지역 사용자 컴퓨터의 어드레스 정보 및 상기 데이터 통신 네트워크로의 현재 접속 상태를 포함함 - 을 포함하며, 상기 접속 수단은 상기 서버 네트워크의 다음 상위 계층 레벨의 인접 통신 서버에 상기 저장된 등록 상세를 포워딩하고, 계층적 네트워크의 하위 레벨에서의 접속된 통신 서버에 대한 임의의 지역 사용자 컴퓨터의 등록 상세를 수신 및 저장하는, 통신 서버가 제공된다.
전송 서버의 계층적 네트워크의 사용은 아주 유용한데, 계층적 네트워크의 사용이 메시지 네트워크를 더욱 효과적으로 작동하게 하기 때문이다. 특히, 메시지 트래픽에 큰 크기와 페이로드가 통신 네트워크 상에 요구되는 경우, 통신 매체내 계층적 구조의 사용은 다전체 통신 시스템에 과도한 부담을 주지 않고 수의 트래픽이 지역적으로 다루어지는 것이 가능하게 한다. VoIP 메시지 트래픽은 높은 페이로드를 가질 수 있고 다수의 유용한 대역폭을 사용할 수 있다. 계층적 구조 및 어드레스 세부의 분배된 기록의 사용은 통신 네트워크의 특별한 부분에 트래픽을 국한시켜, 네트워크의 다른 부분의 수행 특성에 영향을 주지 않는다. 대부분의 VoIP 호출이 지형적으로 지역 소스 및 목적지 사이에 있는 경우, 이것이 VoIP 통신의 주된 실행 이점이다.
본 발명의 제2 측면은 데이터 통신 네트워크를 통해 제1 및 제2 사용자 컴퓨터 사이에서 이메일 통신과 같은 보안 피어-투-피어 데이터 통신의 설정에 기여하는 방법으로서, 상기 방법은 복수개의 통신 서버로 구성된 서버 네트워크 내의 부여된 계층 레벨의 통신 서버 상에서 구현되며, 상기 방법은: 상기 서버 네트워크 내의 다른 계층 레벨에서의 통신 서버들에 동작 가능한 네트워크 접속을 설정하는 단계; 복수 개의 지역 사용자 컴퓨터를 상기 통신 서버에 등록하는 단계; 및 등록된 지역 사용자 컴퓨터 각각의 등록 상세를 저장하는 단계 - 상기 등록 상세는 지역 사용자 컴퓨터 각각의 어드레스 정보 및 상기 데이터 통신 네트워크로의 현재 접속 상태를 포함함 - 를 포함하며, 상기 설정 단계는 상기 서버 네트워크의 다음 상위 계층 레벨의 인접 통신 서버에 상기 저장된 등록 상세를 포워딩하는 단계와, 계층적 네트워크의 하위 레벨에서의 접속된 통신 서버에 대한 임의의 지역 사용자 컴퓨터의 등록 상세를 수신 및 저장하는 단계를 포함하는, 통신 설정 방법에 확장된다.
본 발명의 제3 측면에 따라, 데이터 통신 네트워크를 통해 전송자 컴퓨터와 의도된 수신인 컴퓨터 사이에서 이메일 통신과 같은 보안 피어-투-피어 데이터 통신을 지원하는 피어-투-피어 통신 메시지의 의도된 수신인 컴퓨터를 검색하는 방법으로서, 상기 방법은 통신 서버의 계층 네트워크내에서 구현되며, 상기 방법은: 지역 서버에 데이터 통신 요청을 송신하는 단계 - 상기 요청은 의도된 수신인 컴퓨터의 아이덴티티 및 송신인 컴퓨터의 아이덴티티를 포함함 - ; 상기 의도된 수신인이 상기 지역 서버에 주지된지 여부를 결정하는 단계; 상기 의도된 수신인이 지역 서버에 주지된 경우, 상기 의도된 수신인에 관한 저장된 상세를 리트리브(retrieve)하고, 상기 상세를 다시 상기 송신인 컴퓨터에 송신하는 단계; 상기 의도된 수신인이 지역적으로 주지되지 않은 경우, 상기 서버 네트워크의 다음 상위 계층 레벨의 인접 통신 서버에 상기 요청을 포워드하고, 상기 인접 통신 서버가 상기 지역 서버가 되는 단계; 및 상기 의도된 수신인이 발견되거나 계층 네트워크의 최상위의 서버가 체크될 때까지 상기 결정, 리트리브 및 포워드 단계를 반복하는 단계를 포함하는, 수신인 컴퓨터 검색 방법이 제공된다.
계층적 통신 네트워크의 사용의 이러한 방법은 목적지를 찾는 절차가 이전에 기술 보다 상당히 빠르다는 점에서 유리하다. 이것의 이유는 상기 소스에 대해 지형적으로 지역 어드레스가 우선 체크되고, 어드레스가 발견되고 정상에 다다를 때까지 점차적으로 점점 원격 어드레스가 계층적 네트워크내 점점 높은 위치에서 체크되기 때문이다. 다시 많은 통신은 실제로 지역 목적지에 연결되어 있기 때문에, 지역 목적지는 빠르게 발견되고 통신 서버의 네트워크 상에 부여된 포텐셜 관리는 회피될 수 있다.
본 발명의 제3 측면은 데이터 통신 네트워크를 통해 전송자 컴퓨터와 의도된 수신인 컴퓨터 사이에 이메일 통신과 같은 보안 피어-투-피어 데이터 통신을 설정하는 방법으로서, 상기 설정 방법은 복수개의 통신 서버로 구성된 계층적 서버 네트워크 내에서 이행되며, 상기 설정 방법은: 청구항 33 내지 41 중 어느 한 항에 따른 의도된 수신인 컴퓨터를 검색하는 방법; 상기 의도된 수신인 컴퓨터의 현재의 전역 통신 어드레스를 상기 송신인 컴퓨터에 통신하는 단계; 상기 송신인 컴퓨터의 현재의 전역 통신 어드레스를 상기 의도된 수신인 컴퓨터에 통신하는 단계; 및 상기 송신인 및 상기 의도된 수신인 컴퓨터 사이에 피어-투-피어 통신 채널을 설정하기 위한 전역 통신 어드레스를 이용하는 단계를 포함하는, 통신 설정 방법에 또한 연장된다.
본 발명의 제4 측면에 따라 제1 및 제2 사용자 컴퓨터 사이에 이메일 통신과 같은 피어-투-피어 데이터 통신을 설정하는 데 이용하는 전송 서버로서, 상기 제1 사용자 컴퓨터로부터 전송 서버에 등록된 상기 제2 사용자 컴퓨터에 대한 접속 요청을 수신하는 수신 수단; 상기 제2 사용자 컴퓨터에 대한 현재 접속 상태를 검증하는 검증 수단; 상기 제2 사용자 컴퓨터의 현재 접속 상태가 현재는 상기 제2 사용자 컴퓨터와 피어-투-피어 통신이 설정될 수 없음을 표시하는 경우, 상기 요청의 상세를 관찰로서 저장하는 데이터 저장체; 및 상기 제2 사용자 컴퓨터의 현재 접속 상태가 이제는 상기 제2 사용자 컴퓨터와 피어-투-피어 통신이 설정될 수 있음을 표시하는 경우, 상기 검증 수단에 응답하여, 상기 제2 사용자 컴퓨터의 온-라인 상태를 표시하는 메시지를 상기 제1 사용자 컴퓨터에 송신하는 응답 수단을 포함하며, 상기 검증 수단은 상기 제2 사용자 컴퓨터에 대한 현재 접속 상태를 주기적으로 체크 및 갱신하고, 갱신이 상기 제2 사용자 상태가 온라인으로 변경됨을 알리는 경우에는 대응하는 관찰의 존재를 체크하여, 발견되면 메시지를 송신하도록 상기 응답 수단을 기동하는, 전송 서버가 제공된다.
본 발명의 제4 측면에 따른, 전송 서버는 유리하게 메시지 송신인의 리소스를 포함하지 않는, 의도된 수신인의 접속 상태를 모니터링 하는 메카니즘으로 제공된다. 차라리, 전송 서버는 의도된 수신인의 연결 상태를 효과적으로 관찰하고, 연결 상태가 변화하여 피어-투-피어 통신이 가능하게 되었을 경우, 메시지 송신인은 통지 받을 수 있다. 이것은 또한 포텐셜하게 불안정한 위치에 데이터 메시지의 어떠한 저장도 없이 데이터 메시지를 지원한다.
본 발명의 제4 측면은 제1 및 제2 사용자 컴퓨터 사이에서 이메일 통신과 같은 피어-투-피어 데이터 통신의 설정 기여 방법으로서, 상기 제1 사용자 컴퓨터로부터 지역 등록된 상기 제2 사용자 컴퓨터에의 접속에 대한 요청을 수신하는 단계; 상기 제2 사용자 컴퓨터로의 접속에 대한 현재 접속 상태를 검증하는 단계; 상기 제2 사용자 컴퓨터의 현재 접속 상태가 현재는 상기 제2 사용자 컴퓨터와 피어-투-피어 통신이 설정될 수 없음을 표시하는 경우, 요청 상세를 관찰로서 저장하는 단계; 및 상기 제2 사용자 컴퓨터의 상태가 이제는 상기 제2 사용자 컴퓨터와 피어-투-피어 통신이 설정될 수 있음을 표시하는 것으로 변경되는 경우, 상기 검증 단계에 응답하여, 상기 제2 사용자 컴퓨터의 온라인 상태를 표시하는 메시지를 상기 제1 사용자 컴퓨터에 송신하는 단계를 포함하며, 상기 검증 단계는 상기 제2 사용자 컴퓨터에 대한 현재 접속 상태를 주기적으로 체크 및 갱신하고, 갱신이 상기 제2 사용자 상태가 온라인으로 변경됨을 알리는 경우에는, 대응하는 관찰의 존재를 체크하여, 발견되는 경우에는 메시지를 송신하도록 응답 수단을 기동하는, 통신 설정 방법으로 실현된다.
본 발명의 제5 측면은 NATs 및 방화벽과 관련된 문제를 극복하는 이슈를 전하여 피어-투-피어 통신이 지지될 수 있다. 본 발명의 이러한 측면은 NAT의 매핑(mapping) 기능이 어드레스가 일반적으로 NAT의 원격 통신측에 보이지 않을지라도, 수신인의 실제적 지역 어드레스의 결정을 포함하는 의도된 수신인의 능력의 일련의 통신(조사)의 도구를 송신함으로써 결정될 수 있다는 평가에 존재한다. 이러한 조사는 통신 제어 채널의 사용 및 NAT를 통한 메시지내 데이터로서 지역 어드레스를 송신하는 의도된 수신신의 중요한 기능을 포함하여 NAT의 번역 기능이 추정될 수 있다. 다른 조사는 조사의 결과를 포텐셜 의도될 수신인에게 제공하는 능력을 포함한다.
NAT의 매핑 기능을 효과적으로 결정하는 이득은 이것이 NAT를 NAT에 의해 희망하는 단순한 수신인 위치에 다시 매핑될 적당히 어드레스된 통신에 송신하는데 사용될 수 있다는 것이다. NAT는 매핑 기능이 결정되고 그 결과 직접적 피어-투-피어 통신이 지지될 수 있다는 것을 완전히 알지 못한다.
NATs 및 방화벽과 관련된 상기 문제를 극복하는 대체적인 방법은 피어-투-피어 통신을 지지하기 위해 UDP 통신 채널을 만드는 것을 돕기 위해 전송 서버쪽으로 설정된 TCP/IP 링크를 사용하는 것이다. 더욱 자세히, 본 발명의 제5 측면에 따라, 데이터 통신 네트워크를 통해 제1 및 제2 사용자 컴퓨터 사이에 이메일 통신 채널과 같은 보안 피어-투-피어 데이터 통신 채널을 설정하는 방법으로서, 적어도 상기 제1 사용자 컴퓨터는 제1 네트워크 어드레스 트랜스레이터(NAT)에 의해 통신이 처리되도록 하며, 상기 방법은: 제1 NAT를 통해 상기 제1 사용자 컴퓨터와 전송 서버 사이에서 설정된 TCP/IP 통신 링크를 통해 직접 접속을 요청하는 단계; 상기 전송 서버에서 제1 사용자 데이터그램 프로토콜(UDP) 포트를 설정하는 단계; 상기 TCP/IP 통신 링크를 통해 상기 제1 사용자 컴퓨터에 상기 제1 UDP 포트의 어드레스를 보고하는 단계; 상기 제1 사용자 컴퓨터에서 제2 UDP 포트를 개방하는 단계; 상기 전송 서버가 상기 제2 UDP 포트의 상기 제1 NAT 어드레스를 결정할 수 있도록, 제2 UDP 포트로부터 상기 제1 NAT를 통해 상기 제1 UDP 포트로 데이터 패킷을 전송하는 단계; 상기 전송 서버에서 상기 제2 사용자 컴퓨터의 제3 UDP 포트 어드레스를 취득하는 단계; 및 상기 제1 및 제2 사용자 컴퓨터 각각에게 다른 사용자 컴퓨터의 UDP 포트 어드레스를 통지하여 그들 사이에 보안 피어-투-피어 통신을 설정할 수 있도록 하는, 단계를 포함하는, 통신 채널 설정 방법이 제공된다.
피어-투-피어 통신을 설정하기 위해 확인하는 경우 NAT 트레버설은 중대한 이슈이다. 본 발명의 제5 측면은 NATs 하나가 비대칭적인 경우에 조차, 피어-투-피어 통신을 위한 NAT 트래버설이 가능하도록 하는 간단한 실행 가능한 해법을 제시한다.
본 발명의 제5 측면은 데이터 통신 네트워크를 통해 제1 및 제2 사용자 컴퓨터 사이에 이메일 통신 채널과 같은 보안 피어-투-피어 데이터 통신 채널의 설정을 지원하는 전송 서버로서, 적어도 상기 제1 사용자 컴퓨터가 제1 네트워크 어드레스 트랜스레이터(NAT)에 의해 통신이 처리되며, 상기 전송 서버는: 상기 제1 NAT를 통해 상기 제1 사용자 컴퓨터와 상기 전송 서버 사이의 설정된 TCP/IP 통신 링크를 통한 직접 접속 요청을 수신하는 요청 수신 수단; 상기 전송 서버에서 제1 사용자 데이터그램 프로토콜(UDP) 포트를 설정하는 설정 수단; 상기 TCP/IP 통신 링크를 통해 상기 제1 UDP 포트의 어드레스를 상기 제1 사용자 컴퓨터에 보고하는 보고 수단; 상기 제1 사용자 컴퓨터에서 설정된 제2 UDP 포트로부터 상기 제1 NAT를 통해 상기 제1 UDP 포트로 전송되는 데이터 패킷을 수신하는 데이터 패킷 수신 수단 - 상기 전송 서버는 상기 제2 UDP 포트의 제1 NAT 어드레스를 결정함 - ; 전송 서버에서 상기 제2 사용자 컴퓨터의 제3 UDP 포트 어드레스를 취득하는 취득 수단; 및 상기 제1 및 제2 사용자 컴퓨터 각각에게 다른 사용자 컴퓨터의 UDP 포트 어드레스를 통지하여, 그들 사이에 보안 피어-투-피어 통신을 설정할 수 있도록 하는 통지 수단을 포함하는, 전송 서버로 확장된다.
심각한 방화벽 도구 때문이거나 두개의 지(party)가 비대칭적인 NATs를 가지고 있기 때문에, 직접적 피어-투-피어 접속일 실행하는 것이 불가능 한 경우, NAT 트래버설의 경우 가장 복잡한 상황이 발생한다. 이러한 상황은 비대칭적인 NATs를 횡단하는 의사' 피어-투-피어 통신을 설정함으로써 해결될 수 있다. 특히, 본 발명의 제6 측면에 따라,
데이터 통신 네트워크를 통해 제1 및 제2 사용자 컴퓨터 사이에 이메일 통신 채널과 같은 보안 의사 피어-투-피어 데이터 통신 채널의 설정하는 방법으로서, 상기 사용자 컴퓨터 모두는 제1 및 제2 비대칭 NAT 각각에 의해 처리되며, 상기 방법은: 상기 사용자 컴퓨터 각각으로부터 제1 및 제2 비대칭 NAT 각각을 통해 전송 서버로 TCP/IP 통신 링크를 생성하는 단계; 직접 접속을 위한 요청 수신에 응답하여 상기 전송 서버에서 제1 및 제2 사용자 데이터그램 프로토콜(UDP) 포트를 설정하는 단계 - 상기 요청은 상기 제1 NAT를 통한 상기 제1 사용자 컴퓨터와 전송 서버 사이의 TCP/IP 통신 링크를 통해 수신됨 - ; 상기 제1 및 제2 UDP 포트의 어드레스를 각각의 TCP/IP 통신 링크를 통해 상기 제1 및 제2 사용자 컴퓨터 각각에 보고하는 단계; 상기 제1 사용자 컴퓨터에서 제3 UDP 포트 및 상기 제2 사용자 컴퓨터에서 제4 UDP 포트를 개방하는 단계; 상기 전송 서버가 상기 제3 UDP 포트의 상기 제1 NAT 어드레스 및 상기 제4 UDP 포트의 상기 제2 NAT 어드레스를 결정할 수 있도록, 상기 제3 UDP 포트로부터 상기 제1 NAT를 통해 상기 제1 UDP 포트로, 그리고 상기 제4 UDP 포트로부터 상기 제2 NAT를 통해 상기 제2 UDP 포트로, 데이터 패킷을 전송하는 단계; 및 상기 전송 서버로부터 데이터 패킷을 효과적으로 바운스함으로써 상기 제1 및 제2 사용자 컴퓨터 사이에 의사 피어-투-피어 통신이 설정되도록, 상기 제1 UDP 포트에서 수신된 데이터 패킷을 상기 제2 UDP를 통해 상기 제4 UDP 포트의 NAT 어드레스에, 그리고 상기 제2 UDP 포트에서 수신된 데이터 패킷을 상기 제1 UDP 포트를 통해 상기 제3 UDP 포트의 NAT 어드레스에 재전송하는 단계를 포함하는, 통신 채널 설정 방법이 제공된다.
상술된 것과 같이, 의사 피어-투-피어 통신은 신뢰되는 중간자(intermediary)로서 작용하는 지역 전송 서버로 메시지를 바운스하는 발명의 본 측면의 능력에 의해 제공된다. 지역 전송 서버가 지역 비대칭으로 항상 알려지는 때 이것은 미지의 송신인의 이슈를 이주시켜, 방화벽에서 가장 심한 룰도 그러한 간접적인 의사 피어-투-피어 통신을 막지는 못할 것이다. 또한, 그러한 간접적인 통신 채널의 보안에서 가능한 감축은 바운스된 패킷이 최소한의 분석과 어떠한 저장도 없이 신뢰되는 중간자로서 작용하는 전송 서버에 의해 포워드되는 것을 확실시하는 것에 의해 최소화된다.
방어벽 작용의 이디어트한(idiotic)(매우 심한) 통역이 맞서는 경우에, 본 발명의 본 측면은 진정한 피어-투-피어 통신을 한 방향으로 실행하고 다른 방향으로 지역 전송 서버로 바운스하는데 조정된다. 이러한 변화는 그것이 보안상의 감축을 최소화하기 때문에 작용할 가치가 있다. 예를 들어, 이메일 전송의 경우, 이메일이 직접 전송되는 것과, 확인이 바운스되는 것을 배열하는 것이 유익하다.
본 발명의 제6 측면은 데이터 통신 네트워크를 통해 제1 및 제2 사용자 컴퓨터 사이에 이메일 통신 채널과 같은 보안 의사 피어-투-피어 데이터 통신 채널의 설정을 지원하는 전송 서버로서, 상기 사용자 컴퓨터 모두는 제1 및 제2 비대칭 네트워크 어드레스 트랜스레이터(NAT) 각각에 의해 통신이 처리되며, 상기 전송 서버는: 상기 사용자 컴퓨터 각각으로부터 상기 제1 및 제2 비대칭 NAT 각각을 통해 전송 서버로 TCP/IP 통신 링크를 생성하는 생성 수단; 직접 접속에 대한 요청을 수신함에 응답하여 상기 전송 서버에 제1 및 제2 사용자 데이터그램 프로토콜(UDP) 포트를 설정하는 설정 수단; 상기 제1 및 제2 UDP 포트의 어드레스를 각각의 TCP/IP 통신 링크를 통해 상기 제1 및 제2 사용자 컴퓨터에 보고하는 보고 수단; 상기 제1 사용자 컴퓨터에서 설정된 제3 UDP 포트로부터 상기 제1 NAT를 통해 상기 제1 UDP 포트로, 그리고 상기 제2 사용자 컴퓨터에서 설정된 제4 UDP 포트로부터 상기 제2 NAT를 통해 상기 제2 UDP 포트로 전송되는 데이터 패킷을 수신하는 수신 수단 - 상기 전송 서버는 상기 제3 UDP 포트의 제1 NAT 어드레스 및 상기 제4 UDP 포트의 상기 제2 NAT 어드레스를 결정함 - ; 및 상기 전송 서버로부터 데이터 패킷을 효과적으로 바운스함으로써 상기 제1 및 제2 사용자 컴퓨터 사이에 의사 피어-투-피어 통신이 설정되도록, 상기 제1 UDP 포트에서 수신된 데이터 패킷을 상기 제2 UDP를 통해 상기 제4 UDP 포트의 NAT 어드레스에 재전송하고, 상기 제2 UDP포트에서 수신된 데이터 패킷을 상기 제1 UDP 포트를 통해 상기 제3 UDP 포트의 NAT 어드레스에 재전송하는 수단을 포함하는, 전송 서버로 확장된다.
본 발명의 제7 측면에 따라, 데이터 통신 네트워크를 통한 송신인 컴퓨터와 의도된 수신인 컴퓨터 사이의 피어-투-피어 통신 설정하는 데 기여하는 전송 서버의 계층적 접속 네트워크에 사용자 컴퓨터를 접속하는 방법으로서, 상기 방법은: 접속 네트워크 내의 동일 계층 레벨에서의 복수 개의 피어 전송 서버 각각의 현재 로딩을 지역 전송 서버의 로딩으로서 기술하는 정보를 수신하는 단계; 지역 사용자 컴퓨터의 상기 지역 전송 서버로의 접속 요청을 수신하는 단계; 상기 지역 서버의 현재 로딩을 각각의 피어 서버의 것과 비교하는 단계; 상기 지역 전송 서버의 로딩이 임의의 피어 서버의 로딩보다 현저하게 큰 경우에 최하위 로딩을 갖는 피어 서버에 접속되어야 함을 나타내는 응답을 지역 사용자 컴퓨터에 송신하는 단계; 및 상기 지역 전송 서버의 로딩이 임의의 피어 서버의 로딩보다 현저히 크지 않은 경우, 접속 요청을 받아들이고, 상기 지역 전송 서버의 현재 로딩을 갱신하는 단계를 포함하는, 사용자 컴퓨터 접속 방법이 제공된다.
본 발명의 이러한 측면은 통신 네트워크상에 로드 밸런싱의 문제를 전한다. 전송 서버의 계층내 지역 서버의 현재의 로딩의 측정을 유지함으로써, 피어-투-피어 접속을 효과적으로 설정하는 요구를 항상 재분배할 수 있다. 로딩의 관점에서 밸런스된 통신을 유지함으로써, 네트워크 자체는 더욱 효과적이 되고 실행의 감축은 최소화로 유지된다.
본 발명의 제8 측면에 따라, 통신 서버에 등록된 사용자 컴퓨터 사이에 피어-투-피어 데이터 통신을 설정하는 데 이용되도록 설정된 인증된 통신 서버의 네트워크에 노드를 접속하는 방법으로서, 상기 방법은: 인증 서버에 대한 노드를 인증하기 위하여 인증 서버로부터 수신된 사용자 아이덴티티 및 패스워드를 이용하는 단계; 네트워크에 접속하기 위하여 노드가 접속될 필요가 있는 선택된 통신 서버의 아이덴티티를 통지받는 단계; 선택된 통신 서버에 접속하기 위하여 선택된 통신 서버 및 노드 특정 데이터를 요청하는 단계; 상기 선택된 통신 서버 및 노드 특정 데이터와 상기 노드 및 선택된 통신 서버에 의해 공유되는 공유 암호 키를 수신하는 단계; 및 상기 선택된 통신 서버 및 노드 특정 데이터와 상기 공유 암호 키에 의해 암호화된 전역 데이터를 상기 선택된 통신 서버에 전송하는 단계 - 상기 선택된 통신 서버는 네트워크에 접속될 노드를 인증할 툴(tool)을 가지며, 이에 의해 상기 인증 서버로부터의 검증을 검색할 필요없이 네트워크에 접속됨 - 을 포함하는, 노드 접속 방법이 제시된다.
본 발명의 이러한 측면은 네트워크에 조인하는 것을 바라는 새로운 노드를 위한 인증 절차를 실행하는데 매우 안정적인 방법을 제공한다. 이것은 특히 네트워크에 접속이, 예를 들어 통신 네트워크의 다른 멤버와 자유롭게 통신하는 것이 허용되는 메시지 소소에 특권을 부여하는 네트워크를 쉽게 하는 피어-투-피어 통신에 조인하기를 희망하는 메시지 소수의 문맥속에서 중요하다.
본 발명의 제9 측면에 따라 상호 접속된 전송 서버 노드의 제1 계층 구조(hierarchical realm)을 상호 접속된 전송 서버 노드의 제2 계층 구조에 접속하는 방법으로서, 상기 방법은: 각각의 영역 내에 지역 인증 서버를 제공하는 단계 - 인증 서버는 각 계층 구조의 최상위 레벨의 주(primary) 노드에 접속되고, 상기 영역내의 모든 서버에 관련된 인증 이슈(issue)를 제어함 - ; 상기 제2 계층 구조의 인증 서버에 대한 상기 제1 계층 구조의 주 노드를 등록하는 단계; 상기 제2 계층 구조의 인증 서버에 대한 상기 제1 계층 구조의 주 노드를 인증하는 단계; 상기 제1 계층 구조의 상기 주 노드가 상기 계층 구조들에 결합하기 위하여 접속할 필요가 있는 최하위 노드 서버의 아이덴티티를 통지받는 단계; 상기 제2 계층 구조의 최하위 노드 서버 및 상기 제1 계층 구조의 주 노드 모두에 대해 공유 데이터 및 공유 암호 키를 수신하는 단계; 및 상기 제2 계층 구조의 최하위 노드 서버에 대한 상기 제1 계층 구조의 주 노드를 인증하기 위하여 공유 데이터 및 공유 암호 키를 수신하는 단계를 이용하여 상기 제2 영역의 인증 서버로부터의 검증을 검색할 필요없이 제1 및 제2 영역들을 접속하는 단계를 포함하는, 보안 통신 방법이 제공된다.
본 발명의 이러한 측면은 그들 자신의 통신 네트워크(구조)를 가진 법인이 보안상의 손실없이 함께 조인할 수 있게 해주는 이점이 있다. 매우 중요한 사이즈된 존재하는 네트워크가 되는 것의 조인에 영향을 주기 위해 더 높은 구조내 허가가 상기 간단한 방식으로 변경될 것이 필요하기 때문에, 또한 각각의 구조의 보전이 손대지 않고 남아 있게 된다. 이것은 완전히 다른 유기체내 사람들 간의 통신이 피어-투-피어 기술을 사용하여 매우 안정적인 방법으로 가능하게 된다는 것을 의미한다.
도 1은 본 발명의 전형적 실시예에 따른 시스템의 개략적인 블록도이다;
도 2는 도 1의 시스템이 두 명의 사용자(Bob 및 Alice)간에 피어 투 피어 통신을 가능하게 사용될 수 있는 방법의 일례를 보여주는 개략도이다;
도 3은 도 1의 개인의 이메일 서버의 전체적인 작동 방법을 보여주는 블록도이다;
도 4는 도 3의 방법의 고객과접속 서브루틴의 블록도이다;
도 5는 도 3의 방법의 메시지수신 서브루틴의 블록도이다;
도 6은 도 3의 방법의 메시지발송대기 서브루틴의 블록도이다;
도 7은 의도된 수령인의 유일한 주소를 결정하기 위해 전송 서버 매커니즘 및 메일 서버간에 상호작용을 보여주는 흐름도이다;
도 8은 다른 실재에 의해 시스템의 다른 사용을 설명하는 개략도이다;
도 9a에서 9f는 의도된 수령인을 위해 유일한 IP 주소를 결정하는데 있어 TSMs에 의해 수행되는 조사를 설명하는 일련의 개략적인 블록도이다;
도 9g에서 9i는 도 9a에서 9f에서 수행되는 상기 조사가 대칭적인 NATs의 경우 및 비대칭적인 NATs의 경우에도 적용될 수 있는 방법을 보여준다;
도 10은 본 발명의 제2 실시예의 전체적인 기능의 트리 구조를 보여주는 개략적 블록도이다;
도 11은 도 10의 트리 구조의 관리 레벨의 계층적 본질을 보여주는 개략적 블록도이다;
도 12는 도 10의 트리 구조의 전송 서버층의 계층적 본질을 보여주는 개략적 블록도이다;
도 13은 도 12의 전송 서버층의 유전적 전송 서버의 기능적 엘리먼트를 보여주는 개략적 블록도이다;
도 14는 도 10의 관리층에 새로운 접속을 균형을 잡는 로드의 프로세스를 보여주는 흐름도이다;
도 15는 도 10의 제2 실시예의 상기 네트워크를 사용하는 피어-투-피어 접속을 설정하는 제1 단계를 보여주는 흐름도이다;
도 16은 도 10의 제2 실시예의 네트워크를 사용하는 피어-투-피어 접속을 설정하는 제2 단계를 보여주는 흐름도이다;
도 17은 Kerberos의 원리가 본 발명의 제3 실시예에 적용되는 방법을 보여주 는 개략적 블록도이다;
도 18은 네트워크에 접속하는데 있어 제3 실시예의 주요 단계를 보여주는 블록도이다;
도 19는 중앙 데이터 서버로 등록하는 세부사항을 보여주고 그로부터 피어-투-피어 통신이 네트워크에 의해 보안 각으로부터 지원되는 방법을 보여주는 개략적 블록도이다;
도 20a는 도 19의 계층적 네트워크내 모(母) 마디의 개략적 블록도이다;
도 20b는 도 19의 계층적 네트워크내 자(子) 마디의 개략적 블록도이다;
도 21은 사용자 컴퓨터(X 및 Y) 사이에 피어-투-피어 호출을 수행하는데 있어 십자가-왕국 접속이 수행되는 방법을 보여주는 개략적 블록도이다.
도 1을 언급하여, 본 발명을 구성하는 시스템(10)이 보여진다. 이러한 실시예는 현재 언급된 이메일 통신을 참고하여 기술된다. 그러나, Voice over IP(VoIP) 또는 인스턴트 메시지와 같은 전자적 통신의 일정한 형식이 사용될 수 있다. 또, 본 실시예가 인터넷과 같은 광범위네트워크(WAN)를 통한 통신과 관련이 있게 기술된다 할지라도, 본 발명은 LAN을 통해 수행될 수 있거나, 이동 텔레통신을 통해 수행될 수 있다.
시스템(10)은 다른 위치에서 제공되는 2개의 개인 컴퓨터(PCs)(12, 14)를 포함한다. 제1 PC는 지역(local) PC(12)이고 제2 PC는 원격(remote) PC(14)이고 시스템(10)은 이러한 2개의 컴퓨터(12, 14)간에 피어-투-피어 통신을 지원한다. PC(12, 14)의 각각은 통신 기능상에서 동일하고 따라서 하나만 상세히 설명할 것이 필요하다.
PC(12, 14)의 각각은 본 실시예에서 각각의 인터넷 게이트웨이(18, 20)을 통해 인터넷(16)과 접속되어 있다. 지역 PC(12)가 지역 인터넷 게이트웨이(18)을 사용하는 LAN(24)상의 복수의 지역 PCs(12)중 하나로서 제공되는 경우 지역 PC(12)측의 인터넷 게이트웨이(18)는 또한 NAT(22)를 포함한다. 원격 PC(14)는 또한 LAN(26)상에 제공되나 이 경우 NAT는 제공되지 않고 원격 PC는 유일한 IP 어드레스를 갖는다.
인터넷(16)과 접속된 데이터 서버(28)가 제공된다. 상기 데이터 서버(28)는 서버가 운영하는 사용자명(32) 및 IP 어드레스(34)의 지역 데이터베이스(30)를 가진다. 지역 데이터베이스(30)는 또한 등록된 사용자의 접속 상태(36)를 저장한다. 절차로서 여기서 상세히 설명되지 않았으나 일반적으로 공개된 등록 절차에 의하여, 지역 및 원격 PCs(12, 14)의 사용자명 및 어드레스를 포함하며 이러한 사용자명(32) 및 어드레스(34)는 데이터베이스(30)에 제공된다. 데이터서버(28)는 지역 및 원격 PCs(12, 14)와 같은 등록된 PCs 간에 피어-투-피어 통신에 적극적으로 참여하지는 않는 것으로 여겨진다. 그러나 데이터서버는 온라인이건 오프라인이건간에, 등록된 모든 PCs를 최신의 어드레스 정보(34) 및 그 어드레스의 상태(36)로 업데이트한다.
인터넷(16)에 접속되어 있는 복수의 전송 서버 메커니즘(TSMs)(40)이 제공된다. 이러한 TSMs(40)는 지역 및 원격 PCs(12, 14)간에 피어-투-피어 통신을 위해 올바른 어드레스(34)의 설정을 촉진한다. 각각의 TSM(40)은 등록된 PCs(12, 14)의 가능한 어드레스 각각에 관한 어드레스 정보를 저장하기 위해 정보의 지역 저장소(42)와 협력한다. 또한 이러한 지역 저장소는 PC 아이덴티티(44)의 리스트 및 IP 어드레스(46)에 상응하는 리스트를 포함한다. IP 어드레스(46)의 리스트에서, TSM(40)이 그자체로 주어진 PC의 어드레스하는 것에 책임이 있는 경우 IP 어드레스(46)가 제공된다. 그렇지 않고 TSM이 책임이 없는 경우, 책임있는 TSM(40)의 IP 어드레스(또는 다른 적당한 확인)가 제공된다. TSM(40)의 동작은, 특히 NAT를 참조하여, 이후 상술된다.
지역 및 원격 PCs(12, 14)의 각각은 개인적 메일 서버(52)에 TCP/IP를 통해 접속되는 Microsoft OutlookTM과 같은 메일 클라이언트(50)를 포함한다. 메일 서버(52)는 제공된 그 자체의 데이터 저장소(54)를 갖고 네트워크 인터페이스(56)와 접속된다. 메일 서버(52)는 다운로드 되는 소프트웨어로 제공되고, 피어-투-피어 통신 프로토콜을 사용하기 위해 사용자에 의해 인스톨된다. 메일 서버가 온라인이 되는 때를 알려주기 위해 데이터 서버에게 접속할 필요가 있으므로, 메일 서버(52)는 데이터 서버(28)의 네트워크 어드레스를 저장한다. 모든 피어-투-피어 통신은 메일 클라이언트(50)의 동작이 영향을 받지 않는 투명한 방식으로 개인적 메일 서버(52)를 통해 루트가 정해진다.
본 발명에서 사용되는 네트워크 인터페이스(56) 및 인터넷 게이트웨이(18, 20)는 종래의 것이고 여기서 추가적인 설명이 필요하지 않다.
시스템(10)의 동작의 일반적 방식이 설명된다. 사용자가 사용자의 세부사항을 데이터 서버(28)에 제공함으로써 서버에 등록하면, 개인 이메일 서버(52)는 사용자의 PC(12, 14)에 다운로드되고 인스톨된다. 개인 이메일 서버(52)는 이미 PC(12, 14)상에 제공된 이메일 클라이언트(50) 및 네트워크 인터페이스(56)에 접속한다. 이메일 클라이언트(50)에 및 이메일 클라이언트로부터 모든 이메일은 개인 이메일 서버(52)를 통해서 전달된다.
메시지를 보내는 경우, 상기 사용자는 이메일을 만들고 이메일을 개인 이메일 서버(52)에 보낸다. 만약 의도된 수신인이 온라인상에 있다면, 의도된 수신인의 상태에 관한 저장된 현재의 정보상에 표시된다. 이메일 메시지는 의도된 수신인의 PC(14)로 직접 전해진다. 그렇지 않으면, 의도된 수신인의 PC(14)가 온라인이 될 때까지, 데이터 서버(28)로부터 업데이트된 온라인 상태 메시지의 수신으로 표시된다. 이메일 메시지가 대기열에 저장된다.
메시지를 보내기 전에, 의도된 수신인의 실제의 현재 IP 어드레스(34)가 TSMs(40)에 의해 결정된다. 이러한 프로세스는 이후 상술된다. 그러나 의도된 수신인의 현재 IP 어드레스(34)가 확인되면, 이메일의 피어-투-피어 통신은 수행된다.
도 2를 언급하며, 이러한 프로세스(60)가 수행되는 방법의 일례가 2명의 사용자 Alice(62) 및 Bob(64을 참고하여 설명된다. 프로세스(60)는 Alice의 개인 이메일 서버(52)가 그녀가 온라인이 되었다는 메시지를 데이터 서버(28)에 보내고(66) 그녀가 Bob(64)에게 메시지를 보내길 원하는 것을 가리키면서(68) 시작된 다. 그리고 데이터 서버(28)는 Bob의 현재 어드레스 세부사항으로 응답한다(69). Alice의 개인 이메일 서버(52)가 메시지를 어드레스하는데 이 정보를 사용하고 정보를 암호화하고(70), Bob이 온라인이 되는 경우 그에게 보내기 위해 지역적으로 저장한다(72).
Alice가 온라인이고(이것을 가리키는 데이터 서버(28)에 메시지를 보낸다(66)) Bob이 온라인이 된(이것을 가리키는 데이터 서버(28)에 메시지를 보낸다(74)) 이후 어느 시점에, 데이터 서버(28)는 Bob(64)이 온라인이 되었다는 것을 가리키기 위해 모든 사용자에게 메시지를 보낸다(76). 이 메시지는 Alice의 개인 이메일 서버(52)에서 수취되고 그후 저장된 메시지는 Bob(64)에게 직접 보내질 수 있다(78). 메시지 수령할 경우, Bob의 이메일 클라이언트(50)는 메시지가 들어왔다는(메시지를 받았다는) 체크를 하고(82), 상기 메시지를 복호화(84)하여 Bob(64)이 읽는 이메일 클라이언트(50)에게 보낸다(86).
각각의 개인 메일 서버(52)에 수행되는 실제적 프로세스는 도 3 내지 6을 참조하여 설명된다.
개인적 이메일 서버(52)의 작동(90)은 도 3을 참조하여 설명된다. 작동(90)은 서버(52)의 개시(92)로 시작되고 데이터 서버(DS)(28)에 접속(94) 된다. 데이터 서버(28)의 어드레스는 이미 메일 서버(52)에 알려지고 지역 메모리(54)에 저장된다. 상기 데이터 서버(28)는 시스템(10)이 작동하는데 유용한 것 중의 하나인 몇개의 TSMs(40)의 위치 어드레스를 제공한다. 메일 서버(52)는 TSM(40)과의 접속을 설정(96)하려고 시도한다. 이러한 부분으로서 TSM(40)이 온라인이라는 것을 확 인하기 위해 확인(98)이 수행된다. TSM(40)이 온라인이 아니고 접속이 될 수 없다면, 메일 서버(52)는 오프라인(100)이라고 여겨진다. 상기 프로세스(90)는 차후 인터넷(16)에 재접속(102)으로 계속될 수 있으며 상술된 DS 단계에 접속(94)으로 복귀할 수 있다.
그러나, TSM(40)이 온라인(104)이면, 다섯개의 다른 옵션(상태) 중 하나가 이용가능하게 된다. 첫째로, PC(12, 14)가 차단되었을 때(106) 프로세스(90)가 종결(108)로 가는 옵션이 있다. 둘째로, 메일 서버(52)가 강제로 로그 아웃(110)될 수 있고, 그리하여 프로세스(90)를 상술한 오프라인 상태(100)가 되게 한다. 셋째로, 메일 클라이언트(50)로부터 메일 서버(52)에 접속(112) 시도가 있다면, 메일 클라이언트(50)의 증명서가 전에 저장된 정보에 대하여 확인되고(114), 만일 수용될 수 있다면, 클라이언트(50)로부터의 접속이 이루어질 수 있다(116)(도 4를 참조하여 이후 더욱 상세히 기술된다). 만일 클라이언트 증명서가 확인되지 않는다면, 접속은 거부되고(118) 메일 서버(52)는 온라인 상태로 되돌아가거나(120) 강제로 오프라인(122)으로 되고 인터넷(16)에 접속(102)하여 상기 프로세스(90)를 다시 시작한다.
추가적 옵션(상태)은 메시지를 수신하고(124) 그것을 위해 사용자에 제출하기 위해 메일 클라이언트(52)에 제공되는 메일 서버(52)를 위한 것이다. 이러한 프로세스(124)는 이후 도 5를 참조하여 상술된다.
메일 서버가 온라인인 경우 사용가능한 마지막 옵션(상태)은 메시지를 보내는 것과 관련되어 있다. 만일 보내질 것을 기다리는 메시지가 있는지 결정하기 위 하여, 체크(126)가 수행된다. 만약 송신될(128) 메시지가 없다면, 프로세스(90)는 종결되고 메일 서버(52)는 온라인 상태로(104)로 복귀한다. 만일 송신될 메시지가 있다면, 송신대기중인 프로세스(130)는 이후 실행되며 이는 도 6을 참조하여 상술된다. 이러한 맨 나중의 프로세스(130) 이후에, 메일 서버(52)는 온라인 상태(104)로 복귀한다.
도 4를 언급하여, 클라이언트로부터 접속 프로세스(116)가 설명된다. 상기 프로세스(116)는 메일 클라이언트(52)(예 MS OutlookTM)로부터 수신된(140) SMPT 접속 요구로 시작된다. 상기 프로세스(116)는, 보안 목적을 위해, 메일 클라이언트(52)가 권한부여되었는지(142) 여부를 결정한다. 만일 아니라면, 권한부여는 실패(144)하고 메시지는 사용자에게 통지하기 위해 메일 클라이언트(52)로 보내진다(146). 그렇지 않다면, 권한부여는 성공(148)하고 메일 클라이언트(50)로부터 이메일 메시지가 메일 서버(52)에 의해 수신된다(150). 이것이 성공적으로 전송되는 메시지의 엘리먼트를 가진 다중-단계 프로세스이다(예로 어드레스로 "부터", 이후 어드레스"로", 이후 메시지의 본문이 보내진다). 이러한 프로세스는 완벽한 메시지가 수신될 때까지 수행된다. 보내질 메시지가 더 있다면 체크(152)가 수행되는 것이 결정되고 만일 그렇다면, 상기 전송 프로세스(150, 152)가 반복된다. 더이상 수취할 메시지(154)가 없는 경우, 메일 서버(52)는 메일 클라이언트(50)로부터 접속을 종료한다(156).
수취된 메시지가 수행되기 전에, 메일 클라이언트(50)와 관련된 송신 허가를 결정하는 체크가 수행될 수 있다(158). 만일 메일 클라이언트(50)가 특별히 의도된 수신인에게 송신과 관련된 허가를 하지 않는다면, 이메일 메시지는 송신되지 않을 것이다(162). 그러나 만일 송신 허가가 있다면, 목적지 사용자 정보가 얻어진다(164). 이러한 단계는 데이터 서버(28)로부터 모든 등록된 의도된 수신인의 어드레스 정보를 요구하고 수신하는 것을 포함한다. 이러한 데이터는 또한 사용자를 위한 메시지를 암호화하는데 사용하기 위한 사용자의 공개 키(도시되지 않음)를 포함한다. 다른 이메일 메시지와 접속하여 어드레스 정보가 수신되면, 이러한 정보는 캐쉬에 저장된다. 따라서, 특히 의도된 수신인에 대한 어드레스 정보가 캐쉬에 있다는 것을 확인하는 체크(도시되지 않음)가 DS(28)로부터 어드레스 정보를 찾기 이전에 수행될 수 있다.
그 후, 의도된 수신인이 인식된 메일 사용자라고 결정하는 확인(166)이 수행된다. 만일 그가 아니라면(168), 어드레스가 시스템에 알려지지 않았기 때문에, 메일 서버(52)는 간단히 메일 클라이언트(50)에 메시지가 보내질 수 없다는(170) 것을 알려준다. 그러나 의도된 수신인이 등록된 사용자로 인식(172)되면 의도된 수신인의 공개키로 이메일 메시지가 암호화된다(174). 여기서 더욱 일찍 얻어지는 공개키 인프라구조(PKI) 암호화 기술이 암호화/복호화에 사용될 수 있다.
도 6을 참조하여 설명되는 암호화된 메시지는 송신대기메시지 프로세스(130)에 전해진다.
도 5를 언급하여, 메시지수신 프로세스(124)가 설명된다. 이메일 메시지를 수신하기 위해 메일 서버(52)가 로그인 될 필요는 없으나 인터넷(16)에 접속되어야 한다. 이메일 메시지의 수신(180)시, 사용자는 메시지를 통지받고(182) 이것은 예를들면 통보 수신 팝업 윈도우(184)의 생성에 의해 수행될 수 있다. 메일 클라이언트로부터 "수신"(리트리브) 때까지는, 수신된 이메일 메시지는 메모리(54)에 저장된다. 상기 저장은 컴퓨터의 하드 디스크에 가능하나 가장 안전한 해법을 위해, 수취된 메시지는 리트리브될 때까지는 RAM에 저장된다. 대기하는(186) 동안, 몇가지 이유때문에 메일 서버(52)가 종료하게 된다면(188), 배달되지 않은 메시지(190)는 반영구적인 메모리(전형적으로 하드디스크)에 저장되고 상기 프로세스(124)는 종결한다(192).
메일 서버(52)가 메일 클라이언트(50)로부터 수신 요구를 수신하는 경우(194), 상기 프로세스(124)는 메일 클라이언트(50)가 권한부여되는지 여부를 결정하기 위한 체크를 한다(196). 만약 그렇지 않다면, 클라이언트 권한부여는 실패하고(198), 메일 클라이언트(50) 수신 단계의 실패(200)로 된다. 수신인 사용자 및 Amteus에게 차례로 통지된다(전체 시스템의 작동을 내려다보는 기관이며 사용자가 등록되었음).
만일 메일 클라이언트(50)가 권한부여된다면(204), 두개의 작용이 평행하게 수행된다. 지역하게 저장되는 수신인의 개인 키가 리트리브되고(206), 배달되지 않은 이메일 메시지가 리트리브된다(208). 그리고 메시지를 복호화하는 시도(210)는 리트리브된 개인 키를 사용하여 수행된다. 만약 복호화가 성공적이지 않으면(212), 송신인은 통지받게 된다(214). 배달 실패가 있다고 이야기하는 이메일을 송신인에게 다시 보내며 메일 서버(52)에 의해 이것은 성취된다. 그리고 프로세 스(124)는 더 이른 클라이언트 권한부여가 실패(198), 즉 메일 클라이언트 "수신" 절차의 실패(200), 하는 것처럼 계속된다. 차례로 수신인 사용자 및 Amteus에 통지된다(202).
그러나 복호화가 성공적이라면(216), 복호화된 이메일 메시지는 사용자에게 제출을 목적으로 메일 클라이언트에 포워딩되어, 소위 메일 클라이언트 "수취"는 성공적이된다(218). 상기 메시지는 프로세스(124)를 수신하고 송신되는 추가적인 메시지가 있는지 체크한다(220). 만일 송신될 추가적인 메시지가 없다면(222), 상기 메시지는 프로세스(124) 종료(192)를 수신한다. 만일 배달될 추가적인 메시지가 있다면(224), 상기 프로세스는 클라이언트 권한부여가 성공하는(204) 단계로 되돌아가고(226) 이전에 설명되었던 것처럼 계속된다.
도 6을 언급하여, 도 3의 상기 송신대기메시지 프로세스(130)가 설명된다. 송신(230)되기를 기다리는 대기열에 이메일 메시지가 있는 경우, 목적지의 상태가 결정되어야한다(232). 목적지의 현재 상태가 캐쉬에 있다는 것을 결정하는 확인(234)이 수행된다. 만약 캐쉬내 이용가능하다면(238), DS(28)로부터 리트리브되고(240) 상기 캐쉬는 리트리브된 상태로 업데이트된다.
목적지 상태가 목적지가 오프라인인지 여부를 결정하기 위해 체크(242)된다. 만약 오프라인(244)이라면, 메시지는 보내질 수 없고 암호화된 메시지는 전송단계에서 이후의 시도동안 메시지 대기열에 저장된다(246). 그러나 목적지가 온라인이라면, 암호화된 메시지는 상기 대기열로부터 리트리브되고(248)(RAM내 또는 하드디스크로부터) 피어-투-피어 통신으로 의도된 수신인에게 직접 송신된다(250). 이메 일 메시지의 정확한 어드레스 수행되는 방법 및 메시지가 송신되는 방법의 세부사항이 도 7에서 개설되고 이후 상술된다.
메시지의 전송이 체크되고(252) 만약 몇가지 이유로 전송이 실패(254)된다면, 전송 에러 상태(256)가 입력되고, 에러타입을 결정하는 단계가 만약 메일 서버(52)가 몇가지 이유로 중지된다면 이러한 상태(256)는 송신대기메시지 프로세스(130)의 개시에 도달한다. 이러한 전송 에러상태(256)에서, 에러 타입의 결정과 평행하게 Amteus는 통지된다(260). 상기 에러가 목적지가 오프라인지 여부를 결정하기 위해 체크(262)가 행해진다. 이것은 의도된 수신인의 상태에서 변경이 있다면, 발생할 수 있다. 만약 목적지가 오프라인(244)이라면, 암호화된 메시지는 이후 전송을 위해 저장된다(246). 이메일 메시지가 여전히 송신대기열에 있는 것처럼 프로세스(130) 자체가 아닐지라도, 이것은 송신대기메시지 프로세스(130)의 이러한 패스(pass)를 종결시킨다.
에러가 오프라인이 되는 목적지 때문이 아니라고 한다면, 다른 에러는 책임이 있고(264) 에러가 영구적이거나 일시적 실패인지 여부를 결정하는 체크(266)가 수행된다. 영구적 실패(268)(예를 들어 만약 사용자가 더 이상 존재하지 않거나 이메일이 너무나 큰 경우)의 경우, 메일 서버는 메시지가 전송되지 않았다는 것을 이야기하는 바운스 메시지를 수신한다(270). 그러나 에러가 일시적인 실패(272) 때문이라면(예를 들어 접속 과실 때문에), 암호화된 이메일 메시지가 대기열에 다시 저장(242)되고 송신대기메시지의 이러한 전송은 종결한다.
이메일 메시지의 전송의 결과로 돌아와서, 메시지가 배달된 것이(274) 확인 된다면, 이메일의 지역 카피는 보안 목적으로 삭제된다(276). 성공적인 전송의 통지는 Amteus에 송신되고(260) 송신대기열상에 이메일 메시지가 있다고 결정하기 위한 체크(278)가 행해진다. 만약 메시지가 있다면, 프로세스(130)는 이메일 메시지를 위해 목적지(의도된 수신인)의 상태의 확인으로 복귀를 반복하고 상기 연속된 작업을 반복한다. 그렇지 않다면, 프로세스되는(280) 메시지는 더 이상 없으며 송신대기메시지의 이러한 패스는 종결한다.
도 7을 언급하여, 작동 및 TSMs와의 상호작용 및 그들이 의도된 피어-투-피어 통신에 요구되는 수신인 어드레싱을 설정하기 위해 작동하는 방법이 설명된다.
우선, TMSs는 연속적으로, 의도된 수신인에게 이메일 메시지의 배달이 필요한 때에, 그들이 그러한 의도된 수신인을 위한 어드레스 정보의 가장 업데이트된 현재의 관점을 가지고 있는 그들의 어드레스 조사 프로세스를 수행한다. 그들의 조사는 변경된 UDP(사용자 데이터그램 프로토콜)을 사용하여 수행되고 그러한 사용자의 실제 직접적 IP 네트워크 어드레스를 설정하는데 도와주는 실험을 포함한다. 이러한 실험은 NAT 트래버설(traversal)이 가능하게 하고 도 9a 내지 9i를 참조하여 이후 더 상세히 설명된다.
송신인으로 수신인의 현재 IP 어드레스의 목적지 및 통신의 프로세스(274)는 리스트를 가지고 있는 마스터 TSM(40)으로부터 TSM의 리스트를 송신하는 송신인과 함께 시작한다. 메일 서버(52)는 리스트상에 TSMs(40)의 제 1부분을 접촉하려 시도(292)하고 그것이 성공적인지 체크(294)한다. 그것이 성공적이지 않다면(296), 리스트상 다음 TSM(40)는 리트리브되고 다른 시도(292)에 접속하게 된다. 이러한 프로세스는 접속이 성공적(298)이 될 때까지 계속된다.
접속하는 동안, 선택된 TSM은 모든 다른 TSMs(40)에 그가 이러한 메일 서버(52)에 접속하고 있다는 것을 통지한다(300). 이러한 접속은 TSM(40)이 부하 밸런스에 대해 사용되기 가장 편리하다는 기초하에 만들어진다. 그 후 송신자 메일 서버(52)는 의도된 수신인 메일 서버(52)에 접속되기를 바라는 접속된 TSM(40)과 통신(302)한다. 의도된 수신인은 사용자 ID에 의해 확인된다. 그러한 의도된 수신인 메일 서버(52)를 위해 IP 어드레스를 결정하는 것은 TSM(40)의 임무이다. 선택된 TSM(40)는 의도된 수신인 메일 서버(52)에 직접적 접속되었는지를 확인하기 위해 그것의 어드레스 리스트(지역에 저장된)를 체크(304)한다. 만약 적접적 접속을 가진다면, 다시말하면 수신인 메일 서버(52)의 유일한 어드레스를 안다면, 이것은 송신자 메일 서버(52)에 송신된다(306). 이러한 어드레스는 도 9a 내지 9i를 참조하여 이후에 설명을 사용하여 결정된다. 만약 그것이 유일한 어드레스를 자체적으로 가지고 있지 않다면, 적어도 어드레스를 가지는 TSM(40)의 어드레스를 가진다. 따라서, 이러한 경우, 선택된 TSM(40)은 상기 어드레스를 조사하고 그것을 다시 발신자 메일 서버(52)에 송신하는 올바른 TSM(40)상에 문의한다.
송신자 메일 서버(52)가 의도된 수신인 메일 서버(52)의 유일한 직접적 IP 어드레스를 수신하면, 그것은 직접적으로 수신인 메일 서버(52)에 접속하고(310) 표준 인터넷 프로토콜을 사용하여 이메일 메시지를 송신한다(312). 메시지를 패킷단위로 그들 자신의 헤더 각각으로 나누고 의도된 수신인에 표현하기 위해 다시 함께 조합되는 수신인에게 적절한 통로에 의해 발송되는 이러한 패킷을 전송함으로 써, 이메일 메시지는 종래의 IP 통신이 인터넷(16)상에 보내지는 것과 같은 방식으로 전송된다.
도 8은 사용자(320), 그의 메일 클라이언트(50, 322) 및 관리자(324)의 다른 활동을 보여주는 개략도이다. 다른 활동은 도면에서 보여지는 것처럼 관련된 기능으로 그룹화된다. 또한, 사용자(320)는 관련된 기능의 세개의 다른 그룹을 수행할 수 있는데, 즉 설정 활동(326), 지불 활동(328) 및 파일 관련 활동(330)이 그것이다. 메일 클라이언트(50, 322)는 메일 서버와 관련 활동(332)의 단일 그룹을 수행할 수 있다. 관리자(324)는 사용자 관련 활동(334)의 단일 그룹을 수행할 수 있다. 이러한 그룹의 각각을 구성하는 기능은 도 8에서 설명되어 있고 당업자에게 명백할 것이기 때문에 더이상의 설명은 제공하지 않는다.
도 9a 내지 9f는 의도된 수신인에게 유일한 IP 어드레스를 결정하는데 TSMs(40)에 의해 수행되는 작용의 6개의 단계를 보여주고 설명한다. 처음의 단계는 클라이언트 A(350)가 NAT A(352)를 통해 서버 S(354)에 TCP/IP 접속을 하는 것을 도 9a에서 보여준다. 이와 유사하게 클라이언트 B(356)는 NAT B(358)을 통해 서버 S(354)에 TCP/IP 접속을 설정한다. 이 '단계 1'이라고 명명된 단계에서, 클라이언트 A(350)는 클라이언트 B(356)과 피어-투-피어 접속 설정을 희망한다.
도 9b에서 보여지는 단계 2A에서, 클라인트 A(350)는 NAT A(352)를 통해 서버 S(354)에 피어-투-피어 요구를 한다. 이러한 요구를 수신에 응답하여, 서버 S(354)는 이미 설정된 TCP/IP 통신 미디어(364)에 통해 클라이언트 A(350)에 UDP 포트(360)의 어드레스(S1:s1)(362)를 보고한다. 클라이언트 A(350)는 어드레스 A:a(368)에 그 자신의 UDP 포트(366)를 오픈한다. 이러한 포트 어드레스(368)는 NAT A(352)에 의해 A1:a1(370)으로 전이된다. 그러나, UDP 통신 채널(372)은 클라이언트 A(350) 및 서버 S(354) 사이에 셋업된다.
도 9d에서 보여지는 단계 3에서, 서버 S(354)는 도 9c와 관련하여 설명되는 것과 비슷한 방식으로 클라이언트 B(356)와 UDP 채널을 설정할 수 있는 IP 어드레스 S2:s2(378)상에 두번째 UDP 포트(376)을 오픈한다. 그리고 서버 S(354)는 이미 설정된 TCP/IP 통신 미디어(364)를 통해 클라이언트 B에 UDP 포트(376)의 어드레스(S2:s2)(378)을 보고한다. 클라이언트 B(350))는 어드레스 B:b(382)에 자신의 UDP 포트(380)를 오픈시킨다. 이러한 포트 어드레스(382)는 NAT B(358)에 의해 B1:b1(384)에 전송된다. 그러나. 도 9e에서 보여지는 것처럼 UDP 통신 채널(386)은 클라이언트 B(356) 및 서버 S(354) 사이에 설정된다.
의도된 수신인의 유일한 IP 어드레스를 설정하는 프로세스의 단계 4가 보여지는 도 9e을 참조하여, 클라이언트 A 및 클라이언트 B 사이의 UDP 통신이 수행되는 방법이 설명된다. 클라이언트 B는 UDP 패킷(380)을 어드레스 B:b(382)를 가진 그것의 UDP 포트(380)로부터 어드레스 S2:s2(378)을 가진 서버 UDP 포트(376)에 송신한다. 그러나 서버 S(354)는 그들이 UDP 포트 어드레스 B1:b1(384)를 번역하는 네트워크로부터 나온다는 것을 확인한다. 같은 방법으로, UDP 패킷은 어드레스 S1:s1(362)를 가진 서버 UDP 포트(360)에 클라이언트 A(350)로부터 수신될 수 있 다.
서버 S(354)는 포트 어드레스 A1:a1(370) 내지 B1:b1(384)을 번역한 네트워크로부터 및 포트 어드레스 B1:b1(384) 내지 A1:a1(370)을 번역한 네트워크로부터 수신한 패킷을 송신한다. 이것은 클라이언트 A(350) 및 클라이언트 B(356)가 그들이 서로 직접적 UDP 접속을 하고 있다고 믿는것이 가능하게 한다.
도 9f는 상기 프로세스내 단계 5를 보여주고 피어-투-피어 통신을 위해 일반적 경우를 설정한다. 여기서, 서버 S(354)는 우선 클라이언트 A(350)에게 클라이언트 B(356)가 포트 어드레스 B1:b1(384)를 번역한 네트워크상에서 이야기하고 있다는 것을 통지한다. 또한 서버 S(354)는 우선 클라이언트 B(356)에게 클라이언트 A(350)가 포트 어드레스 A1:a1(370)를 번역한 네트워크상에서 이야기하고 있다는 것을 통지한다. 따라서 클라이언트 A(350) 및 클라이언트 B(356)가 직접 이야기할 수 있는 능력은 그들 각자가 어드레스(370, 384)를 번역한 다른이의 네트워크를 가지는 것처럼 직접 설정될 수 있다. 그러나, 클라이언트 A(350)에 운영되는 어플리케이션(도시되지 않음)에 의존하여, 통신은 UDP 포트 A:a(366) 및 어드레스 B1:b1(384) 사이에 또는 수신인 B1:b1(384) 및 S1:s1(362) 사이에 제 1 UDP 채널(388)을 통해 존재한다. 유사하게, 클라이언트 B(356)에서 작동하는 어플리케이션(도시하지 않음)에 의존하여, 통신은 UDP 포트 B:b(380) 및 어드레스 A1:a1(370) 사이에 또는 수신인 A1:a1(370) 및 S2:s2(378) 사이에 제 2 UDP 채널(390)을 통해 존재한다.
도 9g는 도 5의 일반적 경우가 NATs 둘다 대칭적일 경우에 적용되는 방법을 보여준다. 또한, 도 6A 단계에서 만약 NAT A(352)가 대칭적인 NAT인 경우, 클라이언트 B가 포트 어드레스 A1:a1(370)을 번역한 네트워트로부터 UDP 패킷을 수신하게될 것이다. 유사하게 만약 NAT B(358)가 대칭적 NAT이면 클라이언트 A는 포트 어드레스 B1:b1(384)를 번역한 네트워크로부터 UDP 패킷을 수신하게 될 것이다. 그러한 UDP 패킷 트래픽이 탐지되는 경우, 서버 S는 통지되고 서버는 도 9g에서 설명된 상황인 NAT A 및 그의 제1 포트(362) 간에 그리고 NAT B 및 그의 제2 포트(376)간에 UDP 접속을 끊게 된다. 또한 이에 따라, 클라이언트 A 및 B 간에 서버 S(354)로의 TCP 접속(364)이 드랍될 수 있으나, 이것은 클라이언트 A 및 B에서 구동되는 어플리케이션에 의존한다.
도 9h는 도 9g의 해법이 NATs의 하나가 비대칭적일 경우 작동하지 않는 방법을 보여준다. 또한, 만약 NAT B(358)이 비대칭적이면 어드레스 A1:a1(370)을 번역한 네트워크에 접속된 포트 어드레스 B:b(382)로부터 UDP 패킷 트래픽은 B2:b2(392)에서 나온 것처럼 보이게 될 것이나, 여전히 제2 UDP 채널(390)에 걸쳐 클라이언트 A에 의해 수신될 것이다. 그러나 포트가 더이상 클라이언트 B(356)에 통신을 위해 사용되지 않는 것 처럼 어드레스 A1:a1(370)을 번역한 네트워크로부터 어드레스 B1:b1(384)을 번역한 네트워크로의 UDP 패킷 트래픽은 NAT B(358)에 의해 블록될 것이다.
도 9i는 비대칭적 NAT가 되는 NATs의 하나를 다루는 방법인 본 실시예에 의해 제공되는 해법을 보여준다. 또한, 단계 6B에서 클라이언트 A는 어드레스 B1:b1(384)을 번역한 네트워크라기 보다는 어드레스 B2:b2(392)을 번역한 네트워크 로부터 발생한 UDP 트래픽을 확인한다. 따라서, NAT A(352)는 어드레스 B1:b1(384)을 번역한 네트워크을 위한 UDP 트래픽 출력을 어드레스 B2:b2(392)를 번역한 네트워크로 교체한다. NAT B(358)이 NAT a(352)의 어드레스 A1:a1(370)을 번역한 네크워크에 기입한 이러한 어드레스를 사용하기 때문에, NAT A(352)는 이것을 할 수 있고, 그리하여 IP는 전해진다. 이러한 방법에서 비대칭적인 NAT가 존재하는 경우에조차도 양자간 접속 통신은 설정된다.
만약 NAT A(352)가 비대칭적이고 NAT B(358)이 대칭적이라면, 도 9i에 관련된 상기된 같은 프로세스는 반대로 발생한다.
만약 NAT A(352) 및 NAT B(358) 둘다 비대칭적이면, 순수한 피어-투-피어 통신이 가능하지 않다. 트래픽은 계속되거나 매개체로서 작용하는 서버 S(354)를 통해 재-설정된다. NAT A(352) 및 NAT B(358) 둘다 가시적인 어떠한 다른 어드레스는 매개체로서 대체된다. 이러한 상황을 다루는 방식은 제2 실시예를 참조하여 이후 상술된다.
본 발명의 제2 실시예는 도 10 내지 16을 참조하여 기술된다. 제2 실시예는 많은 관점에서 제1 실시예와 동일하며 그리하여 다음의 기술은 제1 및 제2 실시예 간의 차이점에 집중하게 될 것이다. 단지 간단히 기술된 제1 실시예의 몇몇 관점은 제2 실시예의 기술에서 완벽을 위해 확장될 것이다.
제2 실시예에 따른 보안 통신 시스템(400)은 분배되고 그의 크기 때문에 복잡할 수 있다. 한 방법에서, 도 10에서 셋업된 것처럼 전체적인 구조는 계층적 트리(402)가 된다고 생각되어질 수 있다. 가장 높은 시점에서 개시하여, 시스 템(400)은 시스템 관리 레벨(404), 전송 서버 레벨(406) 및 엔드 포인트 레벨(408)인 세가지 논리 레벨에서 보여진다. 도 10에서 보여지는 박스는 실제적으로 복수의 매우 다른 방법으로 현실화되는 논리 기능을 보여준다.
트리(402)의 탑레벨(404)은 시스템(400)의 관리 기능과 관련된다. 이러한 레벨(404)은 모든 컴퓨터의 데이터베이스(410)(도 12에 도시)를 가지고 있고 개인적 피어-투-피어 통신이 셋업되도록 허용되는지 여부를 제어한다.
보안은 또한 이러한 관리 레벨(404)로부터 제어된다. 더 낮은 레벨에서 개인적 통신 접속은 관리 레벨(404)로부터 인증되어야 한다; 그렇게 인증되면, 더 낮은 관리 레벨은 예를 들어 추가적인 접속을 만드는 것 이전에 그들간의 암호화 키를 협상한다.
관리 레벨(404)은 추가적인 접속이 만들어진 상세의 맞추어진 레벨로 통보받고 또한 더 낮은 레벨에서 발생하는 이벤트를 기록한다. 이러한 이벤트는 최소값에서, 네트워크에 각각의 시도된 접근을 포함한다.
관리 레벨(404)은 또한 시스템(400)의 제어 및 경영을 위해 매우 유용한 네트워크 작동과 관련하는 경영 레포트를 생산한다.
가장 낮은 레벨(408)에 "엔드 포인트"(412)가 존재한다. 이러한 것은 "소프트폰들"(VOIP 통보를 다루는 소프트웨어) 및 배치된 이메일 서버들을 포함한다. 그러나 엔드 포인트(412)는 또한 데이커 통신 도구의 다른 형태를 포함한다. 엔드 포인트(412)는 키 구성요소이다. 상기 엔드 포인트(412)는 시스템(400)에 접근할 수 있는 사용자의 컴퓨터상에 인스될되는 키 구성요소이고 그에 의해 제공된 통신 의 보안 방법이다. 사용자의 위치에서 제공되기 때문에, 각각의 엔트 포인트(412)는 본래적으로 안전하고, 따라서 엔드 포인트(412)에 통신의 저장은 어떤 방식으로 데이터 통신의 보안을 포함하지 않는다.
복수의 전송 서버(414)로 만들어진 소위 배분된 "전송 레이어"(406)는 관리 레벨(404) 및 엔드 포인트(412)간에 제공된다. 이러한 레이어(406)이 효과적으로 사용자 및 관리자에 보이지 않게 남아 있는 동안, 그것은 통신의 두개의 타입의 전송-즉, 어드레스 및 상태 목적지 통신 및 실제적 피어-투-피어 데이터 통신-을 손쉽게 하는 점에서 시스템(400)의 필수적 구성요소이다. 엔드 포인트(412) 및 관리자 층(404)이 전송층(406)을 포함하는 단지 전송 서버(414)를 통해 통신한다. 이것은 단순함 및 축소가능의 이점을 제공한다.
도 11을 언급하여, 관리 레벨(404)은 더욱 자세히 기술된다. 도 11에서 보여지는 예에서 관리 레벨(404)은 시스템(400)의 제어의 효과적인 관리를 가능하게 하는 계층적 트리구조를 가진다. 관리층의 분배된 성질은 도 11로부터 보여지고 단순한 중심적 위치로부터 구동하는 Amteus 전체적 관리단(416)이 계층의 탑에 존재하는 것이 확인될 수 있다. 그 등록된 사용자간에 통신을 제어하기를 바라는 예를 들어 회사 또는 정부 조직의 컴퓨터(도시되지 않음)에서 실행되는 클라이언트 관리단(418)이 도 11에서 보여지는 것으로 제공된다. 클라이언트-특정 위치에서 클라이언트는 도 11에서 보여지는 단순 클라이언트 관리단(418)을 구동한다.
도 11에서 보여지는 주어진 클라이언트를 위해 계층에서 다음 층은 지역 관리단(422)의 층(420)이다. 이러한 지역 관리단(422)은 분배된 전송층(406)을 통 해(단지 점선으로 표현된) 엔드 포인트(412)(EP1 내지 EP3)에 접속되어 있다. 관리(420)의 이러한 최저 레벨은 지리적으로 기반해 있고 이후 상세히 기술되는 로드 밸런스를 포함하는 몇 가지 이슈에 중요하다. 유사하게, 이러한 경우, 추가적인 엔드 포인트 EP4(412)는 전송층(406)을 통해 Amteus 전체적 관리단(416)에서 직접 실행되는 관리 함수를 가진다.
관리 레벨(404)이 작용하는 방법은 일예로 현재 기술되고 설명된다. 엔드 포인트(412)에 의해 표현되는 각각의 사용자는 하나의 관리단(416, 418, 422)-전형적으로 그것의 지역의 관리단(422)-에서 등록된다. 이러한 등록은 계층적 관리 트리상에서 통신되고 결과로서 등록 세부는 모든 등록단(418, 416)에서 더 높은 레벨에서 저장된다. 엔드 포인트(412)의 동작 상태를 함께 가진 등록 절차 동안 수집된 것처럼 이러한 관리단(418, 416)에 저장된 등록 정보는 사용자에 대해 모든 세부사항을 포함한다. 엔드 포인트(412)간에 피어-투-피어 통신을 허용하는지 여부에 대한 어떠한 결정이 사용자 등록 세부사항 둘다가 유용한 계층에 최저레벨에서 수용된다. 이러한 엔드 포인트(412)의 동작 상태내 결과의 변화는 더높은 레벨에서 관리단에 전해진다.
EP(엔드 포인트)(412)는 전형적으로 전화 및/또는 이메일 사용자이다. 도 11에서 보여지는 예에서, EP1(412)는 클라이언트의 런던 오피스에 기반한다. 그의 세부사항은 런던 지역 관리단(422) 및 더 높은 레벨인 모든 관리단(416, 418)에서 저장된다. EP2 및 EP3(412)는 클라이언트의 아테네 사무소에 기반한다. 그들의 세부사하은 아테네 지역 관리단(422) 및 더 높은 레벨인 모든 관리단(416, 418)에 저장된다. EP4(412)는 단지 Amteus에게만 Amteus 전체적 관리단(416)으로만 그가 등록되었다는 것만으로 알려진 개인적 Amteus 기부자이다.
EP2(412)가 EP3(412)와 통신하는 것을 원한다고 한다면, 아테네 지역 등록단(422)은 엔드 포인트 사용자들(412) 둘다를 알고 있으며 따라서 상기 요구가 지역적으로 아테네에서 아테네 관리단(422)에 의해 취급된다. 세부사항은 정보 목적으로 최상위레벨 관리단(416, 418)에 보내지나, 이러한 더 높은 레벨단(416, 518)은 희망하는 통신 채널을 셋업하는데 관계되지 않는다.
만일 EP1(412)이 EP2(412)와 통신하는 것을 희망한다면, 그는 런던의 그의 지역 관리단(422)에 그의 요구를 하게 될 것이다. 이러한 런던 지역 관리단(422)은 EP2(412)에 대해 아무것도 알지 못하고, 그래서 호출 셋업에 존재하는 것처럼 그것은 EP1의 상태를 변화시키고 상부 계층트리인 클라이언트 등록단(418)에 그의 요구를 전달한다.
클라이언트 등록단(418)은 호출에 대한 두개의 부분에 대해 알고 있어서, 그것은 희망하는 호출 셋업을 취급할 수 있다. 그것이 취급할 최근의 상태 정보이기 때문에 EP2(416)가 사용중인지를 알지만, 이것에 대한 구식이고 이후에 설명될 것처럼 음식이 조달될 가망이 있다. 만일 클라이언트 관리단(418)이 EP3(416)이 사용중이라고 한다면, 그것은 차례로 EP1(412)에 통보하는 런던 지역 관리단(422)에 통보한다. 셋업에 대한 요구는 실패로 끝난다.
그렇지 않다면, 클라이언트 관리단(418)은 또한 "호출 셋업"인 EP1 상태를 명시하고 아테네 지역 관리단(422)에 아래로의 요구를 통보한다. 아테네 지역 관 리단(422)은 EP2(416)가 현재 사용중이라는 것을 안다(즉, 클라이언트 관리단(422)는 사실 구식이다). 이러한 경우, 그것은 "사용중이라는", 실패 코드를 클라이언트 관리단(418)에 되돌려보내서, 이후 이전의 경우에서 통신 채널을 셋업하는 요구를 취소한다.
그렇지 않다면, 아테네 지역 관리단(422)은 호출 요구를 EP2(412)에 전한다. EP2(412)는 호출을 수락할 것인지 여부를 결정하고 적절한 응답을 EP1(412)로의 길을 따라 반대로 되돌려보낸다.
만약 EP1(412)가 EP4(412)와 통신 하기를 희망한다면, 유사한 프로세스가 발생한다. 이러한 경우, 최초의 요구가 지역 등록단(422) 및 클라이언트단(418)을 통해 Amteus 전체적 등록단(416)쪽으로 전해진다. Amteus 전체적 등록단(416)은 접속을 셋업하기 위해 EP4(412)와 직접 통신한다.
"지역하게"라는 용어는 지역적으로 서버에 근접함(locality)을 의미한다. 그러나 엄격한 의미로, 이 용어는 단지 서버 및 엔드 포인트가 그 서버에 등록된 엔드 포인트 간에 직접적 접속이 있어 엔드 포인트를 만들고 그 서버에 근접하게 한다는 의미이다.
도 12를 언급하여, 도 10의 계층(402)의 전송 레벨(406)은 계층 트리 구조내 각각에 접속된 전송 서버(414)로 만들어진다. 각각의 전송 서버(414)는 재발송 메시지를 저장하지 않고 한 위치(엔드 포인트)(412)에서 다른 곳으로 통신을 전송하는 것이 쉽도록 하는 책임을 진다. 계층화 트리의 상부에서, 메인 전송 서버(424)가 제공되고 이것은 관리 계층의 상부를 이루는 Amteus 전체의 관리(데이터베이스) 단(410)에 접속된다. 또한, 상시 대기 전송 서버(426)가 실패의 경우 메인 전송 서버(424)로의 백업으로서 제공된다. 이러한 지역 전송 서버(1, 2, 및 3)(428)는 메인 전송 서버(424)로 계층화의 다음 레벨(430)에 접속된 것으로 보여준다. 이러한 지역적 전송 서버(428)는 차례로 각각의 엔드 포인트(1.1, 1.2 및 3.1)(412)에 접속된다.
상기된 전송 레벨(406)은 미리 정의되지 않은 역학 구조를 보여준다. 또, 네트워크를 형성하는 전송 서버(414)를 함께 역동적으로 접속하기 위해 룰은 정의되고 제공된다. 또한, 도 10에서 다른층으로서 기능적으로 보여지는 관리 레벨(404)은 실제 전송 서버(406)의 계층적 네트워크에 병합되고 피어-투-피어 통신의 셋업에 사용된다. 마지막으로, 네트워크는 네트워크 보안을 증진시키는 빌트인 보안 오버레이를 가진다. 오버레이는 이 실시예에서 네트워크의 모든 노드에 적용되는 기능적인 룰로서 실행되고, 즉: 엔드 포인트(412)가 그 노드에 알려지지 않는다면 노드는 엔드 포인트(412)에 통신하는 것이 허용되지 않는다. 노드가 희망하는 엔드 포인트(412)의 동일함의 개인성을 알지 못하는 경우, 그것은 통신 및 계층적 트리에 대한 요구를 무시한다.
도 13을 참고하여, 각각의 전송 서버(414)는 더높은 레벨 전송 서버(414)에 클라이언트 링크(업링크)(430) 및/또는 관리(데이터베이스) 서버(410)에 클라이언트 링크(432)를 갖는다(둘다 도 14에 편의상 도시됨). 전송 서버(414)는 계층적 트리의 상부이고, 업링크(430)은 관리 데이터베이스 서버(410)이다. 반면에 그렇지 않다면 그것은 더 높은-레벌 전송 서버(414)이다. 도 12와 관련하여 상술된 엔 드-포인트(412)는 전송 서버 트리의 바닥에 존재한다. 각각의 전송 서버(414)는 또한 다운링크(434)-더 낮은 레벨 전송 서버(414) 및 엔드 포인트(412)가 서버(414)에 접속을 시작하는 것에 의한 서버 접속-를 가진다. 각각의 전송 서버(414)에 업링크(430)는 TCP/IP 클라이언트이다; 그리고 다운링크(434)는 TCP/IP 서버이다.
각각의 전송 서버(414)는 네트워크 어드레스 번역에 지배되지 않는 환경에서 구동한다. 이것은 각각의 전송 서버(414)가 그 자신의 전송 서버 ID(438)뿐만 아니라 역동적으로 할당되는 자기 자신의 IP 어드레스(436)를 가진다. 이것들은 그러한 특별 전송 서버(414), 그러한 엔드 포인트(412) 각각에 접속된 상태(444) 및 엔드 포인트(414)의 각각에 관련된 허가(446)에 접속된 엔드 포인트 ID의 리스트(442)를 함께 가지는 지역 데이터베이스(440)에 저장된다. 데이터베이스 서버(448)는 필요한 이러한 정보에 접근 및 업데이트하는 것이 제공된다. 데이터베이스(440)내 저장된 엔드 포인트 (사용자) 정보의 리스트는 이후 기술된다.
현재 온라인(444)인 지역 등록된 사용자의 ID의 편집인 데이터베이스(440)내 하나 및 그들에 대해 레코드된 시계를 가지는 그러한 지역 등록된 엔드 포인트(412)의 ID의 편집인 다른 것인 두개의 리스트는 제공된다. 특별한 엔드 포인트(412)가 접속되었으나 통신에 유용하지 않는 경우, 예를 들어 사용중인 경우, 시계는 기록된다. 시계는 목적지 엔드 포인트(412)의 상태를 모니터하고, 그것이 통신에 유용게 되었을 경우, 시계내 트리거 메카니즘(도시되지 않음)은 통지 프로세스를 시작하게 한다. 통지 프로세스는 메시지를 희망하는 목적지 엔드 포인트에 접속 상태의 변화를 관찰하는데 관심을 저장하는 엔드 포인트(412) 및 전송서버(414) 모두에 송신한다. 또한, 상태의 변화는 계층적 네트워크내 더 높은 레벨에 통지된다.
데이터베이스(440)는 엔드 포인트(412)를 위해 공개 암호화키(451)의 한세트를 저장한다. 이후 상술될 이것들은 다른 엔드 포인트(412)로부터 보내진 암호화된 메시지를 복호화하는데 사용된다.
전송 서버(414)는 또한 전송 서버(414)의 현재 지역의 위치를 결정하기 위해 위치 모듈(452)를 포함하고, 다르지만 인접한 전송 서버(414)에 접속을 확인하기 위해 하트비트 모니터(454)를 포함한다. 서버 제어 모듈(456)은, 데이터베이스 서버(448)와 같이, 이러한 링크, 모듈 및 데이터베이스의 모든 동작을 관리한다.
네트워크의 전송 서버(414)는 관리 시스템(404)(도 11에서 도시됨)에 의해 반드시 엔드 포인트에서 인증되어야 한다. 상술한 바와 같이, 각각의 전송 서버(414)는 데이터베이스(440)내 전송 서버(414)와 같이 행동하고 사용자 ID를 가지기 위해 허락을 가지는 자신의 입구를 갖는다.
전송 서버(414)는 위치 모듈(452)의 기능성에 의해 "위치 인식" 기능이 있다. 이것은 복수의 다른 방법으로 달성될 수 있다. 예를 들어, 하나의 간단한 방법이 위치 모듈이 구동되는 시스템의 현재 시간 영역이 결정될 수 있는 윈도우에 기초한 위치 모듈(452)를 위한 것이다.
하트비트 모니터(454)를 사용하여, 모든 전송 서버(414)는 일반적 하트비트를 그들의 모(母) 전송 서버(414)에 보낸다. 하트비트는 전송 서버의 등록된 접 속(로딩)을 고려하는 업데이트 정보를 포함하고 모(母) 및 자(子) 전송 서버(414) 간에 통신 링크의 범위를 확인하는 신호이다. 하트비트 모니터(454)의 목적은 시스템(400)의 로드 밸런스를 제어하는 것이다. 또한, 하트비트 정보는 현재 시작하는 (지역의) 전송 서버(414)에서 직접 등록되는 엔드 포인트(412)의 숫자의 카운트(사용 카운트)를 포함한다. 하트비트를 수신하는 동안, 각각의 (모(母)) 전송 서버(414)는 같은 레벨에 다른 전송 서버의 사용 카운트를 더하여 IP 어드레스의 리스트를 주는 메시지 및 다운링크의 포트에 응답한다. 그리하여 (도 12에서) 주된 전송 서버(424)는 전송 서버(414)로부터 하트비트를 수신하는 경우, 그것은 지역의 전송 서버(1 및 3)(412) 각각의 어드레스 및 사용 카운트에 응답한다.
도 14를 참조하여, 흐름도가 본 발명의 이러한 측면의 로드 밸런싱 과정(460)을 보여준다. 보여지는 바대로, 새로운 클라이언트(엔드 포인트(412) 또는 더 낮은 레벨 전송 서버(414))가 전송 서버(414)에 접속을 찾는 경우, 새로운 클라이언트의 하트비트 신호를 포함하는 요구가 전송 서버(414)에 의해 단계(464)에서 수신된다. 전송 서버(414)는 단계 466에서 자신의 저장된 사용 카운트(U1) 및 같은 레벨 및 가능한 지역적으로 근접한(예를 들어, 같은 시간 영역) 데에서, 다른 전송 서버(414)의 사용 카운트(U2, U3, U4)를 리트리브한다. 전송 서버는 단계(468 및 470)에서 그것의 사용 카운트(U1)과 같은 계층적 레벨에서 다른 대략의 전송 서버(414)의 카운트(U2, U3, U4)를 비교한다. 만약 그것의 사용 카운트(U1)이 그것의 피어(414) 사용 카운트(U2, U3, U4)보다 훨씬 더 높다면, 피어-투-피어 통신을 수행하기 위해 현재 최저의 사용 카운트를 가지는 전송 서버(414)에 접속하 라고 말하는 응답은 단계(472)에서 새로운 클라이언트에게 다시 전달된다. 현재의 전달 서버(414)와의 접속은 단계(474)에서 종결하고 로드 밸런싱 과정(460)은 단계(476)에서 종결한다. 그렇지 않으면, 접속 요구는 단계(478)에서 수취되고, 클라이언트의 사용자 카운트는 단계(480)에서 읽히고 전송 서버(414)의 지역 사용 카운트는 단계(482)에서 클라이언트의 카운트의 양에 의해 증진된다. 그 후 로드 밸런싱 과정은 종결된다.
복잡화의 더욱 정밀한 레벨에 이러한 기본적 원칙을 확장할 수 있다. 예를 들어, 한번 수신하는 전송 서버(414)가 그의 계층적 레벨 및 그의 지역적 위치에서 요구를 허용할 수 있다는 것을 결정한다면, 그것은 지역적으로 새로운 접속에 근접하고 그것을 다루는 능력이 뛰어난 더욱 낮은 레벨 전송 서버(414)가 있는지 여부를 조사하는 것이다. 만일 사용자가 가능한 전송 서버 트리의 끝에 접속되었다면 그것이 전체적인 시스템 수행에 도움을 주기 때문에, 이것은 유리하다고 생각된다. 이것은 피어-투-피어 통신의 다수가 밴드폭상에 과도한 또는 보통 지역인 IP 트래픽에 대한 목소리이기 때문이다. 따라서 이러한 메인 트래픽을 지역 전송 서버 레벨에 유지함으로써, 전체의 계층적 시스템(406)은 그렇지 않으면 시스템(400)을 상당히 아래로 미끄러지게 하는 이러한 트래픽에 짐을 지우게 된다.
새로운 접속을 받아들이는 어떠한 전송 서버(414)는 그 자신의 모(母) 전송 서버의 어드레스의 새로운 자(子) 사용자를 통보한다. 그것은 또한 모(母) 전송 서버(414)에 새로운 사용자의 접속을 통보한다. 모(母) 전송 서버(414)는 그후 새로운 사용자를 그것에 접속된다고 생각한다.
한번 접속되면, 새로운 사용자(412)는 메시지를 다음의 카테고리내 그것의 새로운 전송 서버(414)에 메시지를 전송하기 시작할 수 있다:
Figure 112007008736364-PCT00001
관리 요구
요구를 그 자신의 전송 어드레서/포트(438)와 접속한 후 전송 서버(414)는 그러한 요구를 그것의 모(母) 전송 서버(414)에 전송한다.
Figure 112007008736364-PCT00002
메시지는 접속된 전송 서버(414)를 향한다. 이것들은 TCP/IP에 대한 종전의 방식으로 보내지고, 이것은 특별한 취급을 필요로 한다.
Figure 112007008736364-PCT00003
메시지는 다른 엔드-포인트(412) 또는 그의 모(母) 보다 다른 전송 서버(414)를 향한다. 상기 메시지는 소스 및 목적지 엔드 포인트에 사용자ID를 포함한다. 상기 전송 서버(414)는 현재 접속된 사용자의 리스트(엔드 포인트)에 사용자ID를 조사한다. 이러한 리스트는 그 전송 서버(414)로 등록된 사용자의 리스트(442)를 조사하고 그들 각각의 상태(444)를 조사함으로써 만들어진다. 만약 그것이 사용자를 찾는다면, 가능한 하나 이상의 더 낮은 레벨 전송 서버(414)를 통해 메시지는 그 사용자에게 제공된다. 만약 사용자가 발견될 수 없다면, 메시지는 전송 서버의 모(母) 전송 서버(414)에 전송되고, 메시지는 전송 서버의 모(母) 전송 서버(414)에 전해진다. 만약 전송 서버 트리(424)의 상부가 도달되고 목적지가 발견되지 않는다면, 실패는 다시 소스쪽으로 전해진다. 이러한 프로세스는 효과적으로 트리의 상부 사용자 ID로부터 원래의 메시지 소스로 응답 메시지를 전달한다. 각각의 전송 서버의 모(母)(414)에 저장된 데이터를 체크하는 프로세스는 사용자의 각각의 등록이 트리의 상부가 모든 접속의 그림을 가지는 각각의 노드의 모(母)에 게 다시 전해지는 사실에 의존한다. 따라서, 만약 희망하는 사용자가 트리(424)의 상부에서 발견되지 않는다면, 사용자는 네트워크에 등록되지 못할 것이다.
엔드 포인트(412)가 그것의 직접적인 모(母) 전송 서버(414)에 접속을 잃는 경우, 그것은 조(祖) 전송 서버(414)에 접속을 시도한다. 조(祖) 전송 서버(414)는 원본의 레벨에 선택적 접속을 한다.
도 10의 계층화(402)의 엔드 포인트 레벨(408)에서, 각각의 엔드 포인트(412)는 그들의 모(母) 전송 서버(414)에 단일한 클라이언트 TCP/IP 접속을 가진다. 이러한 접속은 두개의 더 높은 레벨 전송 서버(414) 및 관리 서버(410, 404)에 접근을 위해 사용된다.
각각의 엔드 포인트(412)는 통신 접촉면(도시되지 않음)에 예를 들어 VoIP 통신을 쉽게 하는 사용자를 제공한다. 본 실시예에서, 각각의 엔드 포인트(412)는 또한 소위 "멀티미디어" 엔진(도시되지 않음)을 사용한다. 이러한 멀티미디어 엔진은 마이크, 스피커 또는 헤드폰, 웨이브파일 플레이어, 레코더, 비디오 플레이어 및 레코더를 포함한다. 멀티미디어 엔진은 멀티미디어 엔진의 기능은 상기 기술내 일반적이기 때문에 더이상 설명되지 않고, 당업자는 그러한 엔진을 구성하는데 더이상의 설명을 필요로 하지 않을 것이다.
도 15 및 16을 참조하여, 상기된 시스템(400)을 사용하는 피어-투-피어 접속을 설정하는 방법(500)은 아래 설명된다. 상기 방법(500)은 본질적으로, 제1 단계에서(도 15에서 기술됨) 상술된 엔드 포인트(412)간에 희망하는 피어-투-피어 접속 을 셋업하는 것이 가능한지 여부가 설정되고, 제2 단계에서(도 16에서 기술됨) 피어-투-피어 접속이 소스(412) 및 희망하는 목적지(412)간에 셋업되는, 두 단계의 프로세스이다. 한번 피어-투-피어 접속이 설정되면, 이러한 전용 UDP 채널(372)에 관한 실시예에서 소스(412) 및 목적지(412)간에 직접적 쌍방향 통신이 표준 인터넷 통신 프로토콜을 사용하여 안전한 방법으로 가능하다. 다음의 기술은 상기된 제1 및 제2 단계와 관련된다.
피어-투-피어(P2P) 통신은 엔드 포인트(412)간에 셋업된다. 현재의 실시예에서 이러한 통신은 오디오 및 이메일 데이터를 전송하는데 사용되나 다른 형태의 통신 또한 사용될 수 있다.
예를 들어, 사용자가 VoIP 전화기 호출을 다른 엔드 사용자에게 하기를 결정한 경우, 새로운 P2P 접속에 대한 필요는 처음으로 엔드 포인트(412)에서 생겨났다. 이러한 단계에서, 접속(소스)의 원본자는 희망하는 목적지의 네트워크 에드레스만을 알고 있다(타켓 사용자의 ID); 그는 타겟 사용자의 상태-즉 사용자가 온라인, 사용중 등인지-를 알고 있지 않다(그의 어드레스 책을 통해 그는 타겟 사용자가 현재 온라인 등인지 알지만, 그는 결코 현재의 상태를 확신할 수 없을 것이다).
도 15를 참조하여, 제1 단계를 실행하는 방법(500)은 단계(502)에서 전송 서버(414)에 "나(사용자 S)는 사용자 D와 통신하기를 원합니다"라는 형태의 요구를 발송하는 소스 사용자(412)로 시작된다. 전송 서버(414)는 접속된 사용자(412)의 리스트를 조사하고 단계(506)에서 사용자가 발견되는지를 확인하는 체크를 한다. 만약 그것이 사용자 D(412)가 접속된 것을 발견한다면, 그것은 단계(508)에서 사용 자 D(412)가 유용한지 여부를 체크한다. 만약 그것이 아니라면, 전송 서버(414)는 단계(510)에서 "실패 - 사용중"이라는 응답을 되돌려주고 단계(512)에서 사용자 D에 대항해 시계를 셋업한다; 마지막으로 사용자 S는 단계(514)에서 미리 지정된 시간주기를 기다리고 재접속을 재시도하거나 단지 사용자 D의 유용성 상태에서 변화에 반응하여 현재 전송 서버에 트리거된 시계의 통지를 기다린다. 그러나, 만약 사용자 D가 단계(508)에서 결정된 것처럼 유용하다면, 전송 서버(414)는 단계(516)에서 사용자 S 및 사용자 D 둘의 상태를 변화시켜 "진행중인 호출 셋업" 상태가 되도록 변화시킨다. 전송 서버(414)는 단계(518)에서 현재 전송 서버(414)보다 낮은 레벨에서 다른 전송 서버를 통해 사용자 D에게 요구를 제출한다. 이러한 점에서, 사용자 D는 단계(520)에서 발견되고 접속된 것으로 간주되고 프로세스(500)은 도 16과의 관계에서 이후 기술된다.
그가 통신을 위해 유용하게 되는 점에서 사용자 D가 이후 상태의 변경을 한다면, 이것은 사용자 D의 지역 전송 서버(414)에 통지되고 사용자 S을 위한 시계 셋업은 트리거된다. 사용자 S는 사용자 D의 유용성의 단계(514)에서 통지되고 제1 단계는 상기된 것과 같이 다시 한번 시작할 수 있다. 대체적으로 또는 협력하여, 사용자 S는 단계(514)에서 도 15에서 지적되는 바와 같이 스크래치로부터 프로세스(500)가 재시작되기 전에, 미리 결정된 양을 기다릴 수 있다.
단계(506)에 수행된 체크로부터 결정된 것과 같이 만약 사용자 D가 현재 전송 서버(TS)에 접속되지 아니었다면, 단계(552)에서 모(母) 전송 서버(414)가 존재하는지를 결정하기 위해 체크는 수행된다. 만약 모(母)가 존재한다면, 단계(524) 에서 모(母) TS(414)에 요구가 제출된다. 그 후, 모(母) 전송 서버(414)가 단계(526)에서 현재 전송 서버가 되었다고 간주되고 프로세스가 단계(504)에서 등록된 엔드 사용자(412)의 리스트를 체크하는 현재 전송 서버(414)를 계속한다. 만약 단계(552)에서 수행되는 체크에 의해 결정되는 것처럼 모(母) TS(414)가 존재하지 않는다면, 전송 서버는 단계(528)에서 응답을 접속 실패를 지적하는 엔드 포인트로 되돌려 보내고 상기 프로세스는 단계(530)에서 종결한다.
더 높은 레벨 전송 서버(414)로부터 전송 서버(414)에 도착하는 호출 요구는 사용자가 접속되지 않은 이벤트내 그것이 나온 곳으로부터 요구를 되돌려 보내기 보다는 실패가 되돌려지는 것을 제외하고 정확히 같은 방법으로 다루어진다.
도 16을 참고하여, 통신 프로세스(500)의 제2 단계가 기술된다. 한번 사용자 D가 접속되면, 그것은 현재 IP의 어드레스 및 포트 숫자를 피어-투-피어 통신을 쉽게하기 위해 직접 접속될 수 있는 사용자 S에 되돌려보낸다. 따라서, 만일 그것이 사용자 S로부터 호출을 받을 수 있는 경우 사용자 D가 여전히 온라인이고 유용하다면, 그것은 단계(532)에서 상태를 "셋업을 호출"하도록 변화시킨다. 사용자 D는 단계(534)에서 RINGING1 메시지를 항상 전송 서버(414)인 그의 모(母)에게 보낸다. 중간의 전송 서버(414)가 원본 호출 요구내에서와 같이 같은 메커니즘을 사용하여그것을 전송할 수 있기 위해, RINGING1 메시지는 항상 호출 원본자(사용자 S)의 사용자 ID를 포함한다.
단계(536)에서 RINGING1 메시지를 수신하는 동안, 전송 서버(414)는 우선 단계(536)에서 UDP(사용자 데이터그램 프로토콜) 채널(372)를 구성한다. 그것은 단 계(540)에서 UDP 채널의 외부의 IP 어드레스 및 포트 숫자를 포함하는 RINGING2 메시지를 구성하고, 단계(540)에서 이러한 메시지를 엔드 포인트 사용자 D 및 호출 원본자 엔드 포인트 사용자 S에게 보낸다. RINGING2 메시지가 피어-투-피어 접속을 셋업하는데 사용되기 때문에, RINGING2 메시지는 또한 RINGING1 메시지를 수신하는 전송 서버(414)의 사용자 ID를 포함한다.
전송 서버(414)는 결코 RINGING1 메시지를 전송하지 않는다. 그리하여 전송 서버에 도착하는 RINGING1 메시지는 항상 엔드 포인트(412)로부터 직접 발생한다고 생각되어진다.
엔드 포인트(412)가 단계(542)에서 RINGING2 메시지를 수신하는 경우, 엔드 포인트는 단계(544)에서 그것이 호출 셋업 상태에 있는지를 체크한다. 만약 그것이 아니라면, 그것은 단계(546)에서 모든 지명된 부분을 단계(530)의 호출 및 프로세스(500) 엔드에 리셋한다. 그렇지 않으면, 각각의 엔드 포인트(412)는 단계(548)에서 UDP 채널을 리셋하고 단계(550)에서 RINGING2 메시지에 상술된 포트에 주기적으로 메시지를 보낸다. 이것은 호출인에 가장 가까운 전송 서버(414)이다. 만약 일반적 네트워크 실패가 있지 않다면, 이 메시지의 대부분은 올바르게 도착한다.
사용자 D에 가장 가까운 전송 서버(414)가 다른 엔드 포인트의 UDP 채널의 UDP 네트워크 어드레스 및 포트 숫자를 포함하는 각각의 엔드 포인트(412)로부터 제1의 UDP 메시지를 수신하는 경우, 그것은 단계(552)에서 엔드 포인트의 UDP 채널(372)의 네트워크 어드레스 및 포트 숫자를 추출하고, 그들의 방화벽이 존재한다 면 이것은 각각의 엔드 포인트에 조차 도달한다(엔드 포인트가 처음에 전송 서버에 쓰기 때문에 일반적으로 엔드 포인트에서 방화벽 작용은 이것을 허용한다).
한번 전송 서버(414)가 두개의 엔드 포인트로부터 패킷을 수신하면, 그것은 그들의 UDP 포트가 외부로 어드레스되는 방법을 안다. 전송 서버(414)는 단계(554)에서 TALKDIRECT 메시지를 다른 엔드 포인트의 어드레스의 그것을 말하는 각각의 엔드 포인트(412)에 전송한다. 한번 이러한 UDP 어드레스가 단계(556)에서 수신된다면, 엔드 포인트(412)는 단계(556)에서 직접적 UDP 통신 채널(372)을 목적지 엔드 포인트(412)에 셋업하는 소스 엔드 포인트(412)를 가진 각각 다른이들과 통신을 할 수 있고, 프로세스(500)는 단계(530)에서 종결한다.
중요한 부분의 경우에, 상기 절차는 그러한 직접적 통신을 어려움 없이 설정되도록 할 수 있다. 그러나, 엔드 포인트에서 몇개의 방화벽의 작용과 조합한 네트워크 어드레스 번역(NAT)가 존재하는 곳에서 문제는 발생할 수 있다. 이러한 문제는 제1 실시예의 도 9a 내지 9i에서 보여지는 경우를 참조하여 이전에 기술된 많은 상황에서 극복될 수 있다.
접근은 이후 상술되고 NATs의 모든 다른 조합을 다루는 메커니즘(352, 358)또한 기술된다.
네트워크 어드레스 번역(NATs)(352, 358)은 번역 함수의 두개의 종류-대칭적 및 비대칭적-로 넓게 분류된다. 대칭적 NATs는 패킷의 목적지에 관계없이 같은 인터넷측 어드레스 및 포트 조합을 사용한다; 비대칭적 각각의 목적지를 위해 NATs는 같은 인터넷측 어드레스/포트 조합을 사용한다. 이것에 대한 이유가 정확히 무엇 인지는 명백하지는 않으나, 알려지지 않은 소스로부터 데이터 패킷을 받아들이지 않는 것이 현명하다는 확신에 기반해 있다고 생각되어진다.
이러한 NATs를 위한 필요성에 대한 짧은 생각은 다음을 가리킨다:
1. 수신인은 각각의 패킷의 출처를 확인할 수 있고, NAT를 위해 필요하지 않고 요구된다면 익명의 소스로부터 그것들을 쉽게 거절할 수 있다.
2. 인터넷 패킷내 IP 어드레스 및 포트가 쉽게 위조된다. NATs에 의한 그러한 엄격한 작용이 오랜 시간동안 합리적으로 유능한 해커를 막을 수 있을 것 같지 않다.
피어-투-피어 통신을 설정하는 것을 찾는 경우, 방화벽은 또한 문제를 발생시킬 수 있다. 일반적 방화벽 작용은 "너에게 말하기까지는 말하지 마라"라는 룰을 부여하는 것이다. 만약 A 및 B가 서로 이야기하기를 원한다면, A 또는 B가 먼저 이야기해야 한다. 다른 이는 응답할 수 있다. 그러나 만약 A가 먼저 이야기하고 B는 방화벽 뒤에 위치한다면, B는 그것이 A에게 쓰여질 때까지 패킷을 확인할 수 없을 것이다.
적절하게 민감한 방화벽 행동은 룰이 상기된 것처럼 실행되는 것을 명령한다. 많은 방화벽은 실제로 상기 룰을 "그에게 말하기 전에 이야기한 그는 결코 다시 들을 수 없을 것이다"와 같이 해석한다. 그러한 행동은 피어-투-피어 통신 채널을 설정하기 위해 시도하는데 있어 심각한 문제를 야기시킬 수 있다.
상기된 실시예에서 수행될 상황을 개선하는 몇몇의 절차가 있다. 첫째로, 비대칭적 NAT는 일반적으로 임의의 포트를 새로운 목적지를 쓰는데 오픈한다; 종종 그것은 원본의 포트 +1(또는 2, 3 등.-첫번째와 두번째 기재 사이에 그것이 몇번 발생했는지에 따라)이 될 것이다. 본 실시예에서, 비대칭적 NAT가 만나게 되는 경우, 이러한 가능성을 감추기 위해 RINGING2 메시지에서 언급된 포트 어드레스 상위의 몇몇의 연속적인 포트가 쓰여진다.
몇몇 제조업자는 방화벽/NATs가 일반적으로 그들의 작용이 지적되고, 보안 강제에 영향을 받고, 수정되는 것에 의해 uPnP(universal Plug 'n' Play)계면을 실행하는 것을 지적한다. 본 실시예는 전송 서버(414)에서 실행되는 uPnP 계면(도시되지 않음)을 포함한다.
경우에 비례하여, 엄격한 방화벽 실행 또는 2개의 NATs(352, 358)가 비대칭적이기 때문에 직접적인 피어-투-피어 접속을 수행할 수 없다. 이러한 경우, 본 실시예는 위탁된 중계자로서 행동하는 지역 전송 서버(414)에서 메시지가 튀어나가도록 조정된다. 지역 전송 서버(414)가 지역 비대칭의 NAT(352, 358)에 항상 알려지지 않기 때문에, 이것은 미지의 송신인의 이슈를 완화시켜 예를 들어 방화벽에 가장 엄격한 룰 조차 그러한 비직접적인 의사 피어-투-피어 통신을 막지 않을 것이다. 또한, 최소한의 분석 및 확실한 저장없이 믿을수 있는 중간자로서 작용하는 전송서버(414)에 의해 바운스된 패킷이 포워딩 되는 것을 확실하게하여 그러한 간접적인 통신 채널의 보안상의 가능한 감축이 최소화된다.
방화벽의 이디어틱한(idiotic)(매우 심각한) 해석이 만나는 경우에, 본 시스템은 한 방향으로 피어-투-피어 통신을 실행하고 다른 방향에 있는 지역 전송 서버(414)로부터 튀겨내도록 조정된다. 이러한 변화는 그것이 보안에 있어 감축을 최소화 할 수 있기 때문에 변화할 가치가 있다. 예를 들어, 이메일 전송의 경우에, 이메일이 직접 보내지는 것과 수취 증명이 다시 되돌려보내는 것을 조정하는 것은 유리하다.
시스템(10)이 그러한 비대칭의 NATs(352, 358)가 현존해야 하거나 엄격한 방화벽이 위치해 있어야 하는 것을 자동적으로 발견하는 방식은 이후 기술되어 있다. 도 16과 관련하여 상기된 것과 같이 상위 레벨의 관점으로부터 지역 전송 서버(414)가 두개의 엔드포인트(412)의 UDP 포트의 어드레스를 아는 경우, 그것은 그들에게 다른 엔드 포인트의 어드레스를 주면서 TALKDIRECT 메시지를 각각에 전송한다. 엔드 포인트(412)는 직접적으로 통신하는 것을 시도하고, 또한 타이머(셋업)를 셋업한다. 만약 패킷이 직접 수신된다면, 전송 서버(414)는 접속이 말하는 것이고 타이머는 정지되고 더이상 사용될 수 없다고 듣는다. 그러나 만약 타이머가 수신된 패킷이 없이 불이 붙는다면(즉 미리 정해진 시간의 경과하는 것), 추가적인 통신이 의도된 목적지 엔드 포인트(412)를 위해 직접적으로 지역 서버(414)에 보내지는 것을 지적하여, TALKTHROUGH 메시지가 전송 서버(414)에 송신되고 그때부터 다른 엔드 포인트(412)에 송신된다. 메시지는 그 후 희망하는 엔드 포인트에 지역인 상기 전송 서버(414)로부터 튀겨져 나아간다.
시스템(10)은 호출인이 상기 호출을 수취하기 전에 피어-투-피어 접속 셋업을 시작한다. 만약 호출이 수취되지 않으면, 그때 피어-투-피어 접속은 즉시 종료될 것이다. 본 시스템(10)은 호출이 수취될 때에만 프로세스를 개시시킨다; 예를 들면 timeout / TALKTHROUGH 방법이 실행된 경우. 음성 링크 설정에 곤란한 지연을 일으킬 수 있다. 그것은 또한 사용자가 로그인인 대부분의 호출/메일이 받아들여지는 경우이다.
본 발명의 제3 실시예는 도 17 내지 20을 참조하여 설명된다. 제3 실시예는 보안에 관련된 이슈를 제외하고는 제2 실시예와 유사하다. 또한 제3 실시예는 더욱 강화된 보안 시스템을 가진 각각의 노드에 저장된 허가(446)를 대체한다.
이전 기술의 불안정한 통신 시스템은 사용할 수 없다 - 등록된 사용자를 위하여 그것을 망치는 원하지 않는 사용자를 포착한다. 알려진 불안정한 제품은 사용자 수는 상위이다. 더 많은 사람들이 그 시스템을 사용하므로, 프로파일은 상승되어지고 그러므로 유명한 시스템 자체를 손상시키는 공격자들을 후퇴시킨다. 이러한 효과는 제어 시스템에 부정적인 피드백으로 작용한다.
제3 실시예는 개시부터 보안 조치를 만듬으로써 이러한 사이클을 감쇄시킨다. 공격자는 절대로 시스템(10)으로부터 완전히 제거될 수는 없으나 그들의 존재가 등록된 사용자들에게 시스템(10)의 유용성을 손상하게 하는 것을 방지하게 하기위해 만들어진 충분히 효과적인 보안 조치가 있다. 공격자들을 완벽하게 제거하는 시스템을 디자인하는 것은 디자이너를 파산의 결과로 이어질 수 있다는 것을 인식해야한다.
제3 실시예의 보안 요구사항을 아래에 열거하였다:
요구사항 1: 노드는 상기 시스템(10)에 인증되어야한다.
요구사항 2: 노드를 통해 TS 링크에 따른 통신은 기밀이어야한다.
요구사항 3: 클라이언트는 상호간에 인증되어야한다(상호 인증).
요구사항 4: 클라이언트를 통한 클라이언트로의 통신에 따른 접속은 기밀이어야한다.
보안 요구사항 1 및 2에 만족
다음의 대부분의 기술은 Kerberos 인증 시스템인 RFC(1510)로부터 취해진다. Kerberos는 사용자 또는 호스트 신원의 검증에 사용되는 인증 메커니즘이고, 또한 Microsoft Windows Server 2003상에 시스템을 위해 우선되는 인증 방법이다. 네트워크 접속이 그들 사이에 열려지기 전에, Kerberos 인증 프로토콜은 서버와 다른 서버사이, 클라이언트와 서버사이에서 상호 인증에 대한 메케니즘을 제공한다. 프로토콜은 클라이언트와 서버사이의 초기 상호작용은 불안정한 통신 네트워크상에서 발생한다. 그러한 불안정한 환경은 공격자가 클라이언트 또는 서브로서 쉽게 취할 수 있고 합법적인 클라이언트 및 서버사이에서 통신을 쉽게 간섭하거나 도청할 수 있는 인터넷으로 예시될 수 있을 것이다.
Kerberos 기술은 공유된 비밀을 포함하는 인증 기술에 강하게 의존하다. 기본적 개념은 상당히 간단하다: 만약 비밀이 두 사람만이 알고 있다면, 그때 둘 중 한 사람은 다른 사람이 그 비밀을 알고 있다는 것을 확인함으로써 다른 사람의 신분을 인증할 수 있다. 패스워드는 비밀키 암호를 사용함으로써 비밀을 유지한다. 패스워드를 공유하는 것보다, 통신 파트너들은 암호키를 공유하고, 그들은 이 키의 인식을 사용하여 다른 사람의 신분을 검증한다. 작용하는 테크닉을 위해, 공유키는 대칭이어야한다. 즉, 싱글키는 암호화와 복호가 가능해야 한다. 한 부분은 정보의 한부분을 암호화함으로써 키의 인식을 증명하고, 다른 부분은 정보를 복호화 에 키의 인식을 증명한다.
기본적인 원리는 다음처럼 작용할 수 있는 인증자에 의해서 실행된다. 단순한 프로토콜, 비밀 키 인증을 사용하는, 어떤 사람이 외부 통신과 참여를 원할경우에 시작된다. 접근을 허락받고, 이 사람은 비밀 키에있는 암호화된 정보의 한부분에서 인증자로 참여한다. 인증자의 정보는 프로토콜이 사용되어지는 시간마다 달라야한다. 다른면에서 오래된 인증자는 대화를 도청한 사람에 의해서 다시 재생 될 수 있다.
인증자를 수취하는 동안, 문을 보호하는 사람이 그것을 복호화하고 복호화가 성공적인지는 내부있는 것으로부터 알게 된다. 만약 성공적이면, 문지기는 인증자를 제시하는 사람이 정확한 키를 가진 것으로 안다. 단지 두 사람만이 정확한 키를 가진다; 문지기 중 하나, 그래서 인증에 제시하는 사람이 또 다른 하나가 되어야한다.
만약 외부인이 상호 인증을 원한다면, 동일한 프로토콜이 약간 다르게 반대로 수행될 수 있다. 문지기는 원래의 인증자로부터 정보의 한 부분을 추출하여, 새로운 인증자에 그것을 복호하고, 그때 문밖에에서 기다리는 사람에게 새로운 인증자를 준다. 문밖의 사람은 그때 문지기의 인증자를 복호할 수 있고 원본과 결과를 비교할 수 있다. 만약 일치하면, 문밖의 사람은 문지기가 원본을 복호할 수 있다는 것을 알게 될 것이고, 그래서 그는 정확한 키를 가져야만 한다.
본 실시예에서 Kerberous 기술이 사용되어지는 방법의 기본적인 원리는 도 17에서 나타내었다. 여기서 서버(602), 클라리언트(604) 및 키 분배 중심(606)이 제공된다. 클라이언트(604)는 서버(602)에 접속되길 원하고 서버(602)에 유효한 접속을 설정하기 위한 티켓을 얻기 위해서 우선 키 분배 중심(KDC)에게 신청을 한다. 티켓은 이미 시스템(600)에 인증된 서버(602)에 클라이언트(604)를 인증하는데 효과적으로 이용된다.
아래 리스트된 약어(acronym)는 도 18 및 19를 참조하여 기술되는 본 제3 실시예의 보안 방법을 상술하는데 사용된다:
TS = 전송 서버(Transport Server)(414).
NODE = 조합된 CLIENT and TS. 다른 기능이 유용하나NODE(608)에 대해 기술되는 특별한 역할인 면에서 감소되는 경우에는, 때론 단순하게 CLIENT나 TS로 언급된다.
AS = 인증 서버(Authentication Server)(610)
KEY = NODE(608)에 어사인된 패스워드에게 기초한 값
TGS = 서버(612)를 수여하는 티켓
REALM(614) = AS(610)을 공유하는 NODE(608)의 커뮤니티
첫째로, 다수의 NODE(608)를 포함하는 특정한 REALM(614)과 조합된 인증서버(610)가 유용하다는 것이 추정된다. AS(610)는 지역 데이터베이스(616)에서 각각 등록된 NODE(608)의 {사용자명, 패스워드} 한쌍과 등가물을 저장한다. 두 번째, 네트워크에 접속하기는 바라는 NODE_A(608)에 있는 클라이언트는, 등록하는KDC(610)의 웹 서버(620)에 접속하는데 인터넷 브라우져(618)를 사용하고, 따라서 사용자명 "UserA"(622) 및 패스워드 "pwdA"(624)를 얻는다(도 19에서 보는것처럼).
단계의 기초 역학은 다음의 약어를 참조하여 기술된다:
NODE_A = 사용자명(A)를 가진 NODE(608).
TGT_A = NODE_A에 티켓(626)을 주는 티켓.
S_A = AS(610) 및 NODE_A(608) 사이에 세션 키(Session Key)(628).
K_AB = NODE_A 및 NODE_B 사이에 공유키(Shared Key)(630).
TICKET_AB = NODE_A가 NODE_B에 접근을 허용하는 티켓(Ticket)(632).
XK_Y = 키(K_Y)에 의해 암호화되는 값(X).
도 18 및 19를 참조하여, 인증 프로세스는 다음처럼 시스템(600)에 인증되고 기동되는 NODE_A(608)로 개시된다:
1. NODE_A(608)는 TS(414)에 접속되고 AS_REQ(634) 메시지를 NODE_A(608)가 속하는 REALM(614)를 위해서 AS(610)에게 보낸다(전형적으로 메시지는 TS(414)가 AS(610)에 접속될 때까지 계층적 네트워크를 통해서 전송된다).
2. AS(610)는 세션 키 S_A(628)를 생성하고 pwdA(624)로 암호화된 TGT_A(626) 및 S_A(628)이 포함된 AS_RESP 메시지(636)로 응답한다.
추가적인 인증보안을 위해 AS(610)는 암호화된 TIMESTAMP(도시되지 않음)로 응답하는 것이 가능하다. 이것은 AS(610)가 네트워크 시간 프로토콜(NTP) 또는 간단한 NTP 접속를 통해서 시간의 신뢰된 소스를 받는 것과, NODE(608)가 시스템(600)을 인증할 때 AS의 시간에 동기화되는 것을 추정한다. NODE(608)는 현재 Win32tick 카운트와 AS-제공된 TIMESTAMP를 관련시키고, 자체의 TIMESTAMP 값을 생성이 필요한 언제라도 그들의 새로운 현재시간을 계산해야한다.
한번 NODE_A(608)이 인증될 경우, 그것이 네트워크에 조인하기 위해서 "링크" 되어야하는 TS(414)의 이름의 네트워크에 의해서 통보된다는 것과(즉 VoIP calls를 수취하고 만들 수 있다), 타겟 TS(414)는 NODE_B(608)라고 불리운다는 것이 추정된다. 시간스탬핑(timestamping)이 사용될 경우, 시퀀스는 다음과 같다:
1. TGS_REQ 메시지(638)를 TGT_A(626) 및 NODE_B(608)의 이름을 포함하는 AS(610)에 보낸다.
2. AS(610)는 K_AB(630)(S_A(628) 하에서 암호화된) 및 TICKET_AB(632)을 포함하는 TGS_RESP 메시지(640)으로 응답한다.
3. NODE_A(608)는 K_AB(630)의 값을 추출하고, {TIMESTAMP}K_AB로서 현재의 TIMESTAMP 값을 계산하여 NODE_B(608)에 인증자를 생성한다. NODE_A(608)는 AP_REQ 메시지(642)를 {TIMESTAMP}K_AB 및 NODE_B(608)쪽으로 TICKET_AB(632)를 포함하는 NODE_B(608)에 보낸다.
4. NODE_A(608)가 그것에 링크하기는 것을 허락하는 NODE_B(608)를 위해, NODE_B는 K_AB(630)를 추출하기 위해서 TICKET_AB(632)를 복호해야 하고 그때 TIMESTAMP를 검증하는 것이 가능하기 위해 {TIMESTAMP}K_AB를 복호한다. 이것은 성공적이라고 가정하면, NODE_B(608)는 NODE_A(608)가 NODE_B(608)를 인증하는 것을 허락하는 {TIMESTAMP + 1}K_AB을 포함하는 AP_RESP 메시지(644)로 응답한다.
만약 타임스탬핑(timestamping)이 사용되지 않는다면 상기된 작동 방법은 당업자에게 이미 자명 할 것이고 따라서 타임스탬핑(timestamping) 없이 상기 결과의 시퀀스가 수행되는 방법의 명확한 설명은 더 이상 기술하지 않는다.
이러한 점에서, NODE_A(608)는 현재 NODE_B(608)를 통해 network에 링크되어 있다(실제, NODE_A에 있는 클라이언트(604)는 NODE_B(608)에 있는 TS(414)에 의해서 공급되어 지고 있다).
상기 실행은 기본적 프로토콜, 메시지 및 데이터 구조를 재활용하는 Kerberos 인증 시스템의 개조된 sub-set에 기초로 하나, 본 발명의 인증기술을 피어-투-피어 통신의 전후관계에서 사용에 효율적으로 만드는 기능성에 차이가 있다.
보안 요구사항 3 및 4에 만족
다음의 약어는 인증 프로세스의 단계를 기술하는데 사용된다:
DH_PK_A = CLIENT_A를 위한 Diffie-Hellman 공개 키(646).
DH_SK_A = CLIENT_A를 위한 Diffie-Hellman 비밀 키(648).
DH_PK_B = CLIENT_B를 위한 Diffie-Hellman 공개키(650).
DH_SK_B = CLIENT_B를 위한 Diffie-Hellman 비밀키(652).
K_AC = NODE_A 및 NODE_C 사이에 공유키(654).
도 19를 참조하여, 네트워크에 접속된 NODE_A(608)에 CLIENT_A(604)가 NODE_C(608)에서 CLIENT_C(604)를 호출하기 원할 경우, 그때 본 실시예는 CLIENTS(604)가 각자 인증하는 것과, 그들(피어-투-피어 접속 같은 것) 사이에서 설정된 직접적인 접속상에 이후의 통신이 공유키 K_AC(654)에 의해 암호화 된다는 것을 요구한다.
CLIENT와 CLIENT 간의 가능한 인증의 두가지 타입이 고려된다. 이러한 것중 첫째는 CLIENT A(604) 및 CLIENT C(604) 사이에서 접속이 설정되기 전에 NODE_A(608) 및 NODE_C(608) 사이에서 존재해야 하는 인증된 링크의 체인에 효과적인 피기 백(piggy-backs) 및 “지시에 의한 인증”으로 기술된다. 그 절차는 다음과 같다:
1. CLIENT_A(604)는 Diffie-Hellman(DH) 키 한쌍을 생성하고 DH_PK_A(646)의 값을 포함하는 CLIENT_C(604)에 메시지를 보낸다. 상기 메시지는 그들을 접속하는 인증된 링크(656)의 체인을 통해 보내진다(통신 채널 셋업 프로토콜의 한부분으로서).
2. 메시지를 수취할 경우, CLIENT_C(604)는 인증된 소스에 의해서 보내져야 하는 것으로 추정된다(CLIENT_C(604)가 그 소스를 전형적으로 인증하기 위한 위치가 아니라 할지라고, 이러한 인증의 형식, "지시에 의한 인증"에 대해 암시적인 더 약한 라벨이다).
3. CLIENT_C(604)는 Diffie-Hellman(DH) 키 한쌍을 생성하고 DH_PK_B(650)의 값을 포함하는 CLIENT_A(604)에 메시지를 보낸다. 상기 메시지는 인증된 링크의 같은 체인을 통해(어쩌면 다른 채널을 통해 가능할 지라도) CLIENT_A(604)에 보내진다.
4. CLIENT_A(604) 및 CLIENT_C(604) 둘은 현재 독립적으로 공유된 키 K_AC(654)를 계산하는 위치에 있다. DH_PK_A(646) 또는 DH_PK_B(650)을 가로채는 쪽은 K_AC(654)를 계산하는 위치에 있지 않고 CLIENT_A(604) 또는 CLIENT_C(604)를 구현하지 않을 것이다.
5. CLIENT_A(604) 및 CLIENT_C(604)는 진보된 암호화 시스템(AES) 또는 비 밀의 통신을 허락하는 등가물을 위한 벌크 암호화 키를 생성하기 위해 K_AC(654)를 사용한다.
전체적으로, "지시에 의한 인증"이 진정한 인증은 아니나, 차라리 다음에서 말하는 것과 같다:
“비록 내가 이것을 검증하는 수단이 없더라도, 나는 그들의 이름을 X라고 말하는 인증된 상대, X에게 비밀 호출을 하였다”(VoIP 호출이더라도 이것은 이메일보다는 명확하게 우려할 사항이 아니다).
또한 CLIENT_A(604) 및 CLIENT_C(604)를 서로 인증하도록 허락하는 TICKET(632)을 생성하기 위해 AS(610)를 사용하는 것이 가능하다. 그러나 통신 채널 셋업의 부분으로서 이러한 동작을 수행하는 일시적인 부담은 과도한 것이다. 그러므로 "지시에 의한 인증"은 이러한 대안에 우선하여 사용되어진다.
두번째 가능한 인증의 타입은 외부적으로 Amteus 시스템(600)에 제공되어지나, Amteus 시스템(600)이 상호작해야 하는 것이다. 외부적으로 제공되어진 공개키 기반(PKI)은 유용하고 그 CLIENTS는 공개키 가능(PKE)이라고 추정한다. 이러한 환경에서, 상기 프로토콜은 CLIENT_A(604) 및 CLIENT_C(604) 사이에 보내진 메시지 디지털방식으로 승인하는, RSA 암호의 알고리즘으로로 확장되어질 것이다. 따라서 강한 인증이 가능해 질 것이다(당해 기술분야에서 잘 알려지 있기 때문에, PKI의 논의는 여기에서 더 이상 제공하지 않을 것이다).
본 실시예는 덜 보안적이나 더욱 실용적인 "지시에 의한 인증" 접근을 사용한다.
인증 서버 복제
이전의 Kerberos 시스템 기술에서, 인증의 위한 보안 데이터베이스의 관리는 가능한 단순하게 유지된다. 그리고 본 발명에서는 동일한 원리들이 고수된다. 본 발명의 특징은 다음과 같다:
- 안정된 데이터만을 유지하는 시도 - 어떠한 세션 또는 호출-관련 데이터의 저장을 회피한다(즉, 역학적 데이터).
- 카운트의 생성, 카운트 세부사항의 변경 또는 카운트의 삭제를 위한 마스터 읽기/쓰기 복제를 유지.
- 주기적으로 다수의 읽기만 가능한 카피에 마스터 카피를 복제.
크로스 구조( Cross - realm ) 인증
본 발명에서 복수의 REALMS(614)가 있을 수 있고, 이것은 인증 시스템(404)에 계층적 방식으로 조직되어진다. 이점에 있어서, 다른 REALMS(614)에서 NODEs(608)간의 인증은 수행되어진다.
Cross-realm 인증은 상술된 현존하는 TGS (Ticket Granting Service) 시스템(600) 상에 효과적으로 피기백(piggy-backs)된다. REALM_A(614)내 NODE_A(608)가 REALM_B(614)내 NODE_B(608)로 링크되기를 원하면, 그때 TGS_B(638, 340)이 REALM_A(608)를 위해 AS(610)에 등록될 필요가 있다. 이런 경우, NODE_A(608)는 단계(634)에서 새로운 링크를 수행하는 NODE_B(608)로 보내는 TICKET(632)를 얻기 위해 TGS_B로 보내지는 TGS_A로부터 TGT(626)를 요구한다.
realms(614)이 계층적으로 조직되더라도(도 21 참조), 일반적으로, 두개의통 신하는 realms(614)이 단지 한방향으로 등록되는 것보다는 상호간에 등록되는 것은 여전히 필요하다.
Cross-realm 인증과 공인은 아래에 더욱 자세하게 기술하고 있다. 그러나 본 실시예에서 사용되는 NODE 보안 동작의 간단한 개관은 도 20a 및 20b를 참조하여 기술된다.
일반적인 용어로, NODE(608)는 서브시스템의 집합이고, 도 20a 및 20b에서 설명된 관련된 서브셋(sub-set)이다. 접속이나 링크는 NODE(608)로/로부터 형성된다. NODE-NODE 암호화 및 그리고 영구적인 배열과 연합된 암호키(630, 654)인 링크를 요구되지 않고 오래가지 못할 수 있는, 식별은 간단한 접속 사이에서 만들어진다.
도 20a 및 20b는 동일한 서브시스템을 포함한 두 개의 NODE(608)를 보여준다(즉, 그들은 같은 실행가능한 것의 다른 경우이다). 모(母) NODE(608)는 데이터 Client(DC)(656)이 데이터 서버(DS)(612)에 접속되어 있고 KDC(610)은 활성화되어 있다는 면에서, 주 NODE이다. 자(子) NODE(608)는 DS 접속이 없고, 그래서 DC(656) 및 KDC(610)는 존재하고 비활성이다. 주 NODE(608)는 그것의 자(子)로부터 수신된 모든 보안 요구 사항인 보안 서비스(660)의 사용에 의해 다루어진다.
CLIENT(604) 및 TS(414)는 핸들(도시되지 않음)을 사용하는 SS(660)와 대화한다. 모(母) NODE(608)에 CLIENT 접속/링크(66)이거나 자(子) NODE(608)로부터 TS 접속/링크(664)이던지 간에, 핸들은 각각의 접속 또는 링크로 결합되어 있다(즉, 각각의 활성 서버 스트림).
NODE(608)가 시작할 때 DC(656)는 DS(658)에 로그인과 접속을 시도할 것이다. 만약 성공적이라면, KDC(610) 또한 초기화 될 것이다. CLIENT(604)가 동일한 REALM(614)에서 다른 NODE(608)에 접속할 수 없기 때문에-추후 확인, 주 NODE(608)는 자체의 KDC(610)에게 인증을 받을 필요가 없다.
대부분의 경우, CLIENT 서브-시스템은 모(母) NODE(608)로 링크(662)를 설정하기 하기 위해 시도할 것이다(링크가 cross-realm인 경우, 이것은 주 NODE(608)를 위해 또한 진실이다-추후에 확인). 상기 SS(660)는 모(母) NODE(608)로부터 받은 프로세스 보안 응답뿐만 아니라 모(母) NODE(608)로 보내기 위한 보안 요구의 형성을 지시한다. 링크가 모(母) NODE(608)로 설정될 때, CLIENT(604)는 링크 메시지의 암호와 복호를 하기 위해서 SS(660)로 호출을 할 수 있다. 만약 SS(660)로 적절한 호출을 하는 것보다 CLIENT(604)가 보안 메시지를 받는다면; 만약 NODE(608)가 메시지의 타겟이 아니라면 그때 CLIENT(604)는 선택된 목적지 NODE(608)가 도착하고 메시지가 소모될 때까지 낮은 계층을 통해서 TS(414)로 메시지를 발송한다.
자(子) NODEs(608)이 TS(414)로 메시지를 전달한다. 만약 TS(414)가 보안 메시지로서 메시지를 인식한다면, 그때 적절한 호출이 SS(660)로 보내진다; 만약 호출이 성공적이거나 타겟이 계층 상향을 한다면, 상기 TS(414)는 모(母) NODE(608)로 이동하기 위해 CLIENT(604)로 보안 메시지를 발송한다.
활성화된 KDC(610)(DS(658)에 접속된)이 NODE(608)에서 이용될 수 있는 것은 주 NODE(608)이기 때문이다. TS(414)에서 자(子)로부터 받은 보안 요구는 NODE(608)에 의해서 만족되어야 하고 상위로 전파하지 않아야 한다.
알림(Note): 가장 단순한 실행은 CLIENT(604)가 링크 셋업의 관리하기 위해서 특정 상태를 임명하는 것이다. 상기 SS(660)는 CLIENT(604) 또는 TS(414)로 ㅋ콜백(callbacks)을 하지 않을 것이다. 서브-시스템의 강한 통합이 예상되고, CLIENT(604)와 TS(414)는 보안 요청과 응답의 관리를 위한 상태를 유지해야 한다.
REALM(614)은 위에서 기술한 것처럼 한 세트의 등록된 사용자이고(Windows Domain와 유사한) 여기서 사용자 각자는 그 REALM(614)(전형적으로는 웹 서버(620)을 통해)에 등록되고 REALM(614)을 위해 DS(612)에 유지(도시되지 않음)되는 카운트(도시되지 않음)를 가진다.
도 21을 참고하여, DS(Data Server)(612)는 특정한 REALM(614)에 대한 인증 데이터를 모두 보유한다. 그리고 이 데이터는 생성되어지는 REALM(614)을 외부로 전파하지 않는다. 주 NODE(666)는 REALM(614) 위한 효과적으로 보안 루트이고 보안 요구는 상위 계층으로 전파가 허용되지 않는다.
동적 데이터의 상위, 하위 계층으로의 전파를 하기 위해서, 어떤 수단이 하위 REALM(614)에 있는 자(子) NODE(668)와 좀더 상위인 REALM(614)에 있는 알맞은 모(母) NODE(670)로 조인되는 것이 요구된다 - 트리 위상(topology)의 특색은 단지 링크(672)가 요구되는 것과 같다. 도 20 및 21은 본 발명에 의해 제시된 해법을 보여주고 있다. REALM A(614)에 대한 주 NODE(666)는 상위 REALM B(614)에 있는 모(母) NODE(670)와 링크가 허락된다. 이러한 링크(674)는 카운트가 DS B(612)에서 셋업되기 때문에 REALM A(614)의 주부(666)를 REALM B(614)에 인증되는 것을 허락하는 것이 가능하여 링크(674)는 생성된다.
크로스 구조 링크(cross-realm link)(672) 때문에, REALM A(614)에서 REALM B(614)까지 및 REALM C(614) 하위까지 전파하기 위한 데이터는 호출이 가능하다. 크로스 구조 VoIP를 만드는 NODE X(608)가 NODE Y(608)로 호출이 가능하기 위해서 허락되어진다.
크로스 구조 링크가 얻어지는 방법을 설명하는 상한 시나리오는 지금 기술된다.
주 노트( Primary NODE ):개시
데이터 서버(DS)(612)가 이미 작동된다고 가정한다. 주 NODE(666)는 DS(612)에 인접하여 개시하고, 전형적으로 DS(612)를 로그인하는 것과 KDC에 대한 키(628)를 발생하는 것을 허락하기 위한 명령 논의로 공급된다(제2 NODE는 동일한 논의로 실행된다).
1. 부트스트랩(Bootstrap) 시퀀스는 지역 DS(612) 로그인 하기 위해 DC(Data Client)(656)에게 지시한다.
2. 부트스트랩 시퀀스는 절차 보안 서비스::두문자어()를 호출한다. KDC(610)는 키를 만들고 DC(656)와 악수(handshake)를 설정한다.
3. 사용자는 CLIENT(604)를 모(母) NODE(670)에 링크하는 것을 허락하기 위해 {사용자명, 패스워드}를 입력한다.
4. CLIENT(604)는 보안서비스::보안콘텍스생성() 절차를 통해 모(母) 노드(656)에 새로운 접속을 위한 핸들을 얻는다.
5. CLIENT(604)는 AS_REQ 메시지(634)를 형성하기 위해서 보안서비스::AsReq 생성 단계를 호출한다. 그리고 모(母) NODE(670)에 AS_REQ 메시지(634)를 송신한다.
6. CLIENT(604)는 AS_REP 메시지(636)를 수신하고 보안서비스::프로세스AsRep() 단계에 그것을 전송한다.
7. CLIENT(604)는 연결되기를 바라는 NODE의 ID를 가지고 보안서비스::TgsReq()생성 단계를 호출하여, SS(Security Service)(660)이 적당한 TGS_REQ 메시지(638)를 생성할 수 있다. TGS_REQ 메시지(638)는 모(母) NODE(670)에 송신된다.
8. CLIENT(604)는 TGS_REP 메시지(6)를 수신하고 보안서비스::프로세스TgsReq() 단계에 그것을 전송한다.
9. 이 시점에서 CLIENT(604)는 다른 모(母) NODE(670)에 재접속하거나, 링크 상태에 존재하는 접속을 촉진할 것이다(그러나, 두 가지 경우 중에서, 타겟 NODE는 BuildTgsR() 단계 호출내 명명되는 NODE가 되어야한다). CLIENT(604)는 보안서비스::ApReq()생성 단계를 호출한다. AP_REQ 메시지(642)를 구성하기 위해, CLIENT(604)는 모(母) NODE(670)를 전송한다.
10. CLIENT(604)는 AP_REP 메시지(644)를 받고 SecurityService로 통과한다. 이러한 요청이 성공적으로 완료되면, SS 660는 link 672에서 암호/해독 작용을 모(母) NODE(670)에 제공하기 위해서 충분한 security context를 가져야 한다.
Non - PrimarvNODE : 개시
1. NODE(608)는 DS 로그인 논의를 공급하지 않으므로 부트스트랩 시퀀스는 지역 DS(612)에 로그인하기 위해 DC(656)를 지시하지 않는다.
2. 부트스트랩 시퀀스는 단계 보안서비스::시작() 를 호출한다. KDC(610)는 키 생성에 따른 파라미터를 공급하지 않고 DC(656)는 DS(612)에 접속되지 않는 것을 지시하지 않는다.
3. 사용자는 동일한 REALM(614)에서 CLIENT(604)를 모(母) NODE에 링크하는 것을 허용하는 {사용자명, 패스워드}를 입력한다(링크가 주 NODE(666)에 접속되거나 그렇지 않은 경우).
4. CLIENT(604)는 단계 보안서비스::보안문맥생성()을 통해 모(母) NODE에 새로운 접속에 대한 핸들을 얻는다.
5. CLIENT(604)는 모(母) NODE에게 AS_REQ 메시지(634)를 보내고 AS_REQ 메시지(634)를 형성하기 위해서 단계 보안서비스::생성AsReq()를 호출한다.
6. CLIENT(604)는 AS_REP 메시지(636)를 수신하고 단계 보안서버스::프로세스AsRep()에 그것을 전달한다.
7. CLIENT(604)는 접속을 원하는 NODE(608)의 ID를 가진 단계 보안서비스::생성TgsReq()를 호출한다. 그래서 SS(660)는 적당한 TGS_REQ 메시지(638)를 형성할 수 있다. TGS REQ 메시지(638)는 모(母) NODE로 송신된다.
8. CLIENT(604)가 TGS_REP 메시지(640)을 받고 그것을 단계 보안서비스::프로세스AsRep()으로 전달한다.
9. 이 때, CLIENT(604)는 다른 모(母) NODE에 링크상에 존재하는 접속을 진행하거나 재접속을 할 것이다(그러나 어느 경우에나, 타겟 NODE는 과정 생성 TgsReq()호출내 명명된 NODE(608)이 되어야 한다). CLIENT는 CLIENT(604)가 모(母) NODE에 송신하는 AP_REQ 메시지(642)를 구성하기 위해서 단계 보안서비스::생성ApReq()를 호출한다.
10. CLIENT(604)는 AP_REP 메시지(644)를 수신하고 그것을 단계 보안서비스::프로세스ApRes()에 전달한다. 이러한 호출을 성공적으로 완수한 경우, SS(660)는 모(母) NODE 링크상에서 암호/복호의 작동을 지원하기 위한 필요한 보안 문맥(context)을 가져야 한다.
NODE : 자(子) NODE 로부터 AS _ REQ EH TGS _ REQ 요구를 수신
주 NODE(666)는 초기화되고 보안 요구를 받을 수 있는 KDC(610)를 가진 것으로 가정한다.
1. TS(414)는 AS_REQ 메시지(634)를 자(子) NODE(668)로부터 수신한다. 만약 접속/링크가 보안 문맥을 가지고 단계 보안서비스::복호링크데이터가 메시지의 복호를 위해 호출된다.
2. TS(414)는 단계 보안서비스::프로세스AsReq()에 AS_REQ 메시지(634)를 전달한다. 요구를 완료하기 위해서, KDC(610)는 사용자명을 AS_REQ 메시지(634)로 부터 추출하고 DS(612)에서 보유된(해쉬된) 패스워드를 요청는데 그것을 사용한다(DC(656)을 통해).
3. 성공적이라면, 과정 보안서비스::프로세스AsReq()는 AS_REP 메시지(636)를 반환한다(note: 보안 문맥은 SS(660)가 요구를 처리 할 때는 필요없다- 이것은 SS(660)이 응답을 처리할 때는 다르다) .
4. TS(414)는 AS_REQ 메시지(634)를 보내는 AS_REP 메시지(636)를 송신하는 자(子) NODE(668)로 전달한다. 만약 주 NODE가 TGS_REQ 메시지(638)를 수신한다면, 동일한 단계가 따른다(현재 링크된 NODE(608)에 (해쉬된) 패스워드가 DS(612)로부터 요구되는 경우는 제외).
Non - Primary NODE : 자(子) NODEs 로부터 AS REQ 또는 TGS REQ 를 수신.
1. TS(414)는 자(子) NODE(668)로부터 AS_REQ 메시지(634)를 수신한다. 만약 접속/링크가 보안 문맥을 가지면, 과정 보안서비스::복호링크데이터()는 메시지 (634)를 복호하기 위해 호출된다.
2. TS(414)는 AS_REQ 메시지(634)를 액티브 KDC(610)가 유용하지 않다는 것을 지적하기 위해 적당한 에러 코드를 반환하는 단계 보안서비스::프로세스AsReq()에 전달한다.
3. TS(414)는 AS_REP 메시지(636)를 모(母) NODE(670)로 전달하기 위한 CLIENT(604)로 AS_REP 메시지(636)를 루트를 정한다.
Primary or Non - Primary NODE : AP REQ 수신
AP_REQ 메시지(642)를 수신하는 어떤 NODE(608)는 성공적으로 그것을 지역적으로 처리하거나 에러 메시지를 반환하여야 하며, 그것을 전달할 수 없다.
1. TS(414)이 자(子) NODE(668)로부터 AP_REQ 메시지(642)를 받는다. 그에 의한 링크는 이 접속에 유용하지 않고 그래서 메시지 복호도 필요없다.
2. TS(414)는 단계 보안서비스::프로세스AsReq()에 AP_REQ 메시지(642)를 전달하여, 반송에 대한 적절한 AP_REP 메시지(644)를 생성시키고 메시지(642)를 처리 하기 위해 지역 NODE 패스워드를 사용한다. 만약 단계 보안서비스::프로세스AsReq() 호출이 성공하면, 전체 보안 문맥은 설정되고 자(子) NODE(668)로 접속은 링크 상태에서 촉진된다.
3. TS(414)는 AP_REP 메시지(644)를 자(子) NODE(668)에 반환한다.
Primary or Non - Primary NODE : 모(母) NODE 에서 TGS REP 또는 AS REP 를 수신
주 NODE(666)에 있는 CLIENT(604)는 AS_REP 메시지(636) 또는 TGS_REP 메시지(640)를 수신하는 경우, 주 NODE(666)는 TGS_REQ 메시지(638) 또는 원본 AS_REQ 메시지(634)의 소스가 되어야 한다. 이것은 이미 개시의 경우에서 언급했다(존재하는 보안 문맥은 없어야 한다).
TGS_REP 메시지(640) 또는 AS_REP 메시지(636)를 받은 NODE(608)가 주 NODE(666) 아니라면, 그때 요구는 적당한 자(子) NODE(668)로 전달하기 위해 TS(414)에 루트를 결정한다. 이런 경우, 모(母) NODE(670)에 링크를 위해 보안 문맥이 존재하여야 하고, 단계 보안서비스::복호링크데이터()는 상기 수신메시지를 복호하기 위해 호출된다. 링크(672)에서 자(子) NODE(668)까지 보안 문맥을 포함하던지 포함하지 않는 경우 (자(子) NODE(668)는 AS_REQ 및 TGS_REQ 메시지(634)를 NODE(608)에 링크할 경우(638)에서 상위 KDC(610)까지 보내야 한다.).
위에서 SecurityService::DecryptLinkDataO같은 여러개의 단계를 인용한 설명이라고 해도, 이러한 단계의 구체적인 세부는 그들의 기능이 위의 기능성의 셋아웃과 문맥이 주어진 도구에 비해 상대적으로 사소한 것으로 제공되는 것은 아니다. 그러므로, 이것은 기술적인 설명과 지식의 한 부분이 되는 것이다.
위의 발명은 push mechanism을 사용하여 기술하고 있다. 온라인에서 등록된 사용자의 최신의 상태를 보내기 위해서. 그러나, 대안 발명에서, 이것은 메일 서버가 이메일을 보낸 송신인을 확인하거나 DS로부터 발신인의 상태 정보를 요청할 때 pull mechanism에 의해서 수행될 수 있다.
본 발명은 위에서 기술한 구체적인 발명에 제한하지 않는다. 예로 들면, 보내지는 이메일 메시지는 개별적으로 암호화된 각 부분과 복합적인 부분으로 분리 될 수 있다. 그때 각 부분은 전송서버 메커니즘(mechanism)으로 개별적으로 보내질 수 있다. 각 부분은 독립적으로 목적지로 루트가 결정되고 의도한 수신인에서 재조합과 복호가 될 수 있다. 이러한 장점은 특정한 이메일의 성공적인 해독과 도청으로 그 메시지를 노출하지 않는 것이다. 메시징 보안의 개선을 위한 강력한 방법이다. 한 개의 이메일의 텍스트는 보내는 메시지의 특정 부분을 얻기 위해 샘플 될 수 있다. 다섯개의 TSMs는 사용될 때 모든 5번째의 이메일 텍스트 5개의 이메일 메시지 중에 하나를 생성하기 위한 샘플이 된다. 나머지 이메일 메시지는 모든5번째에서 샘플링 될 거고 첫 번째 메시지로부터 다른 오프셋(offset)도 가질 것이다. 또한 유선 네트워크를 사용하는 것보다는, 본 발명에서는 무선 텔레통신 네트워크를 사용했다는 것(예, WIFI), 또한 컴퓨터보다는, PDA와 이동전화기가 피어-투-피어 통신 시스템에서 목적지 통신 장치와 소스로 사용될 수 있다는 것이 특징이다.

Claims (116)

  1. 데이터 통신 매체를 통해 제1 원격지 컴퓨터와 제2 원격지 컴퓨터 사이에서 이메일 통신과 같은 보안 피어-투-피어 데이터 통신을 수행하는 방법으로서,
    각각의 원격지 컴퓨터의 데이터 통신 매체로의 접속의 어드레스 상세 및 현재 상태를 수신하는 단계;
    상기 제1 원격지 컴퓨터에서 데이터 통신을 생성하는 단계;
    상기 제2 원격지 컴퓨터의 현재 접속 상태를 체크하는 단계; 및
    상기 제2 원격지 컴퓨터의 접속 상태가 현재 데이터 통신 매체에 접속되어 있음을 표시하는 경우에만, 데이터 통신 중에 어떠한 저장도 없이 상기 제1 원격지 컴퓨터로부터 상기 제2 원격지 컴퓨터로 직접 데이터 통신을 송신하는 단계
    를 포함하는 통신 방법.
  2. 청구항 1에 있어서, 상기 수신 단계는 임의의 원격지 컴퓨터의 접속 상태에 변경이 있을 때마다 반복되는, 통신 방법.
  3. 청구항 1에 있어서,
    현재 상태를 저장하는 데이터 서버로부터 상기 제2 원격지 컴퓨터의 접속 상태를 요청하는 단계를 더 포함하며,
    상기 수신 단계는 상기 요청 단계에 응답하여 수행되는, 통신 방법.
  4. 이전 청구항들 중 어느 한 항에 있어서,
    상기 제1 원격지 컴퓨터의 상기 데이터 통신 매체로의 접속의 어드레스 상세 및 현재 상태를 데이터 서버로 제공하는 단계
    를 더 포함하는, 통신 방법.
  5. 이전 청구항들 중 어느 한 항에 있어서,
    상기 제2 원격지 컴퓨터만이 수신시 통신을 복호화할 수 있도록, 상기 제2 원격지 컴퓨터에 관련된 정보로 상기 데이터 통신을 암호화하는 단계를 더 포함하는, 통신 방법.
  6. 청구항 5에 있어서, 상기 수신 단계는 상기 암호화 단계를 수행하는 것을 목적으로 상기 제2 원격지 컴퓨터에 관련된 정보를 수신하는 단계를 포함하는, 통신 방법.
  7. 이전 청구항들 중 어느 한 항에 있어서, 상기 제1 원격지 컴퓨터는 상기 제1 원격지 위치에서의 복수 개의 지역적으로 상호 접속된 보안 컴퓨터들을 포함하며, 상기 생성 단계는 상이한 컴퓨터에서 상기 수신, 체크 및 송신 단계에 대해 수행되는, 통신 방법.
  8. 이전 청구항들 중 어느 한 항에 있어서,
    서로 통신하기 위하여 원격지 컴퓨터의 능력에 관련된 허가(permission) 세트를 저장하는 단계;
    상기 제2 원격지 컴퓨터와 통신하기 위하여 상기 제1 원격지 컴퓨터의 허가를 체크하는 단계; 및
    상기 체크 단계가 상기 제1 원격지 컴퓨터가 상기 제2 원격지 컴퓨터와 통신하기 위한 허가를 갖는 것을 표시하는 경우에만, 상기 송신 단계가 발생하는 것을 허락하는 단계
    를 더 포함하는, 통신 방법.
  9. 이전 청구항들 중 어느 한 항에 있어서, 상기 데이터 통신에서 지정된 의도된 수신인(intended recipient)의 아이덴티티(identity)가 상기 제2 원격지 컴퓨터임을 검증하는 단계를 더 포함하는, 통신 방법.
  10. 이전 청구항들 중 어느 한 항에 있어서,
    상기 제2 원격지 컴퓨터의 접속 상태가 현재 데이터 통신 매체를 통해 메시지를 수신할 수 없음을 표시하는 경우, 상기 데이터 통신을 지역적으로 일시 저장하고, 상기 체크 단계 이후에 소정 시간 간격 동안 대기하는 단계; 및
    그 후 상기 체크 단계와 송신 단계를 반복하는 단계
    를 더 포함하는, 통신 방법.
  11. 이전 청구항들 중 어느 한 항에 있어서,
    상기 제1 원격지 컴퓨터로부터 상기 제2 원격지 컴퓨터까지의 데이터 통신의 전송을 평가하는 단계를 더 포함하고, 전송이 실패한 경우,
    상기 송신 실패의 원인을 결정하고, 결정된 원인에 따라,
    상기 제1 원격지 컴퓨터에서 송신 실패 통지를 생성하는 단계; 또는
    소정 시간 간격 동안 대기하고 상기 송신 단계를 반복하는 단계 중 하나
    를 실행하는, 통신 방법.
  12. 이전 청구항들 중 어느 한 항에 있어서,
    상기 데이터 통신을 복수개의 개별 데이터 메시지로 분할하는 단계를 더 포함하고,
    상기 송신 단계는 상기 데이터 메시지 각각을 개별적으로 상기 제2 원격지 컴퓨터에 전송하여, 상기 데이터 통신 처리의 보안을 개선하는 단계를 더 포함하는, 통신 방법.
  13. 이전 청구항들 중 어느 한 항에 있어서, 상기 데이터 통신은 VoIP(Voice over IP) 통신을 포함하는, 통신 방법.
  14. 데이터 통신 네트워크를 통해 서버를 포함하는 제1 원격지 컴퓨터와 제2 원 격지 컴퓨터 사이에서 이메일 통신과 같은 보안 피어-투-피어 데이터 통신을 수행하는 통신 서버로서,
    각각의 원격지 컴퓨터의 데이터 통신 네트워크로의 접속의 어드레스 상세 및 현재 상태를 수신하는 수신 수단;
    상기 제1 원격지 컴퓨터에서 데이터 통신을 생성하는 메시지 생성 모듈;
    상기 제2 원격지 컴퓨터의 현재 접속 상태를 체크하는 체크 모듈; 및
    상기 제2 원격지 컴퓨터의 접속 상태가 현재 데이터 통신 네트워크에 접속되어 있음을 표시하는 경우에만, 데이터 통신 중에 어떠한 저장 없이 상기 제1 원격지 컴퓨터로부터 상기 제2 원격지 컴퓨터로 직접 데이터 통신을 전송하는 전송 모듈
    을 포함하는 통신 서버.
  15. 통신 시스템에 있어서,
    청구항 14항에 따른 복수개의 통신 서버; 및
    데이터 통신 네트워크에 의해 복수개의 통신 서버에 접속 가능한 데이터 서버를 포함하고,
    상기 데이터 서버는 상기 통신 서버 각각의 상기 데이터 네트워크로의 현재 접속 상태를 각각의 통신 서버의 현재 네트워크 어드레스와 함께 수신, 대조 및 저장하고, 이 정보 중 적어도 일부를 복수개의 통신 서버에 포워드하여 복수개의 통신 서버 사이에서 피어-투-피어 통신이 가능하도록 동작시키는, 통신 시스템.
  16. 청구항 15에 있어서, 중앙 데이터 서버는 UDP(User Datagram Protocol)을 이용하여 복수개의 통신 서버의 현재 어드레스에 대한 조사를 수행하는, 통신 시스템.
  17. 데이터 통신 네트워크를 통해 제1 및 제2 사용자 컴퓨터 사이에서 이메일 통신과 같은 보안 피어-투-피어 데이터 통신을 설정하는 데 기여하는 통신 서버로서, 상기 서버는 복수개의 통신 서버로 구성된 서버 네트워크 내의 부여된 계층 레벨에서 제공되며, 상기 서버는:
    상기 통신 서버가 상기 서버 네트워크 내의 다른 계층 레벨에 있는 다른 통신 서버에 동작 가능하게 접속할 수 있도록 하는 접속 수단;
    복수 개의 지역 사용자 컴퓨터를 통신 서버에 등록하는 등록 수단; 및
    등록된 지역 사용자 컴퓨터 각각의 등록 상세를 저장하는 데이터 저장 수단 - 상기 등록 상세는 각각의 지역 사용자 컴퓨터의 상기 데이터 통신 네트워크로의 접속의 어드레스 정보 및 현재 상태를 포함함 -
    을 포함하며, 상기 접속 수단은 상기 서버 네트워크의 다음 상위 계층 레벨의 인접 통신 서버에 상기 저장된 등록 상세를 포워딩하고, 계층적 네트워크의 하위 레벨에서의 접속된 통신 서버에 대한 임의의 지역 사용자 컴퓨터의 등록 상세를 수신 및 저장하는, 통신 서버.
  18. 청구항 17에 있어서, 상기 저장된 등록 상세는 상기 통신 서버의 서버 네트워크 아이덴티티, 적어도 하나의 등록된 지역 사용자 컴퓨터의 서버 네트워크 아이덴티티 및 상기 지역 사용자 컴퓨터와 상기 통신 서버의 현재 접속 상태를 포함하는, 통신 서버.
  19. 청구항 17 또는 18에 있어서, 상기 저장된 등록 상세는 계층의 하위 레벨로부터의 통신 서버의 서버 네트워크 아이덴티티 및 하위 레벨 통신 서버의 등록된 지역 사용자 컴퓨터의 서버 네트워크 아이덴티티를 포함하는, 통신 서버.
  20. 청구항 18 또는 19에 있어서, 상기 저장된 등록 상세는 지역적으로 등록된 사용자 컴퓨터 각각의 전역 네트워크 어드레스를 포함하는, 통신 서버.
  21. 청구항 17 내지 20 중 어느 한 항에 있어서, 상기 저장된 등록 상세는 지역적으로 등록된 사용자 컴퓨터 각각의 공개 암호 키를 포함하는, 통신 서버.
  22. 청구항 17 내지 21 중 어느 한 항에 있어서, 상기 접속 수단은, 상기 제2 사용자 컴퓨터로의 접속 설정 요청 수신 시에, 상기 제2 사용자 컴퓨터의 지역 등록을 위한 데이터 저장을 체크하고, 상기 제2 사용자 컴퓨터의 아이덴티티가 지역 데이터 저장체 내에 저장되는 경우에 요청을 수락하는, 등록 체크 수단을 포함하는 통신 서버.
  23. 청구항 22에 있어서, 상기 등록 체크 수단은, 상기 제2 사용자 컴퓨터가 지역적으로 등록되어 있음이 발견되지 않은 경우, 상기 접속 수단이 상기 요청을 인접 통신 서버에 포워드하도록 지시하는, 통신 서버.
  24. 청구항 22 또는 23에 있어서, 상기 접속 수단은 등록된 사용자 컴퓨터의 상태에 대해 데이터 저장체를 체크하는 상태 체크 수단을 더 포함하고, 상기 접속 수단은 상기 제2 사용자 컴퓨터가 등록되고 접속될 수 있음을 표시하는 상태를 갖는 경우, 상기 제2 사용자 컴퓨터와의 통신 설정을 검색(seek)하는, 통신 서버.
  25. 청구항 22 내지 24 중 어느 한 항에 있어서, 상기 접속 수단은 상기 제2 사용자 컴퓨터로의 접속 요청을 수락하는 것에 응답하여 상기 제2 사용자 컴퓨터의 상태를 갱신하는, 통신 서버.
  26. 청구항 22 내지 25 중 어느 한 항에 있어서, 상기 접속 수단은 상기 제2 사용자 컴퓨터로의 접속 요청 수락에 응답하여 상기 제1 및 제2 사용자 컴퓨터의 데이터 통신 상태를 설정하는, 통신 서버.
  27. 청구항 17 내지 26 중 어느 한 항에 있어서, 상기 제2 사용자 컴퓨터로의 접속 요청에 응답을 구축하는 응답 수단을 더 포함하며, 상기 응답 수단은 상기 제2 사용자 컴퓨터의 현재 네트워크 어드레스를 상기 제1 사용자 컴퓨터에 전송하고, 상기 제1 사용자 컴퓨터의 현재 네트워크 어드레스를 상기 제2 사용자 컴퓨터에 송신하는, 통신 서버.
  28. 청구항 27에 있어서, 상기 응답 수단은 상기 제2 사용자 컴퓨터의 전역 네트워크 어드레스를 결정하는, 통신 서버.
  29. 청구항 28에 있어서, 상기 전역 네트워크 어드레스는 UDP 채널 어드레스를 포함하는, 통신 서버.
  30. 청구항 17 내지 29 중 어느 한 항에 있어서, 상기 데이터 저장체는 서로 통신하기 위하여 원격지 컴퓨터의 능력에 관련된 허가(permission) 세트를 더 포함하고; 상기 서버는 상기 제1 사용자 컴퓨터가 상기 제2 사용자 컴퓨터와의 통신이 허용된지 여부를 결정하기 위하여 상기 저장된 허가 세트를 이용하는 수단을 더 포함하는, 통신 서버.
  31. 데이터 통신 네트워크를 통해 복수개의 사용자 컴퓨터 중 선택된 개체들 사이에서 이메일 통신과 같은 보안 피어-투-피어 데이터 통신을 수행하기 위한 통신 시스템으로서,
    서버 네트워크에 계층적으로 접속된 청구항 17에 따른 복수개의 통신 서버를 포함하며, 상기 통신 서버 각각은 상기 서버 네트워크의 노드를 나타내고, 상기 서버 네트워크는 상기 복수개 중 선택된 개체들 사이의 통신을 설정하도록 지원하는 복수개의 사용자 컴퓨터에 접속 가능한, 통신 시스템.
  32. 데이터 통신 네트워크를 통해 제1 및 제2 사용자 컴퓨터 사이에서 이메일 통신과 같은 보안 피어-투-피어 데이터 통신의 설정에 기여하는 방법으로서, 상기 방법은 복수개의 통신 서버로 구성된 서버 네트워크 내의 부여된 계층 레벨의 통신 서버 상에서 구현되며, 상기 방법은:
    상기 서버 네트워크 내의 다른 계층 레벨에서의 통신 서버들에 동작 가능한 네트워크 접속을 설정하는 단계;
    복수 개의 지역 사용자 컴퓨터를 상기 통신 서버에 등록하는 단계; 및
    등록된 지역 사용자 컴퓨터 각각의 등록 상세를 저장하는 단계 - 상기 등록 상세는 지역 사용자 컴퓨터 각각의 어드레스 정보 및 상기 데이터 통신 네트워크로의 현재 접속 상태를 포함함 -
    를 포함하며, 상기 설정 단계는 상기 서버 네트워크의 다음 상위 계층 레벨의 인접 통신 서버에 상기 저장된 등록 상세를 포워딩하는 단계와, 계층적 네트워크의 하위 레벨에서의 접속된 통신 서버에 대한 임의의 지역 사용자 컴퓨터의 등록 상세를 수신 및 저장하는 단계를 포함하는, 통신 설정 방법.
  33. 데이터 통신 네트워크를 통해 전송자 컴퓨터와 의도된 수신인 컴퓨터 사이에 서 이메일 통신과 같은 보안 피어-투-피어 데이터 통신을 지원하는 피어-투-피어 통신 메시지의 의도된 수신인 컴퓨터를 검색하는 방법으로서, 상기 방법은 통신 서버의 계층 네트워크내에서 구현되며, 상기 방법은:
    지역 서버에 데이터 통신 요청을 송신하는 단계 - 상기 요청은 의도된 수신인 컴퓨터의 아이덴티티 및 송신인 컴퓨터의 아이덴티티를 포함함 - ;
    상기 의도된 수신인이 상기 지역 서버에 주지된지 여부를 결정하는 단계;
    상기 의도된 수신인이 지역 서버에 주지된 경우, 상기 의도된 수신인에 관한 저장된 상세를 리트리브(retrieve)하고, 상기 상세를 다시 상기 송신인 컴퓨터에 송신하는 단계;
    상기 의도된 수신인이 지역적으로 주지되지 않은 경우, 상기 서버 네트워크의 다음 상위 계층 레벨의 인접 통신 서버에 상기 요청을 포워드하고, 상기 인접 통신 서버가 상기 지역 서버가 되는 단계; 및
    상기 의도된 수신인이 발견되거나 계층 네트워크의 최상위의 서버가 체크될 때까지 상기 결정, 리트리브 및 포워드 단계를 반복하는 단계
    를 포함하는, 수신인 컴퓨터 검색 방법.
  34. 청구항 33에 있어서, 상기 의도된 수신인 컴퓨터가 식별되지 않고 상기 계층 네트워크의 최상위에 도달된 경우에, 상기 송신인 컴퓨터에 접속 실패를 되돌려 통지하는 단계를 더 포함하는, 수신인 컴퓨터 검색 방법.
  35. 청구항 33 또는 34에 있어서, 상기 의도된 수신인 컴퓨터가 식별이 된 경우에, 상기 의도된 수신인 컴퓨터의 접속 상태를 체크하는 단계를 더 포함하는, 수신인 컴퓨터 검색 방법.
  36. 청구항 35에 있어서, 상기 의도된 수신인 컴퓨터로의 접속이 이용 불가능한 경우에, 상기 송신인 컴퓨터에 접속 실패를 되돌려 통지하는 단계를 더 포함하는, 수신인 컴퓨터 검색 방법.
  37. 청구항 36에 있어서, 상태 변화 가능성을 고려하여 소정 기간 대기하는 단계 및 그 후 전송, 결정, 리트리브, 포워드 및 반복 단계를 다시 실행하는 단계를 더 포함하는, 수신인 컴퓨터 검색 방법.
  38. 청구항 33 내지 37항 중 어느 한 항에 있어서, 상기 리트리브 단계는, 상기 의도된 수신인이 상기 통신 서버에 주지되나 지역적으로 등록된 것은 아닌 경우, 상기 의도된 수신인이 등록된 계층의 하위 레벨에 위치된 통신 서버에 상기 요청을 전송하는 단계를 포함하는, 수신인 컴퓨터 검색 방법.
  39. 청구항 38에 있어서, 상기 리트리브 단계는 저장된 상기 의도된 수신인의 상세의 일부로서 지역적으로 등록된 서버로부터 의도된 수신인의 네트워크 위치를 리트리브하는 단계를 포함하는, 수신인 컴퓨터 검색 방법.
  40. 청구항 33 내지 39 중 어느 한 항에 있어서,
    소망된 의도된 수신인 컴퓨터를 발견하는 데 향후 이용하기 위하여 서버에서 관찰 기능(watching function)을 저장 및 실행하는 단계 - 상기 관찰 기능은 상기 지역 서버에 추가된 임의의 신규 컴퓨터의 아이덴티티와 소망된 의도된 수신인 컴퓨터의 아이덴티티를 비교하는 단계와 일치시에 상기 전송자 컴퓨터에 이를 통지하는 단계를 포함함 - 를 더 포함하는, 수신인 컴퓨터 검색 방법.
  41. 청구항 33 내지 40에 있어서, 상기 송신인 컴퓨터가 상기 소망된 의도된 수신인 컴퓨터와의 통신이 허가된지 여부를 결정하기 위하여 저장된 허가 세트를 이용하는 단계 및 상기 저장된 허가가 그러한 통신을 가능하게 하는 경우에만 상기 전송 단계가 실행되도록 허락하는 단계를 더 포함하는, 수신인 컴퓨터 검색 방법.
  42. 데이터 통신 네트워크를 통해 전송자 컴퓨터와 의도된 수신인 컴퓨터 사이에 이메일 통신과 같은 보안 피어-투-피어 데이터 통신을 설정하는 방법으로서, 상기 설정 방법은 복수개의 통신 서버로 구성된 계층적 서버 네트워크 내에서 이행되며, 상기 설정 방법은:
    청구항 33 내지 41 중 어느 한 항에 따른 의도된 수신인 컴퓨터를 검색하는 방법;
    상기 의도된 수신인 컴퓨터의 현재의 전역 통신 어드레스를 상기 송신인 컴 퓨터에 통신하는 단계;
    상기 송신인 컴퓨터의 현재의 전역 통신 어드레스를 상기 의도된 수신인 컴퓨터에 통신하는 단계; 및
    상기 송신인 및 상기 의도된 수신인 컴퓨터 사이에 피어-투-피어 통신 채널을 설정하기 위한 전역 통신 어드레스를 이용하는 단계
    를 포함하는, 통신 설정 방법.
  43. 청구항 42에 있어서,
    서로 통신하기 위하여 원격지 컴퓨터의 능력에 관련된 허가 세트를 저장하는 단계;
    상기 의도된 수신인 컴퓨터와 통신하기 위한 상기 송신인 컴퓨터의 능력에 관련된 저장된 허가 세트를 체크하는 단계; 및
    상기 체크 단계가, 상기 송신인 컴퓨터가 상기 의도된 수신인 컴퓨터와 통신하기 위한 허가를 갖는 것을 표시하는 경우에만 상기 제1 및 제2 통신 단계와 전송 단계가 발생하는 것을 허락하는 단계
    를 더 포함하는, 통신 설정 방법.
  44. 청구항 42 또는 43에 있어서, 상기 송신인 컴퓨터와 상기 지역 서버 사이에 제1 직접 채널을 설정하는 단계를 더 포함하는, 통신 설정 방법.
  45. 청구항 44에 있어서, 상기 제2 통신 단계는 상기 제1 직접 채널을 통해 수행되는, 통신 설정 방법.
  46. 청구항 42 내지 45 중 어느 한 항에 있어서, 상기 의도된 수신인 컴퓨터와 상기 지역 서버 사이에 제2 직접 채널을 설정하는 단계를 더 포함하는, 통신 설정 방법.
  47. 청구항 46에 있어서, 상기 제1 통신 단계는 상기 제2 직접 채널을 통해 수행되는, 통신 설정 방법.
  48. 청구항 44 내지 47 중 어느 한 항에 있어서, 제1 또는 제2 직접 채널을 설정하는 단계는 제1 또는 제2 UDP(User Datagram Protocol) 직접 채널을 포함하는, 통신 설정 방법.
  49. 제1 및 제2 사용자 컴퓨터 사이에 이메일 통신과 같은 피어-투-피어 데이터 통신을 설정하는 데 이용하는 전송 서버로서,
    상기 제1 사용자 컴퓨터로부터 전송 서버에 등록된 상기 제2 사용자 컴퓨터에 대한 접속 요청을 수신하는 수신 수단;
    상기 제2 사용자 컴퓨터에 대한 현재 접속 상태를 검증하는 검증 수단;
    상기 제2 사용자 컴퓨터의 현재 접속 상태가 현재는 상기 제2 사용자 컴퓨터 와 피어-투-피어 통신이 설정될 수 없음을 표시하는 경우, 상기 요청의 상세를 관찰로서 저장하는 데이터 저장체; 및
    상기 제2 사용자 컴퓨터의 현재 접속 상태가 이제는 상기 제2 사용자 컴퓨터와 피어-투-피어 통신이 설정될 수 있음을 표시하는 경우, 상기 검증 수단에 응답하여, 상기 제2 사용자 컴퓨터의 온-라인 상태를 표시하는 메시지를 상기 제1 사용자 컴퓨터에 송신하는 응답 수단을 포함하며,
    상기 검증 수단은 상기 제2 사용자 컴퓨터에 대한 현재 접속 상태를 주기적으로 체크 및 갱신하고, 갱신이 상기 제2 사용자 상태가 온라인으로 변경됨을 알리는 경우에는 대응하는 관찰의 존재를 체크하여, 발견되면 메시지를 송신하도록 상기 응답 수단을 기동하는, 전송 서버.
  50. 청구항 49에 있어서, 상기 데이터 저장체는 상기 제2 사용자 컴퓨터의 아이덴티티 및 상기 제1 사용자 컴퓨터의 아이덴티티를 저장하는, 전송 서버.
  51. 청구항 49 또는 50에 있어서, 상기 수신 수단은 상기 제2 사용자 컴퓨터로의 복수개의 접속 요청을 수신하고, 상기 데이터 저장체는 상기 제2 사용자 컴퓨터에 대한 관찰 내의 각각의 요청 상세를 저장하며, 상기 응답 수단은 상기 제2 사용자 컴퓨터의 접속 상태가 온라인으로 변경되는 경우 상기 제2 컴퓨터로의 접속을 요청한 사용자 컴퓨터 각각의 개체에 복수개의 메시지를 전송하는, 전송 서버.
  52. 청구항 49 내지 51 중 어느 한 항에 있어서, 상기 전송 서버는 전송 서버의 계층구조에 접속되는, 전송 서버.
  53. 청구항 52에 있어서, 상기 전송 서버는 등록된 사용자 컴퓨터 각각의 접속 상태 상세를 상기 계층 구조 내의 상위 서열에 위치한 전송 서버에 송신하고, 상기 응답 수단은 상기 제2 사용자 컴퓨터의 온라인 상태를 표시하는 메시지를 상기 계층 구조 내의 상위 서열에 위치한 적어도 하나의 전송 서버에 송신하는, 전송 서버.
  54. 청구항 49 내지 53 중 어느 한 항에 있어서,
    상기 데이터 저장체는 상기 전송 서버에 등록된 상기 사용자 컴퓨터 중 상이한 개체들에 대해 복수개의 상이한 관찰을 저장하며;
    상기 검증 수단은 모든 등록된 사용자 컴퓨터의 현재 접속 상태를 주기적으로 체크 및 갱신하고, 갱신이 임의의 사용자 상태가 온라인으로 변경됨을 표시하는 경우, 복수개의 저장된 관찰 중에서 대응하는 관찰이 존재하는지에 대해 체크하여, 발견되는 경우, 발견된 관찰에 대응하는 메시지를 전송하도록 상기 응답 수단을 기동하는, 전송 서버.
  55. 청구항 49 내지 54 중 어느 한 항에 있어서, 상기 데이터 저장체는 현재 온라인인 등록된 사용자 컴퓨터의 리스트를 저장하고, 상기 전송 서버는 상기 데이터 저장체 내에 관찰을 저장하기 이전에 사용자 컴퓨터의 현재 온라인 리스트를 체크하기 위한 온라인 체크 수단을 더 포함하는, 전송 서버.
  56. 청구항 55에 있어서, 상기 등록된 사용자 컴퓨터의 상태가 온라인으로 변경되었음을 알리는 경우, 관찰된 사용자 컴퓨터 아이덴티티를 현재 온라인 리스트에 전송하는 전송 수단을 더 포함하는, 전송 서버.
  57. 제1 및 제2 사용자 컴퓨터 사이에서 이메일 통신과 같은 피어-투-피어 데이터 통신의 설정 기여 방법으로서,
    상기 제1 사용자 컴퓨터로부터 지역 등록된 상기 제2 사용자 컴퓨터에의 접속에 대한 요청을 수신하는 단계;
    상기 제2 사용자 컴퓨터로의 접속에 대한 현재 접속 상태를 검증하는 단계;
    상기 제2 사용자 컴퓨터의 현재 접속 상태가 현재는 상기 제2 사용자 컴퓨터와 피어-투-피어 통신이 설정될 수 없음을 표시하는 경우, 요청 상세를 관찰로서 저장하는 단계; 및
    상기 제2 사용자 컴퓨터의 상태가 이제는 상기 제2 사용자 컴퓨터와 피어-투-피어 통신이 설정될 수 있음을 표시하는 것으로 변경되는 경우, 상기 검증 단계에 응답하여, 상기 제2 사용자 컴퓨터의 온라인 상태를 표시하는 메시지를 상기 제1 사용자 컴퓨터에 송신하는 단계를 포함하며,
    상기 검증 단계는 상기 제2 사용자 컴퓨터에 대한 현재 접속 상태를 주기적 으로 체크 및 갱신하고, 갱신이 상기 제2 사용자 상태가 온라인으로 변경됨을 알리는 경우에는, 대응하는 관찰의 존재를 체크하여, 발견되는 경우에는 메시지를 송신하도록 응답 수단을 기동하는, 통신 설정 방법.
  58. 데이터 통신 네트워크를 통해 제1 및 제2 사용자 컴퓨터 사이에 이메일 통신 채널과 같은 보안 피어-투-피어 데이터 통신 채널을 설정하는 방법으로서, 적어도 상기 제1 사용자 컴퓨터는 제1 네트워크 어드레스 트랜스레이터(NAT)에 의해 통신이 처리되도록 하며, 상기 방법은:
    제1 NAT를 통해 상기 제1 사용자 컴퓨터와 전송 서버 사이에서 설정된 TCP/IP 통신 링크를 통해 직접 접속을 요청하는 단계;
    상기 전송 서버에서 제1 사용자 데이터그램 프로토콜(UDP) 포트를 설정하는 단계;
    상기 TCP/IP 통신 링크를 통해 상기 제1 사용자 컴퓨터에 상기 제1 UDP 포트의 어드레스를 보고하는 단계;
    상기 제1 사용자 컴퓨터에서 제2 UDP 포트를 개방하는 단계;
    상기 전송 서버가 상기 제2 UDP 포트의 상기 제1 NAT 어드레스를 결정할 수 있도록, 제2 UDP 포트로부터 상기 제1 NAT를 통해 상기 제1 UDP 포트로 데이터 패킷을 전송하는 단계;
    상기 전송 서버에서 상기 제2 사용자 컴퓨터의 제3 UDP 포트 어드레스를 취득하는 단계; 및
    상기 제1 및 제2 사용자 컴퓨터 각각에게 다른 사용자 컴퓨터의 UDP 포트 어드레스를 통지하여 그들 사이에 보안 피어-투-피어 통신을 설정할 수 있도록 하는, 단계
    를 포함하는, 통신 채널 설정 방법.
  59. 청구항 58에 있어서, 상기 제1 사용자 컴퓨터로부터 상기 제1 NAT를 통해 전송 서버로 TCP/IP 통신 링크를 생성하는 단계를 더 포함하는, 통신 채널 설정 방법.
  60. 청구항 59에 있어서, 상기 생성 단계는 상기 제2 사용자 컴퓨터가 등록된 전송 서버 네트워크 상의 지역 전송 서버를 검색 및 식별하는 단계와 이 지역 전송 서버에 접속시키는 단계를 포함하는, 통신 채널 설정 방법.
  61. 청구항 58 내지 60 중 어느 한 항에 있어서, 상기 제2 사용자 컴퓨터는 상기 전송 서버에 등록되고, 제2 NAT를 통해 그 사이에 설정된 TCP/IP 통신 링크를 가지며, 상기 취득 단계는:
    상기 전송 서버에서 제4 UDP 포트를 설정하는 단계;
    TCP/IP 통신 링크를 통해 제4 UDP 포트의 어드레스를 상기 제2 사용자 컴퓨터에 보고하는 단계;
    상기 제2 사용자 컴퓨터에서 제3 UDP 포트를 개방하는 단계; 및
    상기 전송 서버가 상기 제2 사용자 컴퓨터의 제3 UDP 포트의 제2 NAT 어드레스를 결정할 수 있도록 제3 UDP 포트로부터 제2 NAT를 통해 제4 UDP 포트로 데이터 패킷을 전송하는 단계
    를 더 포함하는, 통신 채널 설정 방법.
  62. 청구항 58 내지 61 중 어느 한 항에 있어서, 상기 제1 사용자 컴퓨터가 상기 제2 UDP 포트의 목적지를 상기 제1 UDP 포트에서 상기 제3 UDP 포트로 스위칭하는 단계를 더 포함하는, 통신 채널 설정 방법.
  63. 청구항 62에 있어서, 상기 제1 사용자 컴퓨터가 상기 제2 UDP 포트로부터 상기 제2 사용자 컴퓨터의 상기 제3 UDP 포트로 피어-투-피어 메시지를 직접 전송하는, 통신 채널 설정 방법.
  64. 청구항 58 내지 63 중 어느 한 항에 있어서, 상기 제2 사용자 컴퓨터가 상기 제3 UDP 포트의 목적지를 상기 제4 UDP 포트로부터 상기 제2 UDP 포트로 스위칭하는, 통신 채널 설정 방법.
  65. 청구항 64에 있어서, 상기 제2 사용자 컴퓨터는 상기 제3 UDP 포트로부터 상기 제2 사용자 컴퓨터의 제2 UDP 포트로 직접 피어-투-피어 메시지를 전송하는, 통신 채널 설정 방법.
  66. 청구항 58 내지 65 중 어느 한 항에 있어서,
    상기 제1 및 제2 사용자 컴퓨터 사이에서 피어-투-피어 통신이 설정된 경우에 상기 제1 UDP 포트의 비동작을 검출하는 단계; 및
    상기 제1 UDP 포트를 닫음으로써 상기 제1 사용자 컴퓨터와의 접속을 차단하는 단계
    를 더 포함하는, 통신 채널 설정 방법.
  67. 청구항 66에 있어서, 상기 전송 서버가 상기 제1 사용자 컴퓨터와의 TCP/IP 접속을 닫는 단계를 더 포함하는, 통신 채널 설정 방법.
  68. 청구항 58 내지 67 중 어느 한 항에 있어서,
    상기 제1 및 제2 사용자 컴퓨터 사이에서 피어-투-피어 통신이 설정된 경우에 제4 UDP 포트의 비동작을 검출하는 단계;
    상기 제4 UDP 포트를 닫음으로써 상기 제2 사용자 컴퓨터와의 접속을 차단하는 단계
    를 더 포함하는, 통신 채널 설정 방법.
  69. 청구항 68에 있어서, 상기 전송 서버가 상기 제2 사용자 컴퓨터와의 TCP/IP 접속을 차단하는 단계를 더 포함하는, 통신 채널 설정 방법.
  70. 청구항 58 내지 69 중 어느 한 항에 있어서, 상기 제1 또는 제2 NAT가 비대칭 NAT를 포함하여, 각각의 상이한 목적지에 대한 UDP 포트가 상이하며, 상기 방법은:
    상기 비대칭 NAT로부터의 직접 접속의 신규 어드레스를 주목하는 단계; 및
    상기 비대칭 NAT의 상기 신규 어드레스에 UDP 포트 출력을 재어드레스하는 단계
    를 더 포함하는, 통신 채널 설정 방법.
  71. 데이터 통신 네트워크를 통해 제1 및 제2 사용자 컴퓨터 사이에 이메일 통신 채널과 같은 보안 피어-투-피어 데이터 통신 채널의 설정을 지원하는 전송 서버로서, 적어도 상기 제1 사용자 컴퓨터가 제1 네트워크 어드레스 트랜스레이터(NAT)에 의해 통신이 처리되며, 상기 전송 서버는:
    상기 제1 NAT를 통해 상기 제1 사용자 컴퓨터와 상기 전송 서버 사이의 설정된 TCP/IP 통신 링크를 통한 직접 접속 요청을 수신하는 요청 수신 수단;
    상기 전송 서버에서 제1 사용자 데이터그램 프로토콜(UDP) 포트를 설정하는 설정 수단;
    상기 TCP/IP 통신 링크를 통해 상기 제1 UDP 포트의 어드레스를 상기 제1 사용자 컴퓨터에 보고하는 보고 수단;
    상기 제1 사용자 컴퓨터에서 설정된 제2 UDP 포트로부터 상기 제1 NAT를 통 해 상기 제1 UDP 포트로 전송되는 데이터 패킷을 수신하는 데이터 패킷 수신 수단 - 상기 전송 서버는 상기 제2 UDP 포트의 제1 NAT 어드레스를 결정함 - ;
    전송 서버에서 상기 제2 사용자 컴퓨터의 제3 UDP 포트 어드레스를 취득하는 취득 수단; 및
    상기 제1 및 제2 사용자 컴퓨터 각각에게 다른 사용자 컴퓨터의 UDP 포트 어드레스를 통지하여, 그들 사이에 보안 피어-투-피어 통신을 설정할 수 있도록 하는 통지 수단
    을 포함하는, 전송 서버.
  72. 데이터 통신 네트워크를 통해 제1 및 제2 사용자 컴퓨터 사이에 이메일 통신 채널과 같은 보안 의사 피어-투-피어 데이터 통신 채널의 설정하는 방법으로서, 상기 사용자 컴퓨터 모두는 제1 및 제2 비대칭 NAT 각각에 의해 처리되며, 상기 방법은:
    상기 사용자 컴퓨터 각각으로부터 제1 및 제2 비대칭 NAT 각각을 통해 전송 서버로 TCP/IP 통신 링크를 생성하는 단계;
    직접 접속을 위한 요청 수신에 응답하여 상기 전송 서버에서 제1 및 제2 사용자 데이터그램 프로토콜(UDP) 포트를 설정하는 단계 - 상기 요청은 상기 제1 NAT를 통한 상기 제1 사용자 컴퓨터와 전송 서버 사이의 TCP/IP 통신 링크를 통해 수신됨 - ;
    상기 제1 및 제2 UDP 포트의 어드레스를 각각의 TCP/IP 통신 링크를 통해 상 기 제1 및 제2 사용자 컴퓨터 각각에 보고하는 단계;
    상기 제1 사용자 컴퓨터에서 제3 UDP 포트 및 상기 제2 사용자 컴퓨터에서 제4 UDP 포트를 개방하는 단계;
    상기 전송 서버가 상기 제3 UDP 포트의 상기 제1 NAT 어드레스 및 상기 제4 UDP 포트의 상기 제2 NAT 어드레스를 결정할 수 있도록, 상기 제3 UDP 포트로부터 상기 제1 NAT를 통해 상기 제1 UDP 포트로, 그리고 상기 제4 UDP 포트로부터 상기 제2 NAT를 통해 상기 제2 UDP 포트로, 데이터 패킷을 전송하는 단계; 및
    상기 전송 서버로부터 데이터 패킷을 효과적으로 바운스함으로써 상기 제1 및 제2 사용자 컴퓨터 사이에 의사 피어-투-피어 통신이 설정되도록, 상기 제1 UDP 포트에서 수신된 데이터 패킷을 상기 제2 UDP를 통해 상기 제4 UDP 포트의 NAT 어드레스에, 그리고 상기 제2 UDP 포트에서 수신된 데이터 패킷을 상기 제1 UDP 포트를 통해 상기 제3 UDP 포트의 NAT 어드레스에 재전송하는 단계
    를 포함하는, 통신 채널 설정 방법.
  73. 청구항 72에 있어서,상기 재전송 단계는 재전송 이전에 수신된 데이터 패킷의 일시 저장을 포함하는, 통신 채널 설정 방법.
  74. 청구항 72 또는 73에 있어서, 상기 생성 단계는 상기 제2 사용자 컴퓨터가 등록된 전송 서버 네트워크 상의 지역 전송 서버를 검색 및 식별하는 단계와, 이 지역 전송 서버에 접속하는 단계를 포함하는, 통신 채널 설정 방법.
  75. 청구항 72 내지 74 중 어느 한 항에 있어서, 일단 의사 피어-투-피어 통신이 설정된 경우, 상기 전송 서버가 상기 제1 및 제2 사용자 컴퓨터와의 TCP/IP 접속을 닫는 단계를 더 포함하는, 통신 채널 설정 방법.
  76. 데이터 통신 네트워크를 통해 제1 및 제2 사용자 컴퓨터 사이에 이메일 통신 채널과 같은 보안 의사 피어-투-피어 데이터 통신 채널의 설정을 지원하는 전송 서버로서, 상기 사용자 컴퓨터 모두는 제1 및 제2 비대칭 네트워크 어드레스 트랜스레이터(NAT) 각각에 의해 통신이 처리되며, 상기 전송 서버는:
    상기 사용자 컴퓨터 각각으로부터 상기 제1 및 제2 비대칭 NAT 각각을 통해 전송 서버로 TCP/IP 통신 링크를 생성하는 생성 수단;
    직접 접속에 대한 요청을 수신함에 응답하여 상기 전송 서버에 제1 및 제2 사용자 데이터그램 프로토콜(UDP) 포트를 설정하는 설정 수단;
    상기 제1 및 제2 UDP 포트의 어드레스를 각각의 TCP/IP 통신 링크를 통해 상기 제1 및 제2 사용자 컴퓨터에 보고하는 보고 수단;
    상기 제1 사용자 컴퓨터에서 설정된 제3 UDP 포트로부터 상기 제1 NAT를 통해 상기 제1 UDP 포트로, 그리고 상기 제2 사용자 컴퓨터에서 설정된 제4 UDP 포트로부터 상기 제2 NAT를 통해 상기 제2 UDP 포트로 전송되는 데이터 패킷을 수신하는 수신 수단 - 상기 전송 서버는 상기 제3 UDP 포트의 제1 NAT 어드레스 및 상기 제4 UDP 포트의 상기 제2 NAT 어드레스를 결정함 - ; 및
    상기 전송 서버로부터 데이터 패킷을 효과적으로 바운스함으로써 상기 제1 및 제2 사용자 컴퓨터 사이에 의사 피어-투-피어 통신이 설정되도록, 상기 제1 UDP 포트에서 수신된 데이터 패킷을 상기 제2 UDP를 통해 상기 제4 UDP 포트의 NAT 어드레스에 재전송하고, 상기 제2 UDP포트에서 수신된 데이터 패킷을 상기 제1 UDP 포트를 통해 상기 제3 UDP 포트의 NAT 어드레스에 재전송하는 수단
    을 포함하는, 전송 서버.
  77. 데이터 통신 네트워크를 통한 송신인 컴퓨터와 의도된 수신인 컴퓨터 사이의 피어-투-피어 통신 설정하는 데 기여하는 전송 서버의 계층적 접속 네트워크에 사용자 컴퓨터를 접속하는 방법으로서, 상기 방법은:
    접속 네트워크 내의 동일 계층 레벨에서의 복수 개의 피어 전송 서버 각각의 현재 로딩을 지역 전송 서버의 로딩으로서 기술하는 정보를 수신하는 단계;
    지역 사용자 컴퓨터의 상기 지역 전송 서버로의 접속 요청을 수신하는 단계;
    상기 지역 서버의 현재 로딩을 각각의 피어 서버의 것과 비교하는 단계;
    상기 지역 전송 서버의 로딩이 임의의 피어 서버의 로딩보다 현저하게 큰 경우에 최하위 로딩을 갖는 피어 서버에 접속되어야 함을 나타내는 응답을 지역 사용자 컴퓨터에 송신하는 단계; 및
    상기 지역 전송 서버의 로딩이 임의의 피어 서버의 로딩보다 현저히 크지 않은 경우, 접속 요청을 받아들이고, 상기 지역 전송 서버의 현재 로딩을 갱신하는 단계
    를 포함하는, 사용자 컴퓨터 접속 방법.
  78. 청구항 77에 있어서, 전송 서버의 상기 현재 로딩은 전송 서버에 등록된 사용자 컴퓨터의 갯수에 의해 결정되는, 사용자 컴퓨터 접속 방법.
  79. 청구항 77 또는 78에 있어서, 상기 지역 전송 서버의 현재 로딩을 계층 네트워크내의 상위 레벨의 전송 서버에 포워딩하는 단계를 더 포함하는, 사용자 컴퓨터 접속 방법.
  80. 청구항 79에 있어서, 상기 포워딩 단계는 지역 전송 서버의 현재 IP 어드레스 및 포트를 전송하는 단계를 포함하는, 사용자 컴퓨터 접속 방법.
  81. 청구항 79 또는 80에 있어서, 상기 포워딩 단계는 규칙적인 간격으로 하트비트(heartbeat) 신호를 전송하는 단계를 포함하며, 각각의 하트비트 신호는 상기 지역 전송 서버의 로딩에 대한 갱신된 현재 정보를 제공하는, 사용자 컴퓨터 접속 방법.
  82. 청구항 77 내지 81 중 어느 한 항에 있어서, 상기 수신 단계는 복수 개의 피어 전송 서버 각각의 현재 IP 어드레스 및 포트를 기술하는 정보를 수신하는 단계를 포함하는, 사용자 컴퓨터 접속 방법.
  83. 청구항 77 내지 82 중 어느 한 항에 있어서, 상기 수신 단계는 복수 개의 피어 전송 서버에 대한 하트비트 신호를 규칙적으로 수신하는 단계를 포함하며, 상기 하트비트 신호는 피어 전송 서버의 아이덴티티 및 상기 피어 전송 서버의 현재 로딩을 기술하는 정보를 포함하는, 사용자 컴퓨터 접속 방법.
  84. 청구항 77 내지 83 중 어느 한 항에 있어서, 상기 지역 전송 서버의 지형적 위치를 결정하는 단계를 더 포함하는, 사용자 컴퓨터 접속 방법.
  85. 청구항 84에 있어서, 상기 수신 단계는 복수 개의 피어 전송 서버 각각의 지형적 위치에 관한 정보를 수신하는 단계를 포함하는, 사용자 컴퓨터 접속 방법.
  86. 청구항 84 또는 85에 있어서, 상기 지형적 정보는 지역 또는 피어 전송 서버에 관한 시간 영역(time zone) 정보를 포함하는, 사용자 컴퓨터 접속 방법.
  87. 청구항 85 또는 청구항 85를 인용하는 청구항 86에 있어서, 상기 비교 단계는 상기 지역 사용자와 동일한 지형적 위치에서 각각의 피어 서버와 지역 서버의 현재 로딩을 비교하는 단계를 포함하며,
    상기 송신 단계는 지역 전송 서버의 로딩이 동일 지형적 위치 내의 피어 서버 중 하나의 로딩에 비해 현저히 큰 경우, 최하위 로딩을 갖는 지역 사용자 컴퓨 터와 동일한 지형적 위치에 있는 피어 전송 서버에 접속되어야 함을 표시하는 응답을 지역 사용자 컴퓨터에게 전송하는 단계를 포함하는, 사용자 컴퓨터 접속 방법.
  88. 청구항 77 내지 87 중 어느 한 항에 있어서, 상기 송신 단계는 상기 접속 네트워크의 인접하고 상위 계층 레벨에 존재하는 모 전송 서버(parent transport server)의 통신 어드레스를 상기 지역 전송 서버에 송신하는 단계를 포함하는, 사용자 컴퓨터 접속 방법.
  89. 청구항 77 내지 88 중 어느 한 항에 있어서,
    지역 전송 서버에 접속되며 계층 접속 네트워크 내의 하위 레벨에 존재하는 모든 자 전송 서버(child transport server)의 로딩을 획득 및 고려하는 단계;
    상기 지역 서버의 현재 로딩과 각각의 자 서버를 평가하는 단계; 및
    상기 지역 전송 서버의 로딩이 임의의 자 서버의 로딩보다 현저히 큰 경우, 최하위 로딩을 갖는 자 서버에 접속해야 함을 표시하는 응답을 상기 지역 사용자 컴퓨터에 전송하는 단계
    를 더 포함하는, 사용자 컴퓨터 접속 방법.
  90. 청구항 89에 있어서, 상기 지역 전송 서버의 지형적 위치를 결정하는 단계를 더 포함하며, 상기 획득 단계는 복수 개의 자 전송 서버 각각의 지형적 위치에 관한 정보를 수신하는 단계를 포함하는, 사용자 컴퓨터 접속 방법.
  91. 청구항 90에 있어서, 상기 지형적 정보는 상기 지역 또는 자 전송 서버에 관한 시간 영역 정보를 포함하는, 사용자 컴퓨터 접속 방법.
  92. 청구항 90 또는 91에 있어서, 상기 평가 단계는 상기 지역 서버의 현재 로딩과 상기 지역 사용자와 동일한 지형적 위치에 있는 각각의 자 서버를 비교하는 단계를 포함하며,
    상기 전송 단계는 지역 전송 서버의 로딩이 동일 지형적 위치의 자 서버 중 임의의 하나의 로딩보다 현저히 큰 경우, 최하위 로딩을 갖는 상기 지역 사용자 컴퓨터와 동일한 지형적 위치의 자 전송 서버에 접속해야 함을 표시하는 응답을 상기 지역 사용자 컴퓨터에 전송하는 단계를 포함하는, 사용자 컴퓨터 접속 방법.
  93. 통신 서버에 등록된 사용자 컴퓨터 사이에 피어-투-피어 데이터 통신을 설정하는 데 이용되도록 설정된 인증된 통신 서버의 네트워크에 노드를 접속하는 방법으로서, 상기 방법은:
    인증 서버에 대한 노드를 인증하기 위하여 인증 서버로부터 수신된 사용자 아이덴티티 및 패스워드를 이용하는 단계;
    네트워크에 접속하기 위하여 노드가 접속될 필요가 있는 선택된 통신 서버의 아이덴티티를 통지받는 단계;
    선택된 통신 서버에 접속하기 위하여 선택된 통신 서버 및 노드 특정 데이터 를 요청하는 단계;
    상기 선택된 통신 서버 및 노드 특정 데이터와 상기 노드 및 선택된 통신 서버에 의해 공유되는 공유 암호 키를 수신하는 단계; 및
    상기 선택된 통신 서버 및 노드 특정 데이터와 상기 공유 암호 키에 의해 암호화된 전역 데이터를 상기 선택된 통신 서버에 전송하는 단계 - 상기 선택된 통신 서버는 네트워크에 접속될 노드를 인증할 툴(tool)을 가지며, 이에 의해 상기 인증 서버로부터의 검증을 검색할 필요없이 네트워크에 접속됨 -
    을 포함하는, 노드 접속 방법.
  94. 청구항 93에 있어서, 상기 노드가 선택된 통신 서버의 인증을 검증하기 위한 정보를 가지도록 상기 선택된 통신 서버로부터 공유 암호 키에 의해 암호화된 확인 데이터를 수신하는 단계를 더 포함하는, 노드 접속 방법.
  95. 청구항 93 또는 94에 있어서, 노드를 네트워크의 인증된 서버에 등록함에 의해 사용자 ID 및 패스워드를 취득하는 단계를 더 포함하는, 노드 접속 방법.
  96. 청구항 93 내지 95 중 어느 한 항에 있어서, 상기 통지 받는 단계는 상기 요청 단계에서 이용되는 티켓 발생 티켓(ticket generating ticket)을 수락하는 단계를 포함하는, 노드 접속 방법.
  97. 청구항 96에 있어서, 상기 통지 받는 단계는 상기 수신 단계에서 이용되는 노드에 대한 세션 키를 접수하는 단계를 포함하는, 노드 접속 방법.
  98. 청구항 93 내지 97 중 어느 한 항에 있어서, 상기 티켓 발생 티켓 및 상기 세션 키는 패스워드로 암호화되고, 상기 방법은 상기 티켓 발생 티켓 및 세션 키를 복호화하는 단계를 더 포함하는, 노드 접속 방법.
  99. 청구항 96 내지 98 중 어느 한 항에 있어서, 상기 요청 단계는 상기 티켓 발생 티켓 및 선택된 통신 서버의 아이덴티티를 인증 서버로 이송하는 단계를 포함하는, 노드 접속 방법.
  100. 청구항 93 내지 99 중 어느 한 항에 있어서, 상기 수신 단계는 선택된 통신 서버 및 노드에 특정된 티켓을 취득하는 단계를 포함하는, 노드 접속 방법.
  101. 청구항 100에 있어서, 상기 티켓은 상기 공유 암호 키의 복제본을 포함하는, 노드 접속 방법.
  102. 청구항 101에 있어서, 상기 세션 키로 암호화된 상기 공유 키를 복호화하는 단계를 더 포함하는, 노드 접속 방법.
  103. 청구항 93 내지 102 중 어느 한 항에 있어서, 타임스탬프의 값을 전역 데이터로서 연산하는 단계를 더 포함하는, 노드 접속 방법.
  104. 청구항 93 내지 103 중 어느 한 항에 있어서, 상기 선택된 통신 서버가 상기 공유 키를 이용하여 상기 수신된 데이터를 복호화하는 단계를 더 포함하는, 노드 접속 방법.
  105. 청구항 93 내지 104 중 어느 한 항에 있어서, 상기 선택된 통신 서버가 상기 수신된 데이터의 유효성을 검증하는 단계를 더 포함하는, 노드 접속 방법.
  106. 청구항 104 또는 105에 있어서, 상기 선택된 통신 서버가 상기 복호화된 수신 데이터가 허용가능한 것인지에 대한 확인을 송신하는 단계를 더 포함하는, 노드 접속 방법.
  107. 청구항 93 내지 106 중 어느 한 항에 있어서, 소정 방식으로 변경된 인증 데이터를 수신하는 단계를 더 포함하는, 노드 접속 방법.
  108. 청구항 107에 있어서, 상기 변경된 인증 정보는 암호화되고, 상기 방법은 상기 변경된 인증 정보를 복호화하는 단계를 더 포함하는, 노드 접속 방법.
  109. 제1 사용자 컴퓨터가, 통신 서버에 등록된 사용자 컴퓨터들 사이의 피어-투-피어 통신을 설정하는 데 이용되도록 설정된 인증된 통신 서버의 네트워크의 일부인 제2 사용자 컴퓨터와 보안 통신하는 방법으로서, 상기 방법은:
    청구항 1 내지 16 중 어느 하나에 기재된 네트워크에 상기 제1 컴퓨터를 접속시키는 단계;
    상기 제1 및 제2 사용자 컴퓨터에서 공개 및 개인 키를 생성하는 단계;
    상기 제1 및 제2 사용자 컴퓨터 사이에서 네트워크를 통해 공개 키를 교환하는 단계;
    상기 제1 및 제2 사용자 컴퓨터 각각에서 비공유 개인 키 및 공유 공개 키로부터 공유 암호/복호 키를 생성하는 단계; 및
    상기 제1 및 제2 사용자 컴퓨터 사이에 설정된 피어-투-피어 통신을 통해 상기 제1 및 제2 사용자 컴퓨터 사이에서 직접 전송된 데이터 메시지를 암호화하기 위한 공유 암호 키를 이용하는 단계
    를 포함하는, 보안 통신 방법.
  110. 상호 접속된 전송 서버 노드의 제1 계층 구조(hierarchical realm)을 상호 접속된 전송 서버 노드의 제2 계층 구조에 접속하는 방법으로서, 상기 방법은:
    각각의 영역 내에 지역 인증 서버를 제공하는 단계 - 인증 서버는 각 계층 구조의 최상위 레벨의 주(primary) 노드에 접속되고, 상기 영역내의 모든 서버에 관련된 인증 이슈(issue)를 제어함 - ;
    상기 제2 계층 구조의 인증 서버에 대한 상기 제1 계층 구조의 주 노드를 등록하는 단계;
    상기 제2 계층 구조의 인증 서버에 대한 상기 제1 계층 구조의 주 노드를 인증하는 단계;
    상기 제1 계층 구조의 상기 주 노드가 상기 계층 구조들에 결합하기 위하여 접속할 필요가 있는 최하위 노드 서버의 아이덴티티를 통지받는 단계;
    상기 제2 계층 구조의 최하위 노드 서버 및 상기 제1 계층 구조의 주 노드 모두에 대해 공유 데이터 및 공유 암호 키를 수신하는 단계; 및
    상기 제2 계층 구조의 최하위 노드 서버에 대한 상기 제1 계층 구조의 주 노드를 인증하기 위하여 공유 데이터 및 공유 암호 키를 수신하는 단계를 이용하여 상기 제2 영역의 인증 서버로부터의 검증을 검색할 필요없이 제1 및 제2 영역들을 접속하는 단계
    를 포함하는, 보안 통신 방법.
  111. 청구항 110에 있어서, 상기 제2 영역의 선택된 최하위 노드 서버로의 접속을 위해 인증 서버로부터 상기 제1 영역의 주 노드 및 상기 제2 영역의 최하위 노드에 특정된 데이터를 요청하는 단계를 더 포함하는, 보안 통신 방법.
  112. 청구항 110 또는 111에 있어서, 상기 공유 암호 키에 의해 암호화된 공유 데이터 및 전역 데이터를 상기 최하위 노드 서버에 전송하는 단계를 더 포함하여, 상 기 최하위 서버가 상기 제2 계층 구조에 대한 주 노드를 인증하는 툴을 갖는, 보안 통신 방법.
  113. 청구항 110 내지 112 중 어느 한 항에 있어서, 상기 인증 단계는 상기 제2 계층 구조의 최하위 서버를 통해 수행되는, 보안 통신 방법.
  114. 청구항 110 내지 113 중 어느 항 항에 있어서,
    상기 제2 계층 구조의 주 노드를 상기 제1 계층 구조의 인증 서버에 등록하는 단계; 및
    상기 제2 계층 구조의 주 노드를 상기 제1 계층 구조의 인증 서버에 인증하는 단계
    를 더 포함하는, 보안 통신 방법.
  115. 전송 서버의 제1 영역에 접속된 제1 사용자 컴퓨터가 통신 서버에 등록된 사용자 컴퓨터들 사이의 피어-투-피어 데이터 통신 설정에 이용되도록 설정된 전송 서버의 제2 영역에 접속된 제2 사용자 컴퓨터와 보안 통신하는 방법으로서, 상기 방법은:
    상기 제1 영역의 제1 사용자 컴퓨터를 청구항 110 내지 114 중 어느 한 항에 기재된 전송 서버의 제2 영역에 접속하는 단계; 및
    상기 제1 및 제2 사용자 컴퓨터에 대한 상호 접속된 영역 내에서 네트워크 위치를 결정하는 단계;
    상기 제1 및 제2 사용자 컴퓨터 사이에서 피어-투-피어 통신 채널을 설정하기 위하여 설정된 네트워크 위치를 이용하는 단계; 및
    상기 설정된 피어-투-피어 통신 채널을 통해 암호화된 데이터 통신을 송신하는 단계
    를 포함하는, 보안 통신 방법.
  116. 청구항 115에 있어서, 상기 이용 단계는:
    상기 제1 및 제2 사용자 컴퓨터에서 공개 및 개인 키를 생성하는 단계;
    상기 제1 및 제2 사용자 컴퓨터 사이에서 네트워크를 통하여 공개 키를 교환하는 단계;
    상기 제1 및 제2 사용자 컴퓨터에서 비공유 개인 키 및 공유 개인 키로부터 공유 암호/복호 키를 생성하는 단계; 및
    상기 제1 및 제2 사용자 컴퓨터 사이에 설정된 피어-투-피어 접속을 통해 상기 제1 및 제2 사용자 컴퓨터 사이에 직접 전송된 데이터 메시지를 암호화하기 위해 공유 암호화 키를 이용하는 단계
    를 포함하는, 보안 통신 방법.
KR1020077002255A 2004-06-28 2005-06-28 보안 텔레통신과 관련된 개량 KR20070092196A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0414415.0 2004-06-28
GBGB0414415.0A GB0414415D0 (en) 2004-06-28 2004-06-28 Improvements relating to secure telecommunications

Publications (1)

Publication Number Publication Date
KR20070092196A true KR20070092196A (ko) 2007-09-12

Family

ID=32800303

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077002255A KR20070092196A (ko) 2004-06-28 2005-06-28 보안 텔레통신과 관련된 개량

Country Status (8)

Country Link
EP (1) EP1769620A2 (ko)
JP (1) JP2008508573A (ko)
KR (1) KR20070092196A (ko)
CN (1) CN101053239A (ko)
AU (1) AU2005256849A1 (ko)
CA (1) CA2572027A1 (ko)
GB (1) GB0414415D0 (ko)
WO (1) WO2006000802A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011137346A2 (en) * 2010-04-30 2011-11-03 Peer Fusion Llc System and method of delivering confidential electronic files
US10200325B2 (en) 2010-04-30 2019-02-05 Shazzle Llc System and method of delivering confidential electronic files
US20220255938A1 (en) * 2021-02-07 2022-08-11 Hangzhou Jindoutengyun Technologies Co., Ltd. Method and system for processing network resource access requests, and computer device

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8817990B2 (en) * 2007-03-01 2014-08-26 Toshiba America Research, Inc. Kerberized handover keying improvements
US8554174B2 (en) * 2009-06-15 2013-10-08 Alcatel Lucent Selective first delivery attempt (FDA) processing for text messages
CN104023091B (zh) 2013-02-28 2018-10-30 华为终端有限公司 一种多链路融合方法及设备
CN103209462A (zh) * 2013-03-12 2013-07-17 深圳创维数字技术股份有限公司 一种移动通信方法、移动通信服务器以及系统
CN103442224A (zh) * 2013-09-09 2013-12-11 杭州巨峰科技有限公司 一种基于nat穿透的视频监控访问策略和实现方法
US9887839B2 (en) * 2014-06-06 2018-02-06 Rainberry, Inc. Securely sharing information via a public key-value data store
CN107004026B (zh) * 2014-11-03 2020-09-22 艾玛迪斯简易股份公司 管理预先计算的搜索结果
DE102015114544A1 (de) * 2015-08-31 2017-03-02 Uniscon Universal Identity Control Gmbh Verfahren zum sicheren und effizienten Zugriff auf Verbindungsdaten
US10135618B2 (en) * 2016-03-25 2018-11-20 Synergex Group (corp.) Method for using dynamic Public Key Infrastructure to send and receive encrypted messages between software applications
US10664031B2 (en) * 2016-11-26 2020-05-26 Arm Limited Monitoring circuit and method
US10924459B2 (en) * 2016-12-16 2021-02-16 Futurewei Technologies, Inc. Location control and access control of emails
US11165817B2 (en) * 2019-10-24 2021-11-02 Arbor Networks, Inc. Mitigation of network denial of service attacks using IP location services

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993325B1 (en) * 2000-02-29 2006-01-31 Ericsson Inc. Method for facilitating electronic communications
AU2001253064A1 (en) * 2000-03-31 2001-10-15 Centerspan Communications Corp. Media exchange system and process
KR20040019328A (ko) * 2001-08-03 2004-03-05 마쯔시다덴기산교 가부시키가이샤 액세스 제어 시스템
WO2003014955A1 (en) * 2001-08-09 2003-02-20 Gigamedia Access Corporation Hybrid system architecture for secure peer-to-peer-communication
WO2004017607A1 (de) * 2002-07-17 2004-02-26 Siemens Aktiengesellschaft Datenkommunikationssystem sowie datenkommunikationsverfahren mit vorausschauender ermittlung der verfügbarkeit von kommunikationspartnern
JP4437956B2 (ja) * 2002-11-29 2010-03-24 インターナショナル・ビジネス・マシーンズ・コーポレーション ファイル共有アプリケーションに対するインデックス・サーバ・サポートを提供する方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011137346A2 (en) * 2010-04-30 2011-11-03 Peer Fusion Llc System and method of delivering confidential electronic files
WO2011137346A3 (en) * 2010-04-30 2012-04-05 Peer Fusion Llc System and method of delivering confidential electronic files
US8819412B2 (en) 2010-04-30 2014-08-26 Shazzle Llc System and method of delivering confidential electronic files
US10200325B2 (en) 2010-04-30 2019-02-05 Shazzle Llc System and method of delivering confidential electronic files
US20220255938A1 (en) * 2021-02-07 2022-08-11 Hangzhou Jindoutengyun Technologies Co., Ltd. Method and system for processing network resource access requests, and computer device
US11979405B2 (en) * 2021-02-07 2024-05-07 Hangzhou Jindoutengyun Technologies Co., Ltd. Method and system for processing network resource access requests, and computer device

Also Published As

Publication number Publication date
WO2006000802A2 (en) 2006-01-05
CA2572027A1 (en) 2006-01-05
EP1769620A2 (en) 2007-04-04
AU2005256849A1 (en) 2006-01-05
CN101053239A (zh) 2007-10-10
GB0414415D0 (en) 2004-07-28
JP2008508573A (ja) 2008-03-21
WO2006000802A3 (en) 2006-06-15

Similar Documents

Publication Publication Date Title
KR20070092196A (ko) 보안 텔레통신과 관련된 개량
US10148628B2 (en) System and method for secure messaging in a hybrid peer-to-peer network
CA2636780C (en) Method and device for anonymous encrypted mobile data and speech communication
US6959393B2 (en) System and method for secure message-oriented network communications
EP1494420B1 (en) Reducing network configuration complexity with transparent virtual private networks
US7673004B1 (en) Method and apparatus for secure IM communications using an IM module
JP4738060B2 (ja) データ通信網のセキュアな連合
US7716724B2 (en) Extensible authentication protocol (EAP) state server
JP5334104B2 (ja) 全交換セッションセキュリティ
US9992152B2 (en) Hub based clearing house for interoperability of distinct unified communications systems
US20140040404A1 (en) System and method for federating chat rooms across disparate unified communications systems
Garfinkel VoIP and Skype security
EP3055953A1 (en) Federating chat rooms across disparate unified communications systems
CA2844428C (en) Real-time encryption of voice and fax over ip
Loesing et al. Privacy-aware presence management in instant messaging systems
US11716222B2 (en) Communications bridge
Cao et al. Providing secure services in peer-to-peer communications networks with central security servers
US11265298B2 (en) Method for end-to-end transmission of a piece of encrypted digital information, application of this method and object implementing this method
Rahman et al. Implementation of Secured Portable PABX System of Fully Fledged Mobility Management for Unified Communication
US20240106801A1 (en) Secure and private network communications
WO2004100009A1 (en) System and method for secure message-oriented network communications

Legal Events

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