メニュー
日本語

【図で解説】独自開発「AdGuard VPNプロトコル」の仕組みとユニークさ

何年もの間、私たちはあらゆる種類の広告ブロックアプリやブラウザ拡張機能の開発に集中していました。そして2年前、突然のように独自のVPNサービスの開発を決意しました。

実際、いくつかの重要な理由があってのことです:

  • AdGuardモバイルアプリにはVPNアプリとの互換性問題がありました。そこで、互換性を確保できる唯一のソリューションとして、独自のVPNを開発しました。結果として、2つのアプリ(AdGuard広告ブロッカーとAdGuard VPN)は1つのVPNサービスとして作動できるようになり、併用が可能になりました。
  • VPNは、私たちの理念や優先事項と十二分に関連しているように思えました。
  • AdGuardソフトウェアを長年開発している間に、私たちはネットワークトラフィックのフィルタリングのエキスパートになりました。これは、数多くある気まぐれなVPNにならず、他社にない新しいものを取り入れた独VPN製品を作り出すことができる理由になりました。

当初から、AdGuard VPNは競合他社と大きく異なる点を持つべきと私たちは決心していました。
その点は、既製のソリューションから選ぶのではなく、自社でVPNプロトコルを開発して実装することです。

なぜわざわざそのような面倒なことをするのか、と思うかもしれません。

この記事では、なぜ私たちが既存のプロトコルに満足できず、独自のプロトコルを開発したのか、そしてそのロードマップをご紹介します。

(ネタバレ:AdGuard VPNプロトコルは検出が難しく、類似品よりも高速です。)

しかし、その前にいくつかの技術的なことを深く掘り下げて説明する必要があります。

目次

インターネットの仕組み

ここでは、あえてインターネットの全体像を説明することはしませんが、その仕組みの基本的な部分を説明します。

さて、インターネット上のすべての通信は、小さなデータ「パケット」をコンピュータからサーバに転送し、またサーバからコンピュータに転送して戻すことで成り立っています。
パケットにはいくつかの種類があり、それぞれに目的があります。
パケットのカプセル化と処理に関する規制を「プロトコル」と呼びます。

IPプロトコル

IPアドレスという言葉を聞いたことがあるのではないでしょうか?
IPアドレスは、ネットワークデータ転送の主要な仕組みであるIPプロトコルの一部です。

1つのパケットは、

  • データそのもの
  • 送り手のIPアドレス
  • 受けてのIPアドレス

という3つの部分から構成されています。

受け手は誰がパケットを送信したかを知っているので、何らかのデータを送り返すことができます。

“純粋な”IPプロトコルはほとんど使われていませんが、IPプロトコルをベースにしたTCPUDPという2つのプロトコルは幅広く使われています。

TCPプロトコル

TCPは、インターネットの主要な「仕事馬」です。
ウェブサイトを開くと、データ送信にTCPが使われている可能性が高いです。

TCPのパケットは4つの部分で構成されています。

  • 送信元と送信先のアドレスを含むIPパケットヘッダ
  • 送信者と受信者のポート番号。この番号は、パケットをどのプログラムに送って処理すべきかということをOSが理解するために必要です。
  • パケットシーケンス番号。パケットは、送信された順に受信者へ到着するとは限りません。シーケンス番号があれば、パケットの正しい順序を復元することができます。
  • パケットタイプ。このプロパティは、後述する「配送保証」を実現するために必要です。

どのようなネットワークを使用していても、送信したパケットの一部が途中で失われる可能性があります。
TCPプロトコルでは、送信されたパケットが確実に宛先に届くようにするために、受け手は、受信した各パケットに対して、受信確認用の小さなTCPパケットを送信します。

確認を得られない場合は、送り手は受信確認を得るまでパケットを再送し続けます。

UDPプロトコル

UDPはそこまで人気ではありませんが、同じくIPベースのプロトコルです。

IPプロトコルとの唯一の違いは、送信されるパケットの中でデータそのもの、送り手と受けてのIPアドレスに加えて、ポート番号(下記のポート番号説明へ飛ぶ)の情報が含まれることだけです。

下の図をご覧になればわかるように、データパケットのフローはTCPの場合よりも速く、それもそのはずで、UDPには送達確認がないからです

TCPとは異なり、UDPは何も保証しないということです。
しかし、受信確認のための余分なパケットをわざわざ送り返すこともないので、その分より高速になるというわけです。

人気VPNプロトコルの仕組み

