【応用情報】『IPsec』を3分で超分かりやすく【新感覚Study】

IPsec

アバンタイトル

IT分野は範囲がとても広いです。そのため、過去問を解いていると1ページに何個も理解できない単語が出てきます。それを一気に理解しようとするのはとても骨が折れるし、やる気も続きません。

しかし、そんな時は1周まわって1つのことに徹底集中してみるのはどうでしょうか?覚えなきゃいけないことが沢山あると、終わりが見えずモチベーションが続きません。

でも、「今日はこの1つをマスターしよう!」と1つにフォーカスすればゴールが見えて、集中力も続くようになります。また、一点集中型なので理解力も深まり応用も効くようになります。

ということで、当サイトでは1点集中をコンセプトに解説を展開しています。勉強法が定まっていなかったり悩んでいる方は是非、続きをご覧になってみてはいかかでしょうか?

はじめに

今回もハッカーに近づく中二病心ちゅうにびょうごころを刺激するワードを取り扱います。それがIPsec(Internet Protocol Security)です。

今回学ぶこのフレーズに対しては、「難しそー」とか「役に立つの?」といった思考は一旦おいといて「ただかっこいいから知りたい!」というシンプルな思考でStudyしていってほしいです。

そのためにこの記事では、初心者にも超分かりやすく解説していきます。ただの試験対策、ただの退屈な勉強、という感覚ではなく、「人前でこのフレーズを連呼してる自分を想像したら胸がわくわくする」みたいな、そういう軽い気持ちを軸としてStudyしていきましょう(笑)!

【ここで扱う疑問】

  1. IPsecの基本的知識は? 
  2. どうやって改ざんを検知するの?
  3. AHって必要?ESPだけでよくね?
  4. AH(Authentication Header)とは?
  5. ESP(Encapsulating Security Payload)とは?
  6. パケット全体を暗号化したら、宛先が分からなくなるんじゃね?
  7. ハッシュ関数ってなに?
  8. エントリーポイント(Entry Point)ってなに?
  9. エグジットポイント(Exit Point)ってなに?

などの、IPsecまつわる様々な疑問を解消していきます!

IPsecの基本的知識をおしえて! 1/7

Answer

IPsec(Internet Protocol Security)は、ネットワーク通信のセキュリティを強化するための強力なツールです。認証、暗号化、データ整合性の保護を提供し、VPNなどのセキュアな通信を実現します。トンネルモードとトランスポートモードの柔軟性により、多様なネットワーク環境に対応できるため、広く利用されています。

主な機能:

  1. 認証: データの送信元と受信先の認証を行い、通信相手が正当であることを確認します。
  2. 暗号化: データを暗号化し、通信中に第三者がデータを盗聴できないようにします。
  3. データ整合性: データが通信中に改ざんされていないことを保証します。
  4. リプレイ防止: 同じデータが再送されるリプレイ攻撃を防ぎます。

*「『改ざんされていないことを保証』と書いてあるけど、改ざんされたかどうかなんてわからなくないですか?どうやって検知するの?

IPsecの主要なプロトコル

IPsecは以下の主要なプロトコルで構成されています。

  1. Authentication Header(AH):
    • データの認証と整合性を提供しますが、暗号化は行いません。
    • データの送信元と内容が改ざんされていないことを確認します。
  2. Encapsulating Security Payload(ESP):
    • データの暗号化、認証、および整合性を提供します。
    • データの機密性を保護し、送信元と内容の整合性を保証します。

*「あれ?ESPだけでよくね?ESPはAHの機能も含んでるよね。だったらAHいらなくね?

IPsecの動作モード

  1. トンネルモード(Tunnel Mode):
    • 全体のIPパケットを暗号化 して、新しいIPヘッダを追加します。
    • 主にサイト間VPNに使用されます。
    • 例:2つのネットワーク間の通信を暗号化する。
  2. トランスポートモード(Transport Mode):
    • IPパケットのペイロード部分だけを暗号化します。
    • 主にエンドツーエンドの通信に使用されます。
    • 例:クライアントとサーバー間の通信を暗号化する。

*「あれ?トンネルモードにおいてIPパケット全体を暗号化しちゃったら、宛先まで暗号化されちゃうから、宛先が分からなくなるんじゃね?

