WireGuardとOpenVPN、分散型VPNの比較　(詳細ver.)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3672851/964f62a4-c5a0-b710-5c96-ab1e16a098ec.png)

暗号化はオンラインデータセキュリティのための強力な技術です。仮想プライベートネットワーク（VPN）と組み合わせることで、ユーザーはオンライントラフィックのエンドツーエンドの暗号化とIPアドレスの隠蔽を得ることができます

https://qiita.com/pseudonym2/items/6c48710f79cce6d77656


VPNは、ユーザーのデバイスと公共のウェブの間を通過するデータを暗号化するために、専門のプロトコルを使用します.
WireGuardとOpenVPNは、現代のVPNで暗号化ルーティングに必要なインフラを提供するために広く使用されている2つのソフトウェアです。しかし、これらの違いは何でしょうか？技術的な考慮事項はかなり専門的で、ユーザーの具体的なニーズによります。そこで、Nymがそれらをすべて解説します。



オンラインでのプライバシーと匿名性を最終的に求めている場合、残念ながら暗号化だけでは不十分です。これは、暗号化されたコンテンツにもかかわらず、すべてのオンライントラフィックがメタデータを漏らし、ユーザーが何をしているか、誰とコミュニケーションをとっているか、何を求めているかを追跡するために使用されるためです。デジタルプライバシーのためには、複数のツールを持つことが必要です。本当に分散型のVPN（dVPN）を選び、最新の暗号プロトコルを使用し、設計上トラフィックログを保持できないものを選ぶことが重要です。

https://qiita.com/pseudonym2/items/9d45bf63ddfd17edd0ae


### VPN暗号化ルーティング
多くのユーザーはオンラインでのプライバシーを求めてVPNを利用します。

https://qiita.com/pseudonym2/items/974e07f10f61416d97fc

VPNは私たちのIPアドレスを彼らの公開IPに置き換えることで、オンラインでの匿名性を実現します。オンライントラフィックがVPNのサーバーを通過する際、まずデバイス上で暗号化され、データが傍受されるのを試みる外部の第三者に対して読み取れないようにします。これは、デバイスとサーバー間のVPNの暗号化トンネルと呼ばれます。

https://qiita.com/pseudonym2/items/474659fdac0a0531e589


ただし、VPNだけではサーバーと最終目的地間の暗号化は提供できません（これは接続しているウェブサービスによって行われるべきです）。接続先のウェブサービスが暗号化接続を持っている場合、VPNへのルート上での暗号化が二重になります。


VPNの暗号化機能は、WireGuardやOpenVPNのような専門のインターフェースによって実現されます。比較する前に、現代の暗号化ネットワークがどのように機能するかを見てみましょう。

### 暗号化通信プロトコル
オンラインデータの暗号化は基本的にデータを解読不能なコードに変換し、暗号化および復号化キーを持つ者だけがアクセスできるようにします。

これにより、ハッカーや監視によってデータが傍受されても読み取れないことが保証されます。

https://qiita.com/pseudonym2/items/634ad47a82a0b159c7fb




オンラインでの暗号化通信には、鍵交換、認証、暗号化データ転送の3つの主要な段階があります。オンラインで（個人やウェブサービスとプライベートに）通信する場合、各当事者は暗号化/復号化キーを所有している必要があります。そのため、鍵を安全に交換する手続きや、通信相手やサービスが本物であることを認証する手続きは、暗号化データ転送を開始する前に重要なステップです。

OpenVPNとWireGuardはこれらすべての段階を処理し、VPNを通過するデータの内容がポイントツーポイントで暗号化されることを保証します。ただし、暗号化はデータの内容を保護するだけであり、トラフィックのメタデータを保護することはできません。これは、暗号化では解決できない大きなプライバシー問題ですが、分散型VPNが解決できます。


# OpenVPNとは？
2001年に導入されたOpenVPNは、広く使用されている柔軟なオープンソースのルーティングプロトコルです。

https://ja.wikipedia.org/wiki/OpenVPN

多くの異なるオペレーティングシステム、ハードウェア、およびソフトウェアプログラムと互換性があります。また、大多数の従来のVPNサービスによって使用されています。さらに、さまざまな暗号化アルゴリズムおよび認証方法をサポートしており、ユーザーはニーズや使用ケースに応じてセキュリティ設定をカスタマイズできます。OpenVPNの暗号化にはOpenSSLライブラリを使用しており、広範な暗号方式の選択が可能です。これまでのところ、OpenVPNはVPN暗号化の業界標準とされています。