誰かに手紙や電子メールを送るとき、内容やヘッダー、署名はなくても送れますが、受信者のアドレスがないと送れないですよね。
インターネットも同じように、データを送るためには必ずIPアドレスが必要です。

Webサイトにアクセスすると、あなたのIPアドレスがWebサイトに表示されます。
IPアドレスがわかれば、ユーザーの位置情報を把握することもそれほど難しくありません。

VPNを利用すると、あなたのデータは暗号化された接続を通じて、あなたの自宅・職場やスマートフォンから、インターネット上の別の地点(おそらく別の国)に送られ、そこからはじめて公のインターネット上に出てくるようになります。
覗き窓の出口に続く穴に潜り込んでよその目を避けるウサギのように。

暗号化の結果として、あなたのデータは自宅や職場の住所ではなく、トンネルの反対側(出口)のIPアドレスが割り当てられます。
これで、あなたがサイトのウェブサーバーに接続したとき、ウェブサーバーが目にするのは、あなたの自宅のIPアドレスではなく、VPNエンドポイントに属する他人のIPアドレスです。
したがって、ウェブサイトにアクセスしても、あなたのデータが開示されることはありません。

上記のことはすでにご存知の方も多かったかもしれませんが、念のためおさらいしておいて損はないかと思いました。

では、実際の技術的な詳細を説明したいと思います。

VPNが機能するためには、あなたのデバイスからVPNサーバーまでの間でデータを転送し、暗号化する必要があります。
このデータを送信・暗号化するための規制をVPNプロトコルといいます。

最も一般的なVPNプロトコルは、OpenVPN、WireGuard、IPSecです。
これらのプロトコルはどれもほぼ同じ働きをし、機能的には非常によく似ていますが、細部(暗号化と接続の確立)に工夫が凝らされています。

その仕組みを見てみましょう。
例えば、あるウェブサイトにアクセスしたいとします。
あなたがVPNを有効にしている場合、VPNサーバーがあなたとウェブサイトの間を仲介します。

最初に、暗号化されたIPパケットがVPNサーバーに送信されます。
VPNサーバーはそれを解読し、「送り手のアドレス」(つまりあなたのIPアドレス)を変更して、パケットを受けて(つまりWebサイト)に送ります。
これは通常、UDPをトランスポートとして使用して行われます。UDPは確認を待つ必要がないため、一般的に「より高速」です。

(※) VPNサーバーからウェブサイトへ転送される「元のIPパケット」には、元のIPアドレスが変更されているため、サイト側によって元のユーザー情報を特定することはできません。

既存のプロトコルの制限

すべての一般的なVPNプロトコル(OpenVPN、WireGuard、IPSecなど)は、2つの欠点を持っています。

  • ネットワークレベルで簡単に検出され、ブロックされてしまいます。
  • 検出対策としてVPNを「隠そう」とすると、パフォーマンスが低下します。

VPNの使用を「隠す」ためには、データフローをTCP接続で「包む」ことが多く、さらに暗号化して通常のWebサイト接続のようなトラフィックとして見せることもあります。

残念ながら、この方法には欠点があります。TCPを使用しているため、受信確認を追加で行う必要があります。

(※) VPNサーバーからウェブサイトへ転送される「元のTCPパケット」には、元のIPアドレスが変更されているため、サイト側によって元のユーザー情報を特定することはできません。

そのため、一般的なVPNプロトコルを使用する場合、「速いけど検出されやすい」と「遅い」のうちのどれかを選ばないといけない、というトレードオフになります。

AdGuard VPNプロトコルの仕組みとメリット

※VPNサーバーからウェブサイトへ転送される「元のデータを含むIPパケット」には、元のIPアドレスが変更されているため、サイト側によって元のユーザー情報を特定することはできません。

AdGuard VPNプロトコルを開発したのは、これまでのプロトコルの欠点を知り、それに対処しようとしたかったからです。
では、AdGuard VPNプロトコルの強みは何でしょうか?

  • AdGuard VPNプロトコルは、通常のHTTPSトラフィックと区別することがほぼ不可能である。つまり、AdGuard VPNサーバーへの接続は、通常のウェブサイトへの接続とまったく同じように見えるのです。
  • 暗号化には、この課題に完璧に対応する HTTPS (TLS) を使用しております。TLSは世界で最も普及している暗号化方式であり、これを実装しているライブラリは常にセキュリティ監査を受けています。

