安全なVPNネットワークを簡単に構築できる「Tailscale」の仕組みとは – GIGAZINE


リモートワークの普及に伴い、安全かつ効率的なネットワークアクセスが必要となっています。インストールが簡単で安全なVPNを構築できるTailscaleが、どのような技術で実現されているかを、創業者のAvery Pennarun氏が技術的に解説しています。

Tailscale: How it works
https://tailscale.com/blog/how-tailscale-works

◆ネットワークの基盤:WireGuard
Tailscaleの基盤となるのは、オープンソースのWireGuardパッケージです。具体的には、ユーザースペースのGo実装である「WireGuard/wireguard-go」を使用しています。WireGuardは、「ノード」と呼ばれるコンピューター・仮想マシン・コンテナ間に、極めて軽量な暗号化トンネルを作成します。

◆ハブアンドスポーク型ネットワーク
従来のVPNは、各クライアントデバイス(ノートPCなど)が中央の「コンセントレーター」またはVPNゲートウェイに接続する「ハブアンドスポーク」アーキテクチャを採用しています。


ハブアンドスポークはうまく機能しますが欠点があります。通常、企業は単一のVPNコンセントレーターを構成してからセカンダリトンネルをセットアップしますが、スケールが難しい場合が出てきます。まず、リモートユーザーはVPNコンセントレーターに近い場合も遠い場合もあります。遠い場合は、接続時に高いレイテンシーが発生します。次に、到達したいデータセンターもVPNコンセントレーターに近くない場合があります。遠い場合は、再び高いレイテンシーが発生します。


WireGuardは軽量なトンネルを作成するため、マルチハブセットアップを大きな問題なく作成できます。唯一の問題は、各ノードに静的IPアドレス・開いたファイアウォールポート・WireGuard鍵のセットが必要になることです。さらにユーザーやサーバーを追加する場合、新しい鍵をクライアントやサーバーすべてに配布する必要があります。


◆メッシュネットワーク
ハブアンドスポークでは個々のノード同士が直接通信できませんが、コンピューター同士がクラウドを使わずに直接ファイルをやりとりできる形式があります。全てのノードが他のノードと直接接続する構成で「メッシュネットワーク」と呼ばれます。


メッシュネットワークでは、効率の良いピアツーピアアプリを設計できますが、10ノードのネットワークには10×9=90のWireGuardトンネルエンドポイント設定が必要になります。すべてのノードは自分の鍵に加えてさらに9つの鍵を知る必要があり、鍵を更新したりユーザーを追加・削除したりするたびに、各ノードを更新する必要があります。さらに、ノードは何らかの方法でお互いを見つける必要があります。ユーザーデバイスが静的IPアドレスを持つことはめったにありません。また、カフェ・ホテル・空港などの公共施設ではファイアウォールにより簡単にポートを開くこともできません。会社にコンプライアンス要件がある場合、すべてのノード間のトラフィックをブロックおよび監査できる必要があります。

◆コントロールプレーン:鍵交換と調整サーバー
メッシュネットワークを構築するにはTailscaleノードソフトウェアを使い、調整サーバーとして動作するlogin.tailscale.comとやり取りします。ハブアンドスポーク方式と似ていますが、暗号鍵をやり取りしネットワークのポリシーを設定する役割だけを担います。


従来のVPNコンセントレーターは管理とデータ転送の両方を中央集中化し、パフォーマンスに限界が生じますが、Tailscaleのデータ処理能力はノード数に応じてスケールアップします。

・各ノードは自分自身のためにランダムな公開鍵・秘密鍵のペアを生成し、公開鍵を自分のIDに関連付けます。
・調整サーバーに接続し、公開鍵とノードが現在どこにあるのかリストを作成します。
・公開鍵とアドレスのリストをダウンロードします。
・適切な公開鍵のセットでWireGuardインスタンスを構成します。

ハブアンドスポーク型ネットワークとは異なり、暗号化されていないパケットは送信されないため内容が解析され漏えいすることもありません。

◆ログインと2要素認証
調整サーバーからどの公開鍵をどのノードに送信するかは、調整サーバーへの認証により決定されます。認証はGmail・G Suite・Office 365など、OAuth2・OIDC(OpenID Connect)・SAMLプロバイダーに認証を任せることで、ユーザーアカウントまたは証明書のセットをTailscale側で保存する必要がなくなり、個人識別情報を最小限に抑えながら、信頼性の高いサービスを運用できます。

また、Tailscaleはログインした瞬間に即座にアクティブ化できます。例えばApp StoreからmacOS/iOSアプリをダウンロードしてアカウントにログインすると、ドメイン用の安全な鍵のドロップボックスが即座に作成され、関連するアカウント・ドメイン内の他のデバイスと公開鍵を交換できます。各ノードが他の各ノードへの超軽量トンネルでWireGuardを構成し、すぐにメッシュネットワークが完成する、というわけです。


◆NATトラバーサル
静的IPアドレスや開いたポートがない、NATが2つ重なっているなど通信が困難な環境でも、TailscaleはSTUN/ICEに基づいた非常に高度な技術で接続を機能させることができます。ファイアウォール構成の変更やポートの解放の必要性がなくなり、人的エラーの可能性が大幅に減少します。


◆暗号化されたTCPリレー(DERP)
さらに厳しいネットワークの中には、UDPを完全にブロックし、STUNとICEを使用してもトラバースできないほど厳格なものがあるため、TailscaleはDERP(Designated Encrypted Relay for Packets)サーバーのネットワークを提供しています。ICE標準のTURNサーバーと同じ役割を果たしますが、従来のTURNの推奨方式の代わりにHTTPSストリームとWireGuard鍵を使用します。


◆ACLとセキュリティポリシー
Tailscaleでは、セキュリティポリシーを調整サーバーに1か所に保存し、各ノードに自動的に配布することで、ポリシーの中央制御を持ちながら、効率的で分散された実施が可能になります。


より詳細なレベルでは、調整サーバーは接続するノードの公開鍵のみを各ノードに与えることによってノードを保護します。他のコンピューターは、暗号化されたパケットをデコードできず、接続を要求することすらできないため、非常に強力な保護モデルです。事実上あらゆる種類のプロトコルレベルの攻撃を防ぎます。結果、Tailscaleは更新を受け取らなくなったレガシーの非ウェブベースサービスの保護に特に優れています。

◆監査ログ
Tailscaleでは各ノードからすべての内部ネットワーク接続を非同期で調整サーバーのロギングサービスに記録できます。送信元マシンと宛先マシンの両方で記録されるので、ログを改ざんすることが非常に困難となっています。Tailscaleのロギングサービスは制御可能な保持期間があり、どのように接続が確立されているかに関するメタデータのみをログに記録し、操作履歴や個人情報は記録しません。

◆段階的な展開
Tailscaleは段階的な展開にも適しています。2つのデバイスにTailscaleノードソフトウェアをインストールし、同じユーザーアカウントまたは認証ドメインで両方のデバイスにログインするだけです。既存のネットワークの上で実行できるので、既存のインフラストラクチャとセキュリティ設定を中断することなく、安全に展開できます。

◆ゼロトラストネットワーキング
最終的に「ゼロトラストネットワーキング」と呼ばれる常に相互を認証することで通信の安全性を確保するネットワークが構築され、古い規格または暗号化されていないアクセス方法を安全に排除することができます。

この記事のタイトルとURLをコピーする


ソース元はコチラ

この記事は役に立ちましたか?

もし参考になりましたら、下記のボタンで教えてください。

関連記事