# WireGuardとは？
WireGuardは、比較的新しい非常に効率的なVPN暗号化プロトコルです。簡潔さと速度が特徴で、コードはわずか4000行であり、攻撃面積も小さくなっています。モダンな暗号化アルゴリズムと認証プロトコルであるChaCha20-Poly1305を使用しており、一部のシステムと互換性が低い可能性がありますが、人気が高まっています。また、認証にはCurve25519などの最新の暗号化プリミティブを使用し、ハッシュとキー付きハッシュにはBLAKE2を使用しています。

https://qiita.com/pseudonym2/items/2f18fb5ca1261fb50d96


OpenVPNと同様に、WireGuardもオープンソースであり、その短いコードにより、速度、実装の容易さ、および全体的な監査性が向上しています。

# OpenVPNとWireGuardの類似点
OpenVPNとWireGuardにはいくつかの重要な類似点があります：

### セキュリティ
正しく実装された場合、両方のプロトコルは既知の脆弱性がなく、堅牢なセキュリティを提供します。どちらもモダンな暗号化標準を使用していますが、暗号化アルゴリズムおよび認証方法はそれぞれ異なります。

### プライバシー
OpenVPNとWireGuardの両方は、VPNプライバシーサービスの基盤となる必要な暗号化プロトコルを提供します。ただし、これらのプロトコル自体は十分なプライバシーメカニズムではなく、同等の性能を発揮します。暗号化プロトコルがデータを保護する一方で、VPN自体のアーキテクチャを分析してプライバシー保護の範囲を決定する必要があります。

### オープンソース
OpenVPNとWireGuardの両方はオープンソースであり、誰でも基盤となるコードを閲覧できます。これは、会社のコーディング部門外の誰もがそのセキュリティ、効率、または問題を検証できないプロプライエタリソフトウェアとは対照的です。ただし、コードの監査のしやすさには重要な違いがあります。

### PFS
両方のプロトコルは、Perfect Forward Secrecy（PFS）をサポートしています。PFSは、暗号システムの機能の一つで、将来的に鍵が侵害された場合に過去のセッションを保護することを目的としています。サーバーのプライベートキーが侵害された場合でも、過去の通信で使用されたセッションキーは安全に保たれ、攻撃者が古いメッセージを復号することを防ぎます。

# OpenVPNとWireGuardの違い
暗号化ルーティングプロトコルの設計は非常に複雑で、多くの機能を比較する必要があります。以下に主要な違いを簡単にまとめます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3672851/14450b1a-06d1-3ea8-013b-ef150119ca0d.png)

それぞれの暗号化プロトコル、構造、機能の違いを詳しく説明しよう。

## スピード

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3672851/cd0bfafe-49ba-4786-11ba-ddeecf336c22.png)
WireGuardの明らかな強みは速度であり、OpenVPNに比べてダウンロード速度が50％以上速いです。なぜでしょうか？WireGuardのコードは簡潔で効率的ですが、OpenVPNのコードは広範で複雑であり、データオーバーヘッドが大きくなっています。さらに、WireGuardは独自で効率的な暗号化、キー認証、およびトランスポート層手続きを採用しており、非常にパフォーマンスの高いプロトコルとなっています。これにはセキュリティのトレードオフはありません。dVPNでのマルチホップルーティングには、この速度要因がWireGuardを選ぶ上で重要です。

## 互換性

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3672851/17b35aa0-9138-1b6d-4887-8210d72551dc.png)

###  OS互換性：
OpenVPNとWireGuardは、ほとんどの主要なオペレーティングシステムとデバイス（Windows、macOS、iOS、Android、Linux、およびBSDの現代版）と広く互換性があります。WireGuardは元々Linux用に設計されていたため、そのネイティブ設計はOpenVPNよりも統合の利点があるかもしれません。

### ルーター互換性：
WireGuardは一部のルーターと統合できますが、OpenVPNはVPNルーターとの互換性がはるかに広いです。これは、WireGuardが新しく、多くのルーターハードウェアがWireGuardが導入される前に設計および使用されていたためです。WireGuardの全体的な効率性を考えると、今後数年間でWireGuardのルーターとの互換性の向上が期待されます。

### 暗号化：
OpenVPNはユーザーが使用する暗号化アルゴリズムおよび認証プロトコルをカスタマイズできるのに対し、WireGuardは各段階で効率的なプロトコルを選択して使用します。暗号化のレベルだけで比較するのは難しいですが、カスタマイズは速度のトレードオフを伴います。

