JP2008508573A - Improvements related to secure communications - Google Patents

Improvements related to secure communications Download PDF

Info

Publication number
JP2008508573A
JP2008508573A JP2007518679A JP2007518679A JP2008508573A JP 2008508573 A JP2008508573 A JP 2008508573A JP 2007518679 A JP2007518679 A JP 2007518679A JP 2007518679 A JP2007518679 A JP 2007518679A JP 2008508573 A JP2008508573 A JP 2008508573A
Authority
JP
Japan
Prior art keywords
server
communication
peer
computer
user
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2007518679A
Other languages
Japanese (ja)
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 JP2008508573A publication Critical patent/JP2008508573A/en
Pending legal-status Critical Current

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/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/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/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のリモート側コンピュータの接続状態が、現在第2のリモート側コンピュータがデータ通信媒体に接続されていることを示しているときだけ、データ通信を途中で記憶せずに第1のリモート側コンピュータから直接第2のリモート側コンピュータにデータ通信を直接送る段階とを含む方法。
【選択図】図1
A method of performing secure peer-to-peer data communication such as electronic mail communication between a first remote computer and a second remote computer via a data communication medium will be described. The method includes receiving the address details of each remote computer and the current state of the connection to the data communication medium, generating a data communication at the first remote computer, and the current connection of the second remote computer. The data communication is not memorized only when the state is confirmed and the connection state of the second remote computer indicates that the second remote computer is currently connected to the data communication medium. Directing data communication directly from the first remote computer to the second remote computer.
[Selection] Figure 1

Description

本発明は、セキュア通信に関する改良に関し、より詳細にはセキュアなピアツーピア電子メール及びデータ通信ならびにボイスオーバーアイピー(Voice over IP)に関するがこれらに限定されない。本発明の更に他の様相は、通信ネットワークを保護し且つそのIPアドレス指定範囲を拡大するためにネットワークアドレス変換器(NAT)が提供されるときでも直接ピアツーピア通信を支援する方法を対象とする。本発明は、また、係る通信システムと係る通信システムを使用するネットワークにおいて極めて高いレベルのセキュリティを実現することにも適用される。   The present invention relates to improvements relating to secure communications, and more particularly, but not limited to, secure peer-to-peer email and data communications and Voice over IP. Yet another aspect of the present invention is directed to a method for supporting direct peer-to-peer communication even when a network address translator (NAT) is provided to protect a communication network and extend its IP addressing range. The present invention is also applied to realizing a very high level of security in such a communication system and in a network using such a communication system.

間接通信が望ましいときに通信ネットワークを介してメッセージを伝送する様々な方法がある。しかしながら、メッセージのコピーを記憶しそれをハッカーが読み取ることができる状態で本質的にセキュアでないため、この形のメッセージ送信と関連した固有の問題がある。WO03/014955A1に記載されたそのような問題の幾つかは、ピアツーピア通信を使用することにより対処されている。しかしながら、以前に提案され使用された解決策の主な問題は、そのような通信の設定の複雑さである。この先行技術の文書に提示された解決策は、通信を容易にするために相変わらず中央サーバの働きを必要とするため、本質的にセキュアでなく煩雑である。これにより、プロセス全体が面倒なものになりセキュリティ侵害に弱くなる。   There are various ways of transmitting messages over a communication network when indirect communication is desired. However, there is an inherent problem associated with this form of message transmission because it is inherently insecure in the state that a copy of the message can be stored and read by a hacker. Some of such problems described in WO 03/014955 A1 have been addressed by using peer-to-peer communication. However, the main problem with the previously proposed and used solution is the complexity of setting up such communication. The solution presented in this prior art document is inherently insecure and cumbersome because it still requires the work of a central server to facilitate communication. This makes the entire process cumbersome and vulnerable to security breaches.

通信プロセスの間に記憶される電子メールのセキュリティを高める暗号化技術が知られている。しかしながら、暗号化技術は、完全にセキュアとは言えず、従ってハッキング技術の高度化により、本質的に実行可能な代案を提供しない。   Encryption techniques are known that increase the security of electronic mail stored during a communication process. However, encryption techniques are not completely secure and, therefore, advancements in hacking techniques do not provide an essentially viable alternative.

NATは、複数のコンピュータが、インターネットへの接続等の通信にアドレス空間を共用できるようにするために使用される装置である。NATには、平均的PCユーザの能力をはるかに超える複雑な機構がないと、ピアツーピア通信がNATの背後で正常に機能しないという欠点がある。ピアツーピア通信の状況におけるNATと関連する問題は、米国特許出願2004/0064584 A1に記載されている。   NAT is a device used to allow a plurality of computers to share an address space for communication such as connection to the Internet. NAT has the disadvantage that peer-to-peer communication does not function properly behind NAT without a complex mechanism that far exceeds the capabilities of the average PC user. Problems associated with NAT in the context of peer-to-peer communication are described in US patent application 2004/0064584 A1.

前述のシステムを改良することが望まれており、より詳細にはよりセキュアなシステムが必要である。また、管理がより容易でユーザがより使い易いシステムを提供すること望まれている。特に、ピアツーピア通信を容易するためにユーザが中央サーバにログオンする必要がない通信システム、或いはピアツーピア通信の間ノードでのメッセージの一時的記憶さえ必要とする通信システムが望まれている。従って、理想的には「純粋な」ピアツーピア通信システムが必要とされる。   There is a desire to improve the aforementioned system, and more specifically, a more secure system is needed. It is also desirable to provide a system that is easier to manage and more user friendly. In particular, a communication system that does not require a user to log on to a central server to facilitate peer-to-peer communication or a communication system that requires even temporary storage of messages at a node during peer-to-peer communication is desired. Therefore, an ideally “pure” peer-to-peer communication system is needed.

本発明の一様相は、最もセキュアなピアツーピア電子メール通信が、例えば、セキュアでない環境、即ち送信元や宛先以外の通信経路内の場所にメッセージを記憶する必要がないものであるという認識にある。この場合、電子メールが送信されているときに、ハッカーが電子メールを読み取る可能性はほんのわずかである。例えばPKI(公開鍵インフラストラクチャ)を使って送信用の電子メールを暗号化することによって、送信中のハッキングの危険を最小にすることができる。   One aspect of the invention resides in the recognition that the most secure peer-to-peer email communications are, for example, those that do not need to store messages in a non-secure environment, i.e., in a communication path other than the source or destination. In this case, there is only a small possibility that a hacker will read the email when it is being sent. For example, the risk of hacking during transmission can be minimized by encrypting e-mail for transmission using PKI (Public Key Infrastructure).

より具体的には、本発明の一様相によれば、第1のリモート側コンピュータと第2のリモート側コンピュータの間でデータ通信媒体を介して電子メール通信等のセキュアなピアツーピアデータ通信を実行する方法であって、各リモート側コンピュータのアドレス詳細とデータ通信媒体に対する接続の現在状態を受け取る段階と、第1のリモート側コンピュータにおいてデータ通信を生成する段階と、第2のリモート側コンピュータの現在の接続状態を確認する段階と、第2のリモート側コンピュータの接続状態からデータ通信媒体に現在接続されることが分かったときだけ、データ通信を途中で記憶することなく第1のリモート側コンピュータから第2のリモート側コンピュータにデータ通信を直接送信する段階とを含む方法が提供される。   More specifically, according to one aspect of the present invention, secure peer-to-peer data communication such as email communication is performed between a first remote computer and a second remote computer via a data communication medium. A method of receiving address details of each remote computer and a current state of connection to a data communication medium, generating a data communication at a first remote computer, and a current state of a second remote computer Only when it is found from the connection state of the second remote computer and the connection state of the second remote computer that the connection is currently made to the data communication medium, the first remote computer does not store the data communication on the way. Transmitting the data communication directly to the two remote computers.

「記憶(storage)」という語は、本明細書で使用されるとき、完全なメッセージの記憶を指すことを理解されたい。そのような記憶は、無許可の第三者がメッセージの完全なコピーを不法に得る可能性を提供することになる。通信プロトコルは、多くの場合、例えばパケットに分割されるメッセージなどのメッセージの一部分の何らかの一時記憶を含む。メッセージの一部分のそのような一時的且つ部分的な記憶は、送信中のメッセージの完全なコピーを第三者が得ることをできなくするので、本発明のこの様相により許容可能である。   It should be understood that the term “storage” as used herein refers to storage of a complete message. Such storage will provide the possibility for an unauthorized third party to illegally obtain a complete copy of the message. Communication protocols often include some temporary storage of a portion of a message, such as a message that is divided into packets. Such temporary and partial storage of a portion of a message is acceptable by this aspect of the present invention because it prevents a third party from obtaining a complete copy of the message being sent.

従って、本発明は、送信元から宛先までの途中に完全なデータメッセージの非セキュアな記憶がないため、先行技術より優れた著しい改善を提供する。より正確に言うと、宛先がオンラインでない場合でも、宛先によってピアツーピア通信チャネルが確立されるまで、メッセージが常に送信元にセキュアに一時的に記憶され、その結果、データメッセージのセキュアでない記憶を途中でする必要がなくなる。   Thus, the present invention provides a significant improvement over the prior art because there is no non-secure storage of complete data messages on the way from the source to the destination. More precisely, even if the destination is not online, the message is always securely and temporarily stored at the source until the peer establishes a peer-to-peer communication channel, resulting in insecure storage of data messages There is no need to do it.

本発明は、ユーザ名とそのIPアドレスの中央レポジトリがあるシステムで実施される。しかしながら、中央レポジトリは、実際のピアツーピア通信自体には使用されず、むしろ送信者の場所に提供された通信手段を更新する働きをする。ユーザは、中央レポジトリに登録され、ユーザ固有のIPアドレスの名前が割り当てられる。次に、登録されたユーザは、ピアツーピア通信を容易にする個人用通信サーバを自分のコンピュータにダウンロードしインストールする。登録ユーザが、個人用通信サーバを使用することにより決定されるようにオンラインになると、そのことが中央レポジトリに通知され、ユーザの状態をオフラインからオンラインに変化させることができる。この状態の変化は、プッシュメカニズムによって他の全てのユーザに通信することができ、その結果、受信者と送信者の両方がその瞬間に通信を送受信できるはずであるという情報により、既存のオンラインユーザと、接続されたばかりのユーザとの間で実行しなければならないピアツーピア通信を極めてセキュアに行うことができる。   The present invention is implemented in a system that has a central repository of usernames and their IP addresses. However, the central repository is not used for the actual peer-to-peer communication itself, but rather serves to update the communication means provided at the sender's location. Users are registered in the central repository and assigned a unique IP address name. The registered user then downloads and installs a personal communication server on his computer that facilitates peer-to-peer communication. When a registered user goes online as determined by using a personal communication server, this is notified to the central repository and the user's status can be changed from offline to online. This change in state can be communicated to all other users via the push mechanism, so that both the recipient and sender should be able to send and receive communications at that moment. And peer-to-peer communication that must be performed with the user just connected.

更に、前述のシステムには、メッセージ送信機能を制御するソフトウエアコンポーネントがダウンロードされクライアントのパーソナルコンピュータに常駐している。後で詳しく説明するように、電子メールメッセージ送信の実施例の場合は、電子メールサーバを含み、この電子メールサーバは、Microsoft OutlookTMなどのローカル電子メールクライアントと協力して、ユーザが中央サーバにアクセスすることなく、実際にはユーザ対話なしに、全てのデータメッセージの送受信を処理する。換言すると、クライアントのパーソナルコンピュータは、所望のピアツーピア通信を制御することができ、このプロセスは、ユーザの視点から見て極めて容易である。 Further, in the aforementioned system, software components for controlling the message transmission function are downloaded and reside in the client personal computer. As will be described in more detail below, the example of sending an email message includes an email server that cooperates with a local email client such as Microsoft Outlook TM to allow the user to contact a central server. It handles the sending and receiving of all data messages without access and actually without user interaction. In other words, the client's personal computer can control the desired peer-to-peer communication, and this process is very easy from the user's perspective.

本発明の更に他の利点には、特に電子メールメッセージ送信に関して、スパム電子メールを受け取るのを防ぐ機能がある。電子メールアドレスが全て中央データベースによって認定されたとき、スパムの送信元を直ちに断つことができる。更に、従来の電子メールアドレスと違って、本発明では受信者のアドレスを容易に入手できない。   Yet another advantage of the present invention is the ability to prevent receipt of spam emails, particularly with respect to sending email messages. When all email addresses are verified by the central database, spam sources can be immediately cut off. Furthermore, unlike conventional e-mail addresses, the present invention does not make it easy to obtain recipient addresses.

また、ユーザに通話が可能な人を瞬時に通知することができ、すなわち、電話をかけたい人にこの状況情報がプッシュされたときは常にオンラインなので、VOIPを比較的容易に実現できることを理解されたい。VOIP接続は、インターネットを介しているため、無料であり、従って、ユーザが標準インターネット接続料の追加費用を支払うことなく長距離と近距離の通話をすることができる。   Also, it is understood that the user can be notified instantly of the person who can make a call, that is, when this situation information is pushed to the person who wants to make a call, it is always online, so VOIP can be realized relatively easily. I want. Since the VOIP connection is via the Internet, it is free of charge, so that users can make long-distance and short-distance calls without paying the additional cost of a standard Internet connection fee.

従って、本発明により、ユーザは、業務と個人の機密情報を全く秘密に送受信することができる。また、本発明が、従来の電子メールと共に使用される場合、本発明は、故障、災害、物理的攻撃、又はサイバー攻撃が起きた場合にサービスの継続性を提供するバックアップシステムを従来の電子メールサーバに提供する。   Therefore, according to the present invention, the user can completely transmit and receive confidential information about work and personal information. Also, when the present invention is used with conventional email, the present invention provides a backup system that provides service continuity in the event of a failure, disaster, physical attack, or cyber attack. Provide to the server.

本発明は、ISP等の第三者が、受信した電子メールから広告や他の目的のために送信者や他の業務に関する個人情報を収集できなくする。また、高価な電子メールサーバ等の追加の装置が必要なく、また技術サポートの費用が減少し、コストを大幅に削減することができる。   The present invention makes it impossible for third parties such as ISPs to collect personal information about senders and other tasks for the purpose of advertising and other purposes from received emails. Further, an additional device such as an expensive e-mail server is not necessary, and the cost of technical support is reduced, so that the cost can be greatly reduced.

後で詳しく説明するように、本発明は、ファイアウォールより機能することができ、追加の構成を必要としない。本発明は、Microsoft OutlookTMやNovell GroupwiseTM等の既存の電子メールアプリケーションとシームレスに組み合わせることができる。 As will be described in detail later, the present invention can function more than a firewall and does not require additional configuration. The present invention can be seamlessly combined with existing e-mail applications such as Microsoft Outlook and Novell Groupwise .

IPアドレスが、受信者の実際のIPアドレスのときは、IPアドレスでのピアツーピア通信は比較的容易である。しかしながら、NATが使用されるときは、送信者が受信者を一意に識別することができず、NATのファイアウォールとしてのセキュリティ機能のために、ピアツーピア通信は困難になる。本発明の別の様相は、この特定の問題(後述する)を対象とする。   When the IP address is the actual IP address of the recipient, peer-to-peer communication with the IP address is relatively easy. However, when NAT is used, the sender cannot uniquely identify the recipient, and peer-to-peer communication becomes difficult because of the security function of the NAT as a firewall. Another aspect of the present invention addresses this particular problem (discussed below).

本発明のこの様相は、また、通信サーバであって、この通信サーバを含む第1のリモート側コンピュータと第2のリモート側コンピュータとの間でデータ通信ネットワークを介して、電子メール通信等のセキュアなピアツーピアデータ通信を実行するように構成され、各リモート側コンピュータのデータ通信ネットワークに対する接続のアドレス詳細及び現在状態を受け取る受信手段と、第1のリモート側コンピュータにおいてデータ通信を生成するメッセージ生成モジュールと、第2のリモート側コンピュータの現在の接続状態を確認する確認モジュールと、第2のリモート側コンピュータの接続状態から、第2のリモート側コンピュータがデータ通信ネットワークに現在接続されていることが分かったときだけ、データ通信を途中で記憶することなく第1のリモート側コンピュータから第2のリモート側コンピュータにデータ通信を直接送るように構成された伝送モジュールとを含む通信サーバを提供するとも考えられる。   This aspect of the present invention is also a communication server, and secure communication such as e-mail communication between a first remote computer including the communication server and a second remote computer via a data communication network. Receiving means for receiving address details and current status of each remote computer's connection to the data communication network, and a message generation module for generating data communication at the first remote computer, From the confirmation module for confirming the current connection state of the second remote computer and the connection state of the second remote computer, it was found that the second remote computer is currently connected to the data communication network. Only when data communication is memorized Also believed to provide a communication server including a transmission module configured to send the Rukoto without first remote computer data communication directly to the second remote computer.

本発明の本様相は、また、通信システムであって、前述のような複数の通信サーバと、データ通信ネットワークによって複数の通信サーバに接続可能なデータサーバとを含み、データサーバが、通信ネットワークに対する各通信サーバの接続の現在状態を、各通信サーバの現在のネットワークアドレスと共に受け取り、収集し、記憶し、且つこの情報の少なくとも一部分を複数の通信サーバに転送して、それらの通信サーバが、複数の通信サーバ間でピアツーピア通信を行うことを可能にするように構成された通信システムにも適用される。   This aspect of the present invention is also a communication system, which includes a plurality of communication servers as described above and a data server connectable to the plurality of communication servers by a data communication network. The current state of the connection of each communication server is received, collected, stored together with the current network address of each communication server, and at least a portion of this information is forwarded to a plurality of communication servers, so that the communication servers The present invention is also applied to a communication system configured to enable peer-to-peer communication between other communication servers.

本発明の第2の様相によれば、第1と第2のユーザコンピュータ間でデータ通信ネットワークを介して電子メール通信等のピアツーピアデータ通信を確立するのを支援するように構成された通信サーバであって、サーバが、複数の通信サーバからなるサーバネットワーク内の所与の階層レベルに提供され、通信サーバがサーバネットワーク内の他の階層レベルにある他の通信サーバに動作可能に接続することを可能にする接続手段と、複数のローカルユーザコンピュータを通信サーバに登録する登録手段と、それぞれの登録したローカルユーザコンピュータの登録詳細を記憶するデータストアであって、登録詳細が、各ローカルユーザコンピュータのアドレス情報とデータ通信ネットワークに対する接続の現在状態を含むデータストアとを有し、接続手段が、記憶した登録詳細をサーバネットワークの次に高い階層レベルにおける隣りの通信サーバに転送し、且つ階層ネットワーク内の低いレベルにある接続された通信サーバの任意のローカルユーザコンピュータの登録詳細を受け取り記憶するように構成された通信サーバが提供される。   According to a second aspect of the present invention, a communication server configured to assist in establishing peer-to-peer data communication, such as e-mail communication, over a data communication network between a first and second user computer. A server is provided at a given hierarchical level in a server network of a plurality of communication servers, and the communication server is operatively connected to other communication servers at other hierarchical levels in the server network. A connection means for enabling, a registration means for registering a plurality of local user computers in a communication server, and a data store for storing registration details of each registered local user computer, wherein the registration details are stored in each local user computer. Has address information and a data store containing the current state of the connection to the data communication network. The connection means transfers the stored registration details to the next communication server at the next higher hierarchical level of the server network and the registration details of any local user computer of the connected communication server at the lower level in the hierarchical network A communication server configured to receive and store the data is provided.

伝送サーバの階層ネットワークの使用は、メッセージ送信ネットワークがより効率的に動作することができるので極めて有利である。詳細には、大量で大きなペイロードのメッセージ送信トラフィックによって通信ネットワークに大きな負荷がかかるとき、階層構造の通信媒体を使用することによって、通信システム全体に必要以上の負担をかけることなく多量のトラフィックをローカルに処理することができる。VoIPメッセージトラフィックは、特に重いペイロードを含むことがあり、利用可能な帯域幅の多くを使い果たすことがある。階層構造を使用してアドレス指定の詳細を分散的に記録することにより、通信ネットワークの特定の部分にトラフィックを局在化させ、それによりネットワークの他の部分の性能特性に影響を及ぼさないようにすることができる。例えば、ほとんどのVOIP通話が地理的にローカルな送信元と宛先の間にあるVOIP通信では、これは、性能的な大きな利点がある。   The use of a hierarchical network of transmission servers is very advantageous because the message transmission network can operate more efficiently. Specifically, when a large load is placed on a communication network due to a large amount of message transmission traffic with a large payload, the use of a hierarchical communication medium allows a large amount of traffic to be locally transmitted without burdening the entire communication system more than necessary. Can be processed. VoIP message traffic can contain particularly heavy payloads and can use up much of the available bandwidth. By using a hierarchical structure to record addressing details in a decentralized manner, localize traffic to specific parts of the communications network, thereby not affecting the performance characteristics of other parts of the network can do. For example, in VOIP communications where most VOIP calls are between a geographically local source and destination, this has a significant performance advantage.

本発明の第2の様相は、また、第1と第2のユーザコンピュータ間でデータ通信ネットワークを介して電子メール通信等のセキュアなピアツーピアデータ通信を確立するのを支援する方法であって、複数の通信サーバからなるサーバネットワーク内の所与の階層レベルにある通信サーバ上で実施され、サーバネットワーク内の他の階層レベルにある通信サーバに対する動作可能なネットワーク接続を確立する段階と、複数のローカルユーザコンピュータを通信サーバに登録する段階と、それぞれの登録したローカルユーザコンピュータの、各ローカルユーザコンピュータのアドレス情報とデータ通信ネットワークに対する接続の現在状態を含む登録詳細を記憶する段階とを含み、確立する段階が、記憶した登録詳細を、サーバネットワーク内の次に高い階層レベルにある隣りの通信サーバに転送する段階と、階層ネットワーク内の低いレベルにおある接続された通信サーバの任意のローカルユーザコンピュータの登録詳細を受け取り記憶する段階とを含む方法にも適用される。   A second aspect of the present invention is also a method for assisting in establishing secure peer-to-peer data communication such as e-mail communication between a first and a second user computer via a data communication network. Establishing an operable network connection to a communication server at a given hierarchy level in a server network of communication servers at other hierarchy levels in the server network, and a plurality of local Registering and registering user computers with a communication server and storing registration details of each registered local user computer including address information of each local user computer and the current state of connection to the data communication network. The stage stores the stored registration details in the server network. A method comprising: transferring to a neighboring communication server at a next higher hierarchical level; and receiving and storing registration details of any local user computer of a connected communication server at a lower level in the hierarchical network. Also applies.

本発明の第3の様相によれば、送信者コンピュータと指定受信者コンピュータの間でデータ通信ネットワークを介して、電子メール通信等のセキュアなピアツーピアデータ通信を確立するのを支援するために、ピアツーピア通信メッセージの指定受信者コンピュータを探索する方法であって、通信サーバの階層ネットワーク内で実施され、指定受信者コンピュータの識別と送信者コンピュータの識別を含むデータ通信の要求をローカルサーバに送る段階と、指定受信者がローカルサーバに知られているかどうかを判断する段階と、指定受信者がローカルサーバに知られている場合に指定受信者に関して記憶した詳細を取り出し、その詳細を送信者コンピュータに送る段階と、指定受信者がローカルに知られていない場合にサーバネットワーク内の次に高い階層レベルにある隣りの通信サーバに要求を転送し、これにより該通信サーバがローカルサーバになる段階と、指定受信者が見つかるか或いは階層ネットワーク内の一番上にあるサーバの確認が終わるまで、決定する段階、取り出す段階、及び転送する段階を繰り返す段階とを含む方法が提供される。   According to a third aspect of the present invention, in order to assist in establishing secure peer-to-peer data communications, such as email communications, between a sender computer and a designated recipient computer over a data communications network. A method of searching for a designated recipient computer of a communication message, wherein the method is implemented in a hierarchical network of communication servers and sends a request for data communication including identification of a designated recipient computer and identification of a sender computer to a local server; Determining whether the designated recipient is known to the local server and, if the designated recipient is known to the local server, retrieving stored details about the designated recipient and sending the details to the sender computer Stage and server network if the designated recipient is not known locally The request is forwarded to the next communication server at the next higher hierarchical level, so that the communication server becomes a local server, and the designated recipient is found or the highest server in the hierarchical network is confirmed. A method is provided that includes the steps of determining, retrieving and repeating the transfer until the end of the process.

階層的通信ネットワークを使用するこの方法は、宛先アドレスを見つける手続きが先行技術よりもかなり高速になるため有利である。その理由は、最初に送信元に対する地理的ローカルアドレスが確認され、その後で階層ネットワークの高い方にあるリモートアドレスが徐々に、そのアドレスが見つかるまで又は一番上に達するまで確認されるからである。この場合も、多数の通信がローカル宛先に実際に向けられるときに、そのような通信を素早く見つけることができ、また通信サーバのネットワークの潜在的管理負担を軽減することができる。   This method of using a hierarchical communication network is advantageous because the procedure for finding the destination address is much faster than the prior art. The reason is that the geographical local address for the source is first checked, and then the remote address higher in the hierarchical network is checked gradually until it is found or reaches the top. . Again, when a large number of communications are actually directed to a local destination, such communications can be found quickly and the potential management burden on the network of communications servers can be reduced.

本発明のこの第3の様相は、また、送信者コンピュータと指定受信者コンピュータの間でデータ通信ネットワークを介して電子メール通信等のセキュアなピアツーピアデータ通信を確立する方法であって、複数の通信サーバからなる階層的サーバネットワーク内で実施され、前述の指定受信者コンピュータを探索する方法と、指定受信者コンピュータの現在のグローバル通信アドレスを送信者コンピュータに通信する段階と、送信者コンピュータの現行グローバル通信アドレスを指定受信者コンピュータに通信する段階と、グローバル通信アドレスを使用して送信者コンピュータと指定受信者コンピュータの間でピアツーピア通信チャネルを設定する段階とを含む方法にも適用される。   This third aspect of the invention is also a method for establishing secure peer-to-peer data communication, such as e-mail communication, over a data communication network between a sender computer and a designated recipient computer, wherein a plurality of communication A method of searching for a designated recipient computer as described above, communicating a current global communication address of the designated recipient computer to the sender computer, and a current global of the sender computer, implemented in a hierarchical server network of servers It also applies to a method comprising communicating a communication address to a designated recipient computer and setting up a peer-to-peer communication channel between the sender computer and the designated recipient computer using the global communication address.

本発明の第4の様相によれば、第1と第2のユーザコンピュータの間で電子メール通信等のピアツーピアデータ通信を確立するために使用される伝送サーバであって、第1のユーザコンピュータから、伝送サーバに登録された第2のユーザコンピュータに対する接続の要求を受け取る受信手段と、第2のユーザコンピュータに対する接続の現在の接続状態を検証する検証手段と、第2のユーザコンピュータの現在の接続状態から、第2のユーザコンピュータとのピアツーピア通信を現在確立できないこと分かった場合に、要求の詳細をウォッチとして記憶するデータストアと、検証手段に応答して、第2のユーザコンピュータの状態が変化して、第2のユーザコンピュータとのピアツーピア通信を現在確立することができることが示された場合に、第2のユーザコンピュータのオンライン状態を示すメッセージを第1のユーザコンピュータに送る応答手段とを含み、検証手段が、第2のユーザコンピュータに対する現在の接続状態を定期的に確認すると共に更新するように構成され、この更新から、第2のユーザの状態がオンラインに変化したことが分かったときに対応するウォッチの存在を確認し、ウォッチが見つかった場合に応答手段を活動化してメッセージを送信する伝送サーバが提供される。   According to a fourth aspect of the present invention, there is provided a transmission server used for establishing peer-to-peer data communication such as e-mail communication between a first user computer and a second user computer, from the first user computer. Receiving means for receiving a request for connection to the second user computer registered in the transmission server; verification means for verifying a current connection state of the connection to the second user computer; and current connection of the second user computer If the state finds that peer-to-peer communication with the second user computer cannot currently be established, the state of the second user computer changes in response to the data store storing the request details as a watch and the verification means The peer-to-peer communication with the second user computer can now be established. Response means for sending a message indicating the online status of the second user computer to the first user computer, wherein the verification means periodically checks and updates the current connection status to the second user computer. This update is used to check for the presence of the corresponding watch when it is found that the status of the second user has changed to online, and activate the response means and send a message if a watch is found A transmission server is provided.

本発明のこの第4の様相による伝送サーバは、指定受信者の接続状態を監視する機構を備え、この機構は、メッセージ送信者の資源を有利に含まない。より正確に言うと、この伝送サーバは、指定受信者の接続状態を有効に監視することができ、ピアツーピア通信が可能になるように変化したときに、メッセージ送信者に通知することができる。これは、データメッセージをセキュアでない可能性のある場所に途中で記憶しないデータメッセージ送信を支援する。   The transmission server according to this fourth aspect of the invention comprises a mechanism for monitoring the connection status of the designated recipient, which mechanism advantageously does not include the resource of the message sender. More precisely, the transmission server can effectively monitor the connection status of the designated recipient and can notify the message sender when it changes to enable peer-to-peer communication. This supports data message transmissions that do not store data messages in places that may not be secure.

本発明の第4の様相は、また、第1と第2のユーザコンピュータの間で電子メール通信等のピアツーピアデータ通信を確立するのを支援する方法であって、第1のユーザコンピュータから、ローカルに登録された第2のユーザコンピュータに対する接続の要求を受け取る段階と、第2のユーザコンピュータに対する接続の現在の接続状態を検証する段階と、第2のユーザコンピュータの現在の接続状態から、第2のユーザコンピュータとのピアツーピア通信を現在確立できないことが分かった場合に、要求の詳細をウォッチとして記憶する段階と、検証する段階に応答して、第2のユーザコンピュータの状態が変化し、第2のユーザコンピュータとのピアツーピア通信を現在確立したことを示している場合に、第2のユーザコンピュータのオンライン状態を示すメッセージを第1のユーザコンピュータに送る段階とを含み、検証する段階が、第2のユーザコンピュータに対する現在の接続状態を定期的に確認し更新し、この更新から、第2のユーザ状態がオンラインに変化したことが分かったときに、対応するウォッチの存在を確認し、ウォッチが見つかった場合に応答手段を活動化してメッセージを送信する方法で実現される。   A fourth aspect of the invention is also a method for assisting in establishing peer-to-peer data communication, such as email communication, between a first and second user computer, from a first user computer, Receiving a request for a connection to a second user computer registered with the second user computer, verifying a current connection state of the connection to the second user computer, and a second connection state from the current connection state of the second user computer. In response to the step of storing the request details as a watch and the step of verifying if the peer-to-peer communication with the user computer is currently not established, the second user computer changes state, If the second user computer indicates that a peer-to-peer communication with the other user computer is currently established, Sending a message indicating the line status to the first user computer, wherein the step of verifying periodically checks and updates the current connection status to the second user computer, from which the second user When it is found that the status has changed to online, the existence of the corresponding watch is confirmed, and when the watch is found, the response means is activated and a message is transmitted.

本発明の第5の様相は、ピアツーピア通信に対応できるようにNAT及びファイアウォールと関連した問題を克服する事柄に取り組む。本発明のこの様相は、実際のローカルアドレスがNATのリモート通信側に常に見えていない場合でも、受信者の実際のローカルアドレスの決定を含む指定受信者の能力の一連の通信(調査)の実施を送信することによってNATのマッピング機能を決定することができるという認識にある。そのような調査は、通信制御チャネルの使用と、指定受信者が、NATの変換機能を推定できるようにNATを介してメッセージ内のデータとしてそのローカルアドレスを送る重要な機能とを含む。他の調査は、潜在的な指定受信者に関する調査結果を提供する能力を含む。   The fifth aspect of the present invention addresses the problem of overcoming problems associated with NATs and firewalls to accommodate peer-to-peer communications. This aspect of the present invention is the implementation of a series of communications (investigations) of the designated recipient's capabilities, including the determination of the recipient's actual local address, even if the actual local address is not always visible to the remote communications side of the NAT. It is recognized that the mapping function of NAT can be determined by transmitting. Such investigations include the use of a communication control channel and the critical function of sending its local address as data in a message via the NAT so that the designated recipient can estimate the NAT's translation capabilities. Other surveys include the ability to provide survey results for potential designated recipients.

NATのマッピング機能を有効に特定する利点は、このマッピング機能を使用して、NATによって所望の単一受信位置に逆にマッピングされる適切にアドレス指定された通信をNATに送ることができることである。NATは、マッピング機能が特定されたことに全く気づかず、その結果、直接ピアツーピア通信に対応することができる。   An advantage of effectively identifying the mapping function of the NAT is that it can be used to send properly addressed communications to the NAT that are mapped back to the desired single receive location by the NAT. . The NAT is completely unaware that the mapping function has been specified and, as a result, can support direct peer-to-peer communication.

