VPNの基本的な仕組み:トンネリングと暗号化についてわかりやすく解説

VPNの知識

VPNの基本的な仕組み:トンネリングと暗号化についてわかりやすく解説

2024年5月16日

このページには広告が含まれています

VPNの基本は、トンネリングと暗号化とされています。この記事では、トンネリングと暗号化の仕組みについて、概念がわかるように、なるべく分かりやすく図解していきます。

ポイント

  • トンネリングとは
  • カプセル化とは
  • 共通鍵暗号とは
  • 公開鍵暗号とは

VPNのトンネリングの仕組み

トンネリングとカプセル化、そしてネットワークの階層構造について解説していきます。

ネットワークのトンネル化

トンネリングとは

トンネリングとは、異なる拠点間のネットワークを、同一ネットワークであるかのように擬似的に接続する技術のことです。

VPNのトンネリング1

この画像の「社内ネットワーク」は、「インターネット」とは切り離されているため、社内ネットワーク内での通信は安全に行うことができます。

しかし、リモートワークなどで「自宅」から接続しようとする場合、途中にインターネット網を経由するので、そのまま接続するには危険が伴います。

VPNのトンネリング2

そこで、トンネリングによって、社内と自宅のネットワークを仮想的に結ぶことで、自宅にいながら社内にいるかのように通信をすることができます。

トンネリングを実現する方法はいくつかありますが、

  • カプセル化
  • 暗号化
  • 認証

が組み合わさっていることが多いです。

トンネリングとカプセル化の違い

「トンネリング」と「カプセル化(カプセリング)」は、似たような概念なので明確に区別することは難しいのですが、カプセル化によってトンネリングが実現されていると言えます。

カプセル化は、データを入れ子構造にすることを指すので、トンネリング以外にも使われる言葉です。

VPNのカプセル化

例えば、Aにデータ送信をしたい時には、宛先である「A」と「データ」を、一つのまとまり「パケット」として送ります。

ここで、A経由でBにデータ送信をしたい時に、それを入れ子構造にすることをカプセル化と言います。

この時に、通信プロトコル(通信規格)やデータ構造が異なっていても構いません。

中のデータがどうなっているのか、一切気にせずに送ることができるのが、カプセル化のメリットです。

さらにVPNでは、暗号化や認証が組み合わさっているので、カプセル化された中身を解読することは困難になっています。

トンネリングとネットワークの階層構造

コンピューターネットワークは、物理的な信号レベルから、アプリの使い方まで、様々な階層構造を持っています。

例えば電子メールを送信する時に、メールアドレスが必要となりますが、相手のWi-Fiがどうなっているのか意識する必要はないでしょう。

逆にWi-Fiの階層では、メールアドレスかどうかを意識する必要はありません。

ネットワークのどの階層でトンネリングするかによって、様々なVPNの規格があります。

OSI参照モデルVPNプロトコル
第7層SSH VPN
第6層
第5層SSL-VPN
第4層
第3層IPSec
WireGuard
第2~3層OpenVPN
SoftEther
第2層PPTP
L2TP
第1層

下記の記事も参考にしてください。

VPNとSSLの違いとは? なるべく分かりやすく解説します
VPNとSSLの違いとは? なるべく分かりやすく解説します

2024/7/25  

VPN、SSL、HTTPSなど、インターネットのセキュリティに関する用語は多くあり、混乱しがちです。この記事では、VPNとSSLの違いについて、なるべく分かりやすく解説しています。そのためには、ある程 ...

VPNの暗号化の仕組み

共通鍵暗号の概要と問題点、公開鍵暗号の概要について解説していきます。

素数

暗号化とは何か

コンピューターの世界で、よく「暗号化」という言葉が使われますが、これは「計算するのに時間がかかる処理」を意味します。

その概要を解説します。

シーザー暗号の例

歴史上、もっとも古くて簡単な暗号として、シーザー暗号が知られています。

これは、アルファベットの文字を、決まった数だけずらすというものです。

この場合、何文字ずらすかが「鍵」となります。

  • 暗号文:KHOOR
  • 鍵:3
  • 復号文:HELLO

暗号を解読するとは、鍵である「3」を見つける作業となります。

正しく復号できたか確認する方法

しかし鍵が「3」で、「HELLO」が元の文であるとは、どのように判断すればよいのでしょうか。

もしかしたら鍵が「4」で、「GDKKN」が正解なのかもしれません。

正しく復元できたか確認する方法には、以下のようなものがあります。

  • ファイルの形式に合った特定のパターンが確認できる
  • 照合用のメッセージが暗号文に組み込まれている
  • 照合用の値が事前に共有されている

実際には、これらの方法を組み合わせて確認されています。

現代暗号の例

シーザー暗号は何文字ずらすかだけなので、英語のアルファベットであれば25回試せば鍵が見つかることになります。

これでは暗号としてほとんど意味がありません。

現在実際に使用されている暗号の例として、AES-128は、128ビットの長さの鍵を持ちます。

128ビットとは、0または1が128個並んでいるということで、2128個の組み合わせが考えられます。具体的には、次のようになります。

  • 340,282,366,920,938,463,463,374,607,431,768,211,456