### Nymの見解：
OpenVPNは23年間の歴史があり、WireGuardはわずか4年です。多くの専門家によってそのコードがよく知られており、多くの従来のVPNによって使用されています。しかし、多くのこれらのVPNサービスプロバイダーにプライバシーの問題があるため、この事実をそのまま受け入れてはいけません。最終的に、WireGuardのVPNルーターとのハードウェア互換性の欠点は今後数年間で解決される可能性が高いため、Nymはこれを引き分けと判断します。

## 暗号化と認証
読者はOpenVPNとWireGuardの暗号化プロトコルの仕様をチェックできます。以下はNymの解説です：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3672851/efa16d2a-7a3d-5f1f-e30a-091435fc532f.png)

## 暗号化プロトコル

・OpenVPNはOpenSSLライブラリを使用しており、クライアントやプログラマーが選択できる暗号化方式の幅広い選択肢を提供しています：多くの（128ビットおよび256ビット版）のAESだけでなく、Blowfish、Camellia、およびChaCha20のような現代のアルゴリズムも含まれます。これは、ハードウェアやプログラミングのニーズに応じて重要です。

・WireGuardはデータ暗号化と転送にChaCha20を独占的に使用しており、認証ステップにはPoly1305と効率的にペアリングします。ChaCha20は256ビットAES暗号化と同等の強度を持っています。


### キー交換と認証

・OpenVPNは、事前に共有された静的キーまたは認証されたキー交換のためのSSL-TLSを使用するようにカスタマイズできます。これには、証明書およびキーの保存のためのX.509証明書またはPKCS#12の使用も含まれます。これも特定のセキュリティ設定を求めるクライアントにとって利点です。

・WireGuardは、各暗号化プロセスの段階ごとにシンプルさと効率を考慮して選択された特定のプロトコルを使用します。初期のハンドシェイクは、匿名通信システム（Signalなど）で使用される暗号プリミティブを使用するモダンなNoiseプロトコルによって行われます。

http://www.noiseprotocol.org/


公開鍵交換にはCurve25519（楕円曲線暗号（Elliptic Curve Cryptography））、公開鍵の署名にはEd25519が使用され、認証にはChaCha20-Poly1305が使用されます。ハッシュおよびキー付きハッシュにはBLAKE2が使用されます。

### Nymの見解：
現代の暗号化およびキー交換方法の強みを考慮すると、これらのプロトコルの違いはユーザーの選択に帰着します。ただし、WireGuardの速度と最適化のための利点と、OpenVPNのカスタマイズ可能性のための利点があります。

## 監査可能性

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3672851/d8210927-dcdf-b863-386d-1f97a23ab353.png)
OpenVPNとWireGuardの両方はオープンソースであり、その基盤となるコードは完全に監査可能です。公開監査はプログラムのバグやセキュリティ脆弱性を見つけることで、継続的に検証し改善するために重要です。

ただし、プログラムが簡単に監査できるかどうかは、そのコードベースのサイズに依存します。WireGuardは非常に簡潔な4000行のコードであり、OpenVPNのコードはバージョンによっては100,000行以上にもなります。これにより、OpenVPNは個人が監査するのが非常に難しく、IT専門家のグループでも挑戦が求められます。OpenVPNのコードは20年間にわたって専門家によって分析され知られていますが、監査の初心者にとっては大きな挑戦です。

## ネットワーキング

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3672851/73387350-f05d-a021-0977-55c5cfebfe17.png)

トランスポート層は、VPNアーキテクチャの一部であり、ネットワーク全体で暗号化データの実際の伝送を担当します。ネットワーク通信では、トランスポート層はデータパケットがシステム間で信頼性かつ効率的に転送されることを確保するために重要です。UDP（ユーザーデータグラムプロトコル）とTCP（トランスミッションコントロールプロトコル）は、広く使用されているプロトコルです。

OpenVPNはUDPとTCPの両方をサポートしていますが、WireGuardはUDPのみをサポートしています。これは、UDPがVPNの要件に対してより効率的で高速であるためです。一方、TCPはデータオーバーヘッドが大きく、非効率や問題（例：「TCPのメルトダウン」）を引き起こす可能性があります。

## 柔軟性、複雑性、データ使用量

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3672851/9b970c92-fda4-08ed-5d1f-e1ffa11fe3fd.png)
結局のところ、OpenVPNはユーザーにとって非常にカスタマイズ可能です。ユーザーは使用する暗号化アルゴリズムを選択できますが、WireGuardはより限定的ですが、現代的で非常に安全な暗号化プロトコルを使用しています。これにより、OpenVPNのデータオーバーヘッドが重くなり、ダウンロードおよびアップロードのパフォーマンスがWireGuardよりも遅くなり、全体的なコードが監査しにくくなります。