NAT及びファイアウォールと関連した問題を克服する代替の方法は、伝送サーバに対して確立されたTCP/IPリンクを使用して、ピアツーピア通信を支援するUDP通信チャネルの作成を支援することである。より具体的には、本発明の第5の様相によれば、第1と第2のユーザコンピュータの間で、少なくとも第1のユーザコンピュータの通信が第1のネットワークアドレス変換器(NAT)によって処理されるデータ通信ネットワークを介して、電子メール通信チャネル等のセキュアなピアツーピアデータ通信チャンネルを確立する方法であって、第1のユーザコンピュータと伝送サーバの間で第1のNATによって確立された伝送制御プロトコル/インターネットプロトコル(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のユーザコンピュータの間にセキュアなピアツーピア通信を確立することができるように、第1と第2のユーザコンピュータのそれれぞれに互いのユーザコンピュータのUDPポートアドレスを通知する段階とを含む方法が提供される。   An alternative way to overcome the problems associated with NAT and firewalls is to use a TCP / IP link established to the transmission server to help create a UDP communication channel that supports peer-to-peer communication. More specifically, according to the fifth aspect of the present invention, at least communication between the first user computer and the first user computer is processed by the first network address translator (NAT). A method for establishing a secure peer-to-peer data communication channel, such as an email communication channel, over a connected data communication network, the transmission control being established by a first NAT between a first user computer and a transmission server Requesting a direct connection via a protocol / internet protocol (TCP / IP) communication link; establishing a first user diagram protocol (UDP) port at the transmission server; via a TCP / IP communication link Report the address of the first UDP port to the first user computer Opening a second UDP port on the first user computer, and allowing the transmission server to determine the first NAT address of the second UDP port from the second UDP port. Sending a data packet to the first UDP port via the NAT, obtaining a third UDP port address of the second user computer in the transmission server, and between the first and second user computers Informing each of the first and second user computers of each other's user computer's UDP port address so that secure peer-to-peer communication can be established.

ピアツーピア通信を確立しようとするとき、NAT横断が大きな問題であることを理解されたい。本発明のこの第5の様相は、NATの1つが非対称の場合でも、ピアツーピア通信のNAT横断を可能にする単純で実行可能の解決策を提供する。   It should be understood that NAT traversal is a major problem when trying to establish peer-to-peer communication. This fifth aspect of the present invention provides a simple and feasible solution that allows for NAT traversal of peer-to-peer communications even if one of the NATs is asymmetric.

本発明の第5の様相は、また、第1と第2のユーザコンピュータ間でデータ通信ネットワークを介して電子メール通信チャネル等のセキュアなピアツーピアデータ通信チャンネルを確立するのを支援する伝送サーバであって、少なくとも第1のユーザコンピュータの通信が、第1のネットワークアドレス変換器(NAT)によって処理され、第1のNATによって第1のユーザコンピュータと伝送サーバの間に確立された伝送制御プロトコル/インターネットプロトコル(TCP/IP)通信リンクを介しての直接接続の要求を受け取る要求受信手段と、伝送サーバにおいて第1のユーザダイアグラムプロトコル(UDP)ポートを確立する確立する手段と、TCP/IP通信リンクを介して第1のユーザコンピュータに第1のUDPポートのアドレスをレポートするレポート手段と、第1のユーザコンピュータに設定された第2のUDPポートから、第1のNATを介して第1のUDPポートに送られるデータパケットを受け取るデータパケット受信手段であって、伝送サーバが、第2のUDPポートの第1のNATアドレスを決定するように構成されたデータパケット受信手段と、伝送サーバにおいて第2のユーザコンピュータの第3のUDPポートアドレスを得る取得手段と、第1と第2のユーザコンピュータが間にセキュアなピアツーピア通信を確立できるように、第1と第2のユーザコンピュータのそれぞれに互いのユーザコンピュータのUDPポートアドレスを通知する手段とを有する伝送サーバにも適用される。   A fifth aspect of the present invention is also a transmission server that assists in establishing a secure peer-to-peer data communication channel, such as an email communication channel, between the first and second user computers via a data communication network. Thus, at least a first user computer communication is processed by a first network address translator (NAT) and established by the first NAT between the first user computer and the transmission server / Internet. A request receiving means for receiving a request for a direct connection via a protocol (TCP / IP) communication link; a means for establishing a first user diagram protocol (UDP) port in a transmission server; and a TCP / IP communication link A first UDP port to the first user computer via A reporting means for reporting an address; and a data packet receiving means for receiving a data packet sent from the second UDP port set in the first user computer to the first UDP port via the first NAT. A data packet receiving means configured so that the transmission server determines a first NAT address of the second UDP port; and an acquisition means for obtaining a third UDP port address of the second user computer at the transmission server; A transmission server having means for notifying each of the first and second user computers of each other's UDP port address so that the first and second user computers can establish secure peer-to-peer communication between them. Also applies.

NAT横断に関係する最も複雑な状況は、ファイアウォールの実施が厳密か或いは両側に非対称NATがあるために、直接ピアツーピア接続を単純に実現できないときに起こる。この状況は、非対称NATを横断するように「擬似」ピアツーピア通信を確立することによって解決することができる。より詳細には、本発明の第6の様相によれば、第1と第2のユーザコンピュータ間でデータ通信ネットワークを介して電子メール通信チャネル等のセキュアな疑似ピアツーピアデータ通信チャンネルを確立する方法であって、両方のユーザコンピュータの通信が、第1と第2の非対称ネットワークアドレス変換器(NAT)によって処理され、それぞれの第1と第2の非対称NATを介した各ユーザコンピュータから伝送サーバへの伝送制御プロトコル/インターネットプロトコル(TCP/IP)通信リンクを作成する段階と、第1のNATによる第1のユーザコンピュータと伝送サーバの間のTCP/IP通信リンクを介して受け取る直接接続の要求を受け取ったときに、伝送サーバに第1と第2のユーザダイアグラムプロトコル(UDP)ポートを確立する段階と、第1と第2のUDPポートのアドレスを、それぞれのTCP/IP通信リンクを介して第1と第2のユーザコンピュータにそれぞれレポートする段階と、第1のユーザコンピュータに第3のUDPポートを開くと共に第2のユーザコンピュータに第4のUDPポートを開く段階と、データパケットを第3のUDPポートから第1のNATを介して第1のUDPポートに送り、第4のUDPポートから第2のNATを介して第2のUDPに送り、それにより伝送サーバが、第3のUDPポートの第1のNATアドレスと第4のUDPポートの第2のNATアドレスとを決定できるようにする段階と、第1のUDPポートで受け取ったデータパケットを第2のUDPポートを介して第4のUDPポートのNATアドレスに転送し、第2のUDPポートで受け取ったデータパケットを第1のUDPポートを介して第3のUDPポートのNATアドレスに転送し、それにより、伝送サーバからデータパケットを有効に返送することによって、第1と第2のユーザコンピュータ間の擬似ピアツーピア通信を確立するようにする段階とを含む方法が提供される。   The most complex situation involving NAT traversal occurs when a direct peer-to-peer connection cannot simply be achieved due to strict firewall implementation or asymmetric NAT on both sides. This situation can be resolved by establishing “pseudo” peer-to-peer communication across an asymmetric NAT. More particularly, according to a sixth aspect of the present invention, there is provided a method for establishing a secure pseudo peer-to-peer data communication channel, such as an email communication channel, via a data communication network between first and second user computers. Communication between both user computers is processed by first and second asymmetric network address translators (NATs) from each user computer to the transmission server via respective first and second asymmetric NATs. Creating a Transmission Control Protocol / Internet Protocol (TCP / IP) communication link and receiving a direct connection request received via the TCP / IP communication link between the first user computer and the transmission server by the first NAT. When the transmission server receives the first and second user diagram protocols (UD) ) Establishing a port; reporting the addresses of the first and second UDP ports to the first and second user computers, respectively, via respective TCP / IP communication links; and the first user computer Open a third UDP port and open a fourth UDP port to the second user computer, and send a data packet from the third UDP port to the first UDP port via the first NAT, 4 UDP port through the second NAT to the second UDP, whereby the transmission server sends the first NAT address of the third UDP port and the second NAT address of the fourth UDP port. And allowing the data packet received at the first UDP port to pass through the second UDP port to the NAT address of the fourth UDP port. Transfer the data packet received at the second UDP port to the NAT address of the third UDP port via the first UDP port, thereby effectively returning the data packet from the transmission server Establishing a pseudo peer-to-peer communication between the first and second user computers.

前述のように、擬似ピアツーピア通信は、本発明のこの様相が、信頼できる仲介者の役割をするローカル伝送サーバでメッセージを「返送する(bounce)」ことができる能力によって実現される。これにより、ローカル伝送サーバが常にローカル非対称に知られており、その結果ファイアウォールの最も厳しい規則でもそのような間接擬似ピアツーピア通信が妨げられないので、未知の送信者の問題が軽減される。更に、そのような間接通信チャネルのセキュリティが低下する可能性は、跳ね返されたパケットが、信頼できる介在者の役割をする伝送サーバによって最小限の分析で且つ必ず記憶なしに転送されるようにすることによって最小になる。   As mentioned above, pseudo-peer-to-peer communication is realized by the ability of this aspect of the invention to “bounce” a message at a local transmission server acting as a trusted intermediary. This alleviates the problem of unknown senders because the local transmission server is always known locally asymmetric, so that even the most stringent rules of the firewall do not prevent such indirect pseudo-peer-to-peer communication. In addition, the potential for such indirect communication channels to be compromised ensures that bounced packets are forwarded with minimal analysis and without storage by a transmission server acting as a trusted intermediary. By minimizing.

ファイアウォール動作のばかげた(極めて厳しい)解釈に遭遇した場合、本発明のこの様相は、ある方向で真のピアツーピア通信を実現し、他の方向でローカル伝送サーバで跳ね返るように構成される。この変形例は、セキュリティの低下を最小にするために行う価値がある。例えば、電子メール送信の場合は、電子メールを直接送り、肯定応答を返すように構成すると有利である。   When encountering a ridiculous (extremely strict) interpretation of firewall operation, this aspect of the present invention is configured to provide true peer-to-peer communication in one direction and bounce off at the local transmission server in the other direction. This variant is worth doing in order to minimize security degradation. For example, in the case of e-mail transmission, it is advantageous to send the e-mail directly and return an affirmative response.

本発明のこの第6の様相は、また、第1と第2のユーザコンピュータ間でデータ通信ネットワークを介して、電子メール通信チャネル等のセキュアな擬似ピアツーピアデータ通信チャンネルを確立するのを支援する伝送サーバであって、両方のユーザコンピュータの通信が、それぞれの第1と第2の非対称ネットワークアドレス変換器(NAT)によって取り扱われ、伝送制御プロトコル/インターネットプロトコル(TCP/IP)通信リンクを、各ユーザコンピュータから伝送サーバまで、それぞれの第1と第2の非対称NATを介して作成する作成する手段と、第1のユーザコンピュータと伝送サーバの間で第1の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のUDPポートで受け取ったデータパケットを、第2のUDPポートを介して第4のUDPポートのNATアドレスに転送し、第2のUDPポートで受け取ったデータパケットを、第1のUDPポートを介して第3のUDPポートのNATアドレスに転送し、それにより、第1と第2のユーザコンピュータの間の擬似ピアツーピア通信が、伝送サーバからデータパケットを有効に返送することによって確立される伝送サーバにも適用される。   This sixth aspect of the invention also provides a transmission that assists in establishing a secure pseudo peer-to-peer data communication channel, such as an email communication channel, between the first and second user computers via the data communication network. A server, in which communication between both user computers is handled by respective first and second asymmetric network address translators (NATs), and a transmission control protocol / Internet protocol (TCP / IP) communication link is connected to each user. Means for creating from the computer to the transmission server via the respective first and second asymmetric NAT, and between the first user computer and the transmission server via the TCP / IP communication link by the first NAT When the direct connection request is received, the transmission server receives the first and second -Establishing means for establishing a user diagram protocol (UDP) port; and reporting means for reporting the addresses of the first and second UDP ports to the first and second user computers via respective TCP / IP communication links. And sent from the third UDP port set in the first computer to the first UDP port via the first NAT and from the fourth UDP port set in the second user computer to the second A data packet sent to the second UDP via the NAT, whereby the transmission server determines the first NAT address of the third UDP port and the second NAT address of the fourth UDP port Receiving means for enabling the data packet received at the first UDP port to pass through the second UDP port to the fourth U Data packets transferred to the NAT address of the P port and received at the second UDP port are transferred via the first UDP port to the NAT address of the third UDP port, whereby the first and second Pseudo peer-to-peer communication between user computers also applies to a transmission server established by effectively returning data packets from the transmission server.

本発明の第7の様相によれば、送信者コンピュータと指定受信者コンピュータ間のデータ通信ネットワークを介したピアツーピア通信を確立するのを支援するために、ユーザコンピュータを伝送サーバの階層接続ネットワークに接続する方法であって、接続ネットワーク内のローカル伝送サーバと同じ階層レベルにある複数のピア転送サーバのそれぞれの現行負荷を示す情報を受け取る段階と、ローカルユーザコンピュータをローカル伝送サーバに接続する要求を受け取る段階と、ローカルサーバの現行負荷をピアサーバのそれぞれと比較する段階と、ローカル伝送サーバの負荷が、ピアサーバの内のいずれかのピアサーバの負荷より著しく大きい場合に、最も低い負荷を有するピアサーバに接続すべきであることを示す応答をローカルユーザコンピュータに送る段階と、ローカル伝送サーバの負荷が、ピアサーバの内のどのピアサーバの負荷より著しく大きくない場合に接続要求を受け入れ、ローカル伝送サーバの現行負荷を更新する段階とを含む方法が提供される。   According to a seventh aspect of the present invention, a user computer is connected to a hierarchical connection network of transmission servers to assist in establishing peer-to-peer communication over a data communication network between a sender computer and a designated recipient computer. A method of receiving information indicating a current load of each of a plurality of peer forwarding servers at the same hierarchical level as a local transmission server in a connection network, and receiving a request to connect a local user computer to the local transmission server Compare the current load on the local server with each of the peer servers, and connect to the peer server with the lowest load if the load on the local transmission server is significantly greater than the load on any of the peer servers. Response to the local user A method is provided that includes sending to a computer and accepting a connection request and updating the current load on the local transmission server when the load on the local transmission server is not significantly greater than the load on any of the peer servers. .

本発明のこの様相は、通信ネットワークのロードバランシングの問題に取り組む。ローカルサーバの現行負荷の大きさを伝送サーバの階層内で維持することによって、ピアツーピア接続を確立する要求を常に効率的に再分配するができる。負荷の点でバランスのとれた通信を維持することによって、ネットワーク自体が効率的になり、性能の低下も最小限に抑えられる。   This aspect of the present invention addresses the problem of communication network load balancing. By maintaining the current load magnitude of the local server within the transmission server hierarchy, the request to establish a peer-to-peer connection can always be efficiently redistributed. By maintaining balanced communication in terms of load, the network itself becomes efficient and performance degradation is minimized.

本発明の第8の様相によれば、通信サーバに登録されたユーザコンピュータ間でピアツーピアデータ通信を確立する際に使用するように設定された認証済み通信サーバのネットワークにノードを結合する方法であって、認証サーバから受け取ったユーザ識別とパスワードを使用して、認証サーバにノードを認証させる段階と、ネットワークに加わるためにノードを接続しなければならない特定の通信サーバの識別の通知を受ける段階と、特定の通信サーバに接続するために、認証サーバから特定の通信サーバ及びノードに固有のデータを要求する段階と、特定の通信サーバ及びノードに固有のデータと、ノードと特定の通信サーバによって共有される共有暗号鍵とを受け取る段階と、特定の通信サーバ及びノードに固有のデータと、暗号鍵によって暗号化されたグローバルデータとを特定の通信サーバに送り、その結果、特定の通信サーバが、ネットワークにノードを認証させそれにより認証サーバからの検証を求めることなしにネットワークに参加するツールを有するようにする段階とを含む方法が提供される。   According to an eighth aspect of the present invention, there is a method for joining a node to a network of authenticated communication servers configured to be used when establishing peer-to-peer data communication between user computers registered in a communication server. Using the user identification and password received from the authentication server to cause the authentication server to authenticate the node, and receiving notification of identification of a particular communication server that the node must connect to join the network; Requesting data specific to a specific communication server and node from the authentication server to connect to the specific communication server, data specific to the specific communication server and node, shared by the node and the specific communication server A shared encryption key to be received, data specific to a specific communication server and node, and an encryption key The encrypted global data to a specific communication server, so that the specific communication server authenticates the node to the network and thereby joins the network without requiring verification from the authentication server. And providing a method.

本発明のこの様相は、ネットワークに参加したい新しいノードの認証手続を実施する極めてセキュアな方法を提供する。これは、メッセージ送信元が、ネットワークにアクセスすることでメッセージ送信元に特権が与えられ、例えば通信ネットワークの他のメンバと自由に通信することが許可されるピアツーピア通信が容易なネットワークに参加したい状況で特に重要である。   This aspect of the present invention provides a very secure way to implement authentication procedures for new nodes that wish to join the network. This is a situation where a message source is privileged to gain access to the network by accessing the network, for example to join a network that facilitates peer-to-peer communication where it is allowed to freely communicate with other members of the communication network. Is particularly important.

本発明の第9の様相によれば、相互接続された伝送サーバノードの第1の階層レルム(hierarchical realm)を、相互接続された伝送サーバノードの第2の階層レルムに接続する方法であって、各レルム内にローカル認証サーバを提供する段階であって、認証サーバが、それぞれの階層レルムの最も高いレベルにある主ノードに接続され、レルム内の全てのサーバに関連した認証問題を制御するように調整される段階と、第1の階層レルムの主ノードを第2の階層レルムの認証サーバに登録する段階と、第1の階層レルムの主ノードを第2の階層レルムの認証サーバに対して認証する段階と、階層レルムを結合するために第1の階層レルムの主ノードが接続しなければならない最も下のノードサーバの識別に関する通知を受ける段階と、第2の階層レルムの最も下のノードサーバと第1の階層レルムの主ノードの両方の共有データと共有暗号鍵を受け取る段階と、受け取った共用データと共有暗号鍵を使って、第1の階層レルムの主ノードを第2の階層レルムの最も下のノードサーバに対して認証し、それにより第2のレルムの認証サーバからの検証を求めることなく第1と第2のレルムを結合する段階とを含む方法が提供される。   According to a ninth aspect of the present invention, there is a method for connecting a first hierarchical realm of interconnected transmission server nodes to a second hierarchical realm of interconnected transmission server nodes. Providing a local authentication server within each realm, where the authentication server is connected to the primary node at the highest level of each hierarchical realm and controls authentication issues associated with all servers in the realm Adjusting the primary node of the first hierarchy realm to the authentication server of the second hierarchy realm, and registering the primary node of the first hierarchy realm to the authentication server of the second hierarchy realm. Authenticating, receiving notification regarding identification of the lowest node server to which the primary node of the first hierarchy realm must connect in order to join the hierarchy realms, and the second hierarchy Receiving the shared data and shared encryption key of both the lowest node server of the LUM and the primary node of the first hierarchy realm, and using the received shared data and shared encryption key, the primary node of the first hierarchy realm Authenticating to the lowest node server of the second tier realm, thereby combining the first and second realms without seeking verification from the authentication server of the second realm. Provided.

本発明のこの様相は、独自の通信ネットワーク(レルム)を持つ企業が、結果的にセキュリティの損失なしに参加することができるという点で有利である。また、極めて大きいサイズの既存のネットワークになるものを結合するために、前述の簡単な方法で高い方のレルムの許可を修正するだけでよいので、各レルムの完全性は損なわれない。これは、ピアツーピア技術を使用して全く異なる組織の人の間の通信が極めてセキュアに可能になることを意味する。   This aspect of the present invention is advantageous in that a company with its own communication network (realm) can eventually participate without loss of security. Also, the integrity of each realm is not compromised because it is only necessary to modify the permissions of the higher realm in the simple manner described above to join what would be an existing network of very large size. This means that communication between people from completely different organizations using peer-to-peer technology can be made very secure.

図1を参照すると、本発明を実施するシステム10が示されている。この実施形態は、現時点で好ましい電子メール通信に関して説明される。しかしながら、例えばボイスオーバーアイピー(VoIP)やインスタントメッセージ等の任意の形態の電子通信伝送も使用できることを理解されたい。更に、本発明をインターネット等の広域ネットワークを介した通信に関して説明するが、本発明は、ローカルエリアネットワークによって実施することもでき、或いは移動体通信によって実現することもできる。   Referring to FIG. 1, a system 10 embodying the present invention is shown. This embodiment will be described with respect to presently preferred email communications. However, it should be understood that any form of electronic communication transmission may be used, such as Voice over IP (VoIP) or instant messaging. Further, although the present invention will be described with respect to communication over a wide area network such as the Internet, the present invention can be implemented by a local area network or can be realized by mobile communication.

システム10は、異なる場所に提供された2台のパーソナルコンピュータ(PC)12及び14を含む。第1のPCは、ローカルPC12であり、第2のPCはリモートPC14であり、システム10は、これらの2台のコンピュータ12と14の間のピアツーピア通信に対応している。各PC12と14は通信機能が同一であり、従って1台を詳しく説明するだけでよい。   The system 10 includes two personal computers (PCs) 12 and 14 provided at different locations. The first PC is the local PC 12, the second PC is the remote PC 14, and the system 10 supports peer-to-peer communication between these two computers 12 and 14. The PCs 12 and 14 have the same communication function, so only one unit needs to be described in detail.

各PC12と14は、この実施形態において、それぞれ対応するインターネットゲートウェイ18及び20を介してインターネット16に接続されている。また、ローカルPC12にあるインターネットゲートウェイ18は、ローカルPC12が、全てローカルインターネットゲートウェイ18を利用するLAN24上の複数のローカルPC12の内の1台として提供されるようにNAT22を含む。また、リモートPC14は、LAN26上に提供されているが、このケースでは、NATは提供されておらず、リモートPC14は固有IPアドレスを有する。   Each PC 12 and 14 is connected to the Internet 16 via a corresponding Internet gateway 18 and 20 in this embodiment. The Internet gateway 18 in the local PC 12 includes a NAT 22 so that the local PC 12 is provided as one of the plurality of local PCs 12 on the LAN 24 using the local Internet gateway 18. Further, although the remote PC 14 is provided on the LAN 26, in this case, no NAT is provided, and the remote PC 14 has a unique IP address.

インターネット16に接続されたデータサーバ28も提供される。データサーバ28は、管理するユーザ名32とIPアドレス34のローカルデータベース30を有する。ローカルデータベース30は、また、登録ユーザの接続状態36を記憶する。これらのユーザ名32とアドレス34は、ローカルPC12とリモートPC14のものを含み、一般に知られているため本明細書で詳しく説明しない登録手順によってデータベース30に提供される。データサーバ28が、ローカルPC12やリモートPC14等の登録されたPC間のピアツーピア通信において能動的な役割を果たさないことを理解されよう。しかしながら、データサーバ28は、最新のアドレス情報34とそのアドレスの状態36、即ちオンラインかオフラインかについて、登録されたすべてのPC12、14を更新する。   A data server 28 connected to the Internet 16 is also provided. The data server 28 has a local database 30 of a user name 32 and an IP address 34 to be managed. The local database 30 also stores the connection status 36 of registered users. These user names 32 and addresses 34 are provided to the database 30 by a registration procedure that includes those of the local PC 12 and remote PC 14 and is generally known and will not be described in detail herein. It will be appreciated that the data server 28 does not play an active role in peer-to-peer communication between registered PCs, such as the local PC 12 and remote PC 14. However, the data server 28 updates all registered PCs 12, 14 with the latest address information 34 and its address state 36, ie, online or offline.

インターネット16に全て接続された複数の伝送サーバ機構(TSM)40が提供される。これらのTSM40は、ローカルPC12とリモートPC14間のピアツーピア通信の適切なアドレス34を確立する役割をする。各TSM40は、登録されたPC12及び14の可能な各アドレスに関するアドレス指定情報を記憶するための情報のローカル記憶装置42と関連付けられる。より具体的には、これらのローカル記憶装置は、PC識別44のリストとPC識別44に対応するIPアドレス46のリストを含む。IPアドレス46のリストにおいて、TSM40自体が所与のPCをアドレス指定する役割をする場合に直接IPアドレス46が提供される。そうでない場合、即ちTSM40がその役割をしない場合は、その役割をするTSM40のIPアドレス(或いは他の適切な識別)が提供される。TSM40の動作、特にNAT横断(NAT traversal)に関しては、後で詳細に説明する。   A plurality of transmission server mechanisms (TSM) 40 that are all connected to the Internet 16 are provided. These TSMs 40 serve to establish an appropriate address 34 for peer-to-peer communication between the local PC 12 and the remote PC 14. Each TSM 40 is associated with a local storage 42 of information for storing addressing information regarding each possible address of the registered PCs 12 and 14. More specifically, these local storage devices include a list of PC identifications 44 and a list of IP addresses 46 corresponding to the PC identifications 44. In the list of IP addresses 46, the IP address 46 is provided directly if the TSM 40 itself serves to address a given PC. If not, i.e., if the TSM 40 does not play that role, the IP address (or other suitable identification) of the TSM 40 that plays the role is provided. The operation of the TSM 40, particularly the NAT traversal, will be described in detail later.

ローカルPC12とリモートPC14はそれぞれ、TCP/IPによって個人メールサーバ52に接続されたMicrosoft OutlookTM等のメールクライアント50を備える。メールサーバ52は、それ自体のローカルデータ記憶装置54を備え、ネットワークインタフェース56にも接続されている。メールサーバ52は、ピアツーピア通信プロトコルを利用するために、ダウンロードされたソフトウェアで提供され、ユーザによってインストールされる。メールサーバ52は、オンラインになったことを知らせるためにデータサーバ28と連絡をとらなければならないので、データサーバ28のネットワークアドレスを記憶する。全てのピアツーピア通信は、メールクライアント50の動作に影響を及ぼさないように個人メールサーバ52によって透過的に経路指定される。 Each of the local PC 12 and the remote PC 14 includes a mail client 50 such as Microsoft Outlook connected to the personal mail server 52 by TCP / IP. The mail server 52 has its own local data storage device 54 and is also connected to a network interface 56. The mail server 52 is provided with downloaded software and installed by the user to utilize the peer-to-peer communication protocol. The mail server 52 stores the network address of the data server 28 because it must contact the data server 28 to inform it that it is online. All peer-to-peer communications are routed transparently by the personal mail server 52 so as not to affect the operation of the mail client 50.

この実施形態で使用されるネットワークインタフェース56とインターネットゲートウェイ18、20は、全く従来通りのものであり、本明細書で更に詳しい説明は必要ない。   The network interface 56 and Internet gateways 18 and 20 used in this embodiment are entirely conventional and need not be described in further detail herein.

次に、システム10の一般的な動作モードを説明する。ユーザが、データサーバ28に詳細を提供することによってサービスに登録された後、個人電子メールサーバ52が、ユーザのPC12及び14にダウンロードされローカルにインストールされる。個人電子メールサーバ52は、電子メールクライアント50とネットワークインタフェース56に動作可能に接続され、これらは両方とも、PC12及び14上に既に提供されている。電子メールクライアント50との電子メール通信は全て個人電子メールサーバ52を介して行われる。   Next, general operation modes of the system 10 will be described. After the user is registered with the service by providing details to the data server 28, the personal email server 52 is downloaded to the user's PCs 12 and 14 and installed locally. Personal email server 52 is operatively connected to email client 50 and network interface 56, both of which are already provided on PCs 12 and 14. All electronic mail communications with the electronic mail client 50 are performed via the personal electronic mail server 52.

メッセージを送信する際、ユーザは、電子メールを作成し、次にそれを個人電子メールサーバ52に送る。指定受信者の状態に関して記憶された最新情報で示されたように指定受信者がオンラインの場合、電子メールメッセージは、指定受信者のPC14に直接送信される。他の場合は、指定受信者のPC14がオンラインになり、それがデータサーバ28からの最新オンライン状態メッセージを受け取ることによって示されるまで、電子メールメッセージは、キューに記憶される。   In sending the message, the user composes an email and then sends it to the personal email server 52. If the designated recipient is online, as indicated by the latest information stored regarding the status of the designated recipient, the e-mail message is sent directly to the designated recipient's PC 14. In other cases, the email message is stored in a queue until the designated recipient's PC 14 comes online and is indicated by receiving the latest online status message from the data server 28.

メッセージを送信する前に、指定受信者の実際の現行IPアドレス34が、TSM40によって決定される。このプロセスは、後で詳細に説明する。指定受信者の現行IPアドレス34が確認されると、電子メールメッセージのピアツーピア通信が実行される。   Prior to sending the message, the actual current IP address 34 of the designated recipient is determined by the TSM 40. This process will be described in detail later. Once the current IP address 34 of the designated recipient is confirmed, peer-to-peer communication of the email message is performed.

図2を参照して、このプロセス60を実行する方法の例を、2人のユーザAlice62とBob64に関して説明する。プロセス60は、最初に、Aliceの個人電子メールサーバ52が、彼女がオンラインになったというメッセージをデータサーバ28に送り66、彼女がBob64にメッセージを送信したいことを示す68。次に、データサーバ28は、Bobの現行のアドレス詳細を返す69。次に、Aliceの個人電子メールサーバ52は、この情報を使ってメッセージをアドレス指定し、メッセージを暗号化し70、それをBobがオンラインになったときに送信するためにローカルに記憶する72。   With reference to FIG. 2, an example of how to perform this process 60 will be described with respect to two users Alice 62 and Bob 64. Process 60 first shows that Alice's personal email server 52 sends 66 a message that she is online to data server 28 and indicates that she wants to send a message to Bob 64 68. Next, the data server 28 returns 69 the current address details of Bob. Alice's personal email server 52 then uses this information to address the message, encrypt 70 the message, and store 72 locally for sending when Bob is online.

Aliceがオンラインであり(そのことを示すメッセージはデータサーバ28に既に送られている66)Bobがオンラインになった(そのことを示すメッセージをデータサーバ28に送る74)少し後で、データサーバ28は、Bob64がオンラインになったことを示すメッセージをすべてのユーザに送信する76。このメッセージは、Aliceの個人電子メールサーバ52によって受け取られ、記憶されたメッセージをBob64に直接送ることができる78。メッセージを受け取ると、Bobの個人電子メールサーバ52はそのメッセージを記憶する80。Bobの電子メールクライアント50が、入力メッセージ(取得メッセージ)を確認するときは82、メッセージが解読され84、Bob64が読むために電子メールクライアント50に送られる86。   Alice is online (a message indicating that has already been sent to the data server 28 66) and Bob is online (sending a message indicating that to the data server 28 74) a short time later. Sends a message to all users that Bob 64 is online 76. This message can be received 78 by Alice's personal email server 52 and the stored message sent directly to Bob 64 78. Upon receipt of the message, Bob's personal email server 52 stores the message 80. When Bob's email client 50 confirms the input message (acquired message) 82, the message is decrypted 84 and sent to the email client 50 for reading Bob 64 86.

次に、図3から図6を参照して、各個人メールサーバ52で実行される実際のプロセスを説明する。   Next, an actual process executed in each personal mail server 52 will be described with reference to FIGS.

ここで図3を参照して、個人電子メールサーバ52の動作90を説明する。動作90は、最初に、サーバ52を起動し92、データサーバ(DS)28に接続される94。データサーバ28のアドレスは、メールサーバ52が既に知っており、ローカルメモリ54に記憶されている。データサーバ28は、幾つかのTSM40のロケーションアドレスを提供し、その内の1つは、システム10が作業するのに利用可能でなければならない。次に、メールサーバ52は、TSM40との接続を確立しようとする96。その一部として、TSM40がオンラインかどうかを知る確認が行われる98。TSM40がオンラインでなく接続できない場合は、メールサーバ52はオフラインであると見なされる100。続いて、プロセス90は、インターネット16に再接続し102、その接続を前述のDS段階94に返すことができる。   The operation 90 of the personal e-mail server 52 will now be described with reference to FIG. Operation 90 first activates server 52 92 and is connected 94 to data server (DS) 28. The address of the data server 28 is already known by the mail server 52 and is stored in the local memory 54. Data server 28 provides several TSM 40 location addresses, one of which must be available for system 10 to work on. Next, the mail server 52 attempts to establish a connection with the TSM 40 (96). As part of that, a confirmation is made 98 to see if the TSM 40 is online. If the TSM 40 is not online and cannot be connected, the mail server 52 is considered 100 offline. Subsequently, process 90 can reconnect 102 to the Internet 16 and return the connection to the DS stage 94 described above.

しかしながら、TSM40がオンラインの場合は104、5つの異なる選択肢(状態)のいずれかが利用可能になる。第1に、PC12及び14が遮断された場合106にプロセス90が終了する選択肢108がある。第2に、メールサーバ52を強制的にログアウトさせることができ110、それによりプロセス90が前述のようにオフライン状態100になる。第3に、メールクライアント50からメールサーバ52に接続しようとしている場合は112、メールクライアント50の信用証明が、既に記憶されている情報と照合され114、受け入れ可能な場合は、クライアントからの接続を行なうことができる116(図4を参照して後で詳しく説明するように)。クライアント信用証明が検証されない場合は、接続が拒絶され118、メールサーバ52が、オンライン状態に戻る120か、強制的にオフラインにされ122、インターネット16に接続し102、プロセス90を再開しなければならない。   However, when the TSM 40 is online, any of 104 different options (states) can be used. First, there is an option 108 that terminates the process 90 when the PCs 12 and 14 are shut down 106. Second, the mail server 52 can be forcibly logged out 110, which causes the process 90 to go to the offline state 100 as described above. Third, if the mail client 50 is trying to connect to the mail server 52, the credentials of the mail client 50 are checked 114 against already stored information, and if acceptable, the connection from the client is 116 (as will be described in detail later with reference to FIG. 4). If the client credentials are not verified, the connection is rejected 118 and the mail server 52 must be brought back online 120 or forced offline 122, connected to the Internet 16 102, and the process 90 must be resumed. .

更に他の選択肢(状態)は、メールサーバ52がメッセージを受け取り124、そのメッセージをユーザに提示するためにメールクライアント52に提供することである。このプロセス124は、後で図5を参照して詳細に説明する。   Yet another option (state) is that the mail server 52 receives the message 124 and provides it to the mail client 52 for presentation to the user. This process 124 will be described in detail later with reference to FIG.

メールサーバがオンラインなった後で利用可能な最後の選択肢(状態)は、メッセージの送信に関する。送信を待っているメッセージがあるかどうかを判断するために確認が行われる126。送信するメッセージがない場合128、プロセス90は終了し、メールサーバ52はオンライン状態104に戻る。送信するメッセージがある場合は、図6を参照して後で詳しく説明するようなMessageWaitingToSendプロセス130が実行される。この後者のプロセス130が終了した後、メールサーバ52がオンライン状態104に戻る。   The last option (status) available after the mail server is online relates to sending messages. A check is made 126 to determine if there are any messages waiting to be sent. If there are no messages to send 128, the process 90 ends and the mail server 52 returns to the online state 104. If there is a message to be transmitted, a MessageWaitingToSend process 130 as described in detail later with reference to FIG. 6 is executed. After this latter process 130 is completed, the mail server 52 returns to the online state 104.

次に図4を参照して、ConnectionFromClientプロセス116を説明する。プロセス116は、最初に、メールクライアント52(例えば、MSOutlookTM)からSMPT接続要求を受け取る140。プロセス116は、セキュリティのために、メールクライアント52が許可されているかどうか判断する142。許可されていない場合は、許可が失敗し144、ユーザに通知するメッセージがメールクライアント52に送られる146。そうでない場合、許可は成功し148、メールサーバ52は、メールクライアント50からの電子メールメッセージを受け取る150。これは、メッセージの要素が連続的に転送される多段階プロセスである(例えば、「送信元(from)」アドレス、「送信先(to)」アドレス、メッセージの本文の順で送られる)。このプロセスは、完全なメッセージを受け取るまで実行される。送信されるメッセージがまだ他にあるかどうかを判断する確認が行われ152、ある場合は、転送プロセス150、152を繰り返す。受信するメッセージがもうない場合154、メールサーバ52は、メールクライアント50から切断される156。 Next, the ConnectionFromClient process 116 will be described with reference to FIG. Process 116 initially receives 140 an SMPT connection request from mail client 52 (eg, MS Outlook ). Process 116 determines 142 for mail security whether mail client 52 is authorized. If not authorized, authorization fails 144 and a message notifying the user is sent 146 to the mail client 52. Otherwise, authorization is successful 148 and mail server 52 receives 150 an email message from mail client 50. This is a multi-step process in which the message elements are transferred sequentially (eg, sent in the order of “from” address, “to” address, message body). This process is performed until a complete message is received. A check is made 152 to determine if there are more messages to be sent, and if there are, the transfer processes 150, 152 are repeated. If there are no more messages to receive 154, the mail server 52 is disconnected 156 from the mail client 50.

受信したメッセージを処理する前に、メールクライアント50と関連付けられた送信許可を判断する確認を行うことができる158。メールクライアント50が、特定の指定受信者に送信する妥当な許可を持っていないと判断した場合は160、電子メールメッセージは送信されない162。しかしながら、送信許可が適所にある場合は、宛先ユーザ情報を取得する164。この段階は、全ての登録指定受信者のアドレス情報をデータサーバ28に要求し取得することを含む。このデータは、そのユーザのメッセージの暗号化に使用するためのユーザの公開鍵(図示せず)を含む。アドレス情報を別の電子メールメッセージと関連して最近既に受け取ってある場合は、この情報が、キャッシュに保持されている場合がある。従って、DS28からそのアドレス情報を探す前に、特定の指定受信者のアドレス情報がキャッシュにあるかどうかを調べるための確認(図示せず)を行うことができる。   Prior to processing the received message, a confirmation can be made 158 to determine the transmission permission associated with the mail client 50. If the mail client 50 determines that it does not have a reasonable permission to send to a specific designated recipient 160, the email message is not sent 162. However, if the transmission permission is in place, the destination user information is acquired 164. This stage includes requesting and obtaining data server 28 address information for all registered designated recipients. This data includes the user's public key (not shown) for use in encrypting the user's message. If the address information has been recently received in association with another email message, this information may be held in a cache. Therefore, before searching for the address information from the DS 28, a check (not shown) for checking whether the address information of a specific designated recipient is in the cache can be performed.

次に、指定受信者が認識済みメールユーザかどうかを判断する確認を行う166。認識済みメールユーザでない場合は168、システムがアドレスを知らないので、メールサーバ52は、メッセージを送信できないことだけをメールクライアント50に通知する170。しかしながら、指定受信者が登録ユーザとして認識されている場合は172、電子メールメッセージが、公開鍵インフラストラクチャ(PKI)暗号化技術を暗号化/解読に使用することができるように、前に取得してある指定受信者の公開鍵で暗号化される174。   Next, a check 166 is performed to determine whether the designated recipient is a recognized mail user. If the user is not a recognized mail user 168, the mail server 52 notifies the mail client 50 only that the message cannot be sent 170 because the system does not know the address. However, if the designated recipient is recognized as a registered user 172, the email message is previously acquired so that public key infrastructure (PKI) encryption technology can be used for encryption / decryption. 174 is encrypted with the public key of the designated recipient.

次に、暗号化したメッセージが、後で図6に関して説明するMessageWaitingToSendプロセス130に渡される。   The encrypted message is then passed to the MessageWaitingToSend process 130 described later with respect to FIG.