既存のVPNプロトコルの中にも、暗号化の課題を達成するものがあり、それらも (VPNが使用されているという事実を) 検出されにくい。
しかし、これは通常、速度の低下という代償を伴います。
いくつかの解決策のおかげで、AdGuard VPNプロトコルは暗号化と速度の両方を保つことができます。

  • 私たちはHTTP/2トランスポートプロトコルを使用しており、高速性を維持すると同時に、AdGuard VPNプロトコルを検出することはほぼ不可能です。
  • **AdGuard VPNプロトコルは、**他のプロトコルと異なり、パケットではなくデータをもとにで動作します。つまり、AdGuard VPNは、各接続に対して個別の「トンネル」を確立し、各HTTP/2ストリームは1つの接続に対応しています。AdGuard VPNは、このトンネルを通してデータを転送します。これにより、複数のパケットのデータを1つにバッファリングしてからVPNサーバーに(またはサーバーからクライアントへ)送信することができるため、確認用のパケットを節約して動作を高速化することができます。また、パケット数が少なければ、確認の回数も少なくて済みます。

これからの開発予定

HTTP/3 と QUIC への切り替え

まず最初に、サーバーとの通信にHTTP/3とQUICのプロトコルを使用するように切り替えようと考えています。

HTTP/3は、HTTPの最新・最先端バージョンです。新しいプロトコルは、接続が安定しているときには速度に影響を与えませんが、モバイル機器や公共のWi-Fiに接続しているときなど、接続が悪いときにはそのメリットが現れます。
また、新プロトコルには、パケットの再送やHead of Line Blocking (HoLB)キューが発生しないこと、接続の移行が可能になることなど、いくつかの明らかなメリットがあります。
技術的なことは抜きにして、主な利点は、すでに述べた非理想的な環境での接続品質の向上です。

TCPとその上で動作する他プロトコル(TLS、SSL、HTTP /1.1、HTTP/2)は、しばらく前から存在しており、その機能は素晴らしいものですが、スムーズに動作するためには完璧に近い状態が必要という欠点が一つあります。
つまり、家庭内のWi-Fiネットワークなど、安定した高品質な接続環境であれば問題なく動作します。しかし、モバイルネットワークの外の世界に出ると、電波の弱さや回線の遅さなど、パケットロスを防ぐことができません。
このようなパケットロスは、上記の再送とHoLBに繋がります。

5Gも全能ではなく、エレベーターや駅間の長い地下鉄区間では接続がどうしても悪くなる場合があります。
VPN over HTTP/3を使えば、魔法のようにこの問題が解決します。エレベーターに入っても、その他の理由でネットワークが変わっても、VPN接続が切れることはありません。

現在、この新しい実装のプロトタイプをテストしています。数ヶ月後に完成する見込みでございます。

オープンソース

長い間AdGuardに慣れ親しんでいる方は、当社の製品の多くがオープンソースであることをすでにご存知かと思います。
オープンソースソフトウェアのコンセプトは、私たちにとって身近なものです。なぜなら、このようなプロジェクトは人々を助け、テクノロジーの発展に貢献するものだと信じているからです。
しかし、私たちのアプローチはプライバシーに配慮しているため、可能な場合にのみ製品をオープンソース化しています。

将来的には、AdGuard VPNプロトコル実装を公開する予定です。残念ながら、今ではまだプロジェクトの準備に十分な時間がありません。
今年末までには十分な時間を確保し、サーバーとクライアントの両方の実装のコードを公開したいと考えています。

私たちのプロトコルは、AdGuard VPNの全アプリ(iOS/Android/Windows/Mac)で使用されています。

あなたのデータを最も安全な方法で保護しているいずれ(または複数)のアプリをぜひダウンロードしてお試しください。

また、下のコメント欄やSNS・フォーラムで、ご意見などをご共有いただければ嬉しいです。

この記事を気に入っていただけましたか?
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard for Windows

AdGuard for Windowsは、単なる広告ブロッカーではなく、広告をブロックし、危険なサイトへのアクセスを制御し、ページの読み込みを高速化し、不適切なコンテンツから子供を保護する、多目的ツールです。
ダウンロードされますと、使用許諾契約書に同意したことになります。
詳細
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard for Mac

AdGuardはmacOSの仕様を念頭に設計されたユニークな広告ブロッカーです。 ブラウザやアプリで広告を取り除くだけでなく、個人情報追跡、フィッシング、詐欺から端末を守ります。
ダウンロードされますと、使用許諾契約書に同意したことになります。
詳細
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard for Android

AdGuard for Androidは、Android搭載端末に最適なソリューションです。 他のほとんどの広告ブロッカーと違って、root権限を必要とせず、アプリでのフィルタリング、アプリ管理など、幅広い機能を提供しています。
ダウンロードされますと、使用許諾契約書に同意したことになります。
詳細
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard for iOS

