WireGuard (VPN プロトコル)(ワイヤガード)
Jason A. Donenfeld 開発の現代VPNプロトコル。Linux 5.6 (2020) で標準統合・4,000 LoC ・Curve25519 + ChaCha20 採用、OpenVPN / IPSec 後継として急速普及。
概要
WireGuard はJason A. Donenfeld (Edge Security 創業者) が2015年から主導開発した現代VPN プロトコル + Linux 実装。2020年3月Linux 5.6 でメインライン統合・OpenVPN (100,000+ LoC) / IPSec (600,000+ LoC) と比べ約4,000 LoC の極小実装・Curve25519 ECDH + ChaCha20-Poly1305 + BLAKE2 + SipHash の現代暗号採用・形式的検証済プロトコルで、性能 / セキュリティ / シンプルさを高水準で実現。
WireGuard 主要特徴
| 項目 | OpenVPN | IPSec | WireGuard |
|---|---|---|---|
| LoC | 100,000+ | 600,000+ | 4,000 |
| プロトコル設計 | TLS ベース | 複雑 | シンプル |
| 暗号化 | AES-GCM | AES-GCM 等 | ChaCha20-Poly1305 |
| 鍵交換 | TLS | IKE | Curve25519 |
| ハッシュ | SHA256 | SHA256 | BLAKE2 |
| 認証 | 公開鍵 / 証明書 | 多 | 公開鍵のみ |
| UDP / TCP | 両方 | 両方 | UDP のみ |
| 性能 | 中 | 中 | 業界最高 |
| 設定容易性 | 複雑 | 非常複雑 | 簡単 |
| クライアント | 全主要OS | 全主要OS | 全主要OS |
暗号スイート (固定・1種類のみ)
WireGuard は「Cryptographic Agility」(複数アルゴリズム選択) を意図的に拒否し、固定暗号スイート1種類のみ採用:
- 鍵交換: Curve25519 (Noise IK pattern)
- 暗号化: ChaCha20-Poly1305 AEAD
- ハッシュ: BLAKE2s
- メッセージ認証: BLAKE2s
- ハンドシェイク: Noise Protocol Framework
将来暗号破られたら全プロトコル更新する設計選択。
設定例
# /etc/wireguard/wg0.conf
[Interface]
PrivateKey = <自分のPrivateKey>
ListenPort = 51820
Address = 10.0.0.1/24
[Peer]
PublicKey = <相手のPublicKey>
AllowedIPs = 10.0.0.2/32
Endpoint = peer.example.com:51820
PersistentKeepalive = 25
wg-quick up wg0
数行で完全VPN 構成・OpenVPN 等の複雑設定不要。
主要採用先
| プロバイダ | 採用 |
|---|---|
| Mullvad VPN | 標準 |
| NordVPN (NordLynx) | カスタム実装 |
| ProtonVPN | 標準 |
| Surfshark | 標準 |
| ExpressVPN (Lightway) | 別プロトコル開発 |
| TailScale | Mesh VPN 基盤 |
| Cloudflare WARP | 内部利用 |
| Microsoft Azure VPN Gateway | サポート |
TailScale との関係
TailScale (2020-) は WireGuard をベースに「Mesh VPN」を実現するサービス。各デバイスがTailScale CoordinatorServer 経由でPublic Key を交換→ピア間直接WireGuard 接続。中央サーバ経由トラフィック不要 (Coordinator はKey 交換のみ)、企業 / 個人で人気急上昇。
Linux 統合の意義
Linus Torvalds は2018年「WireGuard をうちにkernel 取り込みたい (Can I, just once again, state my love for it, and hope it gets merged soon?)」と異例の絶賛。in-tree 採用で:
- 全 Linux カーネルに標準搭載
- パフォーマンス最適化
- DKMS 不要
- セキュリティ更新がカーネル更新と同期
関連用語との違い
- vs OpenVPN: 100,000+ LoC / 4,000 LoC・複雑 / シンプル
- vs IPSec: 600,000+ LoC / 4,000 LoC
- vs Tailscale: Mesh VPN プロダクト / プロトコル
FAQ
Q1: スマホで使える? A: iOS / Android アプリ公式提供 (App Store / Play Store)。設定QR コードで簡単インポート。
Q2: 企業環境? A: AWS VPN Gateway / Azure / GCP WireGuard サポート。TailScale / Netbird で SDN-WAN として普及。
Q3: セキュリティ実績? A: 学術検証多数・Tamarin Prover / ProVerif で形式的検証済・実装エラー皆無。OpenVPN / IPSec より堅牢。