# OpenVPNとWireGuard：それぞれの利点
### OpenVPNのWireGuardに対する利点
OpenVPNは、開発期間が長く、トラブルシューティングの経験が豊富であり、主流のVPNによって広く採用されているため、明確な利点があります。

・互換性とサポート：OpenVPNは、さまざまなハードウェアや現在のVPNサービスとの統合オプションが豊富です。たとえば、ほとんどのルーターはOpenVPNの統合をサポートしており、これはWireGuardには対応していません。
・カスタマイズ：ユーザーやプログラマーは、使用する暗号化アルゴリズムおよび認証およびキー交換手続きを選択できます。

### WireGuardのOpenVPNに対する利点
WireGuardの明確な強みはその速度、サイズ、および全体的な最適性です。

・速度とデータオーバーヘッド：WireGuardは間違いなくはるかに高速であり、データオーバーヘッドもはるかに少ないです。これは、通常のVPNユーザーだけでなく、dVPNを選択するプライバシー中心のユーザーにとっても重要です。
・容易に監査可能：簡潔なコードベースは、速度と実装だけでなく、オープンソースの監査可能性にも寄与します。

## しかし、どちらがプライバシーに優れているのでしょうか？
率直に言って、どちらもプライバシー保護に優れているわけではありません。WireGuardとOpenVPNはルーティングのための暗号化プロトコルであり、データの内容を保護する点では非常に強力です。しかし、これは通常、信頼できるウェブサービスによって既に保証されています。現在のプライバシーの問題は暗号化ではなく、オンライン追跡です：私たちがオンラインで何をしているかについて多くの情報が知られることができます。

https://qiita.com/pseudonym2/items/8b4db171c31b73513cbe


データ収集、トラフィック分析、デジタルフィンガープリンティング、ハッカー、および政府の監視に対抗するために最も広く使用されている方法は、プライバシー中心のVPNを使用することです。オンラインプライバシーが気になる場合、最適なVPNプロバイダーを選択する際に、暗号化プロトコルだけでなく、VPNプロバイダーのアーキテクチャも考慮する必要があります。

https://qiita.com/pseudonym2/items/f2c5e8c39f321e53295a


### 中央集権型VPN
ほとんどのVPNサービスプロバイダーは、中央集権的なインフラストラクチャを持っています：彼らが個別に所有または第三者からレンタルした単一のサーバーです。これらのサーバーは単なるIPを隠す中継ポイントではなく、私たちのIPアドレス、接続先のIP、接続のタイミング、さらには場所などのトラフィックのメタデータログを保持することができます。

https://qiita.com/pseudonym2/items/1254c1fe613981325706

これは、彼らがそのような中央集権的なログを保持しないと約束している場合でも同様です。さらに悪いことに、ほとんどの無料VPNサービスはユーザーデータを収集し、第三者のデータブローカーに販売するために意図的に使用しています。

https://qiita.com/pseudonym2/items/85b47eb78f809c392793


これが現在オンラインユーザープライバシーの問題であり、VPNサーバーからの大量のユーザートラフィック記録を政府が要求した場合にメタデータとサブスクリプション記録が露出する可能性があるのです。幸いにも、この種のVPNサービスに信頼を置く必要はもうありませんし、ユーザーデータを背後で販売する搾取的な無料VPNサービスに引き寄せられる必要もありません。

### 分散型VPN（dVPN）
NymVPNのようなプライバシー中心のdVPNは、中央集権的なユーザーデータの問題に対抗するために開発されました。真に分散型のVPNは、独立したリンク不能なサーバーを世界中に経由してユーザートラフィックをルーティングします。これにより、VPNネットワーク内のどのサーバー（またはノード）も、中央集権的で包括的なトラフィックログを保持できなくなります。ネットワークに中央制御点や故障点がないため、中央集権的なログやデータ漏洩の可能性が設計上排除されます。

ただし、dVPNには速度の問題があります。データが通過するサーバーが多ければ多いほど、異なるポイントでデータを暗号化および復号化するため、接続が遅くなります。この点で、WireGuardはVPN暗号化プロトコルとして優れています。その速度と効率性により、dVPNを使用してオンラインで堅牢なプライバシーを求めるユーザーは、マルチホップアーキテクチャに伴う典型的な遅延問題を回避できます。