AdGuard はiOSに最適な広告ブロックアプリです。Safariブラウザですべての広告を削除し、プライバシー保護、ページの読み込み時間の短縮を実現します。 また、複数のフィルタを同時に使用できるようにしながら、最高のフィルタリング品質を実現する最新の広告ブロック技術を採用しています。
ダウンロードされますと、使用許諾契約書に同意したことになります。
詳細
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard VPN

74ヵ所の世界中ロケーション

どのコンテンツも自由にアクセス

強力な暗号化

ログ一切なしポリシー

最速コネクション

年中無休サポート(日本語対応)

無料で使ってみる
ダウンロードされますと、使用許諾契約書に同意したことになります。
詳細
9,934 9934件のユーザーレビュー
素晴らしい

AdGuardコンテンツブロッカー

AdGuard Content Blockerは、コンテンツブロッカーテクノロジーをサポートするモバイルブラウザー(Samsung Internet、Yandex.Browser)のすべての種類の広告を排除します。 Android for AdGuardよりも制限されていますが、無料で簡単にインストールでき、広告のブロック品質も高いです。
ダウンロードされますと、使用許諾契約書に同意したことになります。
詳細
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard ブラウザ拡張機能

AdGuardは、Webページ上のすあらゆる広告を効果的にブロックします。また最速で軽量な広告ブロック拡張機能です!是非AdGuardを使って広告のない高速で安全なブラウジングをお楽しみください。
9,934 9934件のユーザーレビュー
素晴らしい

AdGuardアシスタント

“AdGuardデスクトップアプリのお手伝い役”ブラウザー拡張機能。カスタム要素のブロック、Webサイトのホワイトリストへの登録、報告の送信などといった機能に直接ブラウザーからアクセスできるようにします。
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard DNS

AdGuard DNSは、広告ブロック、プライバシー保護、ペアレンタルコントロールの代替ソリューションです。初期設定が簡単で、端末のプラットフォームやデバイスに関係なく、オンライン広告、トラッカー、フィッシングに対する必要最小限の保護を提供します。
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard Home

AdGuard Home は、広告とトラッキング(追跡)をブロックするネットワーク全体用ソフトウェアです。 セットアップを完成すると、全ての家庭内デバイスをカバーし、クライアント側のソフトウェアさえ必要ありません。 Internet-Of-Thingsや接続するデバイスの登場と伴って、ネットワーク全体を制御することがますます重要になってきています。
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard Pro for iOS

AdGuard Pro は、通常バージョンのユーザーに既に知られているSafariの優れた広告ブロック機能以外にも多くの機能を提供いたします。 カスタムDNS設定へのアクセスを提供することで、広告ブロック、アダルトコンテンツからお子様を守り、盗難からあなたの個人データを保護することができます。
ダウンロードされますと、使用許諾契約書に同意したことになります。
詳細
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard for Safari

Appleが新しいSDKの使用を開発者全員に強制し始めてから、Safari用の広告ブロック拡張機能は苦境に立たされています。AdGuard拡張機能は、Safari用の高品質な広告ブロック機能を復活させることがミッションです。
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard Temp Mail

匿名性とプライバシーを保護する、無料の捨てメアド(一時メールアドレス)ジェネレーター。メインのメールサービスに迷惑メールは届きません!
9,934 9934件のユーザーレビュー
素晴らしい

AdGuard for Android TV

AdGuard for Android TV は、広告をブロックし、プライバシーを保護し、スマートテレビのファイアウォールとして機能する唯一のアプリです。Webの脅威に関する警告を受け取り、セキュアDNSを使用し、トラフィックを暗号化しましょう。セキュリティを向上して、広告なしでお気に入りの番組をお楽しみください!
AdGuardをダウンロード中です AdGuardをインストールするには、矢印が指してるファイルをクリックしてください 「開く」を選択し、「OK」をクリックして、ファイルがダウンロードされるのをお待ちください。 ダウンロードが終了し開きましたウィンドウでAdGuardを「Applications」フォルダにドラッグで移動させてください。 AdGuardをダウンロードして頂きありがとうございます! 「開く」を選択し、「OK」をクリックして、ファイルがダウンロードされるのをお待ちください。 ダウンロードが終了し開きましたウィンドウで「インストール」をクリックしてください。 AdGuardをダウンロードして頂きありがとうございます!
以下のQRコードをスキャンすることでモバイル端末にもAdGuardをインストールできます。