次に図5を参照して、MessageReceivedプロセス124を説明する。電子メールメッセージを受け取るために、メールサーバ52は、ログインされていなくてもよいが、メールサーバ52はインターネット16に接続されていなければならない。電子メールメッセージを受け取ると180、ユーザにそのメッセージが通知され182、これは、例えば通知受信ポップウィンドウ184の生成により実行することができる。受信した電子メールメッセージは、記憶装置54に記憶され、メールクライアントからの「取得(get)」(取り出し)が保留される。記憶装置は、コンピュータのハードディスクでよいが、最もセキュアな解決策では、受信したメッセージは、取り出されるまでRAMに記憶される。待機中に186、何らかの理由でメールサーバ52を遮断しなければならない場合188、未送付のメッセージは、半永久記憶装置(一般に、ハードディスク)に記憶され190、プロセス124は終了する192。   Next, the MessageReceived process 124 will be described with reference to FIG. In order to receive e-mail messages, the mail server 52 may not be logged in, but the mail server 52 must be connected to the Internet 16. Upon receipt of the e-mail message 180, the user is notified 182 of the message, which can be performed, for example, by generating a notification reception pop window 184. The received electronic mail message is stored in the storage device 54, and “get” (retrieve) from the mail client is put on hold. The storage device may be a computer hard disk, but in the most secure solution, received messages are stored in RAM until retrieved. While waiting 186, if for some reason the mail server 52 must be shut off 188, the undelivered message is stored 190 in a semi-permanent storage device (generally a hard disk) 190 and the process 124 ends 192.

メールサーバ52が、メールクライアント50から取得要求を受け取ったとき194、プロセス124は、メールクライアント50が許可されているかどうかを判断する確認をする196。許可されていない場合は、クライアント許可が失敗し198、その結果メールクライアント50の取得手順が失敗する200。このことは、受信者ユーザとAmteus(システム全体の動作を管理する権限を持ち、ユーザが登録される)に通知される202。   When the mail server 52 receives an acquisition request from the mail client 50 194, the process 124 checks 196 to determine whether the mail client 50 is authorized. If not authorized, client authorization fails 198 and, as a result, the acquisition procedure for the mail client 50 fails 200. This is notified 202 to the recipient user and Amteus (who has authority to manage the operation of the entire system and the user is registered).

メールクライアント50が許可された場合204は、2つの操作が並列に実行される。ローカルに記憶された受信者の秘密鍵を取り出し206、未送付の電子メールメッセージを取り出す208。次に、取り出した秘密鍵を使用してメッセージを解読する試み210が実行される。解読が成功しなかった場合212は、送信者に通知される214。これは、メールサーバ52が、送付が失敗したことを述べる電子メールを送信者に返すことによって実現される。次に、プロセス124は、前のクライアント許可が失敗した場合198と同じように続き、即ちメールクライアント「取得」手順が失敗する200。このことは、受信者ユーザとAmteusに通知される202。   When the mail client 50 is permitted 204, two operations are executed in parallel. The recipient's private key stored locally is retrieved 206 and the unsent e-mail message is retrieved 208. Next, an attempt 210 to decrypt the message using the retrieved private key is performed. If the decryption is not successful 212 is sent 214 to the sender. This is realized by the mail server 52 returning an e-mail stating that the sending has failed to the sender. Next, the process 124 continues in the same manner as 198 if the previous client authorization failed, i.e., the mail client "get" procedure 200 fails. This is notified 202 to the recipient user and Amteus.

一方、解読が成功した場合は216、解読済み電子メールメッセージが、ユーザに表示するためにメールクライアントに転送され、即ちメールクライアントによる「取得」が成功する218。次に、メッセージ受信プロセス124は、送付されるメッセージがまだ他にあるかどうかを確認する220。メッセージ222がもうない場合は、メッセージ受信プロセス124は終了する192。送付されるメッセージが更に他にある場合224、プロセスは、クライアント認証が成功した段階204に戻り226、前に述べた通りに続く。   On the other hand, if decryption is successful 216, the decrypted email message is forwarded to the mail client for display to the user, ie, “acquired” by the mail client is successful 218. Next, the message receiving process 124 checks 220 if there are more messages to be sent. If there are no more messages 222, the message reception process 124 ends 192. If there are more messages to be sent 224, the process returns to step 204 where the client authentication was successful 226 and continues as previously described.

次に図6を参照して、図3のメッセージ送信待機プロセス130について説明する。送信を待つ電子メールメッセージがキューにあるときは230、宛先の状態を判断しなければならない232。宛先の現在状態がキャッシ内にあるかどうか判断する確認234を行なう。現在状態がキャッシュ内にある場合は、キャッシュから取り出す236。現在状態がキャッシュ238内にない場合は、DS28から取り出し240、キャッシュが取り出された状態で更新される。   Next, the message transmission standby process 130 in FIG. 3 will be described with reference to FIG. When an email message awaiting transmission is in the queue 230, the destination state must be determined 232. A check 234 is made to determine whether the current state of the destination is in the cache. If the current state is in the cache, it is retrieved 236 from the cache. If the current state is not in the cache 238, it is retrieved 240 from the DS 28 and updated with the cache removed.

宛先がオフラインかどうかを判断するために宛先の状態を確認する242。宛先がオフライン244の場合は、メッセージを送信することができず、暗号化されたメッセージは、単に、後で伝送を試みるためにメッセージ待機キューに記憶される246。一方、宛先がオンラインの場合は、暗号化されたメッセージをキュー(RAM内又はハードディスクから)から取り出し248、そのメッセージが、ピアーツーピアー通信として指定受信者に直接送られる250。電子メールメッセージの正確なアドレス指定方法とメッセージの送信方法の詳細は、図7に概略的に示されており、後で説明する。   The destination status is checked 242 to determine if the destination is offline. If the destination is offline 244, the message cannot be sent and the encrypted message is simply stored 246 in a message waiting queue for later transmission attempts. On the other hand, if the destination is online, the encrypted message is removed from the queue (in RAM or from the hard disk) 248 and the message is sent 250 directly to the designated recipient as peer-to-peer communication. Details of how to correctly address an email message and how to send a message are shown schematically in FIG. 7 and will be described later.

メッセージの送信を確認し252、何らかの理由で送信が失敗した場合254は、送信エラー状態256が入力され、エラータイプを決定する手順が続く。この状態256は、メールサーバ52が何らかの理由で停止された258場合のメッセージ送信待機プロセス130の最初になる。この送信エラー状態256において、Amteusには、並行してエラータイプの決定が通知される260。エラーが宛先がオフラインになっていることによるものかどうか判断する確認を行う262。これは、指定受信者の状態が変化したばかりの場合に起こる可能性がある。宛先がオフライン244の場合は、後で送信するために暗号化メッセージが記憶される246。これにより、このメッセージ送信待機プロセス130の手順が終了するが、プロセス130自体は終了せず、電子メールメッセージがキュー内で送信されるのをまだ待っている状態になる。   If the message transmission is confirmed 252 and the transmission fails for some reason 254, a transmission error status 256 is entered and the procedure for determining the error type continues. This state 256 is the beginning of the message transmission waiting process 130 when the mail server 52 is stopped 258 for some reason. In this transmission error state 256, Amteus is notified 260 of the determination of the error type in parallel. A check 262 is made to determine if the error is due to the destination being offline. This can happen if the designated recipient's status has just changed. If the destination is offline 244, the encrypted message is stored 246 for later transmission. As a result, the procedure of the message transmission standby process 130 is ended, but the process 130 itself is not ended, and the electronic mail message is still waiting to be transmitted in the queue.

エラーが、宛先がオフラインになっているためではない場合は、エラーには別の原因があり264、それが永久的な障害が一時的な障害かを判断する確認が行なわれる266。永久的な障害268の場合(例えば、ユーザがなくなったか、電子メールが大きすぎる場合)、メールサーバは、メッセージが送付不能であったと言うメッセージを受け取る270。しかしながら、エラーが一時的な障害272による(例えば、接続不良による)場合、暗号化された電子メールメッセージが、キューに戻されて記憶され242、このメッセージ送信待機プロセス130の手順が終了する。   If the error is not due to the destination being offline, the error has another cause 264 and a confirmation 266 is made to determine whether the permanent failure is a temporary failure. In the case of a permanent failure 268 (eg, if there are no users or the email is too large), the mail server receives a message 270 that the message could not be sent. However, if the error is due to a temporary failure 272 (eg, due to a bad connection), the encrypted email message is returned to the queue and stored 242, and the procedure of this message transmission standby process 130 ends.

電子メールメッセージの送信結果に戻ると、メッセージが送付された274ことが確認された場合は、セキュリティのために電子メールのローカルコピーが削除される276。送信成功の通知がAmteusに送られ260、送信されるのを待っている電子メールメッセージがあるかどうかを判断する確認278が行われる。ある場合、プロセス130は、その電子メールメッセージの宛先(指定受信者)の状態の確認232に戻り、前述のように続けることを繰り返す。送信されるのを待っている電子メールメッセージがない場合は、処理するメッセージは他になく280、このメッセージ送信待機プロセス130の手順が終了する。   Returning to the result of sending the e-mail message, if it is confirmed that the message has been sent 274, the local copy of the e-mail is deleted 276 for security. A notification of successful transmission is sent to Amteus 260 and a confirmation 278 is made to determine if there is an email message waiting to be transmitted. If so, the process 130 returns to confirming the destination (designated recipient) status 232 of the email message and repeats continuing as described above. If there is no e-mail message waiting to be sent, there is no other message to be processed 280, and the procedure of this message sending standby process 130 ends.

次に図7を参照して、TSMの操作及び対話について説明し、詳細には、TSMが、ピアツーピア通信に必要な指定受信者のアドレス指定をどのように確立するかを説明する。   Referring now to FIG. 7, the operation and interaction of the TSM will be described, in particular how the TSM establishes the designated recipient addressing required for peer-to-peer communication.

最初に、TSMは、アドレス調査プロセスを常に実行しており、その結果、指定受信者への電子メールメッセージの送付が必要な時はいつも、その指定受信者のアドレス情報に関する最新の現行情報を所有していることを理解されたい。そのような調査は、改良したUDP(ユーザダイアグラムプロトコル)を使用して実行され、ユーザの実際の直接IPネットワークアドレスを確立するのに役立つ試みを含む。これらの試みは、NAT横断を可能にし、図9aから図9iを参照して後でより詳しく説明される。   Initially, the TSM always runs the address lookup process, so that whenever it needs to send an email message to a designated recipient, it will have up-to-date current information about that recipient's address information. I want you to understand that Such studies are performed using an improved UDP (User Diagram Protocol) and include attempts to help establish the user's actual direct IP network address. These attempts allow for NAT traversal and are described in more detail later with reference to FIGS. 9a through 9i.

受信者の現行IPアドレスを決定し送信者に送るロセス274で、最初に、送信者に、リストを保持する主TSM40からTSMのリストが送られる290。次に、メールサーバ52は、リストの最初のTSM40にコンタクトする試みを行い292、成功したかどうか確認する294。コンタクトが成功しなかった場合296は、リストにある次のTSM40を取り出し、接続する別の試み292を行う。このプロセスは、1つの接続が成功する298まで続く。   In process 274 of determining and sending the receiver's current IP address to the sender, the sender is first sent 290 a list of TSMs from the main TSM 40 that maintains the list. Next, the mail server 52 attempts 292 to contact the first TSM 40 in the list and checks 294 for success. If the contact is not successful 296, the next TSM 40 in the list is retrieved and another attempt 292 is made to connect. This process continues until 298 when one connection is successful.

接続した後、特定のTSMが、このメールサーバ52の接続があることを他の全てのTSM40に通知する300。この接続は、ロードバランシングに関してどのTSM40を使用するのが最も便利かに基づいて行うことができる。次に、送信者メールサーバ52は、接続されたTSM40に、指定受信者メールサーバ52に接続したいことを通信する302。指定受信者は、ユーザIDで識別される。TSM40の仕事は、指定受信者メールサーバ52のIPアドレスを決定することである。次に、選択されたTSM40は、そのアドレス指定リスト(ローカルに記憶された)を確認して304、指定受信者メールサーバ52への直接接続を有するかどうか確認する。直接接続を有する場合、即ち受信者メールサーバ52の固有アドレスが分かっている場合は、その固有アドレスが、送信者メールサーバ52に渡される306。このアドレスは、図9aから図9iを参照して後で説明する技術を使用して決定される。受信者メールサーバ52に自分の固有アドレスがない場合は、少なくともTSM40(アドレスを有する)のアドレスがある。従って、この場合、選択されたTSM40は、アドレスを参照しそれを送信者メールサーバ52に返す306ことができるように問合せを適切なTSM40に中継する308。   After connecting, the particular TSM notifies all other TSMs 40 that this mail server 52 is connected 300. This connection can be made based on which TSM 40 is most convenient to use for load balancing. Next, the sender mail server 52 communicates to the connected TSM 40 that it wants to connect to the designated recipient mail server 52 302. The designated recipient is identified by the user ID. The job of the TSM 40 is to determine the IP address of the designated recipient mail server 52. Next, the selected TSM 40 checks its addressing list (stored locally) 304 to see if it has a direct connection to the designated recipient mail server 52. If there is a direct connection, that is, if the unique address of the recipient mail server 52 is known, the unique address is passed 306 to the sender mail server 52. This address is determined using techniques described below with reference to FIGS. 9a to 9i. If the recipient mail server 52 does not have its own unique address, there is at least the address of the TSM 40 (having an address). Thus, in this case, the selected TSM 40 relays 308 the query to the appropriate TSM 40 so that it can refer to the address and return 306 it to the sender mail server 52.

送信者メールサーバ52は、指定受信者メールサーバ52の固有直接IPアドレスを受け取った後で、受信者メールサーバ52に直接接続され310、標準のインターネットプロトコルを使用して電子メールメッセージを送信する312。即ち、電子メールメッセージは、メッセージをそれぞれ自分のヘッダを有するパケットに分割し、任意の適切な経路によって送られるそのようなパケットを受信者に送信し、そこで指定受信者に表わすために再び組み立てることによって、従来のIP通信がインターネット16で送られのと同じように送られる。   The sender mail server 52, after receiving the unique direct IP address of the designated recipient mail server 52, is directly connected 310 to the recipient mail server 52 and sends 312 an email message using standard Internet protocols. . That is, an email message divides the message into packets each with its own header, sends such packets sent by any suitable route to the recipient, and reassembles them for display to the designated recipient there. Thus, conventional IP communications are sent in the same way as they are sent over the Internet 16.

図8は、ユーザ320、そのメールクライアント50、322、及び管理者324の様々なアクティビティを示す概略図である。様々なアクティビティは、図に示したように関連付けられた機能にグループ化される。より具体的には、ユーザ320は、関連付けられた機能の3つの異なるグループ、即ちセットアップアクティビティ326、支払いアクティビティ328、及びファイル関連アクティビティ330を実行することができる。メールクライアント50、322は、単一グループのメールサーバ関連アクティビティ332を実行することができる。管理者324は、単一グループのユーザ関連アクティビティ334を実行することができる。そのような各グループを構成する機能は、図8に示されており、熟練した本明細書の対象者には明らかであり、従って本明細書では更に詳しい説明は行わない。   FIG. 8 is a schematic diagram illustrating various activities of the user 320, its mail clients 50, 322, and the administrator 324. Various activities are grouped into associated functions as shown in the figure. More specifically, the user 320 can perform three different groups of associated functions: a setup activity 326, a payment activity 328, and a file related activity 330. Mail clients 50, 322 may perform a single group of mail server related activities 332. Administrator 324 can perform a single group of user-related activities 334. The functions that make up each such group are shown in FIG. 8 and will be apparent to the skilled subject, and will not be described in further detail here.

図9a〜図9fは、指定受信者の固有IPアドレスを決定する際にTSM40が実行する6つの段階の操作を示し説明する。より具体的には、図9aに最初の状態が示されており、ここで、クライアントA350は、NAT A352を介してサーバS354にTCP/IP接続し、同様にクライアントB356は、NAT B358を介してサーバS354にTCP/IP接続を確立している。段階1と示したこの段階で、クライアントA350は、クライアントB356とのピアツーピア接続を確立することを望む。   FIGS. 9a to 9f show and describe the six-stage operations performed by the TSM 40 in determining the designated recipient's unique IP address. More specifically, FIG. 9 a shows the initial state, where client A 350 has a TCP / IP connection to server S 354 via NAT A 352, and similarly client B 356 via NAT B 358. A TCP / IP connection is established with the server S354. At this stage, indicated as stage 1, client A 350 desires to establish a peer-to-peer connection with client B 356.

図9bに示した段階2Aで、クライアントA350は、NAT A352を介してサーバS354にピアツーピア要求を行う。サーバS354は、この要求を受け取ると、IPアドレスS1ポートs1362のUDPポート360を開く。次に、段階2Bで、図9cに示したように、サーバS354は、既に確立してあるTCP/IP通信手段364によって、UDPポート360のアドレス(S1:s1)362をクライアントA350にレポートする。次に、クライアントA350は、アドレスA:a368で自分自身のUDPポート366を開く。このポートアドレス368は、NAT A352によってA1:a1370に変換される。一方、クライアントA350とサーバS354の間にはUDP通信チャネル372が設定される。 In step 2A shown in FIG. 9b, client A350 makes a peer-to-peer request to server S354 via NAT A352. Upon receiving this request, the server S354 opens the UDP port 360 of the IP address S1 port s 1 362. Next, in step 2B, as shown in FIG. 9c, the server S354 reports the address (S 1 : s 1 ) 362 of the UDP port 360 to the client A 350 by the already established TCP / IP communication means 364. To do. Client A 350 then opens its own UDP port 366 at address A: a368. This port address 368 is converted to A 1 : a 1 370 by NAT A352. On the other hand, a UDP communication channel 372 is set between the client A 350 and the server S 354.

図9dに示した段階3で、サーバS354は、図9cに関して説明したものと同じようにクライアントB356とのUDPチャネルを確立できるように、IPアドレスS2:s2378の第2のUDPポート376を開く。次に、サーバS354は、既に確立されているTCP/IP通信手段364によって、UDPポート376のアドレス(S2:s2)378をクライアントB356にレポートする。次に、クライアントB350は、アドレスB:b382でそれ自体のUDPポート380を開く。このポートアドレス382は、NAT B358によってB1:b1384に変換される。一方、図9eで分かるようにクライアントB356とサーバS354との間にUDP通信チャネル386が確立される。 At stage 3 shown in FIG. 9d, server S354 can establish a UDP channel with client B 356 in the same manner as described with respect to FIG. 9c, and a second UDP port 376 with IP address S 2 : s 2 378. open. Next, the server S354 reports the address (S 2 : s 2 ) 378 of the UDP port 376 to the client B 356 through the TCP / IP communication means 364 already established. Client B 350 then opens its own UDP port 380 at address B: b382. This port address 382 is converted to B 1 : b 1 384 by NAT B358. On the other hand, as can be seen in FIG. 9e, a UDP communication channel 386 is established between the client B 356 and the server S354.

図9eを参照すると、指定受信者の固有IPアドレスを確立するプロセスの段階4が示されており、ここで、クライアントAとクライアントBの間でUDP通信を実行する方法を説明する。クライアントBは、アドレスB:b382を有するUDPポート380からアドレスS2:s2378を有するサーバUDPポート376にUDPパケットを送る。しかしながら、サーバS354には、それらのパケットがネットワーク変換UDPポートアドレスB1:b1384から来ていることが分かる。同じように、UDPパケットは、クライアントA350からアドレスS1:s1362を有するサーバUDPポート360で受け取ることができる。 Referring to FIG. 9e, stage 4 of the process of establishing a designated recipient's unique IP address is shown, and a method for performing UDP communication between client A and client B will now be described. Client B sends a UDP packet from UDP port 380 having address B: b382 to server UDP port 376 having address S2: s 2 378. However, the server S354 knows that these packets are coming from the network translation UDP port address B 1 : b 1 384. Similarly, a UDP packet can be received from client A 350 at server UDP port 360 having address S 1: s 1 362.

サーバS354は、ネットワーク変換ポートアドレスA1:a1370から受け取ったパケットをB1:b1384に、ネットワーク解釈ポートアドレスB1:b1384から受け取ったパケットをA1:a1370に転送することができる。これにより、クライアントA350とクライアントB356は、互いに直接UDP接続していると信じることができる。 The server S354 transfers the packet received from the network translation port address A 1 : a 1 370 to B 1 : b 1 384 and the packet received from the network interpretation port address B 1 : b 1 384 to A 1 : a 1 370. can do. As a result, it is possible to believe that the client A 350 and the client B 356 have a direct UDP connection with each other.

図9fは、プロセスの段階5を示し、ピアツーピア通信の一般的なケースを確立する。この場合、サーバS354は最初にクライアントA350に、クライアントB356がネットワーク変換ポートアドレスB1:b1384上で話していることを通知する。また、サーバS354は、クライアントB356に、クライアントA350がネットワーク変換ポートアドレスA1:a1370上で話していることを通知する。従って、クライアントA350とクライアントB356が直接話す能力は、各クライアントが互いのネットワーク変換アドレス370、384を有するときに確立される。しかしながら、クライアントA350上で動作するアプリケーション(図示せず)によって、通信は、UDPポートA:a366と、アドレスB1:b1384又はポートアドレスB1:b1384とS1:s1362両方と間の第1のUDPチャネル388を介したものでもよい。同様に、クライアントB356上で動作するアプリケーション(図示せず)によっては、通信は、UDPポートB:b380と、アドレスA1:a1370又はポートアドレスA1:a1370とS2:s2378両方と間の第2のUDPチャネル390を介したものでもよい。 FIG. 9f shows stage 5 of the process and establishes the general case of peer-to-peer communication. In this case, server S354 first notifies client A350 that client B356 is talking on network translation port address B 1 : b 1 384. In addition, the server S354 notifies the client B356 that the client A350 is talking on the network conversion port address A 1 : a 1 370. Thus, the ability of client A 350 and client B 356 to speak directly is established when each client has a network translation address 370, 384 of each other. However, depending on the application (not shown) running on client A 350, the communication is between UDP port A: a 366 and address B 1 : b 1 384 or both port address B 1 : b 1 384 and S 1: s 1 362. Or a first UDP channel 388 between them. Similarly, depending on the application (not shown) running on client B 356, the communication may be UDP port B: b380 and address A 1 : a 1 370 or port address A 1 : a 1 370 and S2: s 2 378. It may be via a second UDP channel 390 between them.

図9gは、両方のNATが対称なケースで図5の一般的なケースがどのように適用されるかを示す。より具体的には、段階6Aにおいて、NAT A352が対称NATである場合、クライアントBは、ネットワーク変換ポートアドレスA1:a1370からUDPパケットを受け取る。同様に、NAT B358が対称NATである場合、クライアントAは、ネットワーク変換ポートアドレスB1:b1384からUDPパケットを受け取る。そのようなUDPパケットトラフィックを検出すると、サーバSに通知され、NAT Aとその第1のポート362の間とNAT Bとその第2のポート376の間のUDP接続372が切断される。これは、図9gに示した状況である。またこれに続いて、クライアントAとBからサーバS354へのTCP接続364が切断されるが、これは、クライアントAとB上で作動するアプリケーションに依存する。 FIG. 9g shows how the general case of FIG. 5 is applied in the case where both NATs are symmetric. More specifically, in step 6A, if NAT A 352 is a symmetric NAT, client B receives a UDP packet from network translation port address A 1 : a 1 370. Similarly, if NAT B 358 is a symmetric NAT, client A receives a UDP packet from network translation port address B 1 : b 1 384. When such UDP packet traffic is detected, the server S is notified and the UDP connection 372 between NAT A and its first port 362 and between NAT B and its second port 376 is broken. This is the situation shown in FIG. 9g. Following this, the TCP connection 364 from the client A and B to the server S354 is disconnected, which depends on the applications running on the clients A and B.

図9hは、NATの一方が非対称であるときに図9gのソリューションがうまくいかないようすを示す。より具体的には、NAT B358が非対称である場合、ポートアドレスB:b382からネットワーク変換アドレスA1:a1370に向けられるUDPパケットトラフィックは、B2:b2392から来るように見えるが、相変わらず第2のUDPチャネル390を介してクライアントAによって受け取られる。しかしながら、ネットワーク変換アドレスA1:a1370からネットワーク変換アドレスB1:b1384へのUDPパケットトラフィックは、そのポートがクライアントB356への通信に使用されなくなるので、NAT B358によって遮られる。 FIG. 9h shows how the solution of FIG. 9g does not work when one of the NATs is asymmetric. More specifically, if NAT B358 is asymmetric, the UDP packet traffic destined for port address B: b382 to network translation address A 1 : a 1 370 appears to come from B 2 : b 2 392, Still received by client A via the second UDP channel 390. However, UDP packet traffic from network translation address A 1 : a 1 370 to network translation address B 1 : b 1 384 is blocked by NAT B 358 because its port is no longer used for communication to client B 356.

図9iは、非対称NATの一方のNATを処理する方法のこの実施形態によって提供されるソリューションを示す。より具体的には、段階6Bで、クライアントAは、ネットワーク変換アドレスB1:b1384ではなくネットワーク変換アドレスB2:b2392から来るUDPパケットトラフィックを見る。従って、NAT A352は、ネットワーク変換アドレスB1:b1384に向けられたUDPトラフィック出力をネットワーク変換アドレスB2:b2392に切り換える。NAT A352がこれを行うことができ、その理由は、NAT B358が、このアドレスを使ってNAT A352のネットワーク変換アドレスA1:a1370に書き込んでおり、従ってIPが通るからである。このように、非対称NATがあるときでも双方向通信が確立される。 FIG. 9i shows the solution provided by this embodiment of the method for processing one NAT of an asymmetric NAT. More specifically, in step 6B, client A sees UDP packet traffic coming from network translation address B 2 : b 2 392 instead of network translation address B 1 : b 1 384. Accordingly, NAT A 352 switches the UDP traffic output destined for network translation address B 1 : b 1 384 to network translation address B 2 : b 2 392. NAT A 352 can do this because NAT B 358 uses this address to write to NAT A 352's network translation address A 1 : a 1 370, and therefore IP passes. In this way, bidirectional communication is established even when there is an asymmetric NAT.

NATA352が非対称でNAT B358が対称な場合は、図9iに関して前に述べたプロセスと同じプロセスが逆に行われる。   If NATA 352 is asymmetrical and NAT B358 is symmetric, the same process as described above with respect to FIG. 9i is reversed.

NAT A352とNAT B358の両方が非対称な場合、純粋なピアツーピア通信は不可能である。トラフィックは、継続するか、仲介の役割をするサーバS354によって再び確立される。NAT A352とNAT B358の両方が見ることができる他の任意のアドレスを仲介として代用できることに注意されたい。この状況に対処するこの手法は、後で第2の実施形態に関して詳細に説明する。   If both NAT A352 and NAT B358 are asymmetric, pure peer-to-peer communication is not possible. Traffic continues or is reestablished by the server S354 acting as an intermediary. Note that any other address that both NAT A352 and NAT B358 can see can be used as an intermediary. This approach to addressing this situation will be described in detail later with respect to the second embodiment.

次に、図10から図16を参照して本発明の第2の実施形態を説明する。第2の実施形態は、第1の実施形態と多くの点で類似しており、従って、以下の説明は、第1と第2の実施形態との違いに焦点を当てる。簡潔に説明しただけの第1の実施形態の幾つかの様相は、完全性のために第2の実施形態の説明では詳しく述べる。   Next, a second embodiment of the present invention will be described with reference to FIGS. The second embodiment is similar in many respects to the first embodiment, so the following description will focus on the differences between the first and second embodiments. Some aspects of the first embodiment that have only been briefly described are detailed in the description of the second embodiment for completeness.

第2の実施形態によるセキュア通信システム400は分散されており、その大きさのために複雑になることがある。ある意味では、全体的な構造は、図10に示したような階層木402と見なすことができる。きわめて高い視点から、システム400は、システム管理レベル404、伝送サーバレベル406及びエンドポイントレベル408の3つの論理レベルに見える。図10に示したボックスは、複数の極めて異なる方法で実際に実現することができる論理機能を表わす。   The secure communication system 400 according to the second embodiment is distributed and may be complicated due to its size. In a sense, the overall structure can be viewed as a hierarchical tree 402 as shown in FIG. From a very high perspective, the system 400 appears as three logical levels: a system management level 404, a transmission server level 406, and an endpoint level 408. The boxes shown in FIG. 10 represent logical functions that can actually be implemented in a number of very different ways.

木402の最上レベル404は、システム400の管理機能に関係する。このレベル404は、システム400を使用することを許可された全てのコンピュータのデータベース410(図12を参照)を保持し、個々のピアツーピア通信を確立することを許可するかどうかを制御する。   The top level 404 of the tree 402 relates to the management functions of the system 400. This level 404 maintains a database 410 (see FIG. 12) of all computers authorized to use the system 400 and controls whether individual peer-to-peer communications are allowed to be established.

セキュリティもこの管理レベル404から制御される。低いレベルの個々の通信接続は、管理レベル404から許可を受けなければならなず、そのような許可を受けた後で、低い管理レベルは、例えばそれらのレベル自体の間で暗号鍵を取り決めた後で追加接続を作成することができる。   Security is also controlled from this management level 404. Individual communication connections at lower levels must be authorized from administrative level 404, and after receiving such authorization, lower administrative levels negotiate encryption keys, for example, between those levels themselves You can create additional connections later.

また、管理レベル404には、カスタマイズ可能な詳細レベルまで、作成された追加接続が通知され、低いレベルで生じるイベントを記録することもできる。そのようなイベントには、少なくともネットワークにそれぞれ試みられたアクセスがある。   Further, the management level 404 is notified of the created additional connection up to a detail level that can be customized, and an event occurring at a low level can be recorded. Such events have at least each attempted access to the network.

管理レベル404は、ネットワークの動作に関する管理レポートを作成することもでき、これはシステム400の制御と管理に極めて役立つ。   The management level 404 can also generate management reports regarding the operation of the network, which is extremely useful for the control and management of the system 400.

最も低いレベル408には、「エンドポイント」412がある。これらのエンドポイントは、「ソフトフォン」(VOIP通話を処理するソフトウェア)とローカラーズした電子メールサーバを含む。しかしながら、エンドポイント412は、他の形のデータ通信ツールを含むこともできる。エンドポイント412は、システム400及びそれにより提供されるセキュアな通信方法を使用可能にするためにユーザのコンピュータにインストールされたキーコンポーネントである。各エンドポイント412は、本質的に、ユーザの場所に提供されるときはセキュアであり、従って、エンドポイント412での通信の記憶域は、決してデータ通信の安全性を損なうことはない。   At the lowest level 408 is an “endpoint” 412. These endpoints include “softphones” (software that handles VOIP calls) and low-colored email servers. However, the endpoint 412 may include other forms of data communication tools. Endpoint 412 is a key component installed on the user's computer to enable use of system 400 and the secure communication method provided thereby. Each endpoint 412 is inherently secure when provided to the user's location, so the storage of communications at the endpoint 412 never compromises the security of the data communication.

管理レベル404とエンドポイント412の間には、複数の伝送サーバ414で構成されたいわゆる分散「トランスポート層」406が提供される。この層406は、実際には、ユーザと管理者に見えないままであるが、この層は、2種類の通信、即ちアドレスと状態を決定する通信と実際のピアツーピアデータ通信の伝送を容易にするという点で、システム400の不可欠な構成要素である。エンドポイント412と管理層404だけが、トランスポート層406を構成する伝送サーバ414を介して通信する。これは、簡潔性と拡張性の利点を提供する。   Between the management level 404 and the endpoint 412, a so-called distributed “transport layer” 406 composed of a plurality of transmission servers 414 is provided. Although this layer 406 remains invisible to the user and administrator in practice, this layer facilitates the transmission of two types of communications: address and status determining communications and actual peer-to-peer data communications. In that respect, it is an indispensable component of the system 400. Only the endpoint 412 and the management layer 404 communicate via the transmission server 414 constituting the transport layer 406. This provides the advantage of simplicity and extensibility.

次に図11を参照し、管理レベル404について詳しく説明する。管理レベル404は、図11に示した例において、システム400の制御の効率的な管理を可能にする階層木構造を有する。管理層の分散した性質は、図11から明らかであり、階層の一番上には、1つの中央位置から実行されるAmteus グローバル管理ノード416があることが分かる。次に、例えば登録ユーザ間の通信を制御したい企業又は行政体(図示せず)のコンピュータで実施することができるクライアント管理ノード418(図11の例では1つだけ示した)が提供される。クライアント指定位置にあるクライアントは、図11に示した単一のクライアント管理ノード418を実行する。   Next, the management level 404 will be described in detail with reference to FIG. The management level 404 has a hierarchical tree structure that enables efficient management of the control of the system 400 in the example shown in FIG. The distributed nature of the management layer is evident from FIG. 11 and it can be seen that there is an Amteus global management node 416 running from one central location at the top of the hierarchy. Next, a client management node 418 (only one is shown in the example of FIG. 11) is provided, which can be implemented, for example, on a computer of a company or administrative body (not shown) that wants to control communication between registered users. The client at the client designated position executes the single client management node 418 shown in FIG.

階層における次の層は、図11に3つ示した所与のクライアントの地域管理ノード422の層420である。これらの地域管理ノード422は、分散トランスポート層406(単に点線として表わした)を介してエンドポイント412(EP1〜EP3)に接続する。この最も低い管理レベル420は、地理に基づき、後で詳述するロードバランシングを含む幾つかの事柄にとって重要である。同様に、この例では、更に他のエンドポイントEP4 412が、トランスポート層406を介してAmteus グローバル管理ノード416で直接実施される管理機能を有する。   The next layer in the hierarchy is the layer 420 of a given client's regional management node 422, shown in FIG. These regional management nodes 422 connect to the endpoints 412 (EP1-EP3) via the distributed transport layer 406 (represented simply as dotted lines). This lowest management level 420 is based on geography and is important for several things including load balancing, which will be described in detail later. Similarly, in this example, yet another endpoint EP4 412 has management functions implemented directly at the Amteus global management node 416 via the transport layer 406.

次に、管理レベル404の働き方を説明し、例として示す。エンドポイント412によって表わされた各ユーザは、1つの管理ノード416、418、422、一般にその地域管理ノード422に登録される。この登録は、階層的管理木を上に送られ、その結果、登録詳細が、それより高いレベルの全ての管理ノード418、416に保持される。そのような管理ノード418、416に記憶された登録情報は、登録処理の間に収集されるとき、エンドポイント412の現在の動作状態と共にユーザに関する全ての詳細を含む。エンドポイント412間のピアツーピア通信を許可するかどうかに関する決定も、両方のユーザ登録詳細が入手可能な階層における最も低いレベルで得られる。そのようなエンドポイント412の動作状態に生じた変化は、より高いレベルの管理ノードに渡される。   Next, how the management level 404 works will be described and shown as an example. Each user represented by the endpoint 412 is registered with one management node 416, 418, 422, generally its regional management node 422. This registration is sent up the hierarchical management tree so that the registration details are kept in all higher level management nodes 418, 416. Registration information stored in such management nodes 418, 416 includes all details regarding the user along with the current operational state of the endpoint 412 when collected during the registration process. A decision regarding whether to allow peer-to-peer communication between endpoints 412 is also obtained at the lowest level in the hierarchy where both user registration details are available. Changes that occur in the operational state of such endpoints 412 are passed to higher level management nodes.

EP(エンドポイント)412は、一般に、電話及び/又は電子メールユーザである。図11に示した例では、EP1 412は、クライアントのロンドン支店に基盤を置く。EP1 412の詳細は、ロンドン地域管理ノード422と、それより高いレベルにある全ての管理ノード416、418に記憶される。EP2及びEP3 412は、クライアントのアテネ事務所に基盤を置く。そのような詳細は、アテネ地域管理ノード422と、それより高いレベルの全ての管理ノード416、418に記憶される。EP4 412は、Amteusだけが知っている個人Amteus加入者であり、従って、EP4 412はAmteus グローバル管理ノード416にだけ登録されている。   The EP (Endpoint) 412 is typically a telephone and / or email user. In the example shown in FIG. 11, EP1 412 is based on the client's London branch. The details of EP1 412 are stored in the London regional management node 422 and all higher level management nodes 416, 418. EP2 and EP3 412 are based in the client's Athens office. Such details are stored in the Athens regional management node 422 and all higher level management nodes 416, 418. EP4 412 is a personal Amteus subscriber known only to Amteus, and therefore EP4 412 is registered only with the Amteus global management node 416.