### OpenVPN対WireGuard：Nymの見解
直接対決では、OpenVPNとWireGuardのそれぞれに明確な強みがありますので、選択はユーザーや開発者の具体的なニーズによります。暗号化暗号を柔軟に選択したい場合や、速度や強力なプライバシーをあまり気にしない場合は、OpenVPNが適しています。しかし、速度、分散化、および最適なトラフィックを優先する場合は、WireGuardが明らかに優れています。最終的には、両方ともデータセキュリティにおいて同等に優れています。

Nymでは、プライバシーがますます脅かされている時代において、ユーザーのプライバシーのための最良のオプションを提供することを目指しています。オンラインでより匿名性を高めたい場合は、従来型の中央集権型VPNを避けることが重要です。OpenVPNを使用しているかどうかに関わらず、真に分散型のVPNを選び、WireGuardを搭載したものを選ぶことで、速度とプライバシーのトレードオフを回避できます。

https://qiita.com/pseudonym2/items/b6f4a0b180a4ee0d0f66


NymVPNの2ホップdVPNモードはこの理由でWireGuardを基盤としており、他のシングルサーバーVPNサービスと同じ速度でより堅牢なプライバシーを提供します。ユーザーは、必要に応じて、5ホップミックスネットモードを使用して、プライベートな通信や暗号取引などの高度にセンシティブなトラフィックに対して無比のプライバシー（おそらく遅い速度）を選択できます。NymVPNのミックスネットモードは、mixnet用に特別に設計された暗号化ルーティングプロトコルであるSphinxによって支えられています。

https://qiita.com/pseudonym2/items/107cf005e9cab0b165b6



-----------------------------------------------------------------------

# WireGuard対OpenVPN：FAQ
### WireGuardはOpenVPNを置き換えることができますか？
いいえ、WireGuardが完全にOpenVPNを置き換えることはないでしょう。OpenVPNはWireGuardよりも多くのルーターでサポートされており、また、TCPでも動作できるため、UDPよりも安定した接続を提供し、リモート接続には一般的に適しています。

### 最も効率的なVPNプロトコルは何ですか？
速度と最適化の面では、WireGuardがより効率的です。しかし、効率性はアプリケーションとバランスを取る必要があります。WireGuardが互換性のない場所では、OpenVPNが好まれます。しかし、マルチホップルーティングと潜在的な遅延を伴うdVPNを使用する場合、WireGuardは優れています。

### WireGuardは検出されますか？
はい、WireGuardはUDPに限定されており、TCPのポート443との互換性がないため、検閲制限を回避するのに効果が低い場合があります。これは、一部の国のISPがVPNおよび暗号化プロトコルで使用されることが知られているトランスポートレイヤーをターゲットにするためです。

### WireGuardは最速のVPNプロトコルですか？
WireGuardは、互換性があり、適切に実装されている場合、現在最速のVPNプロトコルです。

### OpenVPNはネットワークモビリティの問題がありますか？
OpenVPNユーザーは、Wi-Fiネットワークからモバイルデータへの移行など、ネットワーク間の切り替えに関する問題を頻繁に報告しています。インターネットトラフィックにOpenVPNを使用する一部のVPNは、モバイルデバイスには代替のIKEv2プロトコルを使用することを決定しました。NymはモバイルネットワークでOpenVPNをテストしていませんが、WireGuardはこの点でより安定性を提供する可能性があります。

# 参考リンク

- [Nym公式サイト](https://nymtech.net/)
- [Nymのミキシングネットワーク - Wikipedia](https://ja.wikipedia.org/wiki/Nymミックスネット)
- [Nymホワイトペーパー](https://nymtech.net/nym-whitepaper.pdf)
- [分散型VPNとは？](https://qiita.com/pseudonym2/items/9d45bf63ddfd17edd0ae)

- [ミックスネットとは何か？ VPNによる比類なきオンラインプライバシー](https://qiita.com/pseudonym2/items/e68ccf9b65bf8e98e380)
- [Sphinx暗号-Nymを支える匿名データフォーマット](https://qiita.com/pseudonym2/items/107cf005e9cab0b165b6)
- [ココナッツ認証（Coconut Credentials）とは？- プライバシーを保護するゼロ知識証明技術](https://qiita.com/pseudonym2/items/b2739ae32f4fb29de0b6)

# コミュニティ

- [Nym日本コミュニティ - Telegram](https://t.me/nymjapanese)
- [Nym日本コミュニティ - Discord](https://discord.com/invite/nym)
- [Nym日本コミュニティ - LINEオープンチャット](https://line.me/ti/g2/0YGYYq4EoQZ8fL5FYQmqU4O9SRuE_a6YX19GtA?utm_source=invitation&utm_medium=link_copy&utm_campaign=default)