「Hamachi」の版間の差分
m ロボットによる 変更: en:Hamachi (software) |
m編集の要約なし |
||
24行目: | 24行目: | ||
== 概要 == |
== 概要 == |
||
=== 動作の仕組み === |
=== 動作の仕組み === |
||
Hamachiをインストールすると、仮想ネットワークインターフェイスが生成される。そのインターフェイスに送信された[[Internet Protocol|IP]]および[[IPX/SPX|IPX]]パケットは、実ネットワークの[[UDP]]プロトコルを使用して相手ホストに転送される。これにより、既存の[[TCP/IP]]の[[ルーティング]]テーブルを用いてルーティングを行うことができる。 |
Hamachiをインストールすると、仮想ネットワークインターフェイスが生成される。そのインターフェイスに送信された[[Internet Protocol|IP]]および[[IPX/SPX|IPX]]パケットは、実ネットワークの[[User Datagram Protocol|UDP]]プロトコルを使用して相手ホストに転送される。これにより、既存の[[TCP/IP]]の[[ルーティング]]テーブルを用いてルーティングを行うことができる。 |
||
Hamachiを起動すると、まず、クライアントはサーバへの制御用接続を確立し維持する。クライアントとサーバとの間で認証が行われ、その後、他のメンバーとの間でネットワークの状態の同期が行われる。ネットワークのメンバーの参加状態が変化した時、サーバはそのメンバーに対して他のメンバーがトンネルを形成、或いは解除するよう指示する。メンバー間でトンネルを形成する時、サーバの補助を受けて、クライアントは[[NAT通過]]技術を使用する。このNAT通過技術の詳細は公表されていないが、「全体の約95%のケースでうまくP2P接続を成立させる」とベンダーは主張する。このプロセスはNAT機器の特定の組合せでは働かず、NAPT通過が行えない場合、仲介サーバーによってトラフィックを中継する。 |
Hamachiを起動すると、まず、クライアントはサーバへの制御用接続を確立し維持する。クライアントとサーバとの間で認証が行われ、その後、他のメンバーとの間でネットワークの状態の同期が行われる。ネットワークのメンバーの参加状態が変化した時、サーバはそのメンバーに対して他のメンバーがトンネルを形成、或いは解除するよう指示する。メンバー間でトンネルを形成する時、サーバの補助を受けて、クライアントは[[NAT通過]]技術を使用する。このNAT通過技術の詳細は公表されていないが、「全体の約95%のケースでうまくP2P接続を成立させる」とベンダーは主張する。このプロセスはNAT機器の特定の組合せでは働かず、NAPT通過が行えない場合、仲介サーバーによってトラフィックを中継する。 |
||
38行目: | 38行目: | ||
Hamachiは下記の方法を用いて、互いに別のNATを利用するホスト同士の直接通信を可能にしている。 |
Hamachiは下記の方法を用いて、互いに別のNATを利用するホスト同士の直接通信を可能にしている。 |
||
NAT機器は、[[LAN]]側のホストから[[WAN]]側のホストへのUDPパケット送信が開始された際、WAN側に返信用の不定なポート番号を一時的に割り当てる。Hamachiが通信を開始する際は、以前に割り当てられたWAN側のポート番号から、次に割り当てられるポート番号をお互いに'''推測'''し、2つのホストが同時に推測した相手方のポート番号に向かって[[UDP]]の送信を開始する。送受信が開始された後は、一定間隔で空のパケット(Keep Aliveパケット)を送り続け、タイムアウトにならないようにすることでその後の通信を継続する。 |
NAT機器は、[[LAN]]側のホストから[[WAN]]側のホストへのUDPパケット送信が開始された際、WAN側に返信用の不定なポート番号を一時的に割り当てる。Hamachiが通信を開始する際は、以前に割り当てられたWAN側のポート番号から、次に割り当てられるポート番号をお互いに'''推測'''し、2つのホストが同時に推測した相手方のポート番号に向かって[[User Datagram Protocol|UDP]]の送信を開始する。送受信が開始された後は、一定間隔で空のパケット(Keep Aliveパケット)を送り続け、タイムアウトにならないようにすることでその後の通信を継続する。 |
||
ポート番号の推測は、ほとんどのNAT機器がWAN側の返信用ポート番号を規則的に(たとえば1ずつ増やして)割り振る性質があることを利用している。従って、一部のNAT機器はHamachiを通さない物がある。 |
ポート番号の推測は、ほとんどのNAT機器がWAN側の返信用ポート番号を規則的に(たとえば1ずつ増やして)割り振る性質があることを利用している。従って、一部のNAT機器はHamachiを通さない物がある。 |
2010年10月25日 (月) 00:53時点における版
開発元 | LogMeIn, Inc. |
---|---|
最新版 | |
対応OS | Windows,Linux,Mac OS X |
プラットフォーム | フリーウェア |
種別 | ピア・ツー・ピア、VPN |
ライセンス | プロプライエタリ(非商用に限りフリーライセンス) |
公式サイト | www.hamachi.cc |
Hamachi(ハマチ)は、P2P技術を使用してVPN(仮想プライベートネットワーク)を実現するソフトウェアである。カナダのLogMeIn社が開発し、ベータ版がフリーウェアとして公開されている。エンドユーザのPCにインストールされるクライアントソフトウェアと、ベンダーであるLogMeIn社によって管理されるサーバクラスタとからなる中央管理型のVPNシステムである。
このソフトは、NAT機器を利用するホスト同士の間においてもVPN接続を行えることが特徴である。Applied Networking社の仲介サーバでNAT機器のグローバルIPアドレスを交換することで、P2PによるVPN接続を行い、P2P接続が行えない場合は仲介サーバを経由してデータの送受信を行う。
公式サイトで「ゼロコンフィギュレーション(設定不要)」を謳っているとおり、インストールと僅かな設定のみでVPN接続を行うことができる。
概要
動作の仕組み
Hamachiをインストールすると、仮想ネットワークインターフェイスが生成される。そのインターフェイスに送信されたIPおよびIPXパケットは、実ネットワークのUDPプロトコルを使用して相手ホストに転送される。これにより、既存のTCP/IPのルーティングテーブルを用いてルーティングを行うことができる。
Hamachiを起動すると、まず、クライアントはサーバへの制御用接続を確立し維持する。クライアントとサーバとの間で認証が行われ、その後、他のメンバーとの間でネットワークの状態の同期が行われる。ネットワークのメンバーの参加状態が変化した時、サーバはそのメンバーに対して他のメンバーがトンネルを形成、或いは解除するよう指示する。メンバー間でトンネルを形成する時、サーバの補助を受けて、クライアントはNAT通過技術を使用する。このNAT通過技術の詳細は公表されていないが、「全体の約95%のケースでうまくP2P接続を成立させる」とベンダーは主張する。このプロセスはNAT機器の特定の組合せでは働かず、NAPT通過が行えない場合、仲介サーバーによってトラフィックを中継する。
仮想インターフェース
HamachiクライアントをインストールしたPCの仮想ネットワークインタフェースには、5.0.0.0/8アドレスブロックからIPアドレスが一意に割り当てられる。このアドレスは、クライアントが初めてシステムにログインするときに割り当てられ、その後はクライアントの公開暗号鍵と関連付けられる。クライアントがその暗号鍵を保持する限り、この5.x.x.x IPアドレスを使用してシステムにログインする。
5.0.0.0/8ネットワークは、10.0.0.0/8、172.16.0.0/12、192.168.0.0/16等の、プライベートネットワークとの衝突を避けるのに用いられる。5.0.0.0/8アドレスブロックはIANAに保持されており、現在インターネットルーティング領域で使用されていない。しかし、新規割り当て用のIPv4アドレスの不足により、今後5.0.0.0/8アドレスブロックが新たに割り当てられるならば、HamachiをインストールしているPCはインターネットに接続することが出来ない。これは同一のIPアドレスがインターネットに複数存在することを防ぐためである。
NATの内側(LAN側)にある2つのホストの接続
LAN側からWAN側に通信が開始される際、NAT機器はWAN側のIPアドレス:ポート番号を一時的にLAN側のIPアドレス:ポート番号に割り当てて双方向に通信を行う(IPマスカレード)。そのため、通常はWAN側からLAN側のホストに接続を確立できない。従って、2つのホストが互いに別のNATのLAN側にある場合は、どちらからも接続が確立できないため、直接通信することができない。
Hamachiは下記の方法を用いて、互いに別のNATを利用するホスト同士の直接通信を可能にしている。
NAT機器は、LAN側のホストからWAN側のホストへのUDPパケット送信が開始された際、WAN側に返信用の不定なポート番号を一時的に割り当てる。Hamachiが通信を開始する際は、以前に割り当てられたWAN側のポート番号から、次に割り当てられるポート番号をお互いに推測し、2つのホストが同時に推測した相手方のポート番号に向かってUDPの送信を開始する。送受信が開始された後は、一定間隔で空のパケット(Keep Aliveパケット)を送り続け、タイムアウトにならないようにすることでその後の通信を継続する。
ポート番号の推測は、ほとんどのNAT機器がWAN側の返信用ポート番号を規則的に(たとえば1ずつ増やして)割り振る性質があることを利用している。従って、一部のNAT機器はHamachiを通さない物がある。
セキュリティ
HamachiはVPN接続を構築するため、他のVPNと同様の危険性を持つ。具体的には、NAT機器やファイアウォールが迂回される為、リモートマシンのサービスの脆弱性による問題が発生する可能性がある。VPNを利用してLANのようにコンピュータを接続する場合、ファイアウォールなどのセキュリティの設定、管理はしっかりと行うべきである。
また、Hamachiが動作する為には、ベンダーによって運用される「仲介サーバー」が必要である。このサーバーは、ニックネーム、メンテナンスパスワード、静的に割り当てられた5.0.0.0/8 IPアドレス、及び、それらに関連付けられたユーザー認証トークンを保存する。全ての確立したトンネルに対して、サーバはユーザの本来のIPアドレス、確立時刻、継続時間、及び他の相互接続しているユーザーなどの情報を記録している可能性がある。
Hamachiは安全のために業界標準の強固なアルゴリズムを使用してデータを認証し、そのセキュリティアーキテクチャは公開されていると主張している。しかし、Hamachiのソースコードは公開されておらず、不特定多数による再検討は行えない。
Security Now!podcastで、Steve GibsonはHamachiを「最新の、長い発展ベータ段階から出す準備ができた、超安全、軽量、高性能、非常に洗練された、マルチプラットフォーム、ピアツーピア、そして、自由な!個人で扱えるVPNシステム」と言い、そして「システムのセキュリティアーキテクチャを完全に入念に検査した」と言った。
次のエピソードはRandal Schwartzによる質問である。「Hamachiはオープンソースではありません。我々はどうしてそれを信用できますか」「それは私が憂慮させられたものの一つで、私を憂慮させつづけています。私はおそらく最後はOpenVPN上に落ち着くつもりです。」「しかしHamachiは・・・。私はAlex Pankratovがこのシステムを本当に、彼が私に話したその通りに設計したと確信しています。彼はクラシックVPNのセキュリティにおける解決法、IPSecトンネルの実装に接した経験の年月を持ちます。私は、私が行った全面的なソース検査の実施不足については気を晴らせません。・・・それは現実的ではありません。それは確かに本当です。それでも・・・つまり、我々がWindowsを使うとき、我々はBillを信用します」「私はアレックスが私に真実を話したと確信します、しかし、私はその証明を持ちません」
関連項目
- UDPホールパンチング
- Simple traversal of UDP over NATs(STUN)
- Traversal Using Relay NAT(TURN)
- port restricted cone NAT
外部リンク
- 公式サイト
- LogMeIn, Inc./Hamachi公式サイト
- hamachiで簡単にネットワークを構築やってみよう(開発者公認)
- HamachiNetworks.com ネットワークリストhamachi (英語)
- NETWORKSHAMACHI.COM Hamachiはネットワークの一覧