IPsecのメリット

  • セキュリティの強化: データの認証と暗号化により、通信の安全性が向上します。
  • 透過性: アプリケーションに変更を加えることなく、ネットワークレイヤーで動作するため、既存のアプリケーションに影響を与えません。
  • 柔軟性: トンネルモードとトランスポートモードの両方をサポートし、様々な通信シナリオに対応できます。

どうやって改ざんを検知するの?  2/7

クエスチョン question

結論から言うと、意外と簡単に改ざん検知はできるということです。では、詳細を見ていきましょう!

  1. データ整合性チェック:
    • IPsecは、データ整合性を保つためにハッシュ関数を使用します。送信者はデータのハッシュ値を計算し、これをデータに付加して送信します。
    • 受信者は受信したデータのハッシュ値を再計算し、送信されたハッシュ値と比較します。この2つのハッシュ値が一致しない場合、データが途中で改ざんされたと判断します。
  2. メッセージ認証コード(MAC:Message Authentication Code):
    • IPsecは、HMAC(Hashed Message Authentication Code)などのMACアルゴリズムを使用してデータの認証と整合性を保証します。送信者はデータと秘密鍵を使ってMACを計算し、これをデータに付加して送信します。
    • 受信者は同じ秘密鍵を使って MACを再計算し、送信されたMACと比較します。MACが一致しない場合、データが改ざんされたと判断します。
    • 同じ秘密鍵=共通鍵暗号方式を使っていることを意味します。
  3. シーケンス番号:
    • IPsecは、各パケットにシーケンス番号を付加します。受信者はこれらのシーケンス番号を追跡し、番号が飛ばされたり重複したりしないことを確認します。
    • シーケンス番号が飛ばされたり重複した場合、リプレイ攻撃の可能性があると判断します。リプレイ攻撃とは、過去に送信された正当なパケットを再送信してシステムを欺く攻撃です。

AHって必要?ESPだけでよくね?  3/7

クエスチョン question

結論から言うと、扱う対象が違うということです。では、もう一度、IPsecにおけるAH(Authentication Header)とESP(Encapsulating Security Payload)の役割についてみてみましょう!

AH(Authentication Header)とは?

機能: AHはデータの認証と整合性を提供しますが、データの暗号化は行いません。

  • 認証: 送信元が確かに正当な相手であることを確認します。
  • 整合性: データが途中で改ざんされていないことを保証します。

特長:

  • IPパケット全体(ヘッダーとデータ) の認証と整合性を保証します。
  • これにより、IPヘッダーの一部が改ざんされていないことも確認できます。

ESP(Encapsulating Security Payload)とは?

機能: ESPはデータの暗号化、認証、および整合性を提供します。

  • 暗号化: データを暗号化し、第三者が内容を読み取れないようにします。
  • 認証と整合性: データの送信元の確認と改ざんされていないことを保証します。

特長:

  • データ部分のみ を暗号化・認証しますが、デフォルトではIPヘッダー部分の認証と整合性を保証しません。
要するに…
AHとESPの違いというのは、AHというのはIPパケット全体 の整合性とか認証とかを行ってくれるもので、ESPというのはデータのペイロード部分のみの暗号化とか認証とか整合性とかを管理するものです。 つまり対象が違うということです。扱う対象が違う。 だからそれぞれで必要なんだし、価値があるよということです。

リンクで飛ぶ前↑ところに戻る

パケット全体を暗号化したら、宛先が分からなくなるんじゃね? 4/7

クエスチョン question

結論から言うと、新しいIPヘッダを追加するので宛先までは届くということです。では、詳しく見ていきましょう!

トンネルモードの動作の仕組み

  1. 元のIPパケット:
    • 元のパケットには送信元IPアドレスと宛先IPアドレスが含まれています。
  2. 暗号化:
    • 元のIPパケット全体(IPヘッダとペイロード)を暗号化します。
  3. 新しいIPヘッダの追加:

具体例:

元のパケット:

  • 送信元IP: 192.168.1.10
  • 宛先IP: 203.0.113.10
  • ペイロード: データ

