JP2008508573A - Improvements related to secure communications - Google Patents
Improvements related to secure communications Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/256—NAT traversal
- H04L61/2575—NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4541—Directories for service discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4552—Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/54—Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning 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のリモート側コンピュータにデータ通信を直接送る段階とを含む方法。
【選択図】図1A 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
各PC12と14は、この実施形態において、それぞれ対応するインターネットゲートウェイ18及び20を介してインターネット16に接続されている。また、ローカルPC12にあるインターネットゲートウェイ18は、ローカルPC12が、全てローカルインターネットゲートウェイ18を利用するLAN24上の複数のローカルPC12の内の1台として提供されるようにNAT22を含む。また、リモートPC14は、LAN26上に提供されているが、このケースでは、NATは提供されておらず、リモートPC14は固有IPアドレスを有する。
Each
インターネット16に接続されたデータサーバ28も提供される。データサーバ28は、管理するユーザ名32とIPアドレス34のローカルデータベース30を有する。ローカルデータベース30は、また、登録ユーザの接続状態36を記憶する。これらのユーザ名32とアドレス34は、ローカルPC12とリモートPC14のものを含み、一般に知られているため本明細書で詳しく説明しない登録手順によってデータベース30に提供される。データサーバ28が、ローカルPC12やリモートPC14等の登録されたPC間のピアツーピア通信において能動的な役割を果たさないことを理解されよう。しかしながら、データサーバ28は、最新のアドレス情報34とそのアドレスの状態36、即ちオンラインかオフラインかについて、登録されたすべてのPC12、14を更新する。
A
インターネット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
ローカルPC12とリモートPC14はそれぞれ、TCP/IPによって個人メールサーバ52に接続されたMicrosoft OutlookTM等のメールクライアント50を備える。メールサーバ52は、それ自体のローカルデータ記憶装置54を備え、ネットワークインタフェース56にも接続されている。メールサーバ52は、ピアツーピア通信プロトコルを利用するために、ダウンロードされたソフトウェアで提供され、ユーザによってインストールされる。メールサーバ52は、オンラインになったことを知らせるためにデータサーバ28と連絡をとらなければならないので、データサーバ28のネットワークアドレスを記憶する。全てのピアツーピア通信は、メールクライアント50の動作に影響を及ぼさないように個人メールサーバ52によって透過的に経路指定される。
Each of the
この実施形態で使用されるネットワークインタフェース56とインターネットゲートウェイ18、20は、全く従来通りのものであり、本明細書で更に詳しい説明は必要ない。
The
次に、システム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
メッセージを送信する際、ユーザは、電子メールを作成し、次にそれを個人電子メールサーバ52に送る。指定受信者の状態に関して記憶された最新情報で示されたように指定受信者がオンラインの場合、電子メールメッセージは、指定受信者のPC14に直接送信される。他の場合は、指定受信者のPC14がオンラインになり、それがデータサーバ28からの最新オンライン状態メッセージを受け取ることによって示されるまで、電子メールメッセージは、キューに記憶される。
In sending the message, the user composes an email and then sends it to the
メッセージを送信する前に、指定受信者の実際の現行IPアドレス34が、TSM40によって決定される。このプロセスは、後で詳細に説明する。指定受信者の現行IPアドレス34が確認されると、電子メールメッセージのピアツーピア通信が実行される。
Prior to sending the message, the actual
図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
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
次に、図3から図6を参照して、各個人メールサーバ52で実行される実際のプロセスを説明する。
Next, an actual process executed in each
ここで図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
しかしながら、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
更に他の選択肢(状態)は、メールサーバ52がメッセージを受け取り124、そのメッセージをユーザに提示するためにメールクライアント52に提供することである。このプロセス124は、後で図5を参照して詳細に説明する。
Yet another option (state) is that the
メールサーバがオンラインなった後で利用可能な最後の選択肢(状態)は、メッセージの送信に関する。送信を待っているメッセージがあるかどうかを判断するために確認が行われる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
次に図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
受信したメッセージを処理する前に、メールクライアント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
次に、指定受信者が認識済みメールユーザかどうかを判断する確認を行う166。認識済みメールユーザでない場合は168、システムがアドレスを知らないので、メールサーバ52は、メッセージを送信できないことだけをメールクライアント50に通知する170。しかしながら、指定受信者が登録ユーザとして認識されている場合は172、電子メールメッセージが、公開鍵インフラストラクチャ(PKI)暗号化技術を暗号化/解読に使用することができるように、前に取得してある指定受信者の公開鍵で暗号化される174。
Next, a
次に、暗号化したメッセージが、後で図6に関して説明するMessageWaitingToSendプロセス130に渡される。
The encrypted message is then passed to the
次に図5を参照して、MessageReceivedプロセス124を説明する。電子メールメッセージを受け取るために、メールサーバ52は、ログインされていなくてもよいが、メールサーバ52はインターネット16に接続されていなければならない。電子メールメッセージを受け取ると180、ユーザにそのメッセージが通知され182、これは、例えば通知受信ポップウィンドウ184の生成により実行することができる。受信した電子メールメッセージは、記憶装置54に記憶され、メールクライアントからの「取得(get)」(取り出し)が保留される。記憶装置は、コンピュータのハードディスクでよいが、最もセキュアな解決策では、受信したメッセージは、取り出されるまでRAMに記憶される。待機中に186、何らかの理由でメールサーバ52を遮断しなければならない場合188、未送付のメッセージは、半永久記憶装置(一般に、ハードディスク)に記憶され190、プロセス124は終了する192。
Next, the
メールサーバ52が、メールクライアント50から取得要求を受け取ったとき194、プロセス124は、メールクライアント50が許可されているかどうかを判断する確認をする196。許可されていない場合は、クライアント許可が失敗し198、その結果メールクライアント50の取得手順が失敗する200。このことは、受信者ユーザとAmteus(システム全体の動作を管理する権限を持ち、ユーザが登録される)に通知される202。
When the
メールクライアント50が許可された場合204は、2つの操作が並列に実行される。ローカルに記憶された受信者の秘密鍵を取り出し206、未送付の電子メールメッセージを取り出す208。次に、取り出した秘密鍵を使用してメッセージを解読する試み210が実行される。解読が成功しなかった場合212は、送信者に通知される214。これは、メールサーバ52が、送付が失敗したことを述べる電子メールを送信者に返すことによって実現される。次に、プロセス124は、前のクライアント許可が失敗した場合198と同じように続き、即ちメールクライアント「取得」手順が失敗する200。このことは、受信者ユーザとAmteusに通知される202。
When the
一方、解読が成功した場合は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
次に図6を参照して、図3のメッセージ送信待機プロセス130について説明する。送信を待つ電子メールメッセージがキューにあるときは230、宛先の状態を判断しなければならない232。宛先の現在状態がキャッシ内にあるかどうか判断する確認234を行なう。現在状態がキャッシュ内にある場合は、キャッシュから取り出す236。現在状態がキャッシュ238内にない場合は、DS28から取り出し240、キャッシュが取り出された状態で更新される。
Next, the message
宛先がオフラインかどうかを判断するために宛先の状態を確認する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
エラーが、宛先がオフラインになっているためではない場合は、エラーには別の原因があり264、それが永久的な障害が一時的な障害かを判断する確認が行なわれる266。永久的な障害268の場合(例えば、ユーザがなくなったか、電子メールが大きすぎる場合)、メールサーバは、メッセージが送付不能であったと言うメッセージを受け取る270。しかしながら、エラーが一時的な障害272による(例えば、接続不良による)場合、暗号化された電子メールメッセージが、キューに戻されて記憶され242、このメッセージ送信待機プロセス130の手順が終了する。
If the error is not due to the destination being offline, the error has another
電子メールメッセージの送信結果に戻ると、メッセージが送付された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
次に図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
接続した後、特定の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
送信者メールサーバ52は、指定受信者メールサーバ52の固有直接IPアドレスを受け取った後で、受信者メールサーバ52に直接接続され310、標準のインターネットプロトコルを使用して電子メールメッセージを送信する312。即ち、電子メールメッセージは、メッセージをそれぞれ自分のヘッダを有するパケットに分割し、任意の適切な経路によって送られるそのようなパケットを受信者に送信し、そこで指定受信者に表わすために再び組み立てることによって、従来のIP通信がインターネット16で送られのと同じように送られる。
The
図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
図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
図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
図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
図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,
サーバ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 :
図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 :
図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
図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 :
図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 :
NATA352が非対称でNAT B358が対称な場合は、図9iに関して前に述べたプロセスと同じプロセスが逆に行われる。
If
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
木402の最上レベル404は、システム400の管理機能に関係する。このレベル404は、システム400を使用することを許可された全てのコンピュータのデータベース410(図12を参照)を保持し、個々のピアツーピア通信を確立することを許可するかどうかを制御する。
The
セキュリティもこの管理レベル404から制御される。低いレベルの個々の通信接続は、管理レベル404から許可を受けなければならなず、そのような許可を受けた後で、低い管理レベルは、例えばそれらのレベル自体の間で暗号鍵を取り決めた後で追加接続を作成することができる。
Security is also controlled from this
また、管理レベル404には、カスタマイズ可能な詳細レベルまで、作成された追加接続が通知され、低いレベルで生じるイベントを記録することもできる。そのようなイベントには、少なくともネットワークにそれぞれ試みられたアクセスがある。
Further, the
管理レベル404は、ネットワークの動作に関する管理レポートを作成することもでき、これはシステム400の制御と管理に極めて役立つ。
The
最も低いレベル408には、「エンドポイント」412がある。これらのエンドポイントは、「ソフトフォン」(VOIP通話を処理するソフトウェア)とローカラーズした電子メールサーバを含む。しかしながら、エンドポイント412は、他の形のデータ通信ツールを含むこともできる。エンドポイント412は、システム400及びそれにより提供されるセキュアな通信方法を使用可能にするためにユーザのコンピュータにインストールされたキーコンポーネントである。各エンドポイント412は、本質的に、ユーザの場所に提供されるときはセキュアであり、従って、エンドポイント412での通信の記憶域は、決してデータ通信の安全性を損なうことはない。
At the
管理レベル404とエンドポイント412の間には、複数の伝送サーバ414で構成されたいわゆる分散「トランスポート層」406が提供される。この層406は、実際には、ユーザと管理者に見えないままであるが、この層は、2種類の通信、即ちアドレスと状態を決定する通信と実際のピアツーピアデータ通信の伝送を容易にするという点で、システム400の不可欠な構成要素である。エンドポイント412と管理層404だけが、トランスポート層406を構成する伝送サーバ414を介して通信する。これは、簡潔性と拡張性の利点を提供する。
Between the
次に図11を参照し、管理レベル404について詳しく説明する。管理レベル404は、図11に示した例において、システム400の制御の効率的な管理を可能にする階層木構造を有する。管理層の分散した性質は、図11から明らかであり、階層の一番上には、1つの中央位置から実行されるAmteus グローバル管理ノード416があることが分かる。次に、例えば登録ユーザ間の通信を制御したい企業又は行政体(図示せず)のコンピュータで実施することができるクライアント管理ノード418(図11の例では1つだけ示した)が提供される。クライアント指定位置にあるクライアントは、図11に示した単一のクライアント管理ノード418を実行する。
Next, the
階層における次の層は、図11に3つ示した所与のクライアントの地域管理ノード422の層420である。これらの地域管理ノード422は、分散トランスポート層406(単に点線として表わした)を介してエンドポイント412(EP1〜EP3)に接続する。この最も低い管理レベル420は、地理に基づき、後で詳述するロードバランシングを含む幾つかの事柄にとって重要である。同様に、この例では、更に他のエンドポイントEP4 412が、トランスポート層406を介してAmteus グローバル管理ノード416で直接実施される管理機能を有する。
The next layer in the hierarchy is the
次に、管理レベル404の働き方を説明し、例として示す。エンドポイント412によって表わされた各ユーザは、1つの管理ノード416、418、422、一般にその地域管理ノード422に登録される。この登録は、階層的管理木を上に送られ、その結果、登録詳細が、それより高いレベルの全ての管理ノード418、416に保持される。そのような管理ノード418、416に記憶された登録情報は、登録処理の間に収集されるとき、エンドポイント412の現在の動作状態と共にユーザに関する全ての詳細を含む。エンドポイント412間のピアツーピア通信を許可するかどうかに関する決定も、両方のユーザ登録詳細が入手可能な階層における最も低いレベルで得られる。そのようなエンドポイント412の動作状態に生じた変化は、より高いレベルの管理ノードに渡される。
Next, how the
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,
EP2 412がEP3 412と通信したいと仮定すると、アテネ地域管理ノード422は、両方のエンドポイントユーザ412を知っており、従ってその要求は、アテネ管理ノード422によってアテネでローカルに処理される。詳細は、情報としてより高いレベルの管理ノード416、418に送られることがあるが、そのような高いレベルのノード416、518は、所望の通信チャネルの設定には必要ない。
Assuming
EP1 412がEP2 412と通信したい場合、EP1 412は、ロンドンのローカル管理ノード422に要求を出す。このロンドン地域管理ノード422は、EP2 412について何も知らず、従って、EP1の状態を通話設定になるように変更し、要求を階層木の上のクライアント管理ノード418に渡す。
If
クライアント管理ノード418は、通話の両方の側を知っており、従って所望の通話設定を処理することができる。クライアント管理ノード418は、最新の状況情報を持っているのでEP2 416が使用中かどうかを知っているが、後で述べるように、これに関する見解は最新でなく、この見解が提供される可能性は僅かである。クライアント管理ノード418がEP2 416を使用中と見なした場合は、そのようにロンドン地域管理ノード422に通知し、ロンドン地域管理ノード422はEP1412に通知する。従って、セットアップの要求は、失敗に終わる。
The
そうでない場合、クライアント管理ノード418は、EP1の状態を「通話設定」であるとマークし、要求をアテネ地域管理ノード422に下に渡す。アテネ地域管理ノード422は、EP2 416が現在使用中であることができる(即ち、クライアント管理ノード422の状態が実際には最新でなかった)。その場合、アテネ地域管理ノード422は失敗コード「使用中(busy)」をクライアント管理ノード418に返し、クライアント管理ノード418は、前の場合と同じように通信チャネルを設定する要求を取り消す。
Otherwise, the
そうでない場合、アテネ地域管理ノード422は、通話要求をEP2 412に転送する。EP2 412は、通話を受け入れるかどうかを決定し、適切な応答を経路に沿ってEP1 412に返す。
Otherwise, the Athens
EP1 412がEP4 412と通信したい場合は、類似のプロセスが行われる。この場合、最初の要求が、その地域管理ノード422とクライアントノード418を介してAmteusグローバル管理ノード416まで完全に渡される。次に、Amteusグローバル管理ノード416は、EP4 412と直接通信して接続を確立する。
If
前に使用した「ローカル」という語は、サーバに対して地理的に地方にあることを意味するものである。しかしながら、最も厳密な意味では、この用語は単に、サーバとエンドポイント間に相対的な直接接続があり、エンドポイントがそのサーバに登録されており、そのためそのエンドポイントがサーバに対してローカルになることを意味する。 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
前述の伝送レベル406は、事前に定義されていない動的構造を表わす。より正確に言うと、ネットワークを構成するために伝送サーバ414を動的に接続する規則が定義され提供される。更に、図10に機能的に別の層として示した管理レベル404は、伝送サーバ406の階層ネットワークに実際に組み込まれ、ピアツーピア通信の設定に利用される。最後に、ネットワークには、ネットワークセキュリティを改善するセキュリティオーバレイが組み込まれている。この実施形態において、オーバレイは、ネットワークの全てのノードに適用される機能規則として実施され、即ち、その規則とは、ノードがエンドポイント412を既に知っていない限り、そのノードのそのエンドポイント412に対する通信を許可しないというものである。ノードが、所望のエンドポイント412の識別を個人的に知らないときは、通信の要求を階層木の更に上に渡す。
The
図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
各伝送サーバ414は、ネットワークアドレス変換を受けない環境で動作する。即ち、各伝送サーバ414はそれ自体の公開IPアドレス436を有し、このIPアドレスは、それ自体の伝送サーバID438と同様に動的に割り当てられることがある。このIPアドレスは、その伝送サーバ414に接続されたエンドポイントIDのリスト442、各エンドポイント412に対する接続の状態444、及びエンドポイント414と関連付けられた許可446と共に、ローカルデータベース440に記憶される。必要に応じてこの情報にアクセスし更新するためにデータベースサーバ448が提供される。データベース440に記憶されたエンドポイント(ユーザ)情報のリストは、後述するように構成される。
Each
データベース440には2つのリストが提供され、その1つは、現在オンライン444であるローカルに登録されたユーザのIDのコンパイルであり、もう1つは、ウォッチ(watch)が記録されたローカルに登録されたエンドポイント412のIDのコンパイル450である。ウォッチは、特定のエンドポイント412が接続されているが、例えば使用中のときに通信に利用できないときに記録される。ウォッチは、宛先エンドポイント412の状態を監視し、通信に利用可能になるとき、ウォッチのトリガ機構(図示せず)は通知プロセスを作動させる。通知プロセスは、所望の宛先エンドポイントに対する接続状態の変化を監視することに関心を記録したエンドポイント412及び伝送サーバ414の全てにメッセージを送る。更に、状態の変化は、階層ネットワークの更により高いレベルに通知される。
The
データベース440は、エンドポイント412の1組の公開暗号鍵451も記憶する。これらは、後でより詳しく説明するように、様々なエンドポイント412から送られた暗号化されたメッセージを解読するために使用される。
The
伝送サーバ414は、また、伝送サーバ414の現在の地理的位置を決定する位置決めモジュール452と、階層ネットワーク内の異なる隣り合った伝送サーバ414に対する接続を確認するハートビートモニタ454とを含む。サーバ制御モジュール456は、データベースサーバ448と共に、そのようなリンク、モジュール及びデータベースの全ての動作を管理する。
The
ネットワークの伝送サーバ414は、エンドポイントと全く同じように管理システム404(図11に示した)による許可を受けなければならない。以上述べたように、各伝送サーバ414は、伝送サーバ414の役割をする許可と共に、データベース440にそれ自体のエントリを有し、ユーザIDを有する。
The
伝送サーバ414は、位置決めモジュール452の機能により「位置認識(location aware)」する。これは複数の異なる方法で達成することができる。例えば、1つの単純な方法は、位置決めモジュール452をウィンドウズベースにすることであり、その場合、位置決めモジュールが動作しているシステムの現在のタイムゾーンを決定することができる。
The
ハートビートモニタ454を使用することにより、全ての伝送サーバ414は、その親伝送サーバ414に規則的なハートビートを送信する(規則的なハートビートがある場合)。ハートビートは、伝送サーバの登録接続(ローディング)に関する更新情報を含み、親伝送サーバ414と子伝送サーバ414の間の通信リンクの存在を確認する信号である。ハートビートモニタ454の目的は、システム400のロードバランシングを制御することである。より具体的には、ハートビート情報は、発信(地域)伝送サーバ414に現在直接登録されているいくつかのエンドポイント412のカウント(使用カウント(usage count))を含む。各(親)伝送サーバ414は、ハートビートを受け取ると、同じレベルにある他の全ての伝送サーバのダウンリンクのIPアドレスとポートと、更に使用カウントのリストを提供するメッセージを返す。従って(図12において)、主伝送サーバ424は、伝送サーバ414からハートビートを受け取ったとき、それぞれの地域伝送サーバ1及び3 412のそれぞれのアドレス及び使用カウントを返す。
By using the
次に図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
この基本原理を更に高度なレベルに拡張することができる。例えば、受信伝送サーバ414は、自分の階層レベルと地理的位置で要求を受け入れることができると決定した後で、新しい接続に地理的に近く且つその接続をより適切に処理できる低いレベルの伝送サーバ414があるかどうかを調べる。これは、ユーザが伝送サーバの木の末端で接続された場合にいつでもシステム全体の性能が高まるので、有利であると考えられる。その理由は、ピアツーピア通信の大部分が、厳しい帯域幅で通常ローカルなボイスオーバーIP(voice over IP)トラフィックであるからである。従って、この主トラフィックをローカル伝送サーバレベルで維持することによって、階層システム406全体にこのトラフィックの負担がかからなくなる。そうでないと、このトラフィックによって、システム400がかなり遅くなる。
This basic principle can be extended to a higher level. For example, after the receiving
新しい接続を受け入れる伝送サーバ414は、それ自体の親伝送サーバのアドレスを新しい子ユーザに通知する。また、その親伝送サーバ414に新規ユーザの接続を通知する。その後で、親伝送サーバ414は、新規ユーザが接続されているとみなす。
The
接続された後で、新規ユーザ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
Management request The
A message intended for the
A message intended for another
エンドポイント412が、親伝送サーバ414に対する直接接続を失ったときは、その祖父伝送サーバ414に接続しようとすることを理解されたい。次に、祖父伝送サーバ414は、代替接続を元のレベルで見つけることができる。
It should be understood that when an
図10の階層402のエンドポイントレベル408で、各エンドポイント412は、その親伝送サーバ414に1つのクライアントTCP/IP接続を有する。この接続は、高いレベルの伝送サーバ414と管理サーバ410、404の両方へのアクセスに使用される。
At
例えば、各エンドポイント412は、VoIP通信を容易にするためにユーザとの通信インターフェース(図示せず)を提供する。この実施形態において、各エンドポイント412は、いわゆる「マルチメディア」エンジン(図示せず)も使用する。このマルチメディアエンジンは、マイクロフォン、スピーカ又はヘッドホン、Waveファイルプレーヤ及びレコーダ、並びにビデオプレーヤ及びレコーダを構成する。マルチメディアエンジンは、また、音声を様々な波形式の間で変換し、減衰させ、増幅し、混合することができるディジタル信号処理モジュールを含む。マルチメディアエンジンの機能が当該技術分野で一般的ものであり、また熟練した本明細書の対象者は、そのようなエンジンを構成するために更に詳しい説明を必要としないので、マルチメディアエンジンについてはこれ以上説明しない。
For example, each
次に図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
エンドポイント412間でピアツーピア(P2P)接続を確立することができる。これらの接続は、次に、現在の実施形態では音声と電子メールデータを送信するために使用されるが、他の通信形態も使用することができる。
A peer to peer (P2P) connection may be established between the
第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
次に図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
次に、通信に使用可能になるという状態の変化がユーザ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
段階506で行なった確認から判断されたように、ユーザDが、伝送サーバ(TS)に現在接続されていない場合は、段階522で、親伝送サーバ414が存在するかどうか判断するために確認が行なわれる。親伝送サーバ414が存在する場合は、段階524で要求が親伝送サーバ414に送られる。その後で、親伝送サーバ414は、段階526で、現行伝送サーバと見なされ、プロセスは引き続き、現行伝送サーバ414が、段階504で登録されたエンドユーザ412のリストを確認する。段階522で行った確認によって親伝送サーバ414がないと判断された場合、伝送サーバは、段階528で、接続失敗を示す応答をエンドポイントに送り、段階530でプロセスが終了する。
As determined from the confirmation made at
伝送サーバ414に高いレベルの伝送サーバ414から到着した発信要求は、ユーザが接続されていない場合に、要求を来た場所に転送するのではなく失敗を返す点以外は全く同じように処理される。
Outgoing requests arriving from the higher
次に図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
また、伝送サーバ414は、段階536でRINGING1メッセージを受け取ると、最初に、段階536でUDP(ユーザダイアグラムプロトコル)チャネル372を構成する。次に、段階540で、UDPチャネルの外部IPアドレスとポート番号を含むRINGING2メッセージを構成し、また段階540でこのメッセージをエンドポイントユーザDと発呼者のエンドポイントユーザSの両方に送る。RINGING2メッセージは、RINGING1メッセージを受け取った伝送サーバ414のユーザIDも含み、その理由は、そのユーザIDがピアツーピア接続を確立するために使用されるからである。
Also, when the
伝送サーバ414がRINGING1メッセージを決して送信しないことを理解されたい。従って、伝送サーバに到着したRINGING1メッセージは、常に、エンドポイント412から直接来たと見なされる。
It should be understood that the
エンドポイント412が、段階542でRINGING2メッセージを受け取ると、エンドポイント412は、段階544で、通話設定状態であるかどうか確認する。そうでない場合は、段階546で、通話に対しての指定されたものを全てリセットし、段階530でプロセス500は終了する。別の状況では、各エンドポイント412が、段階548で、UDPチャネルを設定し、段階550で、RINGING2メッセージで指定されたポートにメッセージを定期的に送り始める。これは、被呼者に最も近い伝送サーバ414になる。一般的なネットワーク障害が何もなければ、これらのメッセージのほとんどは正確に到達するはずである。
When
ユーザDに最も近い伝送サーバ414が、各エンドポイント412から最初のUDPメッセージを受け取ったとき、段階552で、エンドポイントのUDPチャネル372の(後述するように、後で変換され可能性がある)ネットワークアドレスとポート番号を抽出する。伝送サーバ414は、次に各エンドポイントのUDPチャネル372に応答を返すことができ(図示せず)、この応答は、UDPネットワークアドレスと他のエンドポイントのUDPチャネルのポート番号を含み、これらの応答は、ファイアウォールが存在する場合でも各エンドポイントに到達するはずである。(エンドポイントが最初に伝送サーバに書き込むので、これは、エンドポイントにある通常のファイアウォールの働きによって可能なはずである。)
When the
伝送サーバ414が、両方のエンドポイントからパケットを受け取った後で、伝送サーバ414は、そのUDPポートを外部からどのようにアドレス指定するかを知る。次に、伝送サーバ414は、段階554で、他のエンドポイントのアドレスを伝えるTALKDIRECTメッセージを各エンドポイント412に送る。段階556でそのようなUDPアドレスを受け取った後で、エンドポイント412は、発信元エンドポイント412と互いに通信して、段階556で宛先エンドポイント412への直接UDP通信チャネル372を設定することができ、次にプロセス500は、段階530で終了する。
After
ほとんどの場合、前記の手順により、これら直通通信を問題なく確立することができる。しかしながら、ネットワークアドレス変換(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
ネットワークアドレス変換器(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
一部のケースでは、ファイアウォールの実施が厳密なため或いは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
ファイアウォール動作のばかげた(極めて厳しい)解釈に遭遇した場合に、このシステムは、ある方向で真のピアツーピア通信を実施し、他の方向でローカル伝送サーバ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
以下に、非対称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
システム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
先行技術のセキュアでない通信システムは使用できず、そのような通信システムは、登録ユーザのセキュリティを損なう好ましくないユーザを得る。既知のセキュアでない製品は、より多くの人がシステムを使用するときに、特性が高められそれにより「人気のある」システム自体を傷つける攻撃者を招くという事実によって、ユーザの数に固有の上限がある。この効果は、制御システムでの負帰還と少し似たものとして働く。 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
ケルベロス技術は、共有する秘密を伴う認証技術に大きく依存する。基本的な概念は全く単純である。即ち、秘密を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
図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 =
NODE = combination of CLIENT and TS. Sometimes simply referred to as CLIENT or TS. In that case, the specific role described for
AS =
KEY = value based on the password assigned to
TGS =
最初に、幾つかのNODE608を含む特定のREALM614と関連付けられた認証サーバ610が使用可能であると仮定する。AS610は、登録された各NODE608ごとの{USERNAME,PASSWORD}ダブレットの相当物をそのローカルデータベース616に記憶する。次に、図19に示したように、ネットワークに接続したいNODE_A608のクライアントが、インターネットブラウザ618を使って登録するKDC610のウェブサーバ620に接続し、それによりユーザ名「UserA」622とパスワード「pwdA」624を取得したと仮定する。
Initially, assume that an
手順の基本的な仕組みを、以下の頭文字を使って説明する。
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 =
S_A = session key 628 between
K_AB = shared key 630 between NODE_A and NODE_B.
TICKET_AB =
{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,
1. The
2. The
また、AS610は、認証セキュリティを高めるために暗号化されたTIMESTAMP(図示せず)を返すこともできる。これは、AS610が、ネットワーク時間プロトコル(NTP)又は単純なNTP接続によって信頼できるソースから時間を受け取り、NODE608が、システム600の認証を受けるときにASの時間と同期されることを仮定している。NODE608は、ASから送られたTIMESTAMPをその現行Win32チックカウントと関連付け、自分自身のTIMESTAMP値を生成する必要があるときは新しい現在時刻を計算しなければならない。
The
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
1. A
2. The
3.
4). In order for
熟練した本明細書の対象者には、タイムスタンプを使用しない場合に以上の操作がどのように行われるか容易に明らかであり、従って、タイムスタンプなしに上記の一連のイベントを実行する方法の明示的な説明はこれ以上行わない。 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,
以上の実施態様は、ケルベロス認証システムの適応されたサブセットに基づいており、基本的なプロトコル、メッセージ及びデータ構造を再使用するが、この実施形態の新しい認証技術をピアツーピア通信の状況で有効に使用できるようにする機能が異なる。 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
Diffie-Hellman
DH_SK_A = CLIENT_A Diffie-Hellman
DH_PK_B = CLIENT_B Diffie-Hellman
DH_SK_B = CLIENT_B Diffie-Hellman
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と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
1.
2. Upon receipt of the message,
3.
4). At this time, both
5.
概して、「誘導による認証」は、真の認証ではなく、むしろ次のように要約される。
「私は、認証済みの相手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
第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
この実施形態は、あまりセキュアでなくより実際的な「誘導による認証」手法を使用する。 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
クロスレルム認証は、事実上、前述の既存の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)
レルム614が階層的に編成されている場合でも(図21を参照)、通常、2つの通信レルム614が、一方向だけの登録ではなく、互いに登録されなければならない。
Even if the
以下で、クロスレルム認証及び許可についてより詳細に説明する。しかしながら、その前に、図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,
図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
CLIENT604とTS414は、ハンドル(図示せず)を使用してSS660と通信する。ハンドルは、親NODE608へのCLIENT接続/リンク662か、子NODE608からのTS接続/リンク664かに関係なく、各接続又はリンク(即ち、それぞれのアクティブなサーバストリーム)と関連付けられる。
NODE608が起動したとき、DC656は、DS658に接続しログインすることを試み、成功した場合はKDC610も初期化される。後で分かるように、CLIENT604が、同じREALM614内の別のNODE608にリンクできないので、主NODE608をそれ自体のKDC610に対して認証する必要はないことに注意されたい。
When
ほとんど全ての場合において、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
子NODE608は、メッセージをTS414に通信する。TS414が、メッセージをセキュリティメッセージであると識別した場合は、SS660への適切な呼が行われ、すなわち、呼が失敗した場合或いはターゲットが階層を更に上った場合は、TS414は、親NODE608に渡すためにセキュリティメッセージをCLIENT604に送る。
アクティブな(DS658に接続された)KDC610がNODE608で使用可能な場合は、このKDC610が主NODE608なので、TS414で子から受け取ったセキュリティ要求は、このNODE608によって満たされなければならず、それより高くは送られない。
If an active (connected to DS 658)
注:最も単純な実施態様は、CLIENT604がリンク構成の管理に幾つかの状態を割り当てることである。SS660は、CLIENT604やTS414に呼を返さない。サブシステムが緻密に一体化されており、その結果、CLIENT604とTS414が、セキュリティ要求及び応答を管理するために状態を維持しなければならないと仮定する。
Note: The simplest implementation is that
REALM614は、前述のように、(Windows Domainと類似の)1組の登録ユーザであり、この場合、各ユーザは、そのREALM614に登録され(一般に、ウェブサーバ620によって)、そのREALM614のDS612上に維持されたアカウント(図示せず)を有する。
A
次に図21を参照すると、DS(データサーバ)612は、特定のREALM614の全ての認証データを保持し、このデータは、作成されるREALM614の外には広がらない。主NODE666は、実質上、REALM614のセキュリティの根本であり、セキュリティ要求は、階層を上に広がることを許可されない。
Referring now to FIG. 21, a DS (data server) 612 holds all authentication data for a
動的データが階層を上下に伝わることができるようにするために、ある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
リンク672がクロスレルムなので、ここで、呼データがREALM A614からREALM B614に伝わりREALM C614まで下りることができ、NODE X608は、NODE Y608に対してクロスレルムVoIP通話674を行うことができる。
Since
次に、クロスレルムリンクがどのように達成されるかを例示する詳細なシナリオを説明する。 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
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
2. The bootstrap sequence calls the procedure procedureSecurityService :: Initialise ().
3. The user enters {user name, password} so that
4). The
5.
6). The
7). The
8). The
9. At this point,
10. The
非主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:
2. The bootstrap sequence calls the procedure SecurityService :: Initialise (). The
3. The user enters {username, password} to allow
4).
5. The
6). The
7). The
8). The
9. At this point,
10. The
主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.
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.
2. The
3. If this succeeds, the procedure SecurityService :: ProcessAsReq () returns an
4).
主NODE666がTGS_REQメッセージ638を受け取った場合は、(リンクされるNODE608の(ハッシュされた)パスワードをDS612が要求すること以外)同じ手順に従う。
If the
非主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
2.
3.
主又は非主NODE:AP_REQを受け取る
AP_REQメッセージ642を受け取るNODE608はどれも、首尾良くそのメッセージをローカルに処理するか、或いはエラーメッセージを返さなければならず、そのメッセージを渡すことはできない。
Primary or non-primary NODE: Any
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.
2.
3.
主又は非主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
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:親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.
Claims (116)
各リモート側コンピュータのアドレス詳細とデータ通信媒体に対する接続の現在状態を受け取る段階と、
第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に記載の方法。 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のリモート側コンピュータの第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.
その後で、確認する段階と送信する段階を繰り返す段階を更に含む、請求項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のリモート側コンピュータにおいて送信失敗通知を生成する段階と、
所定の時間期間待まって送信する段階を繰り返す段階のいずれかの段階を実行する段階を更に含む、請求項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.
各リモート側コンピュータのデータ通信ネットワークに対する接続のアドレス詳細及び現在状態を受け取る受信手段と、
第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.
通信サーバがサーバネットワーク内の他の階層レベルにある他の通信サーバに動作可能に接続することを可能にする接続手段と、
複数のローカルユーザコンピュータを通信サーバに登録する登録手段と、
それぞれの登録したローカルユーザコンピュータの登録詳細を記憶するデータストアであって、登録詳細が、各ローカルユーザコンピュータのアドレス情報とデータ通信ネットワークに対する接続の現在状態を含むデータストアとを有し、
接続手段が、記憶した登録詳細をサーバネットワークの次に高い階層レベルにおける隣りの通信サーバに転送し、且つ階層ネットワーク内の低いレベルにある接続された通信サーバの任意のローカルユーザコンピュータの登録詳細を受け取り記憶するように構成された通信サーバ。 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.
応答手段が、第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.
サーバは、更に、記憶された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.
サーバネットワーク内の他の階層レベルにある通信サーバに対する動作可能なネットワーク接続を確立する段階と、
複数のローカルユーザコンピュータを通信サーバに登録する段階と、
それぞれの登録したローカルユーザコンピュータの、各ローカルユーザコンピュータのアドレス情報とデータ通信ネットワークに対する接続の現在状態を含む登録詳細を記憶する段階とを含み、
確立する段階が、記憶した登録詳細を、サーバネットワーク内の次に高い階層レベルにある隣りの通信サーバに転送する段階と、階層ネットワーク内の低いレベルにおある接続された通信サーバの任意のローカルユーザコンピュータの登録詳細を受け取り記憶する段階とを含む方法。 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から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と第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のユーザコンピュータから、伝送サーバに登録された第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.
検証する手段が、登録されたユーザコンピュータの全てに対する現在の接続状態を定期的に確認し更新するように構成され、この更新から、任意のユーザ状態がオンラインに変化したことが分かったときに、複数の記憶されたウォッチの中から対応するウォッチの存在を確認し、それが見つかった場合に、応答手段を活動化して見つかったウォッチに対応するメッセージを送信する、請求項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.
第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のユーザコンピュータと伝送サーバの間で第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.
伝送サーバにおいて第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の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.
第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.
非対称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の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の非対称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.
伝送制御プロトコル/インターネットプロトコル(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.
送信する段階が、ローカル伝送サーバの負荷が、同じ地理的位置にあるピアサーバのいずれかの負荷よりも極めて大きい場合に、最も小さい負荷を有するローカルユーザコンピュータと同じ地理的位置にあるピア伝送サーバに接続すべきであることを示す応答を送る送信段階とを含む、請求項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から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.
送信段階が、ローカル伝送サーバの負荷が、同じ地理的位置のいずれかの子サーバの負荷よりも著しく大きい場合に、最も小さい負荷を有するローカルユーザコンピュータと同じ地理的位置にある子伝送サーバに接続するべきであることを示す応答をローカルユーザコンピュータに送る段階を含む、請求項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.
第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の階層レルムの主ノードを第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の階層レルムの認証サーバに対して認証する段階とを含む、請求項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.
請求項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.
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)
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)
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)
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 |
-
2004
- 2004-06-28 GB GBGB0414415.0A patent/GB0414415D0/en not_active Ceased
-
2005
- 2005-06-28 CA CA002572027A patent/CA2572027A1/en not_active Abandoned
- 2005-06-28 KR KR1020077002255A patent/KR20070092196A/en not_active Application Discontinuation
- 2005-06-28 CN CNA2005800250716A patent/CN101053239A/en active Pending
- 2005-06-28 AU AU2005256849A patent/AU2005256849A1/en not_active Abandoned
- 2005-06-28 WO PCT/GB2005/002509 patent/WO2006000802A2/en active Application Filing
- 2005-06-28 JP JP2007518679A patent/JP2008508573A/en active Pending
- 2005-06-28 EP EP05755600A patent/EP1769620A2/en not_active Withdrawn
Cited By (4)
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 |