EP2 412がEP3 412と通信したいと仮定すると、アテネ地域管理ノード422は、両方のエンドポイントユーザ412を知っており、従ってその要求は、アテネ管理ノード422によってアテネでローカルに処理される。詳細は、情報としてより高いレベルの管理ノード416、418に送られることがあるが、そのような高いレベルのノード416、518は、所望の通信チャネルの設定には必要ない。   Assuming EP2 412 wants to communicate with EP3 412, the Athens regional management node 422 knows both endpoint users 412 so that the request is processed locally in Athens by the Athens management node 422. Details may be sent as information to higher level management nodes 416, 418, but such higher level nodes 416, 518 are not required to set up the desired communication channel.

EP1 412がEP2 412と通信したい場合、EP1 412は、ロンドンのローカル管理ノード422に要求を出す。このロンドン地域管理ノード422は、EP2 412について何も知らず、従って、EP1の状態を通話設定になるように変更し、要求を階層木の上のクライアント管理ノード418に渡す。   If EP1 412 wants to communicate with EP2 412, EP1 412 makes a request to the local management node 422 in London. This London regional management node 422 does not know anything about EP2 412 and therefore changes the state of EP1 to call setup and passes the request to the client management node 418 on the hierarchical tree.

クライアント管理ノード418は、通話の両方の側を知っており、従って所望の通話設定を処理することができる。クライアント管理ノード418は、最新の状況情報を持っているのでEP2 416が使用中かどうかを知っているが、後で述べるように、これに関する見解は最新でなく、この見解が提供される可能性は僅かである。クライアント管理ノード418がEP2 416を使用中と見なした場合は、そのようにロンドン地域管理ノード422に通知し、ロンドン地域管理ノード422はEP1412に通知する。従って、セットアップの要求は、失敗に終わる。   The client management node 418 knows both sides of the call and can therefore process the desired call settings. The client management node 418 knows whether EP2 416 is in use because it has up-to-date status information, but, as will be discussed later, this view is not up to date and this view may be provided Is slight. If the client management node 418 considers that EP2 416 is in use, it notifies the London regional management node 422 as such, and the London regional management node 422 notifies EP1412. Thus, the setup request will fail.

そうでない場合、クライアント管理ノード418は、EP1の状態を「通話設定」であるとマークし、要求をアテネ地域管理ノード422に下に渡す。アテネ地域管理ノード422は、EP2 416が現在使用中であることができる(即ち、クライアント管理ノード422の状態が実際には最新でなかった)。その場合、アテネ地域管理ノード422は失敗コード「使用中(busy)」をクライアント管理ノード418に返し、クライアント管理ノード418は、前の場合と同じように通信チャネルを設定する要求を取り消す。   Otherwise, the client management node 418 marks the state of EP 1 as “call setup” and passes the request down to the Athens regional management node 422. Athens regional management node 422 may have EP2 416 currently in use (ie, the state of client management node 422 was not actually up to date). In that case, the Athens regional management node 422 returns a failure code “busy” to the client management node 418, and the client management node 418 cancels the request to set the communication channel as in the previous case.

そうでない場合、アテネ地域管理ノード422は、通話要求をEP2 412に転送する。EP2 412は、通話を受け入れるかどうかを決定し、適切な応答を経路に沿ってEP1 412に返す。   Otherwise, the Athens regional management node 422 forwards the call request to EP2 412. EP2 412 determines whether to accept the call and returns an appropriate response to EP1 412 along the path.

EP1 412がEP4 412と通信したい場合は、類似のプロセスが行われる。この場合、最初の要求が、その地域管理ノード422とクライアントノード418を介してAmteusグローバル管理ノード416まで完全に渡される。次に、Amteusグローバル管理ノード416は、EP4 412と直接通信して接続を確立する。   If EP1 412 wishes to communicate with EP4 412, a similar process is performed. In this case, the initial request is completely passed to the Amteus global management node 416 via its regional management node 422 and client node 418. The Amteus global management node 416 then communicates directly with EP4 412 to establish a connection.

前に使用した「ローカル」という語は、サーバに対して地理的に地方にあることを意味するものである。しかしながら、最も厳密な意味では、この用語は単に、サーバとエンドポイント間に相対的な直接接続があり、エンドポイントがそのサーバに登録されており、そのためそのエンドポイントがサーバに対してローカルになることを意味する。   The term “local” as used previously means that it is geographically local to the server. However, in the strictest sense, this term simply has a relative direct connection between the server and the endpoint, and the endpoint is registered with that server, so that the endpoint is local to the server. Means that.

次に図12を参照すると、図10の階層402の伝送レベル406は、階層木構造で互いに接続された伝送サーバ414からなる。各伝送サーバ414は、メッセージを途中で記憶することなくある場所(エンドポイント)412から別の場所412への通信の伝送を容易にする役割をする。階層木の一番上には、主伝送サーバ424が提供され、これは、管理階層の一番上にあるAmteusグローバル管理(データベース)サーバ410に接続される。また、故障した場合の主伝送サーバ424のバックアップとして、ホットスタンバイ伝送サーバ426が提供される。階層の次のレベル430には、主伝送サーバ424に接続された3つの地域伝送サーバ1、2及び3 428が示されている。これらの地域伝送サーバ428は、次に、それぞれのエンドポイント1.1、1.2、2.1及び3.1 412と接続される。   Referring now to FIG. 12, the transmission level 406 of the hierarchy 402 in FIG. 10 is composed of transmission servers 414 connected to each other in a hierarchical tree structure. Each transmission server 414 serves to facilitate transmission of communication from one location (endpoint) 412 to another location 412 without storing messages in the middle. At the top of the hierarchy tree, a main transmission server 424 is provided, which is connected to the Amteus global management (database) server 410 at the top of the management hierarchy. Further, a hot standby transmission server 426 is provided as a backup of the main transmission server 424 in the case of failure. In the next level 430 of the hierarchy, three regional transmission servers 1, 2 and 3 428 connected to the main transmission server 424 are shown. These regional transmission servers 428 are then connected to their respective endpoints 1.1, 1.2, 2.1 and 3.1 412.

前述の伝送レベル406は、事前に定義されていない動的構造を表わす。より正確に言うと、ネットワークを構成するために伝送サーバ414を動的に接続する規則が定義され提供される。更に、図10に機能的に別の層として示した管理レベル404は、伝送サーバ406の階層ネットワークに実際に組み込まれ、ピアツーピア通信の設定に利用される。最後に、ネットワークには、ネットワークセキュリティを改善するセキュリティオーバレイが組み込まれている。この実施形態において、オーバレイは、ネットワークの全てのノードに適用される機能規則として実施され、即ち、その規則とは、ノードがエンドポイント412を既に知っていない限り、そのノードのそのエンドポイント412に対する通信を許可しないというものである。ノードが、所望のエンドポイント412の識別を個人的に知らないときは、通信の要求を階層木の更に上に渡す。   The aforementioned transmission level 406 represents a dynamic structure that is not predefined. More precisely, rules for dynamically connecting transmission servers 414 to configure the network are defined and provided. Furthermore, the management level 404 shown as a functionally separate layer in FIG. 10 is actually incorporated in the hierarchical network of the transmission server 406 and used for setting up peer-to-peer communication. Finally, the network incorporates a security overlay that improves network security. In this embodiment, the overlay is implemented as a functional rule that applies to all nodes in the network, ie, the rule is that for that node's endpoint 412 unless the node already knows the endpoint 412. The communication is not permitted. If the node does not personally know the identity of the desired endpoint 412, it passes the request for communication further up the hierarchy tree.

図13を参照すると、各伝送サーバ414は、より高いレベルの伝送サーバ414に対するクライアントリンク(アップリンク)430及び/又は管理(データベース)サーバ410に対するクライアントリンク432を有する(この両方は、便宜上図13に示されている)。伝送サーバ414が階層木の一番上にあるとき、アップリンク430は、管理データベースサーバ410に対するものであるが、他の場合は、より高いレベルの伝送サーバ414に対するものであることに注意されたい。伝送サーバ木の一番下には、図12に関して前に説明したようなエンドポイント412がある。また、各伝送サーバ414は、ダウンリンク434、即ちサーバ接続を有し、その接続により、より低レベルの伝送サーバ414とエンドポイント412は、サーバ414に対する接続を開始することができる。各伝送サーバ414のアップリンク430は、TCP/IPクライアントであり、一方、ダウンリンク434はTCP/IPサーバである。   Referring to FIG. 13, each transmission server 414 has a client link (uplink) 430 to a higher level transmission server 414 and / or a client link 432 to a management (database) server 410 (both of which are shown in FIG. 13 for convenience). Is shown). Note that when the transmission server 414 is at the top of the hierarchical tree, the uplink 430 is for the management database server 410, but is otherwise for the higher level transmission server 414. . At the bottom of the transmission server tree is an endpoint 412 as previously described with respect to FIG. Each transmission server 414 also has a downlink 434, a server connection, which allows lower level transmission servers 414 and endpoints 412 to initiate a connection to the server 414. The uplink 430 of each transmission server 414 is a TCP / IP client, while the downlink 434 is a TCP / IP server.

各伝送サーバ414は、ネットワークアドレス変換を受けない環境で動作する。即ち、各伝送サーバ414はそれ自体の公開IPアドレス436を有し、このIPアドレスは、それ自体の伝送サーバID438と同様に動的に割り当てられることがある。このIPアドレスは、その伝送サーバ414に接続されたエンドポイントIDのリスト442、各エンドポイント412に対する接続の状態444、及びエンドポイント414と関連付けられた許可446と共に、ローカルデータベース440に記憶される。必要に応じてこの情報にアクセスし更新するためにデータベースサーバ448が提供される。データベース440に記憶されたエンドポイント(ユーザ)情報のリストは、後述するように構成される。   Each transmission server 414 operates in an environment that does not undergo network address translation. That is, each transmission server 414 has its own public IP address 436, which may be dynamically assigned in the same manner as its own transmission server ID 438. This IP address is stored in the local database 440 along with a list 442 of endpoint IDs connected to that transmission server 414, the connection status 444 for each endpoint 412, and the permissions 446 associated with the endpoint 414. A database server 448 is provided to access and update this information as needed. The list of endpoint (user) information stored in the database 440 is configured as described below.

データベース440には2つのリストが提供され、その1つは、現在オンライン444であるローカルに登録されたユーザのIDのコンパイルであり、もう1つは、ウォッチ(watch)が記録されたローカルに登録されたエンドポイント412のIDのコンパイル450である。ウォッチは、特定のエンドポイント412が接続されているが、例えば使用中のときに通信に利用できないときに記録される。ウォッチは、宛先エンドポイント412の状態を監視し、通信に利用可能になるとき、ウォッチのトリガ機構(図示せず)は通知プロセスを作動させる。通知プロセスは、所望の宛先エンドポイントに対する接続状態の変化を監視することに関心を記録したエンドポイント412及び伝送サーバ414の全てにメッセージを送る。更に、状態の変化は、階層ネットワークの更により高いレベルに通知される。   The database 440 is provided with two lists, one of which is a compilation of the IDs of locally registered users who are currently online 444, and the other is a local registration where a watch is recorded. Compiling 450 of the ID of the endpoint 412 that has been performed. A watch is recorded when a particular endpoint 412 is connected but is not available for communication, for example when in use. When the watch monitors the status of the destination endpoint 412 and becomes available for communication, the watch's trigger mechanism (not shown) activates the notification process. The notification process sends a message to all of the endpoints 412 and transmission servers 414 that have recorded interest in monitoring the connection state change for the desired destination endpoint. In addition, state changes are communicated to even higher levels of the hierarchical network.

データベース440は、エンドポイント412の1組の公開暗号鍵451も記憶する。これらは、後でより詳しく説明するように、様々なエンドポイント412から送られた暗号化されたメッセージを解読するために使用される。   The database 440 also stores a set of public encryption keys 451 for the endpoint 412. These are used to decrypt encrypted messages sent from various endpoints 412 as will be described in more detail later.

伝送サーバ414は、また、伝送サーバ414の現在の地理的位置を決定する位置決めモジュール452と、階層ネットワーク内の異なる隣り合った伝送サーバ414に対する接続を確認するハートビートモニタ454とを含む。サーバ制御モジュール456は、データベースサーバ448と共に、そのようなリンク、モジュール及びデータベースの全ての動作を管理する。   The transmission server 414 also includes a positioning module 452 that determines the current geographical location of the transmission server 414 and a heartbeat monitor 454 that confirms connections to different adjacent transmission servers 414 in the hierarchical network. Server control module 456, along with database server 448, manages all such link, module and database operations.

ネットワークの伝送サーバ414は、エンドポイントと全く同じように管理システム404(図11に示した)による許可を受けなければならない。以上述べたように、各伝送サーバ414は、伝送サーバ414の役割をする許可と共に、データベース440にそれ自体のエントリを有し、ユーザIDを有する。   The network transmission server 414 must be authorized by the management system 404 (shown in FIG. 11) just like an endpoint. As described above, each transmission server 414 has its own entry in the database 440 with a user ID, along with permission to act as the transmission server 414.

伝送サーバ414は、位置決めモジュール452の機能により「位置認識(location aware)」する。これは複数の異なる方法で達成することができる。例えば、1つの単純な方法は、位置決めモジュール452をウィンドウズベースにすることであり、その場合、位置決めモジュールが動作しているシステムの現在のタイムゾーンを決定することができる。   The transmission server 414 is “location aware” by the function of the positioning module 452. This can be accomplished in a number of different ways. For example, one simple method is to make the positioning module 452 Windows-based, in which case the current time zone of the system in which the positioning module is operating can be determined.

ハートビートモニタ454を使用することにより、全ての伝送サーバ414は、その親伝送サーバ414に規則的なハートビートを送信する(規則的なハートビートがある場合)。ハートビートは、伝送サーバの登録接続(ローディング)に関する更新情報を含み、親伝送サーバ414と子伝送サーバ414の間の通信リンクの存在を確認する信号である。ハートビートモニタ454の目的は、システム400のロードバランシングを制御することである。より具体的には、ハートビート情報は、発信(地域)伝送サーバ414に現在直接登録されているいくつかのエンドポイント412のカウント(使用カウント(usage count))を含む。各(親)伝送サーバ414は、ハートビートを受け取ると、同じレベルにある他の全ての伝送サーバのダウンリンクのIPアドレスとポートと、更に使用カウントのリストを提供するメッセージを返す。従って(図12において)、主伝送サーバ424は、伝送サーバ414からハートビートを受け取ったとき、それぞれの地域伝送サーバ1及び3 412のそれぞれのアドレス及び使用カウントを返す。   By using the heartbeat monitor 454, all transmission servers 414 send a regular heartbeat to its parent transmission server 414 (if there is a regular heartbeat). The heartbeat is a signal for confirming the existence of a communication link between the parent transmission server 414 and the child transmission server 414, including update information related to transmission server registration connection (loading). The purpose of the heartbeat monitor 454 is to control the load balancing of the system 400. More specifically, the heartbeat information includes a count (usage count) of several endpoints 412 that are currently registered directly with the originating (regional) transmission server 414. When each (parent) transmission server 414 receives the heartbeat, it returns a message providing a list of all other transmission server downlink IP addresses and ports at the same level, plus a usage count. Thus (in FIG. 12), the main transmission server 424 returns the respective addresses and usage counts of the respective regional transmission servers 1 and 3 412 when receiving a heartbeat from the transmission server 414.

次に図14を参照すると、この実施形態のこの様相のロードバランシング手順460の流れ図が示されている。図から分かるように、新しいクライアント(エンドポイント412又は低いレベルの伝送サーバ414)が、伝送サーバ414に接続しようとするとき、段階464で、伝送サーバ414が、新しいクライアントのハートビート信号を含む要求を受け取る。次に、伝送サーバ414は、段階466で、それ自体の記憶した使用カウントU1と、同じレベルにあり地理的に少なくとも近い(例えば、同じタイムゾーンの)他の伝送サーバ414の使用カウントU2、U3、U4を取り出す。次に、伝送サーバは、段階468及び470で、その使用カウントU1を、同じ階層レベルにある他の近くの伝送サーバ414のU2、U3、U4と比較する。使用カウントU1が、その仲間414の誰かの使用カウントU2、U3、U4より大きい場合は、段階472で、ピアツーピア通信を実現するために、新しいクライアントに伝送サーバ414(現在最も低い使用カウントを有する)に接続するように命じる応答を返す。次に、段階474で、現行伝送サーバ414との接続が断たれ、段階476でロードバランシング手順460が終了する。そうでない場合は、段階478で接続要求が受け入れられ、段階480でクライアントのユーザカウントが読み込まれ、段階482で、伝送サーバ414のローカル使用カウントが、クライアントのユーザカウントの大きさだけ増分される。その後で、ロードバランシング手順が終了する。 Referring now to FIG. 14, a flowchart of this aspect of the load balancing procedure 460 of this embodiment is shown. As can be seen, when a new client (endpoint 412 or lower level transmission server 414) attempts to connect to transmission server 414, at step 464, transmission server 414 requests that the new client contain a heartbeat signal. Receive. Next, transmission server 414, at step 466, uses count U 2 of another transmission server 414 that is at the same level and at least geographically close (eg, in the same time zone) as its own stored usage count U 1. , U 3 and U 4 are taken out. Next, the transmission server compares its usage count U 1 with U 2 , U 3 , U 4 of other nearby transmission servers 414 at the same hierarchical level in steps 468 and 470. If the usage count U 1 is greater than the usage count U 2 , U 3 , U 4 of someone in that mate 414, then in step 472, the new client is given a transmission server 414 (currently the lowest Return a response that tells you to connect to (has a count). Next, at step 474, the current transmission server 414 is disconnected and at step 476 the load balancing procedure 460 ends. Otherwise, the connection request is accepted in step 478, the client user count is read in step 480, and in step 482, the local usage count of the transmission server 414 is incremented by the amount of the client user count. Thereafter, the load balancing procedure ends.

この基本原理を更に高度なレベルに拡張することができる。例えば、受信伝送サーバ414は、自分の階層レベルと地理的位置で要求を受け入れることができると決定した後で、新しい接続に地理的に近く且つその接続をより適切に処理できる低いレベルの伝送サーバ414があるかどうかを調べる。これは、ユーザが伝送サーバの木の末端で接続された場合にいつでもシステム全体の性能が高まるので、有利であると考えられる。その理由は、ピアツーピア通信の大部分が、厳しい帯域幅で通常ローカルなボイスオーバーIP(voice over IP)トラフィックであるからである。従って、この主トラフィックをローカル伝送サーバレベルで維持することによって、階層システム406全体にこのトラフィックの負担がかからなくなる。そうでないと、このトラフィックによって、システム400がかなり遅くなる。   This basic principle can be extended to a higher level. For example, after the receiving transmission server 414 determines that it can accept the request at its hierarchical level and geographical location, it is a low-level transmission server that is geographically close to the new connection and can better handle that connection. Check if 414 is present. This is considered advantageous because the overall system performance is enhanced whenever a user is connected at the end of the transmission server tree. The reason is that the majority of peer-to-peer communication is usually local voice over IP traffic with tight bandwidth. Therefore, by maintaining this main traffic at the local transmission server level, the entire hierarchical system 406 is not burdened with this traffic. Otherwise, this traffic will slow down the system 400 considerably.

新しい接続を受け入れる伝送サーバ414は、それ自体の親伝送サーバのアドレスを新しい子ユーザに通知する。また、その親伝送サーバ414に新規ユーザの接続を通知する。その後で、親伝送サーバ414は、新規ユーザが接続されているとみなす。   The transmission server 414 accepting the new connection informs the new child user of the address of its own parent transmission server. Also, the parent transmission server 414 is notified of the connection of the new user. Thereafter, the parent transmission server 414 considers that a new user is connected.

接続された後で、新規ユーザ412は、メッセージを以下のカテゴリで伝送サーバ414に送信し始めることができる。
・管理要求
伝送サーバ414は、要求に自分自身の伝送アドレス/ポート438のタグを付けた後で、その要求を親伝送サーバ414に渡す。
・接続された伝送サーバ414に向けられたメッセージ。これは、TCP/IPによる従来の方式で送られ、特別の操作を必要としない。
・親以外の別のエンドポイント412又は伝送サーバ414に向けられたメッセージ。このメッセージは、送信元と宛先のエンドポイントのユーザIDを含む。伝送サーバ414は、現在接続されているユーザ(エンドポイント)のリストにあるユーザIDを調べる。このリストは、その伝送サーバ414に登録されたユーザのリスト442を調べ、対応するそれぞれの状態444を調べることにより作成される。ユーザを見つけた場合は、多くの場合一以上の低いレベルの伝送サーバ414を介して、そのユーザにメッセージが送られる。ユーザが見つからなかった場合は、メッセージが、伝送サーバの親伝送サーバ414に渡される。伝送サーバ木424の一番上に達しても宛先が見つからなかった場合は、送信元に失敗がレポートされる。このプロセスは、木の一番上のユーザIDから元のメッセージ送信元に有効に応答メッセージを返す。各伝送サーバの親414に記憶されたデータを確認するプロセスは、ユーザの各登録が木の上の各ノードの親に返され、その結果全ての接続の情報が木の一番上にあるという事実による。従って、所望のユーザが木424の一番上に見つからなかった場合は、そのユーザはネットワークに登録されていな可能性がある。
Once connected, the new user 412 can begin sending messages to the transmission server 414 in the following categories:
Management request The transmission server 414 tags the request with its own transmission address / port 438 and then passes the request to the parent transmission server 414.
A message intended for the connected transmission server 414. This is sent in a conventional manner by TCP / IP and does not require any special operation.
A message intended for another endpoint 412 or transmission server 414 other than the parent. This message includes the user IDs of the source and destination endpoints. The transmission server 414 checks the user ID in the list of currently connected users (endpoints). This list is created by examining the list 442 of users registered in the transmission server 414 and examining the corresponding state 444. When a user is found, a message is often sent to that user via one or more lower level transmission servers 414. If the user is not found, a message is passed to the parent transmission server 414 of the transmission server. If the destination is not found after reaching the top of the transmission server tree 424, a failure is reported to the transmission source. This process effectively returns a response message from the user ID at the top of the tree to the original message sender. The process of checking the data stored in the parent 414 of each transmission server is that each registration of the user is returned to the parent of each node on the tree, so that all connection information is at the top of the tree. It depends on the facts. Therefore, if the desired user is not found at the top of the tree 424, the user may not be registered in the network.

エンドポイント412が、親伝送サーバ414に対する直接接続を失ったときは、その祖父伝送サーバ414に接続しようとすることを理解されたい。次に、祖父伝送サーバ414は、代替接続を元のレベルで見つけることができる。   It should be understood that when an endpoint 412 loses direct connection to the parent transmission server 414, it will attempt to connect to its grandfather transmission server 414. The grandfather transmission server 414 can then find an alternate connection at the original level.

図10の階層402のエンドポイントレベル408で、各エンドポイント412は、その親伝送サーバ414に1つのクライアントTCP/IP接続を有する。この接続は、高いレベルの伝送サーバ414と管理サーバ410、404の両方へのアクセスに使用される。   At endpoint level 408 of hierarchy 402 in FIG. 10, each endpoint 412 has one client TCP / IP connection to its parent transmission server 414. This connection is used to access both the high level transmission server 414 and the management servers 410, 404.

例えば、各エンドポイント412は、VoIP通信を容易にするためにユーザとの通信インターフェース(図示せず)を提供する。この実施形態において、各エンドポイント412は、いわゆる「マルチメディア」エンジン(図示せず)も使用する。このマルチメディアエンジンは、マイクロフォン、スピーカ又はヘッドホン、Waveファイルプレーヤ及びレコーダ、並びにビデオプレーヤ及びレコーダを構成する。マルチメディアエンジンは、また、音声を様々な波形式の間で変換し、減衰させ、増幅し、混合することができるディジタル信号処理モジュールを含む。マルチメディアエンジンの機能が当該技術分野で一般的ものであり、また熟練した本明細書の対象者は、そのようなエンジンを構成するために更に詳しい説明を必要としないので、マルチメディアエンジンについてはこれ以上説明しない。   For example, each endpoint 412 provides a communication interface (not shown) with a user to facilitate VoIP communication. In this embodiment, each endpoint 412 also uses a so-called “multimedia” engine (not shown). This multimedia engine constitutes a microphone, speakers or headphones, a wave file player and recorder, and a video player and recorder. The multimedia engine also includes a digital signal processing module that can convert, attenuate, amplify, and mix audio between various waveform expressions. Multimedia engine functionality is common in the art, and the skilled subject matter will not require further detailed description to configure such an engine. No further explanation.

次に図15と図16を参照して、前述のシステム400を使用してピアツーピア接続を確立する方法500について説明する。方法500は、本質的に、第1の段階(図15に示した)で、指定されたエンドポイント412間に所望のピアツーピア接続を確立できるかどうかを設定し、第2の段階(図16に示した)で、発信元412と所望の宛先412の間にピアツーピア接続を確立する2段階プロセスである。ピアツーピア接続を確立した後で、標準のインターネット通信プロトコルを使用して(この実施形態では専用UDPチャネル372を介して)、発信元412と宛先412間のセキュアな直接双方向通信が可能になる。以下の説明は、前述の第1と第2の段階に関するものである。   With reference now to FIGS. 15 and 16, a method 500 for establishing a peer-to-peer connection using the system 400 described above will be described. The method 500 essentially sets whether the desired peer-to-peer connection can be established between the specified endpoints 412 in the first stage (shown in FIG. 15), and the second stage (in FIG. 16). 2), a two-stage process for establishing a peer-to-peer connection between a source 412 and a desired destination 412. After establishing a peer-to-peer connection, secure direct two-way communication between the source 412 and destination 412 is enabled using standard Internet communication protocols (in this embodiment, via a dedicated UDP channel 372). The following description relates to the first and second stages described above.

エンドポイント412間でピアツーピア(P2P)接続を確立することができる。これらの接続は、次に、現在の実施形態では音声と電子メールデータを送信するために使用されるが、他の通信形態も使用することができる。   A peer to peer (P2P) connection may be established between the endpoints 412. These connections are then used to send voice and email data in the current embodiment, but other forms of communication can also be used.