これは、1秒間に1兆個の鍵を試すことができるコンピューターでも、全パターンを試すのに10億年かかる計算となります。

このように計算時間が膨大となるので、鍵を見つけるのがほぼ不可能というのが、暗号の基本です。

共通鍵暗号の問題点

上記の「シーザー暗号」も「AES-128」も、暗号化と復号化に同じ「鍵」を使用するということから「共通鍵暗号方式」と呼ばれています。

  • 平文:HELLO
  • 共通鍵:3
  • 暗号文:KHOOR
  • 共通鍵:3
  • 復号文:HELLO

データを送信する人と受信する人は、同じ鍵を持っていることが必要となります。

これには、次の2つの問題があります。

鍵の受け渡し問題

データのやり取りをするにあたり、鍵を共有する必要があります。

でもそれはどうすればいいのでしょうか。

盗聴されるかもしれないので暗号化すると言っているのに、その鍵が盗聴されてしまったら意味がありません。

なんとかして、安全に鍵をわたす必要があります。

ちなみに現在でも、

「ZIPで暗号化しました。パスワードは別メールでお送りします」

のようなことが、平然と行なわれています。最低でもパスワードは別ルートで送る必要があるでしょう。

鍵の管理問題

Aさんが、BさんとCさんにデータ送信をしたいとします。

BさんとCさんに鍵を共有しないといけないというのは上記の通りですが、もう一つの問題として、別々の鍵を用意する必要があるということがあります。

そしてBさんも、AさんとCさん用に別の鍵を持たないといけないことになります。

このように、通信をする相手が増えるごとに、膨大な数の鍵を管理する必要が出てきます。そしてそれを全て、盗聴されることなく共有しないといけないのです。

それはとても大変なことです。

公開鍵暗号とは

この共通鍵暗号の問題を解消したのが、公開鍵暗号方式です。

これは、暗号化する鍵と、復号化する鍵を別々のものにするというアイデアから来ています。

暗号化する鍵は、暗号化をするだけで、復号化することができません。

復号化する鍵は、自分だけが知っていればいいので、相手に渡す必要がありません。

これにより、盗聴されるリスクを小さくすることができます。

公開鍵暗号方式が開発されたのは1960~70年代ですが、これは「火」や「文字」に相当する、人類史上最高の発明の一つだと言う人もいるほど、画期的なことでした。

RSAの基本

代表的な公開鍵暗号であるRSAは、素因数分解を利用しています。

例えば数字の「33」は、素数の「3」と「11」の積であるということはすぐに分かります。

しかし「3233」はどうでしょう。これは「61」と「53」の積となりますが、なかなか難しいですよね。

素数を2つかけ合わせるのは簡単にできるのに、そこから元の素数が何かを求めることは難しい、というのがRSAの基本となっています。

そして、詳細は省きますが、数学的なステップを踏むことで、2つの非対称な鍵を生成できるのです。

この鍵のことを「公開鍵」と「秘密鍵」と呼びます。

「公開鍵」は、「自分が暗号文を送信する時」ではなく、「自分に暗号文を送信してもらう時」に使用します。

「33」の例を用いると、以下のようになります。(話を簡単にするために、正確でないところがあります)

  1. Aさんは全世界に向けて、自分の公開鍵は「33」であることを告知する
  2. Aさんにデータ送信したい人は、公開鍵「33」を用いて暗号化し、Aさんに送る
  3. Aさんは秘密鍵「3,11」を用いて復号化する
  • 平文:HELLO
  • 公開鍵:33
  • 暗号文:%!&FH#l2(33を使っても元に戻せない)
  • 秘密鍵:3,11
  • 復号文:HELLO

「3,11」は誰にも知らせていないので、安全にデータのやり取りをすることができます。

実際のRSAでは、数百桁の素数が使われており、その解を見つけることは極めて困難になっています。

VPNでの暗号化の実際

上記のような話は古典的な理論で、VPNを始めとした実際のシステムでは、もっと複雑な仕組みが取られています。

以下のような機能を実現するために、様々な数学理論が組み合わされています。

  • 鍵の生成・共有
  • 暗号化
  • 改ざんの検出
  • 署名と認証

VPNの基本的な仕組みのまとめ

ポイント

  • VPNはトンネリングと暗号化によって成り立っている
  • トンネリングとは、離れた拠点間のネットワークを、同一ネットワークであるかのように接続すること
  • トンネリングは、データをカプセル化することによって実現される
  • ネットワークは階層構造をしており、どの階層でトンネリングするかによって、様々な方式がある
  • 暗号化には共通鍵暗号と公開鍵暗号がある
  • これらに署名、認証、改ざんの検出などの機能を組み合わせ、VPNが実現されている

おすすめ記事

【2024年版】目的別おすすめVPNサービス 1

毎日いろいろなVPNアプリを検証している管理人が、これはいい!と思ったサービスを、目的別にご紹介します。すべて自信を持っておすすめできます。 ポイント 有料のおすすめVPNサービス 無料のおすすめVP ...

-VPNの知識