WireGuardとは
WireGuardとは、Jason A. Donenfeldによって開発されたオープンソースのVPNソフトウェアである。ライセンスはGPLv2、開発言語はC、Goでかかれており、Linuxカーネル内のモジュールとして提供されている。
今までVPNを利用する際、その多くはOpenVPNやIPsecプロトコルという接続方式を利用するのが一般的だった。しかしOpenVPNやIPSecなどのVPNサーバーの設定は、一般のユーザには非常にハードルが高く、構築するのは簡単ではない。一方WireGuardは、SSHのようにシンプルかつ簡単にセットアップが可能なことを目指して開発されている。そのため、WireGuaedを利用すると、いくつかの設定と秘密鍵の生成・公開鍵の交換をするだけで、セキュアな通信を行うことが可能となる。またWireGuardは、最先端かつ信頼のできる暗号方式を採用しており、Curve25519やChaCha20、Poly1305などの暗号技術が利用されている。また、WireGuardは効率よく通信ができるように設計されていることから、OpenVPNやIPSecよりも高速に動作すると報告されています。これらのことから、WireGuardは次世代のVPNサーバとして期待されている。この記事では、WireGuardの特徴や設定について解説する。
WireGuardの安全性
WireGuardは、最先端かつ安全で信頼できる暗号方式で認証を行っている。具体的には以下の技術を利用して暗号化を行う。
- Curve25519
- ChaCha20
- Poly1305
- BLAKE2
- SipHash24
- HKDF
WireGuardの特徴
WireGuardには以下のような特徴がある。
高速に動作する
WireGuardは、従来のVPNソフトウェアよりも効率よく通信ができるよう設計されている。そのため、VPN機器よりも高速な通信を行う事が可能となる。現状OpenVPNやIPsecよりも高速に動作すると報告されている。また、一般的なVPN技術は古い暗号形式を使用しており、ソースコードが比較的大規模であるが、WireGuardの設計では、デフォルトで管理しやすく、通常のVPNよりもセキュリティ監視が容易である。
クロスプラットホーム
WireGuardは、Linuxカーネル用に最初はリリースされたが、ユーザランドで動作するWireGuardも実装されているため、現在ではLinux以外のさまざまなOS(Windows/macOS/iOS/Androidなど)に対応している。そのため、特別なマシンを用意することなくVPNの利用が可能となる。
ライセンスフリー
従来のVPN機器やソフトウェアは、ユーザ数でライセンス料金が跳ね上がる場合や、OSSのVPNであっても重要な機能を使うためにはエンタープライズライセンスの購入が必要となる場合がある。しかしWireGuardは、オープンソースとして存在しているためライセンス費用がかからずコストを抑えて利用できる。
他のVPNソフトウェアと比較して導入が安易にできる
VPNサーバの設定は非常に複雑で、一般のユーザが設定を行うには非常に難しい。その反面WireGuardの設定は、wgコマンドを使用し、鍵を作成するなど、いくつかの設定と秘密鍵の生成、公開鍵の交換を行うだけでセキュアな接続が可能となる。
クライアントの設定が簡単
Windows/macOSのクライアントは、WireGuardの設定をインポートする機能が備わっているため、管理者が設定したものをクライアントに配布することで、クライアントは設定を追加するだけでVPNが利用となる。またOS/Androidでは、設定をQRコードにして読み取ることでVPN接続ができる。
WireGuardの設定
WireGuardはLinux OSであれば、導入可能である。また、WireGuardはディストリビューション毎にパッケージやバイナリ配布がされているため、容易にインストールを行う事が可能である。現在は以下のようなディストリビューションをサポートしている。
- Ubuntu 16/18
- Debian
- Fedora
- OpenSuse
- Red Hat Enterprise Linux 7/8
- CentOS 7/8
- Alpine
- Gentoo
- Arch
WireGuardの利用パターン
WireGuardはメリットも多い反面、運用の面においては、コマンドラインの設定が必要であったり、公開鍵認証の仕組みで認証を行っているため、秘密鍵(Private Key)・公開鍵(Public Key)が漏洩してしまうと、誰でも簡単にアクセスができ、情報漏洩のリスクが高いという、解決するべき問題がある。また、現状WireGuardには鍵をうまく保護する仕組みがないため、認証機能は非常に弱いという欠点もある。
これらのことから、WireGuardは管理者だけがアクセスできるような、拠点間のVPNやクラウド環境へアクセスするVPNシステムに適していると言える。WireGuardの利用パターン及び注意点は以下である。
通常のVPNとして利用
VPN接続は近年のコロナウィルスの影響で、在宅勤務には必須の設備になってきている。WireGuardは、Linux以外にもさまざまなOSに対応しているため、通常のVPNシステムとしての利用が可能であるが、上記のように鍵が漏洩してしまうと誰でも簡単にアクセスできてしまう問題があるため、鍵の管理を厳重に行う必要がある。
拠点間VPNとしての利用
拠点間やクラウドとの接続を行うVPNサーバとして利用する場合であれば、VPNの設定を変更したり参照できるのは管理者に限られるため、鍵の漏洩リスクは低い。そのため、WireGuardは拠点間のVON接続に向いていると考えられる。
デージーネットでは
デージーネットでは、この課題を踏まえ、GUIソフトウェアの調査や、認証の仕組みの方法の改善などに取り組んでいる。WireGuardのインストールやログイン方法、製品との検証に関する詳しい情報は、WireGuard調査報告書に記載されている。
また、デージーネットではWireGuardのようなVPN接続以外にも、リモートワークに必要なオープンソースソフトウェアを企業や自治体に導入している。リモートワークに利用されるソフトウェアとしては、Web会議のOSSであるJitsi, OSSのビ ジネスチャットシステムのRocket.Chat, 文書管理のOSSであるFess, ワンタイムパスワード認証を実現するGoogle Authenticator, オンラインストレージのNextcloudなどが挙げられる。
【カテゴリ】:オープンソースソフトウェア  セキュリティ  
【Webセミナー】Rocket.Chatだけじゃない!OSSビジネスチャットの最新情報
日程: | 12月19日(木)Webセミナー「BigBlueButton」を使用します。 |
内容: | Rocket.Chatの機能制限でお困りの方も必見!ライセンスフリーで利用できるOSSのビジネスチャットを紹介します。 |
ご興味のあるかたはぜひご参加ください。 |