第1の新しいP2P接続の必要性は、最初に、例えばエンドポイント412でエンドユーザが別のエンドユーザにVoIP電話をかけることを決定したときに生じる。この段階で、接続の発信者(発信元)は、所望の宛先のネットワークアドレス(ターゲットユーザのID)しか知っておらず、その発信者は、ターゲットユーザの状態(即ち、ユーザがオンラインか、使用中か、など)を知らない。(発信者は、アドレス帳により、ターゲットユーザが最近オンラインであったことなどを知っている場合があるが、現在の状態を確信することはない。)   The need for a first new P2P connection arises when an end user first decides to place a VoIP call to another end user, for example at endpoint 412. At this stage, the originator of the connection (source) only knows the network address of the desired destination (the target user's ID), and the originator knows the status of the target user (ie, whether the user is online or used Do not know. (The caller may know from the address book that the target user has recently been online, but is not convinced of the current state.)

次に図15を参照すると、第1の段階を実施する方法500は、最初に、発信元ユーザ412が段階502で、「私(ユーザS)はユーザDと通信したい。」という形の要求を伝送サーバ414に送る。伝送サーバ414は、接続ユーザ412のリスト442、444を調べて、段階506で、ユーザDが見つかったかどうかを確認する。接続されたユーザD412を見つけた場合、段階508で、ユーザD412が通話可能かどうか確認する。そうでない場合は、段階510で「失敗−使用中(Failed - Busy)」の応答を返し、段階512でユーザDに対するウォッチを設定することが好ましい。最後に、ユーザSは、段階514で所定の時間期間待ち、次に再び接続を試み及び/又は単にユーザDの可能状態の変化に応じて現行伝送サーバで作動しているウォッチの通知を待つ。しかしながら、段階508でユーザDが通話可能な場合は、段階516で、伝送サーバ414が、ユーザSとユーザD両方の状態を「通話設定処理中」状態に変化させる。次に、伝送サーバ414は、段階518で、できるかぎり現行伝送サーバ414より低いレベルの他の伝送サーバ414を介してユーザDに要求を送る。この時点で、ユーザDは、段階520で見つかり接続されたと見なされ、プロセス500は、図16に関して後で述べるように続く。   Referring now to FIG. 15, the method 500 for performing the first stage begins with a request in the form “I (User S) wants to communicate with User D” when the originating user 412 is at stage 502. Send to transmission server 414. The transmission server 414 examines the list 442, 444 of connected users 412 and determines in step 506 whether user D is found. If the connected user D412 is found, it is checked in step 508 whether the user D412 can talk. Otherwise, it is preferable to return a “Failed-Busy” response at step 510 and set a watch for user D at step 512. Finally, user S waits for a predetermined period of time in step 514, then tries to connect again and / or simply waits for notification of a watch operating on the current transmission server in response to a change in the possible state of user D. However, if the user D can talk at step 508, the transmission server 414 changes the state of both the user S and the user D to the “call setting process” state at step 516. Next, transmission server 414 sends a request to user D via other transmission server 414 at a level lower than the current transmission server 414 as much as possible at step 518. At this point, user D is considered found and connected at step 520 and process 500 continues as described below with respect to FIG.

次に、通信に使用可能になるという状態の変化がユーザDの状態がに生じた場合、このことが、ユーザDのローカル伝送サーバ414に通知され、ユーザSのウオッチ設定が作動する。次に、ユーザSは、段階514で、ユーザDの通話可能性の通知を受け、第1の段階が再び始まることができる(前に述べたように)。代替又は組み合わせにおいて、ユーザSは、段階514で、図15に示したように最初からプロセス500を再開する前に所定の時間待つことができる。   Next, if a change in the state of being available for communication occurs in the state of user D, this is notified to the local transmission server 414 of user D, and the watch setting of user S is activated. Next, user S is notified of user D's call availability at step 514 and the first phase can begin again (as described above). Alternatively or in combination, user S may wait a predetermined time at step 514 before restarting process 500 from the beginning as shown in FIG.

段階506で行なった確認から判断されたように、ユーザDが、伝送サーバ(TS)に現在接続されていない場合は、段階522で、親伝送サーバ414が存在するかどうか判断するために確認が行なわれる。親伝送サーバ414が存在する場合は、段階524で要求が親伝送サーバ414に送られる。その後で、親伝送サーバ414は、段階526で、現行伝送サーバと見なされ、プロセスは引き続き、現行伝送サーバ414が、段階504で登録されたエンドユーザ412のリストを確認する。段階522で行った確認によって親伝送サーバ414がないと判断された場合、伝送サーバは、段階528で、接続失敗を示す応答をエンドポイントに送り、段階530でプロセスが終了する。   As determined from the confirmation made at step 506, if user D is not currently connected to the transmission server (TS), at step 522 a confirmation is made to determine whether the parent transmission server 414 exists. Done. If there is a parent transmission server 414, a request is sent to the parent transmission server 414 at step 524. Thereafter, the parent transmission server 414 is considered the current transmission server at step 526 and the process continues with the current transmission server 414 confirming the list of end users 412 registered at step 504. If the confirmation made at step 522 determines that there is no parent transmission server 414, the transmission server sends a response indicating the connection failure to the endpoint at step 528 and the process ends at step 530.

伝送サーバ414に高いレベルの伝送サーバ414から到着した発信要求は、ユーザが接続されていない場合に、要求を来た場所に転送するのではなく失敗を返す点以外は全く同じように処理される。   Outgoing requests arriving from the higher level transmission server 414 to the transmission server 414 are processed in exactly the same way, except that if the user is not connected, the request is returned instead of being forwarded instead of being forwarded. .

次に図16を参照して、通信プロセス500の第2の段階を説明する。ユーザDは、接続された後で、ピアツーピア通信を容易にするために直接接続できるように、現行IPアドレスとポート番号をユーザSに伝えなければならない。従って、ユーザDが、ユーザSから呼を受けとったときにまだオンラインで且つ使用可能な場合に、段階532でその状態を「通話設定」に変化させる。次に、ユーザDが、段階534でRINGING1メッセージをその親に送り、親は必ず伝送サーバ414になる。また、RINGING1メッセージは、発信者(ユーザS)のユーザIDを含み、それにより、中間伝送サーバ414は、そのメッセージを、オリジナル発呼要求と同じ仕組みを使用して返すことができる。   Referring now to FIG. 16, the second stage of the communication process 500 will be described. Once connected, user D must tell user S the current IP address and port number so that they can connect directly to facilitate peer-to-peer communication. Accordingly, if user D is still online and available when he / she receives a call from user S, the state is changed to “call setup” in step 532. Next, user D sends a RINGING1 message to its parent at step 534, and the parent is always the transmission server 414. Also, the RINGING1 message includes the user ID of the caller (user S) so that the intermediate transmission server 414 can return the message using the same mechanism as the original call request.

また、伝送サーバ414は、段階536でRINGING1メッセージを受け取ると、最初に、段階536でUDP(ユーザダイアグラムプロトコル)チャネル372を構成する。次に、段階540で、UDPチャネルの外部IPアドレスとポート番号を含むRINGING2メッセージを構成し、また段階540でこのメッセージをエンドポイントユーザDと発呼者のエンドポイントユーザSの両方に送る。RINGING2メッセージは、RINGING1メッセージを受け取った伝送サーバ414のユーザIDも含み、その理由は、そのユーザIDがピアツーピア接続を確立するために使用されるからである。   Also, when the transmission server 414 receives the RINGING1 message at step 536, it first configures the UDP (User Diagram Protocol) channel 372 at step 536. Next, step 540 constructs a RINGING2 message containing the external IP address and port number of the UDP channel, and step 540 sends this message to both endpoint user D and caller endpoint user S. The RINGING2 message also includes the user ID of the transmission server 414 that received the RINGING1 message, because that user ID is used to establish a peer-to-peer connection.

伝送サーバ414がRINGING1メッセージを決して送信しないことを理解されたい。従って、伝送サーバに到着したRINGING1メッセージは、常に、エンドポイント412から直接来たと見なされる。   It should be understood that the transmission server 414 never sends a RINGING1 message. Thus, a RINGING1 message that arrives at the transmission server is always considered to have come directly from the endpoint 412.

エンドポイント412が、段階542でRINGING2メッセージを受け取ると、エンドポイント412は、段階544で、通話設定状態であるかどうか確認する。そうでない場合は、段階546で、通話に対しての指定されたものを全てリセットし、段階530でプロセス500は終了する。別の状況では、各エンドポイント412が、段階548で、UDPチャネルを設定し、段階550で、RINGING2メッセージで指定されたポートにメッセージを定期的に送り始める。これは、被呼者に最も近い伝送サーバ414になる。一般的なネットワーク障害が何もなければ、これらのメッセージのほとんどは正確に到達するはずである。   When endpoint 412 receives the RINGING2 message at step 542, endpoint 412 checks to see if it is in a call setup state at step 544. Otherwise, at step 546, all specified for the call is reset and at step 530 the process 500 ends. In another situation, each endpoint 412 sets up a UDP channel at step 548 and begins sending messages periodically to the port specified in the RINGING2 message at step 550. This becomes the transmission server 414 closest to the called party. If there is no general network failure, most of these messages should arrive correctly.

ユーザDに最も近い伝送サーバ414が、各エンドポイント412から最初のUDPメッセージを受け取ったとき、段階552で、エンドポイントのUDPチャネル372の(後述するように、後で変換され可能性がある)ネットワークアドレスとポート番号を抽出する。伝送サーバ414は、次に各エンドポイントのUDPチャネル372に応答を返すことができ(図示せず)、この応答は、UDPネットワークアドレスと他のエンドポイントのUDPチャネルのポート番号を含み、これらの応答は、ファイアウォールが存在する場合でも各エンドポイントに到達するはずである。(エンドポイントが最初に伝送サーバに書き込むので、これは、エンドポイントにある通常のファイアウォールの働きによって可能なはずである。)   When the transmission server 414 closest to user D receives the first UDP message from each endpoint 412, in step 552, the endpoint's UDP channel 372 (which may be converted later, as described below). Extract network address and port number. The transmission server 414 can then return a response to each endpoint's UDP channel 372 (not shown), which includes the UDP network address and the port number of the other endpoint's UDP channel, and The response should reach each endpoint even if a firewall is present. (Because the endpoint first writes to the transmission server, this should be possible due to the normal firewall behavior at the endpoint.)

伝送サーバ414が、両方のエンドポイントからパケットを受け取った後で、伝送サーバ414は、そのUDPポートを外部からどのようにアドレス指定するかを知る。次に、伝送サーバ414は、段階554で、他のエンドポイントのアドレスを伝えるTALKDIRECTメッセージを各エンドポイント412に送る。段階556でそのようなUDPアドレスを受け取った後で、エンドポイント412は、発信元エンドポイント412と互いに通信して、段階556で宛先エンドポイント412への直接UDP通信チャネル372を設定することができ、次にプロセス500は、段階530で終了する。   After transmission server 414 receives packets from both endpoints, transmission server 414 knows how to address its UDP port from the outside. Next, transmission server 414 sends a TALKDIRECT message to each endpoint 412 in step 554, carrying the address of the other endpoint. After receiving such a UDP address in step 556, the endpoints 412 can communicate with the originating endpoint 412 to set up a direct UDP communication channel 372 to the destination endpoint 412 in step 556. The process 500 then ends at step 530.

ほとんどの場合、前記の手順により、これら直通通信を問題なく確立することができる。しかしながら、ネットワークアドレス変換(NAT)がエンドポイントでのファイアウォール動作と同時に存在する場合は、問題が生じることがある。そのような問題は、多くの状況で、第1の実施形態の図9aから図9iに示した例を参照して前に述べたような克服することができる。   In most cases, the direct communication can be established without any problems by the above procedure. However, problems may arise if network address translation (NAT) is present at the same time as firewall operations at the endpoint. Such a problem can be overcome in many situations as previously described with reference to the example of FIGS. 9a to 9i of the first embodiment.

第1と第2の実施形態の両方に使用される手法は、更に後で詳しく説明され、NAT352、358の様々な全ての組み合わせを処理する仕組みについても説明される。   The approach used for both the first and second embodiments is described in more detail later, and the mechanism for handling all the various combinations of NATs 352, 358 is also described.

ネットワークアドレス変換器(NAT)352、358は、広義には、対称と非対称2つのクラスの変換機能に分類される。対称NATは、パケットの宛先に関係なく同じインターネット側アドレス及びポートの組み合わせを使用し、一方、非対称NATは、宛先ごとに異なるインターネット側アドレス/ポートの組み合わせを使用する。この理由が何であるかはっきりと分からないが、未知の発信元からデータパケットを受け入れないことが賢明であるという確信に基づくと考えられる。   Network address translators (NATs) 352, 358 are broadly classified into two classes of translation functions: symmetric and asymmetric. Symmetric NAT uses the same Internet side address and port combination regardless of the destination of the packet, while asymmetric NAT uses a different Internet side address / port combination for each destination. Although it is not clear what this reason is, it is thought to be based on the belief that it is wise not to accept data packets from unknown sources.

これらのNATの必要性に関して少し考えると次のことが分かる。1.受信者は、各パケットが誰から来たかを知ることができ、NATの必要なしに未知の発信元からのパケットを必要に応じて容易に拒否することができる。2.インターネットパケットのIPアドレスとポートは偽造が容易である。NATによるそのような厳格な動作は、長い時間かなり有能なハッカーを阻止できる可能性は少ない。   Considering a little about the necessity of these NATs, the following can be understood. 1. The recipient can know who each packet came from and can easily reject packets from unknown sources as needed without the need for NAT. 2. The IP address and port of Internet packets are easy to forge. Such strict operation by NAT is unlikely to be able to stop a highly capable hacker for a long time.

ファイアウォールは、また、ピアツーピア通信を確立しようとするときに問題を引き起こす可能性がある。通常のファイアウォール動作は、「話しかけられるまで話してはならない」という規則を課すことである。AとBが互いに話したい場合は、A又はBのどちらが最初に話さなければならない。次に、他方が応えることができる。しかし、Aが最初に話し、Bがファイアウォールの後ろにある場合、Bは、Aにパケットが書き込まれるまでパケットが見えない。   Firewalls can also cause problems when trying to establish peer-to-peer communication. Normal firewall behavior is to impose a rule that "Don't speak until you speak". If A and B want to talk to each other, either A or B must speak first. The other can then respond. However, if A speaks first and B is behind a firewall, B will not see the packet until it is written to A.

適度に有効なファイアウォールの挙動は、前述のように規則が実施されることを要求する。実際には、多くのファイアウォールは、この規則を「話しかけられる前に話す人は、再び聞かれることはない」と解釈する。そのような挙動は、ピアツーピア通信チャネルを確立しようとする際に深刻な問題を引き起こすことがある。   Reasonably effective firewall behavior requires that the rules be enforced as described above. In practice, many firewalls interpret this rule as "a person who speaks before he is spoken will not be heard again." Such behavior can cause serious problems when attempting to establish a peer-to-peer communication channel.

前述の実施形態において、状況を改善する幾つかの手順が実施される。最初に、非対称NATが通常、新しい宛先に書き込むために任意のポートを開かず、元のポート+1(或いは、第1と第2の書き込みの間に行われた回数により2、3等)になることが多いことを理解されたい。この実施形態において、非対称NATに遭遇したとき、RINGING2メッセージに示されたポートアドレスより上のいくつかの連続するポートが、この可能性に対応するために書き込まれる。   In the above embodiment, several procedures are implemented to improve the situation. Initially, the asymmetric NAT usually does not open any port to write to the new destination, but becomes the original port +1 (or 2, 3 etc. depending on the number of times made between the first and second writes) Please understand that there are many cases. In this embodiment, when an asymmetric NAT is encountered, several consecutive ports above the port address indicated in the RINGING2 message are written to accommodate this possibility.

幾つかの製造業者は、ファイアウォール/NATが、一般に、動作を調べセキュリティ制約に従って修正される場合があるuPnP(ユニバーサルプラグアンドプレイ)インタフェースを実施することを表明している。この実施形態は、伝送サーバ414で実施されたuPnPインタフェース(図示せず)を含む。   Some manufacturers have stated that the firewall / NAT generally implements a uPnP (Universal Plug and Play) interface that may be tested and modified according to security constraints. This embodiment includes a uPnP interface (not shown) implemented on the transmission server 414.

一部のケースでは、ファイアウォールの実施が厳密なため或いはNAT352と358が両方とも非対称であるため、単純に直接ピアツーピア接続を実行することができない。そのような場合、この実施形態は、信頼できる仲介の役割をするローカル伝送サーバ414でメッセージを「返送する」ように構成される。これにより、ローカル伝送サーバ414が常にローカル非対称NAT352、358に知られているように未知送信者の問題が緩和され、その結果、例えばファイアウォールでの最も厳密な規則でも、そのような間接的擬似ピアツーピア通信が妨げられなくなる。更に、跳ね返されたパケットが、信頼できる仲介の役割をする伝送サーバ414によって最小限の分析で且つ必ず記憶なしに転送されるようにすることによって、そのような間接通信チャネルのセキュリティが低下する可能性が低くなる。   In some cases, a direct peer-to-peer connection cannot simply be performed because of the strict firewall implementation or because both NATs 352 and 358 are asymmetric. In such a case, this embodiment is configured to “return” the message at the local transmission server 414 acting as a trusted intermediary. This alleviates the problem of unknown senders so that the local transmission server 414 is always known to the local asymmetric NATs 352, 358, so that even the strictest rule at the firewall, for example, is such indirect pseudo-peer-to-peer. Communication is not hindered. Furthermore, the security of such indirect communication channels can be reduced by ensuring that the bounced packets are forwarded with minimal analysis and without memory by the transmission server 414 acting as a reliable intermediary. Low.

ファイアウォール動作のばかげた(極めて厳しい)解釈に遭遇した場合に、このシステムは、ある方向で真のピアツーピア通信を実施し、他の方向でローカル伝送サーバ414で跳ね返るように構成される。この変形例は、安全性の低下が最小になるので行う価値がある。例えば、電子メールを伝送する場合、電子メールが直接送られ、肯定応答が跳ね返されるように構成すると有利である。   When encountering a ridiculous (extremely strict) interpretation of firewall operation, the system is configured to perform true peer-to-peer communication in one direction and bounce at the local transmission server 414 in the other direction. This variant is worth doing because it minimizes the drop in safety. For example, when transmitting e-mail, it is advantageous to configure the e-mail to be sent directly and the acknowledgment to be bounced back.

以下に、非対称NAT352、358があるはずであること或いは厳密なファイアウォールが適所にあることをシステム10が自動的に見つける実際の方法を説明する。ハイレベルの観点から見ると、図16に関して前に説明したように、ローカル伝送サーバ414が、両方のエンドポイント412のUDPポートのアドレスを知っているとき、ローカル伝送サーバ414は、他方のエンドポイントのアドレスを示すTALKDIRECTメッセージをそれぞれに送信する。エンドポイント412は、直接通信することを試み、またタイマー(図示せず)を設定する。パケットを直接受け取った場合、伝送サーバ414には、接続が通話中であることが伝えられ、タイマーが停止されそれ以上使用されない。しかしながら、パケットを受け取らずタイマーが作動した(即ち、所定の時間期間が経過した)場合は、TALKTHROUGHメッセージが、伝送サーバ414に送られ、そこから他のエンドポイント412に送られ、指定宛先エンドポイント412のローカルサーバ414に更に他の通信が直接送られようとしていることを示す。その後で、メッセージは、所望のエンドポイント412に対してローカルな伝送サーバ414で「跳ね返される」。   The following describes the actual way in which the system 10 automatically finds that there should be an asymmetric NAT 352, 358 or that a strict firewall is in place. From a high level perspective, when the local transmission server 414 knows the address of the UDP port of both endpoints 412 as described above with respect to FIG. A TALKDIRECT message indicating the address of each is transmitted to each. Endpoint 412 attempts to communicate directly and sets a timer (not shown). If the packet is received directly, the transmission server 414 is informed that the connection is busy and the timer is stopped and is no longer used. However, if no timer is received and the timer is activated (ie, the predetermined time period has elapsed), a TALKTHROUGH message is sent to the transmission server 414 and from there to the other endpoint 412 for the designated destination endpoint. 412 indicates that another communication is about to be sent directly to the local server 414. The message is then “bounced” at the transmission server 414 local to the desired endpoint 412.

システム10は、被呼者が呼を受け入れる前にピアツーピア接続を確立し始める。呼が受け入れられない場合は、ピアツーピア接続はすぐに終了される。このシステム10は、呼が受け入れられたときだけプロセスを開始し、タイムアウト/TALKTHROUGH手順を実施する場合、これにより、例えば音声リンクを確立する際の有害な遅延が生じる可能性がある。これはまた、大部分の呼/電子メール(ユーザがログインした場合)が受け入れられるケースである。   System 10 begins to establish a peer-to-peer connection before the called party accepts the call. If the call is not accepted, the peer-to-peer connection is immediately terminated. If the system 10 initiates the process only when a call is accepted and implements a time-out / TALKTHROUGH procedure, this can cause, for example, deleterious delays in establishing a voice link. This is also the case where most calls / emails are accepted (if the user logs in).

次に、本発明の第3の実施形態を図17から図20に関して説明する。第3の実施形態は、セキュリティに関する問題を除き第2の実施形態と極めて似ている。より具体的には、第3の実施形態は、後述するような頑強なセキュリティシステムにより各ノードに記憶された許可446を代用する。   Next, a third embodiment of the present invention will be described with reference to FIGS. The third embodiment is very similar to the second embodiment except for security issues. More specifically, the third embodiment substitutes the permission 446 stored in each node by a robust security system as described later.

先行技術のセキュアでない通信システムは使用できず、そのような通信システムは、登録ユーザのセキュリティを損なう好ましくないユーザを得る。既知のセキュアでない製品は、より多くの人がシステムを使用するときに、特性が高められそれにより「人気のある」システム自体を傷つける攻撃者を招くという事実によって、ユーザの数に固有の上限がある。この効果は、制御システムでの負帰還と少し似たものとして働く。   Prior art insecure communication systems cannot be used, and such communication systems obtain undesirable users that compromise the security of registered users. Known insecure products have an inherent upper limit on the number of users due to the fact that when more people use the system, the characteristics are enhanced, thereby inviting attackers to harm the “popular” system itself. is there. This effect works a little like negative feedback in a control system.

第3の実施形態は、最初からセキュリティを組み込むことによってこのサイクルを減衰させる。システム10から攻撃者を完全になくすことはできないが、攻撃者がいることで登録ユーザのシステム10の可用性が損なわれないようにするために十分に効果的なセキュリティが組み込まれる。攻撃者を完全になくすシステムの設計が、実際には設計者の破綻の原因になることを理解されたい。   The third embodiment attenuates this cycle by incorporating security from the beginning. Although the attacker cannot be completely eliminated from the system 10, security that is sufficiently effective is incorporated so that the presence of the attacker does not compromise the availability of the registered user's system 10. It should be understood that designing a system that completely eliminates attackers actually causes the failure of the designer.

第3の実施形態のセキュリティ要件は、以下の通りである。
要件1:NODEがシステム10に認証されなければならない。
要件2:NODEを介したTSリンクへの通信が機密でなければならない。
要件3:CLIENTが互いに認証されなければならない(相互認証)
要件4:CLIENTとCLIENTの間の接続の通信が機密でなければならない。
The security requirements of the third embodiment are as follows.
Requirement 1: NODE must be authenticated by the system 10.
Requirement 2: Communication to the TS link via NODE must be confidential.
Requirement 3: CLIENT must be mutually authenticated (mutual authentication)
Requirement 4: Connection communication between CLIENT and CLIENT must be confidential.

セキュリティ要件1と2の適合
以下の用語の多くは、RFC1510(ケルベロス認証システム)からのものである。ケルベロスは、ユーザ又はホストの識別を検証するために使用される認証メカニズムであり、これは、また、Microsoft Windows Server 2003のサービスに好ましい認証方法である。ケルベロス認証プロトコルは、クライアントとサーバ間又はあるサーバと別のサーバ間にネットワーク接続を確立する前に、これらの間で相互認証する仕組みを提供する。このプロトコルは、クライアントとサーバ間の最初のトランザクションがセキュアでない通信ネットワーク上で行われることを想定する。そのようなセキュアでない環境は、インターネットによって適切に例示することができ、この場合、攻撃者が、クライアントかサーバのどちらかを容易に装うことができ、正当なクライアントとサーバ間の通信を容易に盗聴したり改竄したりすることができる。
Compliance of Security Requirements 1 and 2 Many of the following terms are from RFC 1510 (Kerberos Authentication System). Kerberos is an authentication mechanism used to verify user or host identity, which is also the preferred authentication method for Microsoft Windows Server 2003 services. The Kerberos authentication protocol provides a mechanism for mutual authentication between a client and a server or between a server and another server before establishing a network connection. This protocol assumes that the initial transaction between the client and server takes place over an insecure communication network. Such an insecure environment can be adequately exemplified by the Internet, where an attacker can easily impersonate either a client or a server, facilitating communication between a legitimate client and server. Can be wiretapped or tampered with.

ケルベロス技術は、共有する秘密を伴う認証技術に大きく依存する。基本的な概念は全く単純である。即ち、秘密を2人だけが知っている場合、一方の人は、他方の人が秘密を知っていることを確認することにより他方の人の同一性を検証することができる。パスワードは、秘密鍵暗号法を使用して秘密が維持される。より正確に言うと、パスワードを共有することより、通信パートナは、暗号鍵を共有し、この鍵の知識を使用して互いの同一性を検証する。この技術が機能するためには、共有鍵が対称でなければならず、即ち、単一の鍵で暗号化と解読の両方ができなければならない。一方の側は、ある情報を暗号化することによって鍵の知識を証明し、他方の側はそれを解読することによって鍵の知識を証明する。   Kerberos technology relies heavily on authentication technology with shared secrets. The basic concept is quite simple. That is, if only two people know the secret, one person can verify the identity of the other person by confirming that the other person knows the secret. Passwords are kept secret using secret key cryptography. More precisely, by sharing a password, communication partners share an encryption key and use the knowledge of this key to verify each other's identity. In order for this technique to work, the shared key must be symmetric, i.e., it must be capable of both encryption and decryption with a single key. One side proves key knowledge by encrypting certain information, and the other side proves key knowledge by decrypting it.

基本原理は、以下のように機能できる認証符号によって実施される。秘密鍵認証を使用する単純なプロトコルは、通信扉の外側にいる人が中に入りたいときに始まる。アクセス権を得るために、その人は、秘密鍵で暗号化された情報の形の認証符号を提示する。認証符号の情報は、プロトコルが実行されるたびに違っていなければならなず、そうでないと、通信を偶然盗み聞きした人が誰でも昔の認証符号を再使用することができてしまう。   The basic principle is implemented by an authentication code that can function as follows. A simple protocol that uses private key authentication begins when someone outside the door wants to get inside. To gain access, the person presents an authentication code in the form of information encrypted with a private key. The authentication code information must be different each time the protocol is run, otherwise anyone who accidentally eavesdrops on the communication can reuse the old authentication code.

認証符号を受け入れると、扉の番人はその認証符号を解読し、中にあるものから解読が成功したかどうかを知る。解読が成功した場合、門番は、認証符号を提示した人が適正な鍵を持っていることを知る。2人だけが適正な鍵を持っており、門番がその1人であり、従って他の人は、認証符号を提示した人であるはずである。   When accepting the authentication code, the doorkeeper decrypts the authentication code and knows whether the decryption was successful from the inside. If the decryption is successful, the gatekeeper knows that the person who presented the authentication code has the proper key. Only two people have the proper key and the gatekeeper is one of them, so the other person should be the person who presented the authentication code.

扉の外側にいる人が相互認証を望む場合は、少し違いのある同じプロトコルを逆に実行することができる。門番は、元の認証符号から情報の一部を取り出し、それを新しい認証符号で暗号化し、次に扉の外側で待っている人に新しい認証符号を与えることができる。次に、扉の外側にいる人は、門番の認証符号を解読し、結果をオリジナルの認証符号と比較することができる。合致した場合、扉の外側の人は、門番がオリジナルを解読できたことを知り、従って正しい鍵を持っているはずである。   If the person outside the door wants mutual authentication, the same protocol with a little difference can be run in reverse. The gatekeeper can take a piece of information from the original authentication code, encrypt it with the new authentication code, and then give the new authentication code to the person waiting outside the door. The person outside the door can then decrypt the gatekeeper authentication code and compare the result with the original authentication code. If there is a match, the person outside the door knows that the gatekeeper was able to decrypt the original and should therefore have the correct key.

図17に、この実施形態でケルベロス技術を使用する方法の基本原理を示す。この場合、サーバ602、クライアント604、及び鍵配布センター606が提供される。クライアント604は、サーバ602に接続することを望み、最初に、サーバ602への有効接続を確立するチケットを獲得するために鍵配布センター(KDC)606に申し込む。チケットは、実質的に、既にシステム600が認証したサーバ602にクライアント604を認証させるために使用される。   FIG. 17 shows the basic principle of the method of using Kerberos technology in this embodiment. In this case, a server 602, a client 604, and a key distribution center 606 are provided. The client 604 wants to connect to the server 602 and first applies to the key distribution center (KDC) 606 to obtain a ticket that establishes a valid connection to the server 602. The ticket is effectively used to cause the server 602 already authenticated by the system 600 to authenticate the client 604.

図18と図19を参照して次に説明するこの第3の実施形態のセキュリティ方式の詳細な説明では、以下に示す頭文字を使用する。
TS=伝送サーバ414。
NODE=CLIENTとTSの組み合わせ。単にCLIENT又はTSと呼ぶこともある。その場合、NODE608に関して説明する特定の役割は減少するが、他の機能は利用可能である。
AS=認証サーバ610。
KEY=NODE608に割り当てられたパスワードに基づく値。
TGS=チケット交付サーバ612
REALM614=AS610を共有するNODE608のコミュニティ。
In the detailed description of the security system according to the third embodiment, which will be described next with reference to FIGS. 18 and 19, the following initial letters are used.
TS = Transmission server 414.
NODE = combination of CLIENT and TS. Sometimes simply referred to as CLIENT or TS. In that case, the specific role described for NODE 608 is reduced, but other functions are available.
AS = authentication server 610.
KEY = value based on the password assigned to NODE 608.
TGS = ticket issuing server 612
REALM 614 = NODE 608 community sharing AS 610.

最初に、幾つかのNODE608を含む特定のREALM614と関連付けられた認証サーバ610が使用可能であると仮定する。AS610は、登録された各NODE608ごとの{USERNAME,PASSWORD}ダブレットの相当物をそのローカルデータベース616に記憶する。次に、図19に示したように、ネットワークに接続したいNODE_A608のクライアントが、インターネットブラウザ618を使って登録するKDC610のウェブサーバ620に接続し、それによりユーザ名「UserA」622とパスワード「pwdA」624を取得したと仮定する。   Initially, assume that an authentication server 610 associated with a particular REALM 614 including several NODEs 608 is available. The AS 610 stores the equivalent of {USERNAME, PASSWORD} doublet for each registered NODE 608 in its local database 616. Next, as shown in FIG. 19, the client of NODE_A 608 that wants to connect to the network connects to the web server 620 of the KDC 610 to register using the Internet browser 618, whereby the user name “UserA” 622 and the password “pwdA”. Assume that 624 is acquired.

手順の基本的な仕組みを、以下の頭文字を使って説明する。
NODE_A=ユーザ名Aを持つNODE608。
TGT_A=NODE_Aのチケット交付チケット626。
S_A=AS610とNODE_A608間のセッション鍵628。
K_AB=NODE_AとNODE_B間の共有鍵630。
TICKET_AB=NODE_AがNODE_Bに対するアクセス権を取得できるチケット632。
{X}K_Y=鍵K_Yによって暗号化された値X。
The basic mechanism of the procedure is explained using the following initials.
NODE_A = NODE 608 with user name A.
Ticket granting ticket 626 of TGT_A = NODE_A.
S_A = session key 628 between AS 610 and NODE_A 608.
K_AB = shared key 630 between NODE_A and NODE_B.
TICKET_AB = Ticket 632 that allows NODE_A to obtain access rights to NODE_B.
{X} K_Y = value X encrypted with key K_Y.

次に図18と図19を参照すると、認証プロセスの最初で、NODE_A608が起動し、以下に示すようにシステム600に認証される。
1.NODE_A608は、TS414に接続され、AS_REQ634メッセージを、NODE_A608が属するREALM614のAS610に送信する(一般に、このメッセージは、AS610に接続された状態のTS414が見つかるまで階層ネットワークを遡る)。
2.AS610は、セッション鍵S_A628を生成し、pwdA624で共に暗号化されたTGT_A626とS_A628を含むAS_RESPメッセージ636を返す。
18 and 19, at the beginning of the authentication process, NODE_A 608 is activated and authenticated to the system 600 as shown below.
1. The NODE_A 608 is connected to the TS 414 and sends an AS_REQ 634 message to the AS 610 of the REALM 614 to which the NODE_A 608 belongs (generally this message goes back up the hierarchical network until a TS 414 connected to the AS 610 is found).
2. The AS 610 generates a session key S_A 628 and returns an AS_RESP message 636 that includes TGT_A 626 and S_A 628 encrypted together with pwdA 624.

また、AS610は、認証セキュリティを高めるために暗号化されたTIMESTAMP(図示せず)を返すこともできる。これは、AS610が、ネットワーク時間プロトコル(NTP)又は単純なNTP接続によって信頼できるソースから時間を受け取り、NODE608が、システム600の認証を受けるときにASの時間と同期されることを仮定している。NODE608は、ASから送られたTIMESTAMPをその現行Win32チックカウントと関連付け、自分自身のTIMESTAMP値を生成する必要があるときは新しい現在時刻を計算しなければならない。   The AS 610 can also return an encrypted TIMESTAMP (not shown) to increase authentication security. This assumes that AS 610 receives time from a trusted source via Network Time Protocol (NTP) or a simple NTP connection and NODE 608 is synchronized with the AS time when receiving system 600 authentication. . NODE 608 must associate the TIMESTAMP sent from the AS with its current Win32 tick count and calculate a new current time when it needs to generate its own TIMESTAMP value.

NODE_A608が認証された後で、ネットワークに参加するために現在「リンク」しなければならない(即ち、VoIP呼を行ない受けることができる)TS414の名前がネットワークから通知され、またターゲットTS414をNODE_B608と呼ぶと仮定する。タイムスタンプが使用されている場合、手順は以下の通りである。
1.TGT_A626とNODE_B608の名前を含むTGS_REQメッセージ638をAS610に送る。
2.AS610は、K_AB630(S_A628で暗号化された)とTICKET_AB632を含むTGS_RESPメッセージ640を返す。
3.NODE_A608は、K_AB630の値を抽出し、現在のTIMESTAMP値を計算し、認証符号を{TIMESTAMP}K_ABとしてNODE_B608に生成する。NODE_A608は、{TIMESTAMP}K_ABとNODE_B608へのTICKET_AB632を含むAP_REQメッセージ642をNODE_B608に送る。
4.NODE_A608がリンクすることをNODE_B608が許可するために、NODE_Bは、TICKET_AB632を解読してK_AB630を抽出し、次に{TIMESTAMP}K_ABを解読してTIMESTAMPを検証できなければならない。これが成功したと仮定すると、NODE_B608は、NODE_A608がNODE_B608を認証することを可能にする{TIMESTAMP+1}K_ABを含むAP_RESPメッセージ644を返す。
After NODE_A 608 is authenticated, the network is informed of the name of the TS 414 that must currently “link” to join the network (ie, can make and receive VoIP calls), and the target TS 414 is called NODE_B 608. Assume that If a time stamp is used, the procedure is as follows.
1. A TGS_REQ message 638 containing the names of TGT_A 626 and NODE_B 608 is sent to AS 610.
2. The AS 610 returns a TGS_RESP message 640 containing K_AB 630 (encrypted with S_A 628) and TICKET_AB 632.
3. NODE_A 608 extracts the value of K_AB 630, calculates the current TIMESTAMP value, and generates an authentication code in NODE_B 608 as {TIMESTAMP} K_AB. NODE_A 608 sends an AP_REQ message 642 to NODE_B 608 that includes {TIMESTAMP} K_AB and TICKET_AB 632 to NODE_B 608.
4). In order for NODE_B 608 to allow NODE_A 608 to link, NODE_B must be able to decrypt TICKET_AB 632 and extract K_AB 630 and then decrypt {TIMESTAMP} K_AB to verify TIMESTAMP. Assuming this was successful, NODE_B 608 returns an AP_RESP message 644 containing {TIMESTAMP + 1} K_AB that allows NODE_A 608 to authenticate NODE_B 608.

熟練した本明細書の対象者には、タイムスタンプを使用しない場合に以上の操作がどのように行われるか容易に明らかであり、従って、タイムスタンプなしに上記の一連のイベントを実行する方法の明示的な説明はこれ以上行わない。   It will be readily apparent to the skilled subject how the above operations will be performed without the use of a time stamp, and therefore, how to execute the above sequence of events without a time stamp. No further explicit explanation will be given.

この時点で、NODE_A608は、NODE_B608を介してネットワークに「リンク」されている(実際には、NODE_AのCLIENT604がNODE_B608のTS414のサーバとなる)。   At this point, NODE_A 608 is “linked” to the network via NODE_B 608 (actually, CLIENT 604 of NODE_A becomes the TS 414 server of NODE_B 608).

以上の実施態様は、ケルベロス認証システムの適応されたサブセットに基づいており、基本的なプロトコル、メッセージ及びデータ構造を再使用するが、この実施形態の新しい認証技術をピアツーピア通信の状況で有効に使用できるようにする機能が異なる。   The above embodiments are based on an adapted subset of the Kerberos authentication system and reuse basic protocols, messages and data structures, but effectively use the new authentication techniques of this embodiment in the context of peer-to-peer communication Different functions are available.

セキュリティ要件3と4の適合
認証プロセスのこの段階を説明するために以下の頭文字を使用する。
DH_PK_A=CLIENT_Aのディフィー−ヘルマン公開鍵646。
DH_SK_A=CLIENT_Aのディフィー−ヘルマン秘密鍵648。
DH_PK_B=CLIENT_Bのディフィー−ヘルマン公開鍵650。
DH_SK_B=CLIENT_Bのディフィー−ヘルマン秘密鍵652。
K_AC=NODE_AとNODE_C間の共有鍵654。
Conformance to security requirements 3 and 4 The following acronyms are used to describe this stage of the authentication process.
Diffie-Hellman public key 646 for DH_PK_A = CLIENT_A.
DH_SK_A = CLIENT_A Diffie-Hellman secret key 648.
DH_PK_B = CLIENT_B Diffie-Hellman public key 650.
DH_SK_B = CLIENT_B Diffie-Hellman secret key 652.
K_AC = shared key 654 between NODE_A and NODE_C.

次に図19を参照すると、ネットワークに現在接続されているNODE_A608内のCLIENT_A604が、NODE_C608内のCLIENT_C604に電話をかけたいとき、この実施形態は、CLIENT604が互いに認証し、それらの間に確立された接続(ピアツーピア接続等)を介したその後の通信が、共有鍵K_AC654によって暗号化されることを必要とする。   Referring now to FIG. 19, when CLIENT_A 604 in NODE_A 608 currently connected to the network wants to call CLIENT_C 604 in NODE_C 608, this embodiment is established between them with CLIENT 604 authenticating each other. Subsequent communication over the connection (such as a peer-to-peer connection) requires that it be encrypted with the shared key K_AC 654.

CLIENTとCLIENT間で可能な2つのタイプの認証を検討する。そのような認証の第1のものは、「誘導による認証(Authentication-by-induction)」と言われ、実質上、CLIENT_A604とCLIENT_C604間の接続を確立できる前にNODE_A608とNODE_C608間にあるはずの認証済みリンクチェーンに乗る。その手順は以下の通りである。
1.CLIENT_A604は、ディフィー=ヘルマン(DH)鍵ペアを生成し、DH_PK_A646を含むメッセージをCLIENT_C604に送る。このメッセージは、それらのクライアントを接続する認証済みリンクチェーン656を介して送られる(通信チャネル設定プロトコルの一部として)。
2.メッセージを受け取ると、CLIENT_C604は、そのメッセージが既に認証された発信元から送られたはずであると仮定する(CLIENT_C604は、その発信元を正式に認証する立場になく、従って、この形の認証の間接的な弱い表現が「誘導による認証」である)。
3.CLIENT_C604は、ディフィー=ヘルマン(DH)鍵ペアを生成し、DH_PK_B650の値を含むメッセージをCLIENT_A604に送る。メッセージは、同じ(異なってもよいが)認証済みリンクチェーン656を介してCLIENT_A604に送られる。
4.このとき、CLIENT_A604とCLIENT_C604は両方とも、共有鍵K_AC654を独立に計算する立場にある。DH_PK_A646又はDH_PK_B650を傍受する側は、K_AC654を計算し、CLIENT_A604又はCLIENT_C604に扮する立場にない。
5.CLIENT_A604とCLIENT_C604は、K_AC654を使用して、信頼性の高い通信を可能にするために、高度暗号化システム(AES:Advanced Encryption System)の大量の暗号鍵又はその等価物を生成する。
Consider the two types of authentication possible between CLIENT and CLIENT. The first such authentication is referred to as “Authentication-by-induction” and is effectively an authentication that should be between NODE_A 608 and NODE_C 608 before the connection between CLIENT_A 604 and CLIENT_C 604 can be established. Take the link chain. The procedure is as follows.
1. CLIENT_A 604 generates a Diffie-Hellman (DH) key pair and sends a message containing DH_PK_A 646 to CLIENT_C 604. This message is sent over the authenticated link chain 656 connecting those clients (as part of the communication channel setup protocol).
2. Upon receipt of the message, CLIENT_C 604 assumes that the message should have been sent from an already authenticated source (CLIENT_C 604 is not in a position to formally authenticate the source, and thus this form of authentication. Indirect weak expression is "authentication by induction").
3. CLIENT_C 604 generates a Diffie-Hellman (DH) key pair and sends a message containing the value of DH_PK_B 650 to CLIENT_A 604. The message is sent to CLIENT_A 604 via the same (but different) authenticated link chain 656.
4). At this time, both CLIENT_A 604 and CLIENT_C 604 are in a position to independently calculate the shared key K_AC 654. The side that intercepts DH_PK_A 646 or DH_PK_B 650 is not in a position to calculate K_AC 654 and to deceive CLIENT_A 604 or CLIENT_C 604.
5. CLIENT_A 604 and CLIENT_C 604 use K_AC 654 to generate a large number of encryption keys for the Advanced Encryption System (AES) or equivalents to enable reliable communication.

概して、「誘導による認証」は、真の認証ではなく、むしろ次のように要約される。
「私は、認証済みの相手X(相手の名前がX)と機密通話を確立したが、私にはこれを検証する手段がない」(VoIP通話は、例えば電子メールのよりも心配が少ないことは明らかである)。
In general, “authentication by guidance” is not true authentication, but rather is summarized as follows.
“I have established a confidential call with an authenticated party X (whose name is X), but I have no way to verify it.” (VoIP calls are less worrisome than e-mails, for example. Is obvious).

また、AS610を使用してCLIENT_A604とCLIENT_C604が互いを認証できるTICKET632を生成することができるが、通信チャネル設定の一部としてこの操作を行う際の一時的オーバヘッドが大きすぎる。従って、「誘導による認証」は、この代案より優先的に使用される。   Also, the AS 610 can be used to generate a TICKET 632 that allows CLIENT_A 604 and CLIENT_C 604 to authenticate each other, but the temporary overhead in performing this operation as part of the communication channel configuration is too great. Therefore, “authentication by guidance” is used in preference to this alternative.

第2の可能な認証のタイプは、Amteusシステム600に外部から提供されるが、Amteusシステム600が相互運用しなければならないものである。外部から提供される公開鍵インフラストラクチャ(PKI)が利用可能であり、またCLIENTが公開鍵使用可能(PKE)であると仮定する。そのような状況において、前述のプロトコルは、CLIENT_A604とCLIENT_C604間で送られたメッセージにデジタル署名するRSA暗号アルゴリズムに拡張され、その結果、強力な認証が利用可能になる(PKIは当該技術分野において十分に理解されているので、PKIの更に詳しい考察は本明細書で行わない)。   A second possible type of authentication is provided externally to Amteus system 600, which Amteus system 600 must interoperate with. Assume that an externally provided public key infrastructure (PKI) is available and CLIENT is public key available (PKE). In such a situation, the protocol described above is extended to the RSA cryptographic algorithm that digitally signs messages sent between CLIENT_A 604 and CLIENT_C 604, so that strong authentication is available (PKI is sufficient in the art). Therefore, a more detailed discussion of PKI will not be given here).

この実施形態は、あまりセキュアでなくより実際的な「誘導による認証」手法を使用する。   This embodiment uses a less secure and more practical “guided authentication” approach.

認証サーバの複製
先行技術のケルベロスシステムにおいて、認証用のセキュリティデータベースの管理はできるだけ単純に維持され、これと同じ原理がこの実施形態に適用される。この実施形態の特徴は、以下の通りである。
−静的データだけを維持し、セッション又は呼関連データ(即ち、動的データ)の記憶を回避しようとする。
−アカウントを作成し、アカウント詳細を修正し、アカウントを削除するために読み出し/書き込みのマスタコピーを維持する。
−マスターコピーを幾つかの読み出し専用コピーに定期的に複製する。
Authentication Server Replication In the prior art Kerberos system, the management of the security database for authentication is kept as simple as possible, and the same principle applies to this embodiment. The features of this embodiment are as follows.
-Keep only static data and try to avoid storing session or call related data (ie dynamic data).
Create an account, modify account details, and maintain a read / write master copy to delete the account.
-Duplicate the master copy regularly into several read-only copies.

クロスレルム認証
この実施形態では、複数のREALMS614があってよく、これらのREALMS614は、管理システム404のために階層的に組織される。この点で、異なるREALMS614内のNODE608間の認証(いわゆる「クロスレルム認証(cross-realm authentication)」と呼ばれる)が実行される。
Cross Realm Authentication In this embodiment, there may be a plurality of REALMSs 614 that are organized hierarchically for the management system 404. At this point, authentication between NODEs 608 in different REALMSs 614 (so-called “cross-realm authentication”) is performed.

クロスレルム認証は、事実上、前述の既存のTGS(チケット交付サービス)システム600に乗る。REALM_A614内のNODE_A608が、REALM_B614内のNODE_B608にリンクしたい場合は、TGS_B638、340をREALM_A608用のAS610に登録する必要がある。このように、NODE_A608は、段階634で、単にTGS_AからTGT626を要求し、このTGT626は、NODE_B608に送るTICKET632を得て新しいリンクを達成するために、TGS_Bに送られる。   Cross-realm authentication effectively rides on the existing TGS (Ticket Granting Service) system 600 described above. If NODE_A 608 in REALM_A 614 wants to link to NODE_B 608 in REALM_B 614, TGS_B 638 and 340 need to be registered in AS 610 for REALM_A 608. Thus, NODE_A 608 simply requests TGT 626 from TGS_A at step 634, which TGT 626 is sent to TGS_B to obtain a TICKET 632 to send to NODE_B 608 to achieve the new link.

レルム614が階層的に編成されている場合でも(図21を参照)、通常、2つの通信レルム614が、一方向だけの登録ではなく、互いに登録されなければならない。   Even if the realms 614 are organized hierarchically (see FIG. 21), typically the two communication realms 614 must register with each other, not just in one direction.

以下で、クロスレルム認証及び許可についてより詳細に説明する。しかしながら、その前に、図20aと図20bを参照して、実施形態で使用されるNODEセキュリティ動作の概要を説明する。   In the following, cross realm authentication and authorization will be described in more detail. However, before that, the outline of the NODE security operation used in the embodiment will be described with reference to FIGS. 20a and 20b.

一般に、NODE608はサブシステムの集合であり、その関連するサブセットを図20aと図20bに示す。NODE608に対する接続又はリンクが行なわれる。ここで、一時的でNODE−NODE間の暗号化を必要としない単純な接続と、より永久的な構成で、関連付けられた暗号鍵630、654を有するリンクとを区別する。   In general, NODE 608 is a collection of subsystems, and its associated subset is shown in FIGS. 20a and 20b. A connection or link to NODE 608 is made. Here, a simple connection that does not require NODE-NODE encryption is distinguished from a link with associated encryption keys 630, 654 in a more permanent configuration.

図20aと図20bは、2つのNODE608を示し、これらのNODE68は両方とも同一のサブシステムを含む(即ち、これらのノードは、同じ実行可能なサブシステムの異なる例である)。親NODE608(図20a)は、データクライアント(DC)656がデータサーバ(DS)612に接続され且つKDC610がアクティブであるという点で主NODEである。子NODE608(図20b)は、DSに接続されておらず、従ってDC656とKDC610は存在するがアクティブではない。主NODE608は、そのセキュリティサービス660を使用して、その子から受け取った全てのセキュリティ要求を処理する。   20a and 20b show two NODEs 608, both of which contain the same subsystem (ie, these nodes are different examples of the same executable subsystem). The parent NODE 608 (FIG. 20a) is the primary NODE in that the data client (DC) 656 is connected to the data server (DS) 612 and the KDC 610 is active. Child NODE 608 (FIG. 20b) is not connected to DS, so DC656 and KDC610 are present but not active. The primary NODE 608 uses the security service 660 to process all security requests received from its children.

CLIENT604とTS414は、ハンドル(図示せず)を使用してSS660と通信する。ハンドルは、親NODE608へのCLIENT接続/リンク662か、子NODE608からのTS接続/リンク664かに関係なく、各接続又はリンク(即ち、それぞれのアクティブなサーバストリーム)と関連付けられる。   CLIENT 604 and TS 414 communicate with SS 660 using a handle (not shown). A handle is associated with each connection or link (ie, each active server stream) regardless of the CLIENT connection / link 662 to the parent NODE 608 or the TS connection / link 664 from the child NODE 608.

NODE608が起動したとき、DC656は、DS658に接続しログインすることを試み、成功した場合はKDC610も初期化される。後で分かるように、CLIENT604が、同じREALM614内の別のNODE608にリンクできないので、主NODE608をそれ自体のKDC610に対して認証する必要はないことに注意されたい。   When NODE 608 is activated, DC 656 attempts to connect to DS 658 and log in, and if successful, KDC 610 is also initialized. Note that it is not necessary to authenticate the primary NODE 608 to its own KDC 610 because the CLIENT 604 cannot link to another NODE 608 in the same REALM 614, as will be seen later.

ほとんど全ての場合において、CLIENTサブシステムは、親NODE608に対するリンク662を確立しようとする(このことは、主NODE608にも当てはまり、その場合、リンクは、後で示すようにクロスレルムである)。SS660は、親NODE608に送るセキュリティ要求を構築し更に親NODE608から受け取ったセキュリティ応答を処理するように指示される。親NODE608に対するリンクが確立された後で、CLIENT604は、リンクメッセージを暗号化するか又は解読するためにSS660に呼を送ることができる。SS660に適切な呼が行われずにCLIENT604がセキュリティメッセージを受け取った場合、即ちこのNODE608が、メッセージのターゲットでない場合、CLIENT604は、選択した宛先NODE608にメッセージが達して消費されるまで、メッセージをTS414に送って階層を更に下がる。   In almost all cases, the CLIENT subsystem attempts to establish a link 662 to the parent NODE 608 (this also applies to the main NODE 608, in which case the link is a cross-realm as will be shown later). SS 660 is instructed to construct a security request to send to parent NODE 608 and to process the security response received from parent NODE 608. After the link to the parent NODE 608 is established, the CLIENT 604 can send a call to the SS 660 to encrypt or decrypt the link message. If an appropriate call is not made to SS 660 and CLIENT 604 receives a security message, ie if this NODE 608 is not the target of the message, CLIENT 604 will send the message to TS 414 until the message reaches the selected destination NODE 608 and is consumed. Send down the hierarchy further.

子NODE608は、メッセージをTS414に通信する。TS414が、メッセージをセキュリティメッセージであると識別した場合は、SS660への適切な呼が行われ、すなわち、呼が失敗した場合或いはターゲットが階層を更に上った場合は、TS414は、親NODE608に渡すためにセキュリティメッセージをCLIENT604に送る。   Child NODE 608 communicates the message to TS 414. If TS 414 identifies the message as a security message, an appropriate call to SS 660 is made, i.e., if the call fails or if the target goes further up the hierarchy, TS 414 passes to the parent NODE 608. Send security message to CLIENT 604 for delivery.

アクティブな(DS658に接続された)KDC610がNODE608で使用可能な場合は、このKDC610が主NODE608なので、TS414で子から受け取ったセキュリティ要求は、このNODE608によって満たされなければならず、それより高くは送られない。   If an active (connected to DS 658) KDC 610 is available at NODE 608, this KDC 610 is the primary NODE 608, so the security request received from the child at TS 414 must be satisfied by this NODE 608, and higher. Not sent.

注:最も単純な実施態様は、CLIENT604がリンク構成の管理に幾つかの状態を割り当てることである。SS660は、CLIENT604やTS414に呼を返さない。サブシステムが緻密に一体化されており、その結果、CLIENT604とTS414が、セキュリティ要求及び応答を管理するために状態を維持しなければならないと仮定する。 Note: The simplest implementation is that CLIENT 604 assigns several states to link configuration management. The SS 660 does not return a call to the CLIENT 604 or the TS 414. Assume that the subsystems are tightly integrated so that CLIENT 604 and TS 414 must maintain state to manage security requests and responses.

REALM614は、前述のように、(Windows Domainと類似の)1組の登録ユーザであり、この場合、各ユーザは、そのREALM614に登録され(一般に、ウェブサーバ620によって)、そのREALM614のDS612上に維持されたアカウント(図示せず)を有する。   A REAL 614 is a set of registered users (similar to Windows Domain), as described above, where each user is registered with that REAL 614 (generally by the web server 620) and on the DS 612 of that REAL 614. Have a maintained account (not shown).

次に図21を参照すると、DS(データサーバ)612は、特定のREALM614の全ての認証データを保持し、このデータは、作成されるREALM614の外には広がらない。主NODE666は、実質上、REALM614のセキュリティの根本であり、セキュリティ要求は、階層を上に広がることを許可されない。   Referring now to FIG. 21, a DS (data server) 612 holds all authentication data for a particular REALM 614, and this data does not spread outside the created REALM 614. The primary NODE 666 is essentially the root of REALM 614's security, and security requests are not allowed to go up the hierarchy.

動的データが階層を上下に伝わることができるようにするために、あるREALM614内の子NODE668を「より高い」REALM614内の適切な親NODE670に参加させる何らかの手段が必要であり、木トポロジーの性質は、そのようなリンク672を1つだけ必要とすることである。図20と図21は、この実施形態によって提供される解決策を示し、REALM A614の主NODE666は、「より高い」REALM B614内の親NODE670にリンクすることが許可される。このリンク672は、REALM A614の主666をREALM B614に対して認証しリンク672を作成できるようにDS B612内にアカウントが設定されるので可能である。   In order for dynamic data to be able to travel up and down the hierarchy, some means of joining a child NODE 668 in one REALM 614 to an appropriate parent NODE 670 in a “higher” REALM 614 is needed, and the nature of the tree topology Requires only one such link 672. FIGS. 20 and 21 illustrate the solution provided by this embodiment, where the primary NODE 666 of REALM A 614 is allowed to link to the parent NODE 670 in the “higher” REALM B 614. This link 672 is possible because an account is set up in DS B 612 so that the main 666 of REALM A 614 can be authenticated to REALM B 614 and a link 672 can be created.

リンク672がクロスレルムなので、ここで、呼データがREALM A614からREALM B614に伝わりREALM C614まで下りることができ、NODE X608は、NODE Y608に対してクロスレルムVoIP通話674を行うことができる。   Since link 672 is a cross realm, call data can now travel from REALM A 614 to REALM B 614 and down to REALM C 614, and NODE X 608 can make a cross realm VoIP call 674 to NODE Y 608.

次に、クロスレルムリンクがどのように達成されるかを例示する詳細なシナリオを説明する。   Next, a detailed scenario illustrating how cross realm links are achieved will be described.

主NODE:起動
データサーバ(DS)612が既に動作していると仮定する。主NODE666は、DS612に対してローカルに起動し、一般に、DS612にログインしKDC用の鍵628を生成することを可能にするコマンド引き数が供給される(副NODEは、同じ引き数で起動される)。よりレベルの高いREALM614のアカウントにログインするために、GUIによって任意の{ユーザ名,パスワード}が供給される。
Primary NODE: Startup Assume that the data server (DS) 612 is already running. The primary NODE 666 starts locally with respect to the DS 612 and is generally supplied with command arguments that allow it to log into the DS 612 and generate the KDC key 628 (the secondary NODE is started with the same arguments). ) An arbitrary {username, password} is provided by the GUI to log into a higher level REALM 614 account.

1.ブートストラップシーケンスによって、DC(データクライアント)656がローカルDS612にログインするように指示される。
2.ブートストラップシーケンスは、手順procedureSecurityService::Initialise()を呼び出す。KDC610は、その鍵を生成し、DC656とハンドシェイクを確立する。
3.ユーザは、CLIENT604が(別のREALM614内の)親NODE670にリンクできるように、{ユーザ名,パスワード}を入力する。
4.CLIENT604は、手順SecurityService::CreateSecurityContext()によって親ノード656に対する新しい接続のハンドルを獲得する。
5.CLIENT604は、AS_REQメッセージ634を構築するために手順SecurityService::BuildAsReq()を呼び出し、次にAS_REQメッセージ634を親NODE670に送る。
6.CLIENT604は、AS_REPメッセージ636を受け取り、それを手順SecurityService::ProcessAsRep()に渡す。
7.CLIENT604は、接続したいNODEのIDで手順SecurityService::BuildTgsReq()を呼び出し、従ってSS(セキュリティサービス)660は、適切なTGS_REQメッセージ638を構築することができる。TGS_REQメッセージ638は、親NODE670に送られる。
8.CLIENT604は、TGS_REPメッセージ640を受け取り、それを手順SecurityService::ProcessTgsRep()に渡す。
9.この時点で、CLIENT604は、既存のリンク接続状態を促進するか、別の親NODE670への再接続を促進する(しかし、いずれの場合も、ターゲットNODEは、手順BuildTgsReq()呼で指定されたNODEでなければならない)。CLIENT604は、手順SecurityService::BuildApReq()を呼び出してAP_REQメッセージ642を構成し、次にCLIENT604は、それを親NODE670に送る。
10.CLIENT604は、AP_REPメッセージ644を受け取り、それを手順SecurityService::ProcessApRes()に渡す。この呼が首尾良く完了した際、SS660には、親NODE670へのリンク672上の暗号化/解読操作を支援するために必要なセキュリティコンテキストがあるはずである。
1. The bootstrap sequence instructs a DC (data client) 656 to log into the local DS 612.
2. The bootstrap sequence calls the procedure procedureSecurityService :: Initialise (). KDC 610 generates the key and establishes a handshake with DC 656.
3. The user enters {user name, password} so that CLIENT 604 can link to the parent NODE 670 (in another REALM 614).
4). The CLIENT 604 obtains a handle for a new connection to the parent node 656 by the procedure SecurityService :: CreateSecurityContext ().
5. CLIENT 604 calls the procedure SecurityService :: BuildAsReq () to build the AS_REQ message 634 and then sends the AS_REQ message 634 to the parent NODE 670.
6). The CLIENT 604 receives the AS_REP message 636 and passes it to the procedure SecurityService :: ProcessAsRep ().
7). The CLIENT 604 calls the procedure SecurityService :: BuildTgsReq () with the ID of the NODE that it wishes to connect to, so the SS (Security Service) 660 can build an appropriate TGS_REQ message 638. A TGS_REQ message 638 is sent to the parent NODE 670.
8). The CLIENT 604 receives the TGS_REP message 640 and passes it to the procedure SecurityService :: ProcessTgsRep ().
9. At this point, CLIENT 604 promotes the existing link connection state or facilitates reconnection to another parent NODE 670 (but in either case, the target NODE is the NODE specified in the procedure BuildTgsReq () call). Must). CLIENT 604 calls the procedure SecurityService :: BuildApReq () to construct the AP_REQ message 642, and then CLIENT 604 sends it to the parent NODE 670.
10. The CLIENT 604 receives the AP_REP message 644 and passes it to the procedure SecurityService :: ProcessApRes (). When this call is successfully completed, SS660 should have the security context needed to support the encryption / decryption operation on link 672 to parent NODE 670.

非主NODE:起動
1.NODE608にはDSログイン引き数が供給されず、従って、ブートストラップシーケンスは、ローカルDS612にログインするようにDC656に指示しない。
2.ブートストラップシーケンスは、手順SecurityService::Initialise()を呼び出す。KDC610には鍵を生成するためのパラメータが供給されず、DC656は、KDC610がDS612に接続されないことを示す。
3.ユーザは{ユーザ名,パスワード}を入力して、CLIENT604が同じREALM614内の親NODEにリンクできるようにする(リンクは主NODE666に対するものでそうでなくてもよい)。
4.CLIENT604は、手順SecurityService::CreateSecurityContext()によって親ノードに対する新しい接続のハンドルを取得する。
5.CLIENT604は、手順SecurityService::BuildAsReq()を呼び出してAS_REQメッセージ634と構築し、AS_REQメッセージ634を親NODEに送る。
6.CLIENT604は、AS_REPメッセージ636を受け取り、それを手順SecurityService::ProcessAsRep()に渡す。
7.CLIENT604は、接続したいNODE608のIDで手順SecurityService::BuildTgsReq()を呼び出し、従ってSS660は、適切なTGS_REQメッセージ638を構築することができる。TGS_REQメッセージ638が、親NODEに送られる。
8.CLIENT604は、TGS_REPメッセージ640を受け取り、それを手順SecurityService::ProcessTgsRep()に渡す。
9.この時点で、CLIENT604は、既存リンク接続状態或いは別の親NODEへの再接続を促進する(しかし、いずれの場合も、ターゲットNODEは、手順BuildTgsReq()呼で指定されたNODE608でなければならない)。CLIENTは、手順SecurityService::BuildApReq()を呼び出して、CLIENT604が親NODEに送るAP_REQメッセージ642を構築する。
10.CLIENT604は、AP_REPメッセージ644を受け取り、それを手順SecurityService::ProcessApRes()に渡す。この呼び出しが首尾良く完了した時点で、SS660には、親NODEへのリンク上の暗号化/解読操作を支援するのに必要なセキュリティコンテキストがあるはずである。
Non-main NODE: Activation NODE 608 is not supplied with a DS login argument, so the bootstrap sequence does not instruct DC 656 to log in to local DS 612.
2. The bootstrap sequence calls the procedure SecurityService :: Initialise (). The KDC 610 is not supplied with parameters for generating a key, and the DC 656 indicates that the KDC 610 is not connected to the DS 612.
3. The user enters {username, password} to allow CLIENT 604 to link to the parent NODE in the same REALM 614 (the link may or may not be for the primary NODE 666).
4). CLIENT 604 obtains a handle for a new connection to the parent node by the procedure SecurityService :: CreateSecurityContext ().
5. The CLIENT 604 calls the procedure SecurityService :: BuildAsReq () to build the AS_REQ message 634 and sends the AS_REQ message 634 to the parent NODE.
6). The CLIENT 604 receives the AS_REP message 636 and passes it to the procedure SecurityService :: ProcessAsRep ().
7). The CLIENT 604 calls the procedure SecurityService :: BuildTgsReq () with the ID of the NODE 608 that it wishes to connect to, so the SS 660 can build the appropriate TGS_REQ message 638. A TGS_REQ message 638 is sent to the parent NODE.
8). The CLIENT 604 receives the TGS_REP message 640 and passes it to the procedure SecurityService :: ProcessTgsRep ().
9. At this point, CLIENT 604 facilitates reconnecting to an existing link connection state or another parent NODE (but in any case, the target NODE must be the NODE 608 specified in the procedure BuildTgsReq () call). . CLIENT calls the procedure SecurityService :: BuildApReq () to build an AP_REQ message 642 that CLIENT 604 sends to the parent NODE.
10. The CLIENT 604 receives the AP_REP message 644 and passes it to the procedure SecurityService :: ProcessApRes (). Upon successful completion of this call, SS660 should have the security context necessary to support encryption / decryption operations on the link to the parent NODE.

主NODE:子NODEからAS_REQ又はTGS_REQ要求を受け取る
主NODE666が初期化され、セキュリティ要求を受け入れることができるKDC610を有すると仮定する。
Primary NODE: Assume that an AS_REQ or TGS_REQ request is received from a child NODE. Primary NODE 666 is initialized and has a KDC 610 that can accept security requests.

1.TS414は、子NODE668からAS_REQメッセージ634を受け取る。接続/リンクがセキュリティコンテキストを有する場合は、メッセージを解読するために手順SecurityService::DecryptLinkData()が呼び出される。
2.TS414は、AS_REQメッセージ634を手順SecurityService::ProcessAsReq()に渡す。要求を満たすために、KDC610は、AS_REQメッセージ634からユーザ名を抽出し、そのユーザ名を使って(DC656により)DS612内に保持された(ハッシュされた)パスワードを要求する。
3.これが成功した場合、手順SecurityService::ProcessAsReq()はAS_REPメッセージ636を返す.(注:SS660が要求を処理しているとき、セキュリティコンテキストは不要である。この点は、SS660が応答を処理しているときと異なる)。
4.TS414は、AS_REPメッセージ636を、AS_REQメッセージ634を送った子NODE668に送る。
1. TS 414 receives AS_REQ message 634 from child NODE 668. If the connection / link has a security context, the procedure SecurityService :: DecryptLinkData () is called to decrypt the message.
2. The TS 414 passes the AS_REQ message 634 to the procedure SecurityService :: ProcessAsReq (). To satisfy the request, the KDC 610 extracts the username from the AS_REQ message 634 and requests the password (hashed) held in the DS 612 (by DC 656) using the username.
3. If this succeeds, the procedure SecurityService :: ProcessAsReq () returns an AS_REP message 636. (Note: When SS660 is processing a request, no security context is required. This is different from when SS660 is processing a response).
4). TS 414 sends an AS_REP message 636 to the child NODE 668 that sent the AS_REQ message 634.

主NODE666がTGS_REQメッセージ638を受け取った場合は、(リンクされるNODE608の(ハッシュされた)パスワードをDS612が要求すること以外)同じ手順に従う。   If the primary NODE 666 receives a TGS_REQ message 638, it follows the same procedure (except that the DS 612 requests a (hashed) password for the linked NODE 608).

非主NODE:子NODEからAS_REQ又はTGS_REQを受け取る
1.TS414は、子NODE668からAS_REQメッセージ634を受け取る。接続/リンクが次にセキュリティコンテキストを有する場合は、メッセージ634を解読するために手順SecurityService::DecryptLinkData()が呼び出される。
2.TS414は、AS_REQメッセージ634を手順SecurityService::ProcessAsRe()に渡し、この手順は、アクティブなKDC610が利用できないことを示すための適切なエラーコードを返す。
3.TS414は、親NODE670に渡すCLIENT604にAS_REPメッセージ636を送る。
Non-primary NODE: Receive AS_REQ or TGS_REQ from child NODE TS 414 receives AS_REQ message 634 from child NODE 668. If the connection / link then has a security context, the procedure SecurityService :: DecryptLinkData () is called to decrypt the message 634.
2. TS 414 passes an AS_REQ message 634 to the procedure SecurityService :: ProcessAsRe (), which returns an appropriate error code to indicate that the active KDC 610 is not available.
3. TS 414 sends an AS_REP message 636 to CLIENT 604 to be passed to parent NODE 670.

主又は非主NODE:AP_REQを受け取る
AP_REQメッセージ642を受け取るNODE608はどれも、首尾良くそのメッセージをローカルに処理するか、或いはエラーメッセージを返さなければならず、そのメッセージを渡すことはできない。
Primary or non-primary NODE: Any NODE 608 that receives an AP_REQ message 642 that receives an AP_REQ must either successfully process the message locally or return an error message and cannot pass the message.

1.TS414は、子NODE668からAP_REQメッセージ642を受け取る。既存のセキュリティコンテキスト、従ってリンクは、この接続に利用できないはずであり、従ってメッセージを解読する必要はない。
2.TS414は、AP_REQメッセージ642を手順SecurityService:: ProcessApReq()に渡し、この手順は、そのローカルNODEパスワード(KDC610ではなく)を使用してメッセージ642を処理し、返すための適切なAP_REPメッセージ644を生成する。手順SecurityService::ProcessAsReq()が成功した場合は、完全なセキュリティコンテキストが確立され、子NODE668に対する接続は、リンク促進状態である。
3.TS414は、子NODE668にAP_REPメッセージ644を返す。
1. TS 414 receives AP_REQ message 642 from child NODE 668. The existing security context, and thus the link, should not be available for this connection, so there is no need to decrypt the message.
2. TS 414 passes the AP_REQ message 642 to the procedure SecurityService :: ProcessApReq (), which uses its local NODE password (not KDC 610) to process and generate an appropriate AP_REP message 644 to return. To do. If the procedure SecurityService :: ProcessAsReq () is successful, a complete security context is established and the connection to the child NODE 668 is in the link promotion state.
3. TS 414 returns an AP_REP message 644 to child NODE 668.

主又は非主NODE:親NODEからAS_REP又はTGS_REPを受け取る
主NODE666内のCLIENT604が、AS_REPメッセージ636又はTGS_REPメッセージ640を受け取る場合、主NODE666は、オリジナルAS_REQメッセージ634又はTGS_REQメッセージ638の発信元でなければならず、これについては、起動するケースを既に前に検討した(既存のセキュリティコンテキストがあってはならない)。
Primary or non-primary NODE: Receive AS_REP or TGS_REP from parent NODE If CLIENT 604 in primary NODE 666 receives AS_REP message 636 or TGS_REP message 640, primary NODE 666 is not the origin of original AS_REQ message 634 or TGS_REQ message 638 Rather, we have already considered the case of launching before (there should be no existing security context).

AS_REPメッセージ636又はTGS_REPメッセージ640を受け取るNODE608が主NODE666でない場合は、要求は、適切な子NODE668に下げるためにTS414に送られる。この場合、親NODE670へのリンク672のセキュリティコンテキストがなければならず、受信したメッセージを解読するために手順SecurityService::DecryptLinkData()が呼び出される。子NODE668まで下がるリンク672には、セキュリティコンテキストがあってもなくてもよい(このNODE608にリンクするために、子NODE668が、AS_REQ634とTGS_REQメッセージ638を上の高いレベルのKDC610に送ってもよい)。   If the NODE 608 that receives the AS_REP message 636 or the TGS_REP message 640 is not the primary NODE 666, the request is sent to the TS 414 to drop to the appropriate child NODE 668. In this case, there must be a security context for link 672 to parent NODE 670 and the procedure SecurityService :: DecryptLinkData () is called to decrypt the received message. The link 672 down to the child NODE 668 may or may not have a security context (the child NODE 668 may send an AS_REQ 634 and a TGS_REQ message 638 to the higher level KDC 610 to link to this NODE 608). .

主又は非主NODE:親NODEからAP_REPを受け取る
これについては、起動のケースに関しては既に説明した。
Primary or non-primary NODE: Receive AP_REP from parent NODE This has already been described for the activation case.

以上の説明が、SecurityService::DecryptLinkData()等の幾つかの手順を参照しているが、これらの手順の詳細は、これらの手順の機能が所定の状況および前述の機能を実施するための比較的重要なことではなく、従ってこの詳細は、熟練した本明細書の対象者の技巧と知識の一部にであることを理解されたい。   The above description refers to some procedures such as SecurityService :: DecryptLinkData (), but the details of these procedures are the comparison of the functions of these procedures in a given situation and to implement the above functions. It is to be understood that this detail is not critical and therefore this detail is part of the skill and knowledge of the skilled subject matter herein.

以上の実施形態は、登録ユーザの最新状態をオンラインで送信するプッシュメカニズムを使用して説明した。しかしながら、代替の実施形態において、これは、電子メールサーバが、電子メールを送る人を識別し、次にDSからその人の状態情報を要求するプルメカニズムによるものでもよい。プルメカニズムの利点は、こデータサーバの伝送オーバヘッドが最小になることである。しかしながら、プッシュメカニズムの利点は、電子メールサーバに使用し易いことである。   The above embodiments have been described using a push mechanism that transmits the latest status of registered users online. However, in an alternative embodiment, this may be by a pull mechanism where the email server identifies the person sending the email and then requests that person's status information from the DS. The advantage of the pull mechanism is that the transmission overhead of this data server is minimized. However, the advantage of the push mechanism is that it is easy to use for email servers.

本発明が、前述の特定の実施形態に限定されないことを理解されたい。例えば、送信される電子メールメッセージを、別々に暗号化された複数の部分及び各部分に分割することができる。次に、各部分をそれぞれの伝送サーバ機構に別々に送ることができる。各部分は、宛先に別々に送られ、指定受信者が解読し再構築することができる。これの利点は、1通の電子メールメッセージを傍受し解読を成功してもメッセージが開示されないことである。これは、通信のセキュリティを改善する極めて頑強な方法である。一般に、電子メールのテキストをサンプリングして、送られたメッセージの一部分を得ることができ、例えば5つのTSMを使用し、電子メールテキストの5番目ごとの文字をサンプリングして5つの電子メールテキストの内の1つを作成することができる。他の電子メールメッセージも、5番目ごとの文字でサンプリングされるが、その電子メールメッセージはそれぞれ、最初の電子メールメッセージと異なるオフセットを有することになる。   It should be understood that the present invention is not limited to the specific embodiments described above. For example, an email message to be sent can be divided into a plurality of separately encrypted parts and each part. Each part can then be sent separately to the respective transmission server mechanism. Each part is sent separately to the destination and can be decrypted and reconstructed by a designated recipient. The advantage of this is that even if a single email message is intercepted and successfully decrypted, the message is not disclosed. This is a very robust way to improve communication security. In general, e-mail text can be sampled to obtain a portion of the sent message, eg, using 5 TSMs, every 5th character of the e-mail text is sampled and One of them can be created. Other email messages are also sampled at every fifth character, but each email message will have a different offset than the first email message.

本発明は、また、有線ネットワークを使用せずに、無線通信ネットワーク(WIFIを使用するネットワーク等)に適用可能であることを理解されたい。また、このピアツーピア通信システムにおける発信元及び宛先の通信装置として、コンピュータではなく、PDA(携帯情報端末)と移動電話を使用することもできる。   It should be understood that the present invention is also applicable to wireless communication networks (such as networks using WIFI) without using wired networks. In addition, as a source and destination communication device in this peer-to-peer communication system, a PDA (personal digital assistant) and a mobile phone can be used instead of a computer.

最後に、熟練した本明細書の対象者は、PKIではない他の暗号化技術を使用することができることを理解するであろう。   Finally, the skilled subject will appreciate that other encryption techniques that are not PKI can be used.

本発明の例示的な実施形態によるシステムの概略ブロック図である。1 is a schematic block diagram of a system according to an exemplary embodiment of the present invention. 2人のユーザBobとAliceの間のピアツーピア通信を可能にするために図1のシステムをどのように使用できるかの例を示す概略図である。FIG. 2 is a schematic diagram illustrating an example of how the system of FIG. 1 can be used to enable peer-to-peer communication between two users Bob and Alice. 図1の個人電子メールサーバの全体的な操作方法を示すブロック図である。It is a block diagram which shows the whole operation method of the personal e-mail server of FIG. 図3の方法のConnect from Clientサブルーチンのブロック図である。FIG. 4 is a block diagram of a Connect from Client subroutine of the method of FIG. 図3の方法のMessage Receiveサブルーチンのブロック図である。FIG. 4 is a block diagram of a Message Receive subroutine of the method of FIG. 図3の方法のMessage Waiting To Sendサブルーチンのブロック図である。FIG. 4 is a block diagram of a Message Waiting To Send subroutine of the method of FIG. 指定受信者の固有アドレスを決定するための伝送サーバ機構とメールサーバ間の対話を示す流れ図である。It is a flowchart which shows the interaction between the transmission server mechanism for determining the specific address of a designated recipient, and a mail server. 様々なエンティティによるシステムの様々な使用法を示す概略図である。FIG. 2 is a schematic diagram illustrating various uses of a system with various entities. 指定受信者の固有IPアドレスを決定する際にTSMによって実行される調査を示す概略ブロック図である。FIG. 3 is a schematic block diagram illustrating a survey performed by TSM in determining a specific recipient's unique IP address. 指定受信者の固有IPアドレスを決定する際にTSMによって実行される調査を示す概略ブロック図である。FIG. 3 is a schematic block diagram illustrating a survey performed by TSM in determining a specific recipient's unique IP address. 指定受信者の固有IPアドレスを決定する際にTSMによって実行される調査を示す概略ブロック図である。FIG. 3 is a schematic block diagram illustrating a survey performed by TSM in determining a specific recipient's unique IP address. 指定受信者の固有IPアドレスを決定する際にTSMによって実行される調査を示す概略ブロック図である。FIG. 3 is a schematic block diagram illustrating a survey performed by TSM in determining a specific recipient's unique IP address. 指定受信者の固有IPアドレスを決定する際にTSMによって実行される調査を示す概略ブロック図である。FIG. 3 is a schematic block diagram illustrating a survey performed by TSM in determining a specific recipient's unique IP address. 指定受信者の固有IPアドレスを決定する際にTSMによって実行される調査を示す概略ブロック図である。FIG. 3 is a schematic block diagram illustrating a survey performed by TSM in determining a specific recipient's unique IP address. 図9aから図9fで行った調査を対称NATのケースと非対称NATのケースにどのように適用できるかを示す図である。9a and 9f show how the investigations performed in FIGS. 9a to 9f can be applied to a symmetric NAT case and an asymmetric NAT case. 図9aから図9fで行った調査を対称NATのケースと非対称NATのケースにどのように適用できるかを示す図である。9a and 9f show how the investigations performed in FIGS. 9a to 9f can be applied to a symmetric NAT case and an asymmetric NAT case. 図9aから図9fで行った調査を対称NATのケースと非対称NATのケースにどのように適用できるかを示す図である。9a and 9f show how the investigations performed in FIGS. 9a to 9f can be applied to a symmetric NAT case and an asymmetric NAT case. 本発明の第2の実施形態の全体的な機能木構造を示す概略ブロック図である。It is a schematic block diagram which shows the whole functional tree structure of the 2nd Embodiment of this invention. 図10の木構造の管理レベルの階層的性質を示す概略ブロック図である。It is a schematic block diagram which shows the hierarchical property of the management level of the tree structure of FIG. 図10の木構造の伝送サーバ層の階層的性質を示す概略ブロック図である。It is a schematic block diagram which shows the hierarchical property of the transmission server layer of the tree structure of FIG. 図12の伝送サーバ層の一般的伝送サーバの機能要素を示す概略ブロック図である。It is a schematic block diagram which shows the functional element of the general transmission server of the transmission server layer of FIG. 図10の管理層に対する新しい接続のロードバランシングのプロセスを示す流れ図である。11 is a flow diagram illustrating a process of load balancing new connections to the management layer of FIG. 図10の第2の実施形態のネットワークを使用してピアツーピア接続を確立する第1段階を示す流れ図である。12 is a flow diagram illustrating a first stage of establishing a peer-to-peer connection using the network of the second embodiment of FIG. 図10の第2の実施形態のネットワークを使用してピアツーピア接続を確立する第1段階を示す流れ図である。12 is a flow diagram illustrating a first stage of establishing a peer-to-peer connection using the network of the second embodiment of FIG. 図10の第2の実施形態のネットワークを使用してピアツーピア接続を確立する第1段階を示す流れ図である。12 is a flow diagram illustrating a first stage of establishing a peer-to-peer connection using the network of the second embodiment of FIG. 図10の第2の実施形態のネットワークを使用してピアツーピア接続を確立する第2段階を示す流れ図。FIG. 11 is a flow diagram illustrating a second stage of establishing a peer-to-peer connection using the network of the second embodiment of FIG. 本発明の第3の実施形態においてケルベロス技術の原理をどのように適用するかを示す概略ブロック図である。It is a schematic block diagram which shows how the principle of the Kerberos technique is applied in the 3rd Embodiment of this invention. ネットワークに接続しようとする際の第3の実施形態の主な段階を示す構成図である。It is a block diagram which shows the main stage of 3rd Embodiment at the time of trying to connect to a network. ネットワークによるセキュリティの視点から中央データサーバに登録しその後でピアツーピア通信をどのように支援するかの詳細を示す概略ブロック図である。FIG. 2 is a schematic block diagram showing details of how to register with a central data server from a network security perspective and then support peer-to-peer communication. 図19の階層ネットワークの親ノードの概略ブロック図である。FIG. 20 is a schematic block diagram of a parent node of the hierarchical network of FIG. 19. 図19の階層ネットワークの子ノードの概略ブロック図である。FIG. 20 is a schematic block diagram of child nodes of the hierarchical network of FIG. 19. ユーザコンピュータXとYの間でピアツーピア通話を実現する際にクロスレルムリンクがどのように達成されるかを示す概略ブロック図である。FIG. 3 is a schematic block diagram illustrating how a cross realm link is achieved in implementing a peer-to-peer call between user computers X and Y.

Claims (116)