暗号化と新しいヘッダの追加:

  1. 元のパケット(192.168.1.10 と 203.0.113.10)を暗号化します。
  2. 新しいIPヘッダを追加します。
    • 新しい送信元IP: 192.168.2.1 (トンネルの開始地点)
    • 新しい宛先IP: 198.51.100.1 (トンネルの終端地点)

結果としてできるトンネルモードのパケット:

  • 送信元IP: 192.168.2.1
  • 宛先IP: 198.51.100.1
  • 暗号化された元のIPパケット(192.168.1.10 と 203.0.113.10 とそのペイロード)

トンネルモードのルーティングの流れ

  1. エントリーポイント:
    • 元のパケットがエントリーポイントに到達すると、全体のパケットが暗号化され、新しいIPヘッダが追加されます。
  2. 中間ルーター:
    • 新しいIPヘッダの情報を使って、パケットはトンネルのエグジットポイントに向かってルーティングされます。中間ルーターは新しいIPヘッダの情報を使用するため、暗号化された部分の内容について知る必要はありません。
  3. エグジットポイント:
    • パケットがトンネルのエグジットポイントに到達すると、外側のIPヘッダが削除され、元の暗号化されたIPパケットが復号されます。
    • 元のパケット(192.168.1.10 -> 203.0.113.10)が元の形に戻り、最終目的地に送信されます。

リンクで飛ぶ前↑のところに戻る

まとめ 5/7

ポート番号 summary

要するに…

IPsecとは、インターネット上での通信を暗号化し、認証整合性を確認するためのセキュアなプロトコルです。この中で使用されるAH(Authentication Header)とESP(Encapsulating Security Payload)は、それぞれ異なる役割を持っています。AHはパケット全体の認証と整合性を提供し、暗号化は行いません。一方、ESPはデータのペイロード部分を暗号化し、同時にその認証と整合性も保証します。これらのプロトコルを組み合わせることで、IPsecは安全な通信を実現します。

おまけ:用語解説 6/7

おまけ
ハッシュ関数ってなに?

ハッシュ関数は、任意の長さのデータ(メッセージ、ファイル、文字列など)を固定長のビット列(ハッシュ値)に変換する数学的な関数です。この変換プロセスには以下の特徴があります。

  1. 入力の任意性: 入力データの長さに制限がない。
  2. 出力の固定長: 出力されるハッシュ値の長さは常に一定。
  3. 決定論的: 同じ入力データからは常に同じハッシュ値が生成される。
  4. 擬似乱数的: 似たような入力データでも、生成されるハッシュ値は大きく異なる。

そして、このようなハッシュ関数から生成された値をハッシュ値と言います。

リンクで飛ぶ前↑のところに戻る

エントリーポイント(Entry Point)ってなに?

エントリーポイントとは、IPsecトンネルに入る際のネットワークの「入り口」を指します。ここでは、受信するデータがIPsecによる保護を受ける前に適用される設定が行われます。

  • 機能:
    • データの暗号化および認証の設定を適用します。
    • トンネル内のデータが保護されるための初期処理を行います。

リンクで飛ぶ前↑のところに戻る

エグジットポイント(Exit Point)ってなに?

エグジットポイントは、IPsecトンネルからデータが出る「出口」を指します。ここでは、データがトンネルを通過した後に元の形式に戻される処理が行われます。

  • 機能:
    • データの復号化および認証の確認を行います。
    • トンネル外のネットワークへデータを正常に流すための処理を行います。

リンクで飛ぶ前↑のところに戻る

おわりに 7/7

goal

本日はここまでです。今日はIPsecをStudy&マスターしてきました!ただカッコいいからという理由だけの方が、意外と集中して向き合うことができたのではないでしょうか?

そうなんです!「勉強しなきゃ!知識つけなきゃ!」のように勉強を義務にしてしまうと長く続きません。だからこそ、私たちは楽しんで知識を身に着けていきましょう!そんなことをやってるうちに気づいたらスペシャリストになっているかもしれませんよ!

これからも、今日みたいに「the勉強するぞ!」という意気込みではなく、ヌルっと気づいたら知識が増えてた!みたいな軽い感覚でStudyを一緒にしていきましょう!

本日はここで、終わります。ありがとうございました。またお会いしましょう!では、さらばじゃ!

【この記事も一緒に読まれています】

ThunderingHerd問題
誤差の種類
タイトルとURLをコピーしました