WireGuardとは|シンプルな構成でVPNを実現する技術

当ページは検証・整備中のドラフトです。
内容は実環境での検証や追加調査により変更される予定です。
参照:ページ公開・更新ポリシー

WireGuardとは

WireGuardは、暗号化されたVPNトンネルを構築するための通信プロトコルおよびソフトウェアである。

インターネットなどのネットワーク上に暗号化された通信経路を作り、離れた端末やネットワークを接続する。

WireGuardは機能や暗号方式を絞ったシンプルな設計を特徴とする。Linuxをはじめ、Windows、macOS、Android、iOSなど複数のOSで利用できる。

WireGuardそのものはVPNサービスではない。VPN接続を実現する基盤技術であり、ルーターやVPNサービス、リモートアクセス機能にも組み込まれている。

WireGuardはどのような仕組みで通信するのか

WireGuardでは、通信する端末やルーターなどをPeer(ピア)として扱う。

基本的な構成は次のようになる。

端末・ルーター
      │
      │ 暗号化されたVPNトンネル
      │
端末・ルーター

各ピアにWireGuardを設定し、通信相手を登録することで暗号化されたトンネルを構築する。

リモートアクセスVPNでは片方が接続を待ち受けるため、利用上はサーバーとクライアントのように見える。一方、WireGuardの設定では双方をピアとして扱う。

WireGuardでは公開鍵と秘密鍵をどのように使うのか

WireGuardでは、各ピアが秘密鍵と公開鍵の組み合わせを持つ。

秘密鍵は自身で保持し、通信相手には公開鍵を登録する。

ピアA                          ピアB

秘密鍵A                       秘密鍵B
公開鍵A ─────────────────→ 登録
      登録 ←───────────────── 公開鍵B

秘密鍵そのものを通信相手へ渡す必要はない。

この鍵を使って通信相手を識別し、暗号化されたVPNトンネルを構築する。利用者名とパスワードを入力して接続するVPNとは、認証の考え方が異なる。

WireGuardはなぜシンプルで軽量なのか

WireGuardは、VPNトンネルの構築に機能を絞っている。

使用する暗号技術もあらかじめ定められており、利用者が多数の暗号方式から組み合わせを選択する構成ではない。

設定項目が比較的少なく、実装のコードベースも小さい。

この設計によって設定や実装の複雑さを抑え、通信処理のオーバーヘッドも小さくしている。高速なVPN通信を実現しやすいこともWireGuardの特徴である。

WireGuard単体では提供しない機能

WireGuardはVPNトンネルを構築する技術であり、組織でVPNを運用するための機能一式を提供する製品ではない。

例えば、次の機能はWireGuardそのものには含まれない。

  • 利用者アカウントの管理
  • Web管理画面
  • 組織内の端末管理
  • 多要素認証
  • 鍵の配布や回収を行う管理基盤

これらは、WireGuardを利用する製品やサービス側で補う。

WireGuardの構成がシンプルなのは、VPN接続以外の管理機能まで一つの仕組みに含めていないこととも関係している。

WireGuardとIPsec・OpenVPNの違い

WireGuard、IPsec、OpenVPNはいずれもVPNの構築に利用できるが、設計や構成が異なる。

技術主な特徴
WireGuard機能と暗号方式を絞ったシンプルで軽量な設計
IPsec標準化された複数のプロトコルを組み合わせ、多様な構成に対応する
OpenVPNTLSを利用し、幅広い環境や構成に対応する

WireGuardは、設定項目や暗号方式の選択を減らす方向で設計されている。

IPsecやOpenVPNは長年利用されており、既存設備との互換性や構成の柔軟性が求められる環境でも使われている。

WireGuardを利用する製品やサービス

WireGuardは単体で利用するだけでなく、VPN製品、ルーター、リモートアクセスサービスなどの基盤技術としても使われている。

この場合、利用者がWireGuardの鍵や設定ファイルを直接管理するとは限らない。

製品やサービス側が接続設定、鍵の管理、利用者の招待などを担うことで、WireGuardを直接設定せずにVPNを利用できるものもある。

UniFiのTeleportも、WireGuardを基盤としてリモートアクセスを提供する機能の一つである。

参考:UniFi Teleportとは

まとめ

WireGuardは、ネットワーク上に暗号化されたVPNトンネルを構築する通信プロトコルおよびソフトウェアである。

各ピアが公開鍵と秘密鍵を持ち、登録した通信相手との間に暗号化された通信経路を構築する。

機能や暗号方式を絞ることで、シンプルで軽量な設計を実現している。一方、利用者管理、多要素認証、鍵の配布などの管理機能はWireGuard単体では提供しない。

WireGuardを直接構成するほか、WireGuardを基盤とした製品やサービスから利用する方法もある。