第1のリモート側コンピュータと第2のリモート側コンピュータの間でデータ通信媒体を介して電子メール通信等のセキュアなピアツーピアデータ通信を実行する方法であって、
各リモート側コンピュータのアドレス詳細とデータ通信媒体に対する接続の現在状態を受け取る段階と、
第1のリモート側コンピュータにおいてデータ通信を生成する段階と、
第2のリモート側コンピュータの現在の接続状態を確認する段階と、
第2のリモート側コンピュータの接続状態からデータ通信媒体に現在接続されることが分かったときだけ、データ通信を途中で記憶することなく第1のリモート側コンピュータから第2のリモート側コンピュータにデータ通信を直接送信する段階とを含む方法。
A method of performing secure peer-to-peer data communication, such as email communication, via a data communication medium between a first remote computer and a second remote computer,
Receiving the address details of each remote computer and the current state of the connection to the data communication medium;
Generating a data communication at a first remote computer;
Checking the current connection status of the second remote computer;
Data communication from the first remote computer to the second remote computer without storing the data communication only when it is found from the connection state of the second remote computer that it is currently connected to the data communication medium. Sending directly.
受け取る段階が、リモート側コンピュータの内の何れかの接続状態が変化するたびに繰り返される、請求項1に記載の方法。   The method of claim 1, wherein the receiving step is repeated each time the connection state of any of the remote computers changes. 現在状態を記憶するデータサーバから第2のリモート側コンピュータの接続状態を要求する段階を更に含み、
受け取る段階が、要求する段階に応答して実行される、請求項1に記載の方法。
Requesting the connection status of the second remote computer from the data server storing the current status;
The method of claim 1, wherein the receiving step is performed in response to the requesting step.
データサーバに、第1のリモート側コンピュータのアドレス詳細とデータ通信媒体に対する接続の現在状態を提供する段階を更に含む、請求項1から3のいずれか1項に記載の方法。   4. A method according to any one of claims 1 to 3, further comprising the step of providing the data server with address details of the first remote computer and the current state of the connection to the data communication medium. 第2のリモート側コンピュータに関する情報によりデータ通信を暗号化し、それにより受け取ったときに第2のリモート側コンピュータだけが通信を解読できるようにする段階を更に含む、請求項1から4のいずれか1項に記載の方法。   5. The method of claim 1, further comprising encrypting the data communication with information about the second remote computer so that only the second remote computer can decrypt the communication when received. The method according to item. 受け取る段階が、暗号化する段階を実行するために第2のリモート側コンピュータに関する情報を受け取る段階を含む、請求項5に記載の方法。   The method of claim 5, wherein receiving comprises receiving information about the second remote computer to perform the encrypting step. 第1のリモート側コンピュータが、ローカルに相互接続された複数のセキュアなコンピュータを第1のリモート側位置に含み、生成する段階は、受け取る段階、確認する段階及び送信する段階とは別のコンピュータ上で実行される、請求項1から6のいずれか1項に記載の方法。   The first remote computer includes a plurality of locally interconnected secure computers at the first remote location, and the generating step is on a computer separate from the receiving step, the verifying step and the transmitting step. 7. The method according to any one of claims 1 to 6, wherein the method is performed in リモート側コンピュータが互いに通信する能力に関する1組の許可を記憶する段階と、
第1のリモート側コンピュータの第2のリモート側コンピュータと通信する許可を確認する段階と、
確認する段階によって、第1のリモート側コンピュータが第2のリモート側コンピュータと通信する許可を有することが分かった場合だけ、送信する段階が行われるのを許可する、請求項1から7のいずれか1項に記載の方法。
Storing a set of permissions regarding the ability of remote computers to communicate with each other;
Confirming permission of the first remote computer to communicate with the second remote computer;
8. The transmitting step is allowed only if the step of confirming that the first remote computer is found to have permission to communicate with the second remote computer. 2. The method according to item 1.
データ通信において第2のリモート側コンピュータであるように指定された指定受信者の識別を検証する段階を更に含む、請求項1から8のいずれか1項に記載の方法。   9. The method of any one of claims 1 to 8, further comprising verifying the identity of a designated recipient designated to be a second remote computer in data communication. 第2のリモート側コンピュータの接続状態から、第2のリモート側コンピュータが現在、データ通信媒体を介してメッセージを受け取ることができないことが分かった場合に、確認する段階の後でデータ通信をローカルに一時的に記憶して所定の時間期間待つ段階と、
その後で、確認する段階と送信する段階を繰り返す段階を更に含む、請求項1から9のいずれか1項に記載の方法。
If the connection status of the second remote computer indicates that the second remote computer is currently unable to receive messages via the data communication medium, the data communication is made local after the confirmation step. Temporarily storing and waiting for a predetermined period of time;
The method according to any one of claims 1 to 9, further comprising the step of repeating the step of confirming and the step of transmitting thereafter.
第1のリモート側コンピュータから第2のリモート側コンピュータへのデータ通信の送信を評価し、送信が失敗した場合に、
送信失敗の原因を決定し、決定された原因によって、
第1のリモート側コンピュータにおいて送信失敗通知を生成する段階と、
所定の時間期間待まって送信する段階を繰り返す段階のいずれかの段階を実行する段階を更に含む、請求項1から10のいずれか1項に記載の方法。
If the transmission of the data communication from the first remote computer to the second remote computer is evaluated and the transmission fails,
Determine the cause of the transmission failure and, depending on the determined cause,
Generating a transmission failure notification at the first remote computer;
The method according to any one of claims 1 to 10, further comprising the step of performing any of the steps of repeating the step of waiting and transmitting for a predetermined time period.
データ通信を複数の個別のデータメッセージに分割する段階を更に含み、
送信する段階が、更に、データメッセージのそれぞれを別々に第2のリモート側コンピュータに送り、それによりデータ通信手順のセキュリティを改善する段階を含む、請求項1から11のいずれか1項に記載の方法。
Further comprising the step of dividing the data communication into a plurality of individual data messages;
12. The method according to any one of claims 1 to 11, wherein the step of sending further comprises sending each of the data messages separately to a second remote computer, thereby improving the security of the data communication procedure. Method.
データ通信が、ボイスオーバーIP通信を含む、請求項1から12のいずれか1項に記載の方法。   13. A method according to any one of claims 1 to 12, wherein the data communication comprises voice over IP communication. 通信サーバであって、この通信サーバを含む第1のリモート側コンピュータと第2のリモート側コンピュータとの間でデータ通信ネットワークを介して、電子メール通信等のセキュアなピアツーピアデータ通信を実行するように構成され、
各リモート側コンピュータのデータ通信ネットワークに対する接続のアドレス詳細及び現在状態を受け取る受信手段と、
第1のリモート側コンピュータにおいてデータ通信を生成するメッセージ生成モジュールと、
第2のリモート側コンピュータの現在の接続状態を確認する確認モジュールと、
第2のリモート側コンピュータの接続状態から、第2のリモート側コンピュータがデータ通信ネットワークに現在接続されていることが分かったときだけ、データ通信を途中で記憶することなく第1のリモート側コンピュータから第2のリモート側コンピュータにデータ通信を直接送るように構成された伝送モジュールとを含む通信サーバ。
A communication server, which performs secure peer-to-peer data communication such as e-mail communication between a first remote computer including the communication server and a second remote computer via a data communication network. Configured,
Receiving means for receiving address details and current status of the connection of each remote computer to the data communication network;
A message generation module for generating data communication in a first remote computer;
A confirmation module for confirming the current connection status of the second remote computer;
Only when it is determined from the connection state of the second remote computer that the second remote computer is currently connected to the data communication network, the first remote computer does not store the data communication halfway. A communication module configured to send data communication directly to a second remote computer.
通信システムであって、
請求項14に記載の複数の通信サーバと、
データ通信ネットワークによって複数の通信サーバに接続可能なデータサーバとを含み、
データサーバが、通信ネットワークに対する各通信サーバの接続の現在状態を、各通信サーバの現在のネットワークアドレスと共に受け取り、収集し、記憶し、且つこの情報の少なくとも一部分を複数の通信サーバに転送して、それらの通信サーバが、複数の通信サーバ間でピアツーピア通信を行うことを可能にするように構成された通信システム。
A communication system,
A plurality of communication servers according to claim 14;
A data server connectable to a plurality of communication servers via a data communication network,
A data server receives, collects and stores the current state of each communication server's connection to the communication network along with each communication server's current network address and forwards at least a portion of this information to a plurality of communication servers; A communication system configured to allow such communication servers to perform peer-to-peer communication between a plurality of communication servers.
中央データサーバが、ユーザダイアグラムプロトコル(UDP)を使用して複数の通信サーバの現行アドレスを調査するように構成された、請求項15に記載の通信システム。   The communication system of claim 15, wherein the central data server is configured to look up current addresses of a plurality of communication servers using a user diagram protocol (UDP). 第1と第2のユーザコンピュータ間でデータ通信ネットワークを介して電子メール通信等のピアツーピアデータ通信を確立するのを支援するように構成された通信サーバであって、サーバが、複数の通信サーバからなるサーバネットワーク内の所与の階層レベルに提供され、
通信サーバがサーバネットワーク内の他の階層レベルにある他の通信サーバに動作可能に接続することを可能にする接続手段と、
複数のローカルユーザコンピュータを通信サーバに登録する登録手段と、
それぞれの登録したローカルユーザコンピュータの登録詳細を記憶するデータストアであって、登録詳細が、各ローカルユーザコンピュータのアドレス情報とデータ通信ネットワークに対する接続の現在状態を含むデータストアとを有し、
接続手段が、記憶した登録詳細をサーバネットワークの次に高い階層レベルにおける隣りの通信サーバに転送し、且つ階層ネットワーク内の低いレベルにある接続された通信サーバの任意のローカルユーザコンピュータの登録詳細を受け取り記憶するように構成された通信サーバ。
A communication server configured to assist in establishing peer-to-peer data communication, such as email communication, between a first and second user computers over a data communication network, the server comprising a plurality of communication servers Provided to a given hierarchy level in the server network
Connection means for enabling the communication server to operatively connect to other communication servers at other hierarchical levels in the server network;
Registration means for registering a plurality of local user computers in a communication server;
A data store for storing registration details of each registered local user computer, wherein the registration details include address information of each local user computer and a data store including a current state of connection to the data communication network;
The connecting means transfers the stored registration details to the adjacent communication server at the next higher hierarchical level of the server network, and the registration details of any local user computer of the connected communication server at the lower level in the hierarchical network. A communication server configured to receive and store.
記憶された登録詳細が、通信サーバのサーバネットワーク識別、少なくとも1つの登録されたローカルユーザコンピュータのサーバネットワーク識別、及びローカルユーザコンピュータの通信サーバとの接続の現在状態を含む、請求項17に記載の通信サーバ。   18. The stored registration details include a server network identification of a communication server, a server network identification of at least one registered local user computer, and a current state of connection of the local user computer with the communication server. Communication server. 記憶された登録詳細が、階層における低いレベルからの通信サーバのサーバネットワーク識別と、低いレベルの通信サーバの登録ローカルユーザコンピュータのサーバネットワーク識別と含む、請求項17又は18に記載の通信サーバ。   19. A communication server according to claim 17 or 18, wherein the stored registration details include a server network identification of the communication server from a lower level in the hierarchy and a server network identification of a registered local user computer of the lower level communication server. 記憶された登録詳細が、ローカルに登録された各ユーザコンピュータのグローバネットワークアドレスを含む、請求項18又は19に記載の通信サーバ。   20. A communication server according to claim 18 or 19, wherein the stored registration details include a global network address of each user computer registered locally. 記憶された登録詳細が、ローカルに登録された各ユーザコンピュータの公開暗号鍵を含む、請求項17から20のいずれか1項に記載の通信サーバ。   The communication server according to any one of claims 17 to 20, wherein the stored registration details include a public encryption key of each user computer registered locally. 接続手段が、第2のユーザコンピュータに対する接続を確立する要求を受け取ったときに、第2のユーザコンピュータのローカル登録に関してデータストアを確認し、第2のユーザコンピュータの識別がローカルデータストアに記憶されている場合に要求を受け入れるように構成された、請求項17から21のいずれか1項に記載の通信サーバ。   When the connection means receives a request to establish a connection to the second user computer, it checks the data store for the local registration of the second user computer and the identity of the second user computer is stored in the local data store. A communication server according to any one of claims 17 to 21, configured to accept a request when 第2のユーザコンピュータがローカルに登録されていることが分からない場合に、登録確認手段が、隣りの通信サーバに要求を転送するように接続手段に指示するように構成された、請求項22に記載の通信サーバ。   The registration confirmation means is configured to instruct the connection means to forward the request to an adjacent communication server when it is not known that the second user computer is registered locally. The communication server described. 接続手段が、更に、登録したユーザコンピュータの状態に関してデータストアを確認するするように構成された状態確認手段を含み、接続手段が、第2のユーザコンピュータが登録され、第2のユーザコンピュータの状態から第2のユーザコンピュータに接続することができることが分かる場合に、第2のユーザコンピュータとの通信を確立しようとするように構成された、請求項22又は23に記載の通信サーバ。   The connection means further includes a status check means configured to check the data store with respect to the status of the registered user computer, wherein the connection means registers the second user computer and the status of the second user computer 24. The communication server according to claim 22 or 23, configured to attempt to establish communication with a second user computer when it can be determined that a connection to the second user computer can be established. 接続手段が、第2のユーザコンピュータに接続する要求の受け入れに応答して第2のユーザコンピュータの状態を更新するように構成された、請求項22から24のいずれか1項に記載の通信サーバ。   The communication server according to any one of claims 22 to 24, wherein the connection means is configured to update the state of the second user computer in response to accepting the request to connect to the second user computer. . 接続手段が、第2のユーザコンピュータに接続する要求の受け入れに応答して第1と第2のユーザコンピュータのデータ接続状態を設定するように構成された、請求項22から25のいずれか1項に記載の通信サーバ。   26. Any one of claims 22 to 25, wherein the connection means is configured to set a data connection state of the first and second user computers in response to accepting a request to connect to the second user computer. The communication server described in 1. 第2のユーザコンピュータに対する接続の要求に対する応答を構成するように構成された応答手段を更に含み、
応答手段が、第2のユーザコンピュータの現在のネットワークアドレスを第1のユーザコンピュータに送り、第1のユーザコンピュータの現在のネットワークアドレスを第2のユーザコンピュータに送るように構成された、請求項17から26のいずれか1項に記載の通信サーバ。
Response means configured to configure a response to the request for connection to the second user computer;
18. The response means is configured to send the current network address of the second user computer to the first user computer and send the current network address of the first user computer to the second user computer. 27. The communication server according to any one of to 26.
応答手段が、第2のユーザコンピュータのグローバネットワークアドレスを決定するように構成された、請求項27に記載の通信サーバ。   28. The communication server of claim 27, wherein the response means is configured to determine a global network address of the second user computer. グローバネットワークアドレスが、UDPチャネルアドレスを含む、請求項28に記載の通信サーバ。   30. The communication server of claim 28, wherein the global network address includes a UDP channel address. データストアが、更に、リモート側コンピュータが互いに通信する能力に関する1組の許可を含み、
サーバは、更に、記憶された1組の許可を使用して第1のユーザコンピュータが第2のユーザコンピュータと通信することを許可されているかどうかを判断する手段を更に含む、請求項17から29のいずれか1項に記載の通信サーバ。
The data store further includes a set of permissions regarding the ability of the remote computers to communicate with each other;
30. The server further includes means for determining whether the first user computer is authorized to communicate with the second user computer using the stored set of permissions. The communication server according to any one of the above.
データ通信ネットワークを介して、複数のユーザコンピュータの内の特定のユーザコンピュータ間で電子メール通信等のセキュアなピアツーピアデータ通信を実行する通信システムであって、
階層的に接続されたサーバネットワーク内に配置され、サーバネットワークのノードをそれぞれ表わす、請求項17に記載の複数の通信サーバを有し、サーバネットワークが、複数のユーザコンピュータの内の特定のユーザコンピュータ間の通信の確立を支援するために複数のユーザコンピュータに接続可能である通信システム。
A communication system for performing secure peer-to-peer data communication such as e-mail communication between specific user computers among a plurality of user computers via a data communication network,
18. A plurality of communication servers according to claim 17, arranged in a hierarchically connected server network, each representing a node of the server network, wherein the server network is a specific user computer of the plurality of user computers A communication system that can be connected to a plurality of user computers to assist in establishing communications between them.
第1と第2のユーザコンピュータ間でデータ通信ネットワークを介して電子メール通信等のセキュアなピアツーピアデータ通信を確立するのを支援する方法であって、複数の通信サーバからなるサーバネットワーク内の所与の階層レベルにある通信サーバ上で実施され、
サーバネットワーク内の他の階層レベルにある通信サーバに対する動作可能なネットワーク接続を確立する段階と、
複数のローカルユーザコンピュータを通信サーバに登録する段階と、
それぞれの登録したローカルユーザコンピュータの、各ローカルユーザコンピュータのアドレス情報とデータ通信ネットワークに対する接続の現在状態を含む登録詳細を記憶する段階とを含み、
確立する段階が、記憶した登録詳細を、サーバネットワーク内の次に高い階層レベルにある隣りの通信サーバに転送する段階と、階層ネットワーク内の低いレベルにおある接続された通信サーバの任意のローカルユーザコンピュータの登録詳細を受け取り記憶する段階とを含む方法。
A method for assisting in establishing secure peer-to-peer data communication, such as email communication, between a first and second user computers via a data communication network, in a server network comprising a plurality of communication servers Implemented on a communication server at a hierarchical level of
Establishing operable network connections to communication servers at other hierarchical levels in the server network;
Registering multiple local user computers with a communication server;
Storing registration details including address information of each local user computer and the current state of connection to the data communication network for each registered local user computer;
The establishing step transfers the stored registration details to a neighboring communication server at a next higher hierarchical level in the server network; and any local of a connected communication server at a lower level in the hierarchical network. Receiving and storing registration details of the user computer.
送信者コンピュータと指定受信者コンピュータの間でデータ通信ネットワークを介して、電子メール通信等のセキュアなピアツーピアデータ通信を確立するのを支援するために、ピアツーピア通信メッセージの指定受信者コンピュータを探索する方法であって、通信サーバの階層ネットワーク内で実施され、
指定受信者コンピュータの識別と送信者コンピュータの識別を含むデータ通信の要求をローカルサーバに送る段階と、
指定受信者がローカルサーバに知られているかどうかを判断する段階と、
指定受信者がローカルサーバに知られている場合に指定受信者に関して記憶した詳細を取り出し、その詳細を送信者コンピュータに送る段階と、
指定受信者がローカルに知られていない場合にサーバネットワーク内の次に高い階層レベルにある隣りの通信サーバに要求を転送し、これにより該通信サーバがローカルサーバになる段階と、
指定受信者が見つかるか或いは階層ネットワーク内の一番上にあるサーバの確認が終わるまで、決定する段階、取り出す段階、及び転送する段階を繰り返す段階とを含む方法。
Method for locating a designated recipient computer of a peer-to-peer communication message to assist in establishing secure peer-to-peer data communication, such as email communication, over a data communication network between a sender computer and a designated recipient computer Implemented in a hierarchical network of communication servers,
Sending a request for data communication including the identification of the designated recipient computer and the identification of the sender computer to the local server;
Determining whether the designated recipient is known to the local server;
Retrieving stored details about the designated recipient if the designated recipient is known to the local server and sending the details to the sender computer;
Forwarding the request to the next communication server at the next higher hierarchical level in the server network when the designated recipient is not known locally, thereby making the communication server a local server;
A method comprising the steps of determining, retrieving and repeating forwarding until a designated recipient is found or the top server in the hierarchical network is verified.
指定受信者コンピュータを識別することなく階層ネットワークの一番上に達した場合に、接続失敗の通知を送信者コンピュータに送る段階を更に含む、請求項33に記載の方法。   34. The method of claim 33, further comprising sending a connection failure notification to the sender computer when the top of the hierarchical network is reached without identifying the designated recipient computer. 指定受信者コンピュータが識別された後で指定受信者コンピュータに対する接続の状態を確認する段階を更に含む、請求項33又は34に記載の方法。   35. A method according to claim 33 or 34, further comprising the step of verifying the status of the connection to the designated recipient computer after the designated recipient computer is identified. 指定受信者コンピュータに対する接続が利用できない場合に送信者コンピュータに接続失敗の通知を送る段階を更に含む、請求項35に記載の方法。   36. The method of claim 35, further comprising sending a connection failure notification to the sender computer if a connection to the designated recipient computer is not available. 起こり得る状態の変化を許容するために所定の時間期間待ち、その後で送信する段階、判断する段階、及び取り出す段階、転送する段階、及び繰り返す段階を再び実行する段階を更に含む、請求項36記載の方法。   37. The method further comprises the steps of waiting for a predetermined period of time to allow for a possible state change and then performing again the steps of transmitting, determining and retrieving, transferring and repeating. the method of. 取り出す段階が、指定受信者が通信サーバに知られているがそこにローカルに登録されていない場合に、指定受信者が登録された階層内の低いレベルにある通信サーバに要求を送る段階を含む、請求項33から37のいずれか1項に記載の方法。   The retrieving step includes sending a request to a communication server at a lower level in the hierarchy in which the designated recipient is registered if the designated recipient is known to the communication server but not registered locally there. 38. A method according to any one of claims 33 to 37. 取り出す段階が、指定受信者の記憶した詳細の一部としてローカルに登録されたサーバから指定受信者のネットワーク位置を取り出す段階を含む、請求項38に記載の方法。   40. The method of claim 38, wherein the retrieving step includes retrieving the network location of the designated recipient from a server registered locally as part of the stored details of the designated recipient. 所望の指定受信者コンピュータを見つける際に将来使用する監視機能をサーバに記憶し実行する段階を更に含み、監視機能が、ローカルサーバに追加された任意の新しいコンピュータの識別を所望の指定受信者コンピュータの識別と比較し、一致した場合に送信者コンピュータに通知する段階を更に含む、請求項33から39のいずれか1項に記載の方法。   The method further includes storing and executing a monitoring function for future use in finding a desired designated recipient computer, wherein the monitoring function identifies the identity of any new computer added to the local server. 40. A method according to any one of claims 33 to 39, further comprising the step of comparing to the identification of and notifying the sender computer if there is a match. 記憶された1組の許可を使用して、送信者コンピュータが、所望の指定受信者コンピュータとの通信が許可されているかどうかを判断し、記憶された許可によってそのような通信が許可される場合だけ送信する段階を実行できるようにする、請求項33から40のいずれか1項に記載の方法。   Using a stored set of permissions, the sender computer determines whether communication with the desired designated recipient computer is permitted, and the stored permissions allow such communication 41. A method according to any one of claims 33 to 40, wherein the step of transmitting only can be performed. 送信者コンピュータと指定受信者コンピュータの間でデータ通信ネットワークを介して電子メール通信等のセキュアなピアツーピアデータ通信を確立する方法であって、複数の通信サーバからなる階層的サーバネットワーク内で実施され、
請求項33から41のいずれか1項に記載の指定受信者コンピュータを探索する方法と、
指定受信者コンピュータの現在のグローバル通信アドレスを送信者コンピュータに通信する段階と、
送信者コンピュータの現行グローバル通信アドレスを指定受信者コンピュータに通信する段階と、
グローバル通信アドレスを使用して送信者コンピュータと指定受信者コンピュータの間でピアツーピア通信チャネルを設定する段階とを含む方法。
A method of establishing secure peer-to-peer data communication, such as email communication, between a sender computer and a designated recipient computer over a data communication network, implemented in a hierarchical server network comprising a plurality of communication servers,
A method for searching for a designated recipient computer according to any one of claims 33 to 41;
Communicating the current global communication address of the designated recipient computer to the sender computer;
Communicating the current global communication address of the sender computer to the designated recipient computer;
Establishing a peer-to-peer communication channel between a sender computer and a designated recipient computer using a global communication address.
リモート側コンピュータが互いに通信する能力に関する1組の許可を記憶する段階と、
送信者コンピュータが指定受信者コンピュータと通信する機能に関する記憶された1組の許可を確認する段階と、
この確認する段階から、送信者コンピュータが指定受信者コンピュータと通信する許可を持つことが分かった場合だけ、第1と第2の通信段階と送信段階とを行うことを許可する段階を更に含む、請求項42に記載の方法。
Storing a set of permissions regarding the ability of remote computers to communicate with each other;
Confirming a stored set of permissions for the ability of the sender computer to communicate with the designated recipient computer;
Further comprising allowing the first and second communication steps and the transmission step to be performed only if it is found from the checking step that the sender computer has permission to communicate with the designated recipient computer; 43. The method of claim 42.
送信者コンピュータとローカルサーバの間で第1の直接チャネルを設定する段階を更に含む、請求項42又は43の記載の方法。   44. The method according to claim 42 or 43, further comprising setting up a first direct channel between the sender computer and the local server. 第2の通信段階が、第1の直接チャネルを介して行なわれる、請求項44に記載の方法。   45. The method of claim 44, wherein the second communication stage is performed via a first direct channel. 指定受信者コンピュータとローカルサーバの間で第2の直接チャネルを設定する段階を更に含む、請求項42から45のいずれか1項に記載の方法。   46. A method according to any one of claims 42 to 45, further comprising establishing a second direct channel between the designated recipient computer and the local server. 第1の通信段階が、第2の直接チャネルを介して行なわれる、請求項46に記載の方法。   47. The method of claim 46, wherein the first communication stage is performed via a second direct channel. 第1又は第2の直接チャネルを設定する段階が、第1又は第2のUDP(ユーザダイアグラムプロトコル)直接チャネルを設定する段階を含む、請求項44から47のいずれか1項に記載の方法。   48. A method according to any one of claims 44 to 47, wherein setting up the first or second direct channel comprises setting up a first or second UDP (User Diagram Protocol) direct channel. 第1と第2のユーザコンピュータの間で電子メール通信等のピアツーピアデータ通信を確立するために使用される伝送サーバであって、
第1のユーザコンピュータから、伝送サーバに登録された第2のユーザコンピュータに対する接続の要求を受け取る受信手段と、
第2のユーザコンピュータに対する接続の現在の接続状態を検証する検証手段と、
第2のユーザコンピュータの現在の接続状態から、第2のユーザコンピュータとのピアツーピア通信を現在確立できないこと分かった場合に、要求の詳細をウォッチとして記憶するデータストアと、
検証手段に応答して、第2のユーザコンピュータの状態が変化して、第2のユーザコンピュータとのピアツーピア通信を現在確立することができることが示された場合に、第2のユーザコンピュータのオンライン状態を示すメッセージを第1のユーザコンピュータに送る応答手段とを含み、
検証手段が、第2のユーザコンピュータに対する現在の接続状態を定期的に確認すると共に更新するように構成され、この更新から、第2のユーザの状態がオンラインに変化したことが分かったときに対応するウォッチの存在を確認し、ウォッチが見つかった場合に応答手段を活動化してメッセージを送信する伝送サーバ。
A transmission server used to establish peer-to-peer data communication, such as email communication, between a first and second user computer,
Receiving means for receiving from the first user computer a request for connection to the second user computer registered in the transmission server;
Verification means for verifying a current connection state of the connection to the second user computer;
A data store that stores details of the request as a watch if it is determined from the current connection state of the second user computer that peer-to-peer communication with the second user computer cannot currently be established;
In response to the verification means, if the status of the second user computer has changed and it is indicated that peer-to-peer communication with the second user computer can now be established, the second user computer's online status Responding means for sending to the first user computer a message indicating
The verification means is configured to periodically check and update the current connection status to the second user computer, and responding when it is found from this update that the status of the second user has changed online A transmission server that confirms the presence of a watch and activates a response means to send a message when the watch is found.
データストアが、第2のユーザコンピュータの識別と第1のユーザコンピュータの識別を記憶するように構成された、請求項49に記載の伝送サーバ。   50. The transmission server of claim 49, wherein the data store is configured to store an identification of the second user computer and an identification of the first user computer. 受信手段が、第2のユーザコンピュータに対する接続の複数の要求を受け取るように構成され、データストアが、第2のユーザコンピュータに対するウォッチの各要求の詳細を記憶するように構成され、応答手段が、第2のユーザコンピュータの接続状態がオンラインに変化した後で、複数のメッセージを第2のコンピュータに対する接続を要求したユーザコンピュータのそれぞれに一つずつ送信するように構成された、請求項49又は50に記載の伝送サーバ。   The receiving means is configured to receive a plurality of requests for connection to the second user computer, the data store is configured to store details of each request of the watch to the second user computer, and the response means includes: 51. The apparatus according to claim 49, wherein the plurality of messages are transmitted one by one to each of the user computers that have requested connection to the second computer after the connection state of the second user computer has changed to online. The transmission server described in 1. 伝送サーバが、伝送サーバの階層に接続されるように構成された、請求項49から51のいずれか1項に記載の伝送サーバ。   52. The transmission server according to any one of claims 49 to 51, wherein the transmission server is configured to be connected to a hierarchy of transmission servers. 伝送サーバが、登録されたユーザコンピュータのそれぞれの接続状態の詳細を階層内のより高い位置にある伝送サーバに送るように構成され、応答手段が、第2のユーザコンピュータのオンライン状態を示すメッセージを階層内のより高い位置にある少なくとも1つの伝送サーバに送信するように構成された、請求項52に記載の伝送サーバ。   The transmission server is configured to send details of the connection status of each registered user computer to the transmission server at a higher position in the hierarchy, and the response means sends a message indicating the online status of the second user computer. 53. The transmission server of claim 52, configured to transmit to at least one transmission server that is higher in the hierarchy. データストアが、伝送サーバに登録されたユーザコンピュータの異なるものに対して複数の異なるウォッチを記憶するように構成され、
検証する手段が、登録されたユーザコンピュータの全てに対する現在の接続状態を定期的に確認し更新するように構成され、この更新から、任意のユーザ状態がオンラインに変化したことが分かったときに、複数の記憶されたウォッチの中から対応するウォッチの存在を確認し、それが見つかった場合に、応答手段を活動化して見つかったウォッチに対応するメッセージを送信する、請求項49から53のいずれか1項に記載の伝送サーバ。
The data store is configured to store a plurality of different watches for different ones of the user computers registered in the transmission server;
The means for verifying is configured to periodically check and update the current connection status for all of the registered user computers, and from this update it turns out that any user status has changed online, 54. One of the claims 49 to 53, wherein the presence of a corresponding watch is confirmed from among a plurality of stored watches, and if it is found, the response means is activated to send a message corresponding to the found watch. The transmission server according to item 1.
データストアが、現在オンラインになっている登録ユーザコンピュータのリストを記憶するように構成され、
伝送サーバが、更に、データストアにウォッチを記憶する前に現在のオンラインのユーザコンピュータのリストを確認するオンライン確認手段を更に含む、請求項49から54のいずれか1項に記載の伝送サーバ。
The data store is configured to store a list of registered user computers that are currently online;
55. The transmission server according to any one of claims 49 to 54, wherein the transmission server further comprises online verification means for verifying a list of currently online user computers before storing the watch in the data store.
登録ユーザコンピュータの状態からその登録ユーザコンピュータがオンラインに変化したことが分かったときに、監視中のユーザコンピュータの識別を現在オンラインリストに転送する転送手段を更に含む、請求項55に記載の伝送サーバ。   56. The transmission server according to claim 55, further comprising transfer means for transferring the identity of the monitored user computer to the current online list when it is found from the status of the registered user computer that the registered user computer has changed to online. . 第1と第2のユーザコンピュータの間で電子メール通信等のピアツーピアデータ通信を確立するのを支援する方法であって、
第1のユーザコンピュータから、ローカルに登録された第2のユーザコンピュータに対する接続の要求を受け取る段階と、
第2のユーザコンピュータに対する接続の現在の接続状態を検証する段階と、
第2のユーザコンピュータの現在の接続状態から、第2のユーザコンピュータとのピアツーピア通信を現在確立できないことが分かった場合に、要求の詳細をウォッチとして記憶する段階と、
検証する段階に応答して、第2のユーザコンピュータの状態が変化し、第2のユーザコンピュータとのピアツーピア通信を現在確立したことを示している場合に、第2のユーザコンピュータのオンライン状態を示すメッセージを第1のユーザコンピュータに送る段階とを含み、
検証する段階が、第2のユーザコンピュータに対する現在の接続状態を定期的に確認し更新し、この更新から、第2のユーザ状態がオンラインに変化したことが分かったときに、対応するウォッチの存在を確認し、ウォッチが見つかった場合に応答手段を活動化してメッセージを送信する方法。
A method for assisting in establishing peer-to-peer data communication, such as email communication, between a first and second user computer comprising:
Receiving a connection request from a first user computer to a locally registered second user computer;
Verifying the current connection state of the connection to the second user computer;
Storing the details of the request as a watch if it is determined from the current connection state of the second user computer that peer-to-peer communication with the second user computer cannot currently be established;
In response to the verifying step, the second user computer's online status is indicated if the status of the second user computer has changed, indicating that a peer-to-peer communication with the second user computer has now been established. Sending a message to a first user computer,
The verifying step periodically checks and updates the current connection status to the second user computer, and when this update reveals that the second user status has changed online, the presence of a corresponding watch To send a message by activating the response means if a watch is found.
第1と第2のユーザコンピュータの間で、少なくとも第1のユーザコンピュータの通信が第1のネットワークアドレス変換器(NAT)によって処理されるデータ通信ネットワークを介して、電子メール通信チャネル等のセキュアなピアツーピアデータ通信チャンネルを確立する方法であって、
第1のユーザコンピュータと伝送サーバの間で第1のNATによって確立された伝送制御プロトコル/インターネットプロトコル(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のユーザコンピュータの間にセキュアなピアツーピア通信を確立することができるように、第1と第2のユーザコンピュータのそれれぞれに互いのユーザコンピュータのUDPポートアドレスを通知する段階とを含む方法。
A secure communication, such as an email communication channel, between the first and second user computers via a data communication network where at least communication of the first user computer is handled by a first network address translator (NAT). A method for establishing a peer-to-peer data communication channel, comprising:
Requesting a direct connection between a first user computer and a transmission server via a transmission control protocol / Internet protocol (TCP / IP) communication link established by a first NAT;
Establishing a first user diagram protocol (UDP) port at the transmission server;
Reporting the address of the first UDP port to the first user computer via a TCP / IP communication link;
Opening a second UDP port of the first user computer;
Sending a data packet from the second UDP port via the first NAT to the first UDP port so that the transmission server can determine the first NAT address of the second UDP port;
Obtaining a third UDP port address of a second user computer at the transmission server;
Informing each of the first and second user computers of each other's UDP port address so that secure peer-to-peer communication can be established between the first and second user computers. And a method comprising.
第1のNATを介して第1のユーザコンピュータから伝送サーバへのTCP/IP通信リンクを作成する段階を更に含む、請求項58に記載の方法   59. The method of claim 58, further comprising creating a TCP / IP communication link from the first user computer to the transmission server via the first NAT. 作成する段階が、第2のユーザコンピュータが登録された伝送サーバネットワーク上のローカル伝送サーバを探索し識別し、そのローカル伝送サーバに接続する段階を含む、請求項59に記載の方法。   60. The method of claim 59, wherein creating comprises searching for and identifying a local transmission server on the transmission server network to which the second user computer is registered and connecting to the local transmission server. 第2のユーザコンピュータが、伝送サーバに登録され、それらの間に第2のNATを介してTCP/IP通信リンクが確立され、取得する段階が、更に、
伝送サーバにおいて第4のUDPポートを確立する段階と、
TCP/IP通信リンクを介して第4のUDPポートのアドレスを第2のユーザコンピュータにレポートする段階と、
第2のユーザコンピュータにある第3のUDPポートを開く段階と、
第3のUDPポートから第2のNATアドレスを介して第4のUDPポートにデータパケットを送り、伝送サーバが第2のユーザコンピュータの第3のUDPポートの第2のNATアドレスを決定できるようにする段階とを含む、請求項58から60のいずれか1項に記載の方法。
The step of the second user computer registering with the transmission server and establishing and acquiring a TCP / IP communication link between them via the second NAT further comprises:
Establishing a fourth UDP port at the transmission server;
Reporting the address of the fourth UDP port to the second user computer via a TCP / IP communication link;
Opening a third UDP port on the second user computer;
Send a data packet from the third UDP port via the second NAT address to the fourth UDP port so that the transmission server can determine the second NAT address of the third UDP port of the second user computer. 61. A method according to any one of claims 58 to 60 comprising the steps of:
第1のユーザコンピュータが、第2のUDPポートの宛先を第1のUDPポートから第3のUDPポートに切り替えることを更に含む、請求項58から61のいずれか1項に記載の方法   62. A method according to any one of claims 58 to 61, further comprising the first user computer switching the destination of the second UDP port from the first UDP port to the third UDP port. 第1のユーザコンピュータが、第2のUDPポートから第2のユーザコンピュータの第3のUDPポートにピアツーピアメッセージを直接送るように構成された、請求項62に記載の方法。   64. The method of claim 62, wherein the first user computer is configured to send a peer-to-peer message directly from the second UDP port to the third UDP port of the second user computer. 第2のユーザコンピュータが、第3のUDPポートの宛先を第4のUDPポートから第2のUDPポートに切り替えることを更に含む、請求項58から63のいずれか1項に記載の方法。   64. A method according to any one of claims 58 to 63, further comprising the second user computer switching the destination of the third UDP port from the fourth UDP port to the second UDP port. 第2のユーザコンピュータが、第3のUDPポートから第2のユーザコンピュータの第2のUDPポートにピアツーピアメッセージを直接送るように構成された、請求項64に記載の方法。   68. The method of claim 64, wherein the second user computer is configured to send a peer-to-peer message directly from the third UDP port to the second UDP port of the second user computer. 第1と第2のユーザコンピュータの間にピアツーピア通信が確立されたときに第1のUDPポートの非活動性を検出する段階と、
第1のUDPポートを閉じることによって第1のユーザコンピュータとの接続を断つ段階とを含む、請求項58から65のいずれか1項に記載の方法。
Detecting inactivity of the first UDP port when peer-to-peer communication is established between the first and second user computers;
66. A method according to any one of claims 58 to 65, comprising closing the connection with the first user computer by closing the first UDP port.
伝送サーバが、第1のユーザコンピュータとのTCP/IP接続を切断することを更に含む、請求項66に記載の方法   68. The method of claim 66, further comprising the transmission server disconnecting the TCP / IP connection with the first user computer. 第1と第2のユーザコンピュータの間にピアツーピア通信が確立されたときに、第4のUDPポートの非活動性を検出する段階と、
第4のUDPポートを閉じることによって第2のユーザコンピュータとの接続を断つ段階とを含む、請求項58から67のいずれか1項に記載の方法。
Detecting inactivity of the fourth UDP port when peer-to-peer communication is established between the first and second user computers;
68. A method according to any one of claims 58 to 67, comprising closing the connection with the second user computer by closing the fourth UDP port.
伝送サーバが、第2のユーザコンピュータとのTCP/IP接続を切断することを更に含む、請求項68に記載の方法。   69. The method of claim 68, further comprising the transmission server disconnecting the TCP / IP connection with the second user computer. 第1又は第2のNATが、宛先ごとのUDPポートが異なる非対称NATであり、
非対称NATからの直接接続の新しいアドレスを記録する段階と、
UDPポート出力を非対称NATの新しいアドレスにアドレス指定しなおす段階とを含む、請求項58から69のいずれか1項に記載の方法。
The first or second NAT is an asymmetric NAT with a different UDP port for each destination;
Recording the new address of the direct connection from the asymmetric NAT;
70. The method according to any one of claims 58 to 69, comprising re-addressing the UDP port output to a new address of the asymmetric NAT.
第1と第2のユーザコンピュータ間でデータ通信ネットワークを介して電子メール通信チャネル等のセキュアなピアツーピアデータ通信チャンネルを確立するのを支援する伝送サーバであって、少なくとも第1のユーザコンピュータの通信が、第1のネットワークアドレス変換器(NAT)によって処理され、
第1のNATによって第1のユーザコンピュータと伝送サーバの間に確立された伝送制御プロトコル/インターネットプロトコル(TCP/IP)通信リンクを介しての直接接続の要求を受け取る要求受信手段と、
伝送サーバにおいて第1のユーザダイアグラムプロトコル(UDP)ポートを確立する確立する手段と、
TCP/IP通信リンクを介して第1のユーザコンピュータに第1のUDPポートのアドレスをレポートするレポート手段と、
第1のユーザコンピュータに設定された第2のUDPポートから、第1のNATを介して第1のUDPポートに送られるデータパケットを受け取るデータパケット受信手段であって、伝送サーバが、第2のUDPポートの第1のNATアドレスを決定するように構成されたデータパケット受信手段と、
伝送サーバにおいて第2のユーザコンピュータの第3のUDPポートアドレスを得る取得手段と、
第1と第2のユーザコンピュータが間にセキュアなピアツーピア通信を確立できるように、第1と第2のユーザコンピュータのそれぞれに互いのユーザコンピュータのUDPポートアドレスを通知する手段とを有する伝送サーバ。
A transmission server that assists in establishing a secure peer-to-peer data communication channel, such as an e-mail communication channel, between a first and second user computers via a data communication network, wherein at least the first user computer communicates Processed by a first network address translator (NAT),
Request receiving means for receiving a request for direct connection via a transmission control protocol / Internet protocol (TCP / IP) communication link established by a first NAT between a first user computer and a transmission server;
Means for establishing a first user diagram protocol (UDP) port at the transmission server;
Reporting means for reporting the address of the first UDP port to the first user computer via a TCP / IP communication link;
Data packet receiving means for receiving a data packet sent from the second UDP port set in the first user computer to the first UDP port via the first NAT, wherein the transmission server has a second Data packet receiving means configured to determine a first NAT address of the UDP port;
Obtaining means for obtaining a third UDP port address of the second user computer in the transmission server;
A transmission server comprising means for notifying each of the first and second user computers of each other's UDP port address so that the first and second user computers can establish secure peer-to-peer communication therebetween.
第1と第2のユーザコンピュータ間でデータ通信ネットワークを介して電子メール通信チャネル等のセキュアな疑似ピアツーピアデータ通信チャンネルを確立する方法であって、両方のユーザコンピュータの通信が、第1と第2の非対称ネットワークアドレス変換器(NAT)によって処理され、
それぞれの第1と第2の非対称NATを介した各ユーザコンピュータから伝送サーバへの伝送制御プロトコル/インターネットプロトコル(TCP/IP)通信リンクを作成する段階と、
第1のNATによる第1のユーザコンピュータと伝送サーバの間のTCP/IP通信リンクを介して受け取る直接接続の要求を受け取ったときに、伝送サーバに第1と第2のユーザダイアグラムプロトコル(UDP)ポートを確立する段階と、
第1と第2のUDPポートのアドレスを、それぞれのTCP/IP通信リンクを介して第1と第2のユーザコンピュータにそれぞれレポートする段階と、
第1のユーザコンピュータに第3のUDPポートを開くと共に第2のユーザコンピュータに第4のUDPポートを開く段階と、
データパケットを第3のUDPポートから第1のNATを介して第1のUDPポートに送り、第4のUDPポートから第2のNATを介して第2のUDPに送り、それにより伝送サーバが、第3のUDPポートの第1のNATアドレスと第4のUDPポートの第2のNATアドレスとを決定できるようにする段階と、
第1のUDPポートで受け取ったデータパケットを第2のUDPポートを介して第4のUDPポートのNATアドレスに転送し、第2のUDPポートで受け取ったデータパケットを第1のUDPポートを介して第3のUDPポートのNATアドレスに転送し、それにより、伝送サーバからデータパケットを有効に返送することによって、第1と第2のユーザコンピュータ間の擬似ピアツーピア通信を確立するようにする段階とを含む方法。
A method for establishing a secure pseudo peer-to-peer data communication channel, such as an electronic mail communication channel, between a first and second user computers over a data communication network, wherein communication between both user computers is first and second Processed by an asymmetric network address translator (NAT)
Creating a Transmission Control Protocol / Internet Protocol (TCP / IP) communication link from each user computer to the transmission server via respective first and second asymmetric NATs;
When receiving a direct connection request received via a TCP / IP communication link between the first user computer and the transmission server by the first NAT, the transmission server receives first and second user diagram protocols (UDP). Establishing a port;
Reporting the addresses of the first and second UDP ports to the first and second user computers, respectively, via respective TCP / IP communication links;
Opening a third UDP port on the first user computer and opening a fourth UDP port on the second user computer;
A data packet is sent from the third UDP port via the first NAT to the first UDP port and from the fourth UDP port via the second NAT to the second UDP, whereby the transmission server Enabling the determination of the first NAT address of the third UDP port and the second NAT address of the fourth UDP port;
The data packet received at the first UDP port is transferred to the NAT address of the fourth UDP port via the second UDP port, and the data packet received at the second UDP port is transferred via the first UDP port. Establishing a pseudo peer-to-peer communication between the first and second user computers by forwarding to the NAT address of the third UDP port, thereby effectively returning the data packet from the transmission server. Including methods.
転送する段階が、受け取ったデータパケットを転送前に瞬間的且つ一時的に記憶する段階を含む、請求項72に記載の方法。   73. The method of claim 72, wherein forwarding comprises storing received data packets instantaneously and temporarily prior to forwarding. 生成する段階が、第2のユーザコンピュータが登録された伝送サーバネットワーク上のローカル伝送サーバを探索し識別し、このローカル伝送サーバに接続する段階を含む、請求項72又は73に記載の方法。   74. A method according to claim 72 or 73, wherein the generating step comprises the step of searching for and identifying a local transmission server on the transmission server network with which the second user computer is registered and connecting to the local transmission server. 伝送サーバが、擬似ピアツーピア通信を確立した後で第1と第2のユーザコンピュータとのTCP/IP接続を断つことを更に含む、請求項72から74のいずれか1項に記載の方法。   75. A method according to any one of claims 72 to 74, further comprising the transmission server disconnecting the TCP / IP connection between the first and second user computers after establishing pseudo peer-to-peer communication. 第1と第2のユーザコンピュータ間でデータ通信ネットワークを介して、電子メール通信チャネル等のセキュアな擬似ピアツーピアデータ通信チャンネルを確立するのを支援する伝送サーバであって、両方のユーザコンピュータの通信が、それぞれの第1と第2の非対称ネットワークアドレス変換器(NAT)によって取り扱われ、
伝送制御プロトコル/インターネットプロトコル(TCP/IP)通信リンクを、各ユーザコンピュータから伝送サーバまで、それぞれの第1と第2の非対称NATを介して作成する作成する手段と、
第1のユーザコンピュータと伝送サーバの間で第1の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のUDPポートで受け取ったデータパケットを、第2のUDPポートを介して第4のUDPポートのNATアドレスに転送し、第2のUDPポートで受け取ったデータパケットを、第1のUDPポートを介して第3のUDPポートのNATアドレスに転送し、それにより、第1と第2のユーザコンピュータの間の擬似ピアツーピア通信が、伝送サーバからデータパケットを有効に返送することによって確立される伝送サーバ。
A transmission server that assists in establishing a secure pseudo-peer-to-peer data communication channel, such as an email communication channel, between a first and second user computers via a data communication network, wherein communication between both user computers Are handled by respective first and second asymmetric network address translators (NATs),
Means for creating a transmission control protocol / internet protocol (TCP / IP) communication link from each user computer to the transmission server via respective first and second asymmetric NATs;
When a direct connection request is received between a first user computer and a transmission server via a TCP / IP communication link by a first NAT, the transmission server receives first and second user diagram protocols (UDP). An establishment means for establishing a port;
Reporting means for reporting the addresses of the first and second UDP ports to the first and second user computers, respectively, via respective TCP / IP communication links;
The third UDP port set in the first computer is sent to the first UDP port via the first NAT, and the second NAT is sent from the fourth UDP port set in the second user computer. Data packets sent to the second UDP over the network, so that the transmission server can determine the first NAT address of the third UDP port and the second NAT address of the fourth UDP port. Means to receive and
The data packet received at the first UDP port is transferred to the NAT address of the fourth UDP port via the second UDP port, and the data packet received at the second UDP port is transferred to the first UDP port. A transmission server in which pseudo-peer-to-peer communication between the first and second user computers is established by effectively returning data packets from the transmission server. .
送信者コンピュータと指定受信者コンピュータ間のデータ通信ネットワークを介したピアツーピア通信を確立するのを支援するために、ユーザコンピュータを伝送サーバの階層接続ネットワークに接続する方法であって、
接続ネットワーク内のローカル伝送サーバと同じ階層レベルにある複数のピア転送サーバのそれぞれの現行負荷を示す情報を受け取る段階と、
ローカルユーザコンピュータをローカル伝送サーバに接続する要求を受け取る段階と、
ローカルサーバの現行負荷をピアサーバのそれぞれと比較する段階と、
ローカル伝送サーバの負荷が、ピアサーバの内のいずれかのピアサーバの負荷より著しく大きい場合に、最も低い負荷を有するピアサーバに接続すべきであることを示す応答をローカルユーザコンピュータに送る段階と、
ローカル伝送サーバの負荷が、ピアサーバの内のどのピアサーバの負荷より著しく大きくない場合に接続要求を受け入れ、ローカル伝送サーバの現行負荷を更新する段階とを含む方法。
A method for connecting a user computer to a hierarchical connection network of transmission servers to assist in establishing peer-to-peer communication over a data communication network between a sender computer and a designated recipient computer, comprising:
Receiving information indicating the current load of each of a plurality of peer forwarding servers at the same hierarchical level as the local transmission server in the connection network;
Receiving a request to connect a local user computer to a local transmission server;
Comparing the local server's current load with each of the peer servers;
If the load on the local transmission server is significantly greater than the load on any of the peer servers, sending a response to the local user computer indicating that it should connect to the peer server with the lowest load;
Accepting a connection request and updating the current load on the local transmission server if the load on the local transmission server is not significantly greater than the load on any of the peer servers.
伝送サーバの現行負荷が、伝送サーバに登録されたユーザコンピュータの数によって決定される、請求項77に記載の方法。   78. The method of claim 77, wherein the current load on the transmission server is determined by the number of user computers registered with the transmission server. ローカル伝送サーバの現行負荷を階層ネットワーク内のさらに高いレベルの伝送サーバに転送する段階を更に含む、請求項77又は78に記載の方法。   79. A method according to claim 77 or 78, further comprising transferring the current load of the local transmission server to a higher level transmission server in the hierarchical network. 転送する段階が、ローカル伝送サーバの現行IPアドレス及びポートを送出する段階を含む、請求項79に記載の方法。   80. The method of claim 79, wherein the forwarding step includes sending the current IP address and port of the local transmission server. 転送する段階が、ハートビート信号を一定間隔で送出することを含み、各ハートビート信号が、ローカル伝送サーバの負荷に関する更新された最新情報を提供する、請求項79又は80に記載の方法。   81. A method according to claim 79 or 80, wherein the forwarding step includes sending heartbeat signals at regular intervals, wherein each heartbeat signal provides updated updated information regarding the load of the local transmission server. 受け取る段階が、複数のピア転送サーバのそれぞれの現行IPアドレスとポートを示す情報を受け取る段階を含む、請求項77から81のいずれか1項に記載の方法。   82. A method according to any one of claims 77 to 81, wherein receiving comprises receiving information indicating a current IP address and port of each of a plurality of peer forwarding servers. 受け取る段階が、複数のピア転送サーバのそれぞれに関するハートビート信号を定期的に受け取る段階を含み、ハートビート信号が、ピア転送サーバの識別とピア転送サーバの現行負荷を示す情報を含む、請求項77から82のいずれか1項に記載の方法。   78. The step of receiving includes periodically receiving a heartbeat signal for each of a plurality of peer forwarding servers, wherein the heartbeat signal includes information indicating the identity of the peer forwarding server and the current load of the peer forwarding server. 83. The method according to any one of items 82 to 82. ローカル伝送サーバの地理的位置を決定する段階を更に含む、請求項77から83のいずれか1項に記載の方法。   84. A method according to any one of claims 77 to 83, further comprising determining a geographical location of the local transmission server. 受け取る段階が、複数のピア転送サーバのそれぞれの地理的位置に関する情報を受け取る段階を含む、請求項84に記載の方法。   85. The method of claim 84, wherein receiving comprises receiving information regarding the geographic location of each of the plurality of peer forwarding servers. 地理情報が、ローカル又はピア転送サーバに関するタイムゾーン情報を含む、請求項84又は85に記載の方法。   86. A method according to claim 84 or 85, wherein the geographic information includes time zone information for a local or peer forwarding server. 比較する段階が、ローカルサーバの現行負荷をローカルユーザと同じ地理的位置にある各ピアサーバと比較する段階を含み、
送信する段階が、ローカル伝送サーバの負荷が、同じ地理的位置にあるピアサーバのいずれかの負荷よりも極めて大きい場合に、最も小さい負荷を有するローカルユーザコンピュータと同じ地理的位置にあるピア伝送サーバに接続すべきであることを示す応答を送る送信段階とを含む、請求項85又は請求項85に従属する請求項86に記載の方法。
Comparing comprises comparing the current load of the local server with each peer server in the same geographical location as the local user;
Sending to a peer transmission server in the same geographical location as the local user computer with the least load, if the load on the local transmission server is significantly greater than the load on any of the peer servers in the same geographical location 88. A method according to claim 85 or claim 86 dependent on claim 85, comprising sending a response indicating that a connection is to be made.
送信段階が、ローカル伝送サーバに対する接続ネットワークの隣接するより高い階層レベルにある親伝送サーバの通信アドレスを送る段階を含む、請求項77から87のいずれか1項に記載の方法。   88. A method according to any one of claims 77 to 87, wherein the sending step comprises sending the communication address of the parent transmission server at a higher hierarchical level adjacent to the connection network for the local transmission server. ローカル伝送サーバに接続され、階層的接続ネットワーク内の低いレベルにある全ての子伝送サーバの負荷を取得し検討する段階と、
各子サーバによりローカルサーバの現行負荷を評価する段階と、
ローカル伝送サーバの負荷がいずれかの子サーバの負荷よりも著しく大きい場合に、最も小さい負荷を有する子サーバに接続するべきであることを示す応答をローカルユーザコンピュータに送る段階とを含む、請求項77から88のいずれか1項に記載の方法。
Obtaining and considering the load of all child transmission servers connected to the local transmission server and at a lower level in the hierarchical connection network; and
Assessing the local server's current load by each child server;
78. sending a response to the local user computer indicating that it should connect to the child server having the lowest load if the load on the local transmission server is significantly greater than the load on any of the child servers. 90. The method according to any one of 88.
ローカル伝送サーバの地理的位置を決定する段階を更に含み、取得する段階が、複数の子伝送サーバのそれぞれの地理的位置に関する情報を受け取る段階を含む、請求項89に記載の方法。   90. The method of claim 89, further comprising determining a geographic location of the local transmission server, wherein obtaining comprises receiving information regarding the geographic location of each of the plurality of child transmission servers. 地理情報が、ローカル又は子伝送サーバに関するタイムゾーン情報を含む、請求項90に記載の方法。   The method of claim 90, wherein the geographic information includes time zone information for a local or child transmission server. 評価する段階が、ローカルサーバの現行負荷をローカルユーザと同じ地理的位置にある子サーバのそれぞれと比較する段階を含み、
送信段階が、ローカル伝送サーバの負荷が、同じ地理的位置のいずれかの子サーバの負荷よりも著しく大きい場合に、最も小さい負荷を有するローカルユーザコンピュータと同じ地理的位置にある子伝送サーバに接続するべきであることを示す応答をローカルユーザコンピュータに送る段階を含む、請求項90又は91に記載の方法。
The step of evaluating comprises comparing the current load of the local server with each of the child servers in the same geographical location as the local user;
The sending phase should connect to a child transmission server at the same geographical location as the local user computer with the least load if the load on the local transmission server is significantly greater than the load of any child server at the same geographical location 92. A method according to claim 90 or 91, comprising sending a response to the local user computer indicating that it is.
通信サーバに登録されたユーザコンピュータ間でピアツーピアデータ通信を確立する際に使用するように設定された認証済み通信サーバのネットワークにノードを結合する方法であって、
認証サーバから受け取ったユーザ識別とパスワードを使用して、認証サーバにノードを認証させる段階と、
ネットワークに加わるためにノードを接続しなければならない特定の通信サーバの識別の通知を受ける段階と、
特定の通信サーバに接続するために、認証サーバから特定の通信サーバ及びノードに固有のデータを要求する段階と、
特定の通信サーバ及びノードに固有のデータと、ノードと特定の通信サーバによって共有される共有暗号鍵とを受け取る段階と、
特定の通信サーバ及びノードに固有のデータと、暗号鍵によって暗号化されたグローバルデータとを特定の通信サーバに送り、その結果、特定の通信サーバが、ネットワークにノードを認証させそれにより認証サーバからの検証を求めることなしにネットワークに加わるツールを有するようにする段階とを含む方法。
A method of joining a node to a network of authenticated communication servers configured to be used in establishing peer-to-peer data communication between user computers registered in a communication server, comprising:
Using the user identification and password received from the authentication server to cause the authentication server to authenticate the node;
Receiving notification of the identity of a particular communication server to which the node must connect in order to join the network;
Requesting data specific to a specific communication server and node from the authentication server to connect to the specific communication server;
Receiving data specific to a particular communication server and node and a shared encryption key shared by the node and the particular communication server;
Data specific to a specific communication server and node and global data encrypted with an encryption key are sent to the specific communication server, so that the specific communication server authenticates the node to the network and thereby from the authentication server. Having a tool that joins the network without asking for verification.
ノードが、特定の通信サーバの信憑性を検証する情報を有するように、特定の通信サーバからの共有暗号鍵で暗号化された確認データを受け取る段階を更に含む、請求項93に記載の方法。   94. The method of claim 93, further comprising receiving confirmation data encrypted with a shared encryption key from a particular communication server such that the node has information to verify the authenticity of the particular communication server. ネットワークの認証サーバにノードを登録することによってユーザIDとパスワードを取得する段階を更に含む、請求項93又は94記載の方法。   95. The method of claim 93 or 94, further comprising obtaining a user ID and password by registering the node with an authentication server of the network. 通知を受ける段階が、要求する段階で使用されるチケット生成チケットを受け入れる段階を含む、請求項93から95のいずれか1項に記載の方法。   96. A method according to any one of claims 93 to 95, wherein receiving the notification comprises accepting a ticket generation ticket used in the requesting step. 通知を受ける段階が、受け取る段階で使用されるノードのセッション鍵を得る段階を含む、請求項96に記載の方法。   99. The method of claim 96, wherein receiving the notification comprises obtaining a session key for the node used in the receiving step. チケット生成チケットとセッション鍵がパスワードで暗号化され、更に、チケット生成チケットとセッション鍵を解読する段階を含む、請求項93から97のいずれか1項に記載の方法。   98. A method according to any one of claims 93 to 97, wherein the ticket generation ticket and the session key are encrypted with a password, further comprising decrypting the ticket generation ticket and the session key. 要求する段階が、チケット生成チケットと特定の通信サーバの識別を認証サーバに送る段階を含む、請求項96から98のいずれか1項に記載の方法。   99. A method according to any one of claims 96 to 98, wherein the requesting step includes the step of sending a ticket generation ticket and an identification of a particular communication server to an authentication server. 受け取る段階が、特定の通信サーバとノードに固有のチケットを取得する段階を含む、請求項93から99のいずれか1項に記載の方法。   99. A method according to any one of claims 93 to 99, wherein the receiving comprises obtaining a ticket specific to a particular communication server and node. チケットが、共有暗号鍵のコピーを含む、請求項100に記載の方法。   101. The method of claim 100, wherein the ticket includes a copy of the shared encryption key. セッション鍵で暗号化された共有鍵を解読する段階を更に含む、請求項101に記載の方法。   102. The method of claim 101, further comprising decrypting a shared key encrypted with a session key. タイムスタンプの値をグローバルデータとして計算する段階を更に含む、請求項93から102のいずれか1項に記載の方法。   103. The method according to any one of claims 93 to 102, further comprising calculating a timestamp value as global data. 特定の通信サーバが、受け取ったデータを共有鍵を使って解読する段階を更に含む、請求項93から103のいずれか1項に記載の方法。   104. A method according to any one of claims 93 to 103, further comprising the step of a particular communications server decrypting the received data using a shared key. 特定の通信サーバが、受け取ったデータの有効性を検証する段階を更に含む、請求項93から104のいずれか1項に記載の方法。   105. A method according to any one of claims 93 to 104, further comprising the step of a particular communication server verifying the validity of the received data. 特定の通信サーバが、解読した受信データが受け入れ可能であるという確認を送ることを更に含む、請求項104又は105に記載の方法。   106. The method of claim 104 or 105, further comprising the specific communication server sending a confirmation that the decrypted received data is acceptable. 所定の方式で修正された認証データを受け取る段階を更に含む、請求項93から106のいずれか1項に記載の方法。   107. A method according to any one of claims 93 to 106, further comprising receiving authentication data modified in a predetermined manner. 修正された認証情報が暗号化され、修正された認証情報を解読する段階を更に含む、請求項107に記載の方法。   108. The method of claim 107, further comprising the step of encrypting the modified authentication information and decrypting the modified authentication information. 第1のユーザコンピュータが、通信サーバに登録されたユーザコンピュータ間のピアツーピアデータ通信の確立に使用されるように設定された認証済み通信サーバのネットワークの一部である第2のユーザコンピュータとセキュアに通信する方法であって、
第1のコンピュータを、請求項1から16のいずれか1項に記載されたようなネットワークに結合する段階と、
第1と第2のユーザコンピュータにおいて公開鍵と秘密鍵を作成する段階と、
第1と第2のユーザコンピュータ間でネットワークを介して公開鍵を交換する段階と、
第1と第2のユーザコンピュータのそれぞれにおいて、非共有秘密鍵と共有公開鍵から共有暗号化/解読鍵を作成する段階と、
共有暗号鍵を使用して、第1と第2のユーザコンピュータ間のピアツーピア接続を介して第1と第2のユーザコンピュータ間で直接送られるデータメッセージを暗号化する段階とを含む方法。
Securely with a second user computer that is part of a network of authenticated communication servers configured to be used to establish peer-to-peer data communication between user computers registered with the communication server A method of communicating,
Coupling a first computer to a network as described in any one of claims 1 to 16;
Creating public and private keys on the first and second user computers;
Exchanging a public key between the first and second user computers via a network;
Creating a shared encryption / decryption key from the non-shared secret key and the shared public key at each of the first and second user computers;
Encrypting a data message sent directly between the first and second user computers via a peer-to-peer connection between the first and second user computers using a shared encryption key.
相互接続された伝送サーバノードの第1の階層レルム(hierarchical realm)を、相互接続された伝送サーバノードの第2の階層レルムに接続する方法であって、
各レルム内にローカル認証サーバを提供する段階であって、認証サーバが、それぞれの階層レルムの最も高いレベルにある主ノードに接続され、レルム内の全てのサーバに関連した認証問題を制御するように構成される段階と、
第1の階層レルムの主ノードを第2の階層レルムの認証サーバに登録する段階と、
第1の階層レルムの主ノードを第2の階層レルムの認証サーバに対して認証する段階と、
階層レルムを結合するために第1の階層レルムの主ノードが接続しなければならない最も下のノードサーバの識別に関する通知を受ける段階と、
第2の階層レルムの最も下のノードサーバと第1の階層レルムの主ノードの両方の共有データと共有暗号鍵を受け取る段階と、
受け取った共用データと共有暗号鍵を使って、第1の階層レルムの主ノードを第2の階層レルムの最も下のノードサーバに対して認証し、それにより第2のレルムの認証サーバからの検証を求めることなく第1と第2のレルムを結合する段階とを含む方法。
A method of connecting a first hierarchical realm of interconnected transmission server nodes to a second hierarchical realm of interconnected transmission server nodes, comprising:
Providing a local authentication server within each realm that is connected to the primary node at the highest level of each hierarchical realm to control authentication issues associated with all servers in the realm A stage composed of:
Registering the primary node of the first hierarchy realm with the authentication server of the second hierarchy realm;
Authenticating the primary node of the first hierarchy realm against the authentication server of the second hierarchy realm;
Receiving notification regarding the identification of the lowest node server to which the primary node of the first hierarchy realm must connect in order to join the hierarchy realms;
Receiving shared data and a shared encryption key of both the lowest node server of the second hierarchy realm and the primary node of the first hierarchy realm;
Using the received shared data and shared encryption key, the primary node of the first hierarchy realm is authenticated to the lowest node server of the second hierarchy realm, thereby verifying from the authentication server of the second realm Combining the first and second realms without asking.
第2のレルムの特定の最も下のノードサーバに接続するために、第1のレルムの主ノードと第2のレルムの最も下のノードサーバに固有のデータを認証サーバから要求する段階を更に含む、請求項110記載の方法。   Requesting data specific to the primary node of the first realm and the lowest node server of the second realm from the authentication server to connect to a particular lowest node server of the second realm. 111. The method of claim 110. 最の下のサーバが、主ノードを第2の階層レルムに対して認証するツールを有するように、共有暗号鍵によって暗号化された共用データとグローバルデータを最も下のノードサーバに送る段階を更に含む、請求項110又は111に記載の方法。   Sending the shared data and the global data encrypted by the shared encryption key to the lowest node server such that the lowest server has a tool to authenticate the primary node to the second hierarchy realm. 112. The method of claim 110 or 111, comprising. 認証段階が、第2の階層レルムの最も下のノードサーバを介して行なわれる、請求項110から112のいずれか1項に記載の方法。   113. A method according to any one of claims 110 to 112, wherein the authentication step is performed via the lowest node server of the second tier realm. 第2の階層レルムの主ノードを第1の階層レルムの認証サーバに登録する段階と、
第2の階層レルムの主ノードを第1の階層レルムの認証サーバに対して認証する段階とを含む、請求項110から113のいずれか1項に記載の方法。
Registering the primary node of the second hierarchy realm with the authentication server of the first hierarchy realm;
114. The method of any one of claims 110 to 113, comprising authenticating a primary node of the second hierarchy realm against an authentication server of the first hierarchy realm.
伝送サーバの第1のレルムに接続された第1のユーザコンピュータが、通信サーバに登録されたユーザコンピュータ間でピアツーピアデータ通信を確立する際に使用するように設定された伝送サーバの第2のレルムに接続された第2のユーザコンピュータとセキュアに通信する方法であって、
請求項110から114のいずれか1項に記載の伝送サーバの第2のレルムに第1のレルムの第1のユーザコンピュータを接続する段階と、
第1と第2のユーザコンピュータについて相互接続されたレルム内のネットワーク位置を決定する段階と、
確立したネットワーク位置を使用して第1と第2のユーザコンピュータ間のピアツーピア通信チャネルを確立する段階と、
確立されたピアツーピア通信チャネルで暗号化したデータ通信を送る段階とを含む方法。
A second realm of a transmission server configured to be used when a first user computer connected to the first realm of the transmission server establishes peer-to-peer data communication between user computers registered in the communication server A method of securely communicating with a second user computer connected to
Connecting the first user computer of the first realm to the second realm of the transmission server according to any one of claims 110 to 114;
Determining a network location within the interconnected realm for the first and second user computers;
Establishing a peer-to-peer communication channel between the first and second user computers using the established network location;
Sending encrypted data communication over an established peer-to-peer communication channel.
使用する段階が、
第1と第2のユーザコンピュータで公開鍵と秘密鍵を作成する段階と、
ネットワークを介して第1と第2のユーザコンピュータ間で公開鍵を交換する段階と、
第1と第2のユーザコンピュータのそれぞれにおいて、非共有秘密鍵と共有公開鍵から共有暗号化/解読鍵を作成する段階と、
共有暗号鍵を使用して、第1と第2のユーザコンピュータ間に確立されたピアツーピア接続を介して第1と第2のユーザコンピュータ間で直接送信されるデータメッセージを暗号化する段階とを含む、請求項115に記載の方法。
The stage to use is
Creating a public key and a private key on the first and second user computers;
Exchanging public keys between the first and second user computers over a network;
Creating a shared encryption / decryption key from the non-shared secret key and the shared public key at each of the first and second user computers;
Encrypting a data message transmitted directly between the first and second user computers via a peer-to-peer connection established between the first and second user computers using a shared encryption key. 116. The method of claim 115.
JP2007518679A 2004-06-28 2005-06-28 Improvements related to secure communications Pending JP2008508573A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0414415.0A GB0414415D0 (en) 2004-06-28 2004-06-28 Improvements relating to secure telecommunications
PCT/GB2005/002509 WO2006000802A2 (en) 2004-06-28 2005-06-28 Improvements relating to secure telecommunications

Publications (1)

Publication Number Publication Date
JP2008508573A true JP2008508573A (en) 2008-03-21

Family

ID=32800303

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007518679A Pending JP2008508573A (en) 2004-06-28 2005-06-28 Improvements related to secure communications

Country Status (8)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010521086A (en) * 2007-03-01 2010-06-17 株式会社東芝 Kerberos handover keying optimized for reactive operation
JP2012530458A (en) * 2009-06-15 2012-11-29 アルカテル−ルーセント Selective first try delivery (FDA) process for text messages
JP2019514314A (en) * 2016-03-25 2019-05-30 シエン ヴァン ファムPHAM, Thien, Van Method, system and medium for using dynamic public key infrastructure to send and receive encrypted messages

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10200325B2 (en) 2010-04-30 2019-02-05 Shazzle Llc System and method of delivering confidential electronic files
WO2011137346A2 (en) * 2010-04-30 2011-11-03 Peer Fusion Llc System and method of delivering confidential electronic files
CN104023091B (en) 2013-02-28 2018-10-30 华为终端有限公司 A kind of multilink fusion method and equipment
CN103209462A (en) * 2013-03-12 2013-07-17 深圳创维数字技术股份有限公司 Mobile communication method, mobile communication server and mobile communication system
CN103442224A (en) * 2013-09-09 2013-12-11 杭州巨峰科技有限公司 NAT penetration-based video monitoring access strategy and realization method
US9887839B2 (en) * 2014-06-06 2018-02-06 Rainberry, Inc. Securely sharing information via a public key-value data store
CN107004026B (en) * 2014-11-03 2020-09-22 艾玛迪斯简易股份公司 Managing pre-computed search results
DE102015114544A1 (en) * 2015-08-31 2017-03-02 Uniscon Universal Identity Control Gmbh Method for secure and efficient access to connection data
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
CN112511569B (en) * 2021-02-07 2021-05-11 杭州筋斗腾云科技有限公司 Method and system for processing network resource access request and computer equipment

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 (en) * 2001-08-03 2004-03-05 마쯔시다덴기산교 가부시키가이샤 Access control system
EP1423796A1 (en) * 2001-08-09 2004-06-02 Gigamedia Access Corporation Hybrid system architecture for secure peer-to-peer-communication
WO2004017607A1 (en) * 2002-07-17 2004-02-26 Siemens Aktiengesellschaft Data communication system and data communication method with advanced determination of the availability of communication partners
AU2003278521A1 (en) * 2002-11-29 2004-06-23 International Business Machines Corporation Index server support to file sharing applications

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010521086A (en) * 2007-03-01 2010-06-17 株式会社東芝 Kerberos handover keying optimized for reactive operation
US8817990B2 (en) 2007-03-01 2014-08-26 Toshiba America Research, Inc. Kerberized handover keying improvements
JP2012530458A (en) * 2009-06-15 2012-11-29 アルカテル−ルーセント Selective first try delivery (FDA) process for text messages
JP2019514314A (en) * 2016-03-25 2019-05-30 シエン ヴァン ファムPHAM, Thien, Van Method, system and medium for using dynamic public key infrastructure to send and receive encrypted messages

Also Published As

Publication number Publication date
EP1769620A2 (en) 2007-04-04
KR20070092196A (en) 2007-09-12
GB0414415D0 (en) 2004-07-28
WO2006000802A2 (en) 2006-01-05
AU2005256849A1 (en) 2006-01-05
CA2572027A1 (en) 2006-01-05
WO2006000802A3 (en) 2006-06-15
CN101053239A (en) 2007-10-10

Similar Documents

Publication Publication Date Title
JP2008508573A (en) Improvements related to secure communications
Barrett et al. SSH, The Secure Shell: The Definitive Guide: The Definitive Guide
CA2636780C (en) Method and device for anonymous encrypted mobile data and speech communication
Rescorla et al. Guidelines for writing RFC text on security considerations
US8364772B1 (en) System, device and method for dynamically securing instant messages
US6959393B2 (en) System and method for secure message-oriented network communications
US7716724B2 (en) Extensible authentication protocol (EAP) state server
JP5334104B2 (en) All exchange session security
US20020124090A1 (en) Method and apparatus for data communication between a plurality of parties
US20070255784A1 (en) Communication System for Use in Communication Between Communication Equipment by Using Ip Protocol
KR101219862B1 (en) System and method for establishing that a server and a correspondent have compatible secure email
JP4962117B2 (en) Encryption communication processing method and encryption communication processing apparatus
JP5239341B2 (en) Gateway, relay method and program
JP2010503320A (en) Method and system for providing authentication services to Internet users
JP5012173B2 (en) Encryption communication processing method and encryption communication processing apparatus
Garfinkel VoIP and Skype security
WO2002017558A2 (en) Method and apparatus for data communication between a plurality of parties
Loesing et al. Privacy-aware presence management in instant messaging systems
WO2004001630A1 (en) Network system and program
Aref et al. Still Computers Networking is Less Secure Than It should be, Causes and Solution
Loesing et al. Implementation of an instant messaging system with focus on protection of user presence
JP2005210555A (en) Information processing apparatus
Kim A survey of Kerberos V and public-key Kerberos security
Jatothu et al. Enhancement in SNMP services with improved security with the impact of SSH, TLS and DTLS protocols
Reiter Enabling Secure Communication over Existing Peer-to-Peer Frameworks