ネットワークセキュリティ–ネットワーク層
ネットワーク層のセキュリティ制御は、特にインターネットなどの共有ネットワークを介して通信を保護するために頻繁に使用されています。これは、多くのアプリケーションを変更せずに一度に保護できるためです。
前の章では、プライバシー、発信元認証、メッセージの整合性、否認防止などのセキュリティの基本原則を保証するネットワークセキュリティのために多くのリアルタイムセキュリティプロトコルが進化したことを説明しました。
これらのプロトコルのほとんどは、標準のインターネットプロトコルに固有のセキュリティの欠如を補うために、OSIプロトコルスタックの上位層に焦点を合わせたままでした。これらの方法は価値がありますが、どのアプリケーションでも簡単に一般化することはできません。たとえば、SSLは、HTTPやFTPなどのアプリケーションを保護するために特別に開発されました。ただし、安全な通信を必要とするアプリケーションは他にもいくつかあります。
この必要性から、IP層でセキュリティソリューションを開発し、すべての上位層プロトコルがそれを利用できるようにしました。1992年、インターネット技術特別調査委員会(IETF)は、標準の「IPsec」の定義を開始しました。
この章では、この非常に人気のあるプロトコルIPsecのセットを使用してネットワーク層でセキュリティを実現する方法について説明します。
ネットワーク層のセキュリティ
ネットワークセキュリティを提供するために開発されたスキームは、次の図に示すように、プロトコルスタックのあるレイヤーに実装する必要があります。
層 | 通信プロトコル | セキュリティプロトコル |
---|---|---|
アプリケーション層 | HTTP FTP SMTP | PGP。S / MIME、HTTPS |
トランスポート層 | TCP / UDP | SSL、TLS、SSH |
ネットワーク層 | IP | IPsec |
ネットワーク層でセキュリティを確保するために開発された一般的なフレームワークは、インターネットプロトコルセキュリティ(IPsec)です。
IPsecの機能
IPsecは、トランスポートプロトコルとしてTCPでのみ機能するようには設計されていません。これは、UDPだけでなく、ICMP、OSPFなどのIPを超える他のプロトコルでも機能します。
IPsecは、上位層のヘッダーを含む、IP層に提示されるパケット全体を保護します。
ポート番号を運ぶ上位層のヘッダーが非表示になっているため、トラフィック分析はより困難です。
IPsecは、アプリケーションプロセスからアプリケーションプロセスへではなく、あるネットワークエンティティから別のネットワークエンティティへと機能します。したがって、個々のユーザーのコンピューター/アプリケーションを変更することなく、セキュリティを採用できます。
ネットワークエンティティ間の安全な通信を提供するために広く使用されているIPsecは、ホスト間のセキュリティも提供できます。
IPsecの最も一般的な使用法は、2つの場所(ゲートウェイからゲートウェイ)間、またはリモートユーザーとエンタープライズネットワーク(ホストからゲートウェイ)のいずれかに仮想プライベートネットワーク(VPN)を提供することです。
セキュリティ機能
IPsecが提供する重要なセキュリティ機能は次のとおりです。
守秘義務
通信ノードがメッセージを暗号化できるようにします。
第三者による盗聴を防ぎます。
オリジン認証とデータ整合性。
受信したパケットが、パケットヘッダーで送信元として識別されたパーティによって実際に送信されたことを保証します。
パケットが変更されていないことを確認します。
キー管理。
キーの安全な交換を可能にします。
リプレイ攻撃など、特定の種類のセキュリティ攻撃に対する保護。
仮想プライベートネットワーク
理想的には、どの機関もセキュリティを確保するために通信用の独自のプライベートネットワークを必要とします。ただし、地理的に分散したエリアにこのようなプライベートネットワークを確立して維持するには、非常にコストがかかる場合があります。通信リンク、ルーター、DNSなどの複雑なインフラストラクチャを管理する必要があります。
IPsecは、そのような機関に仮想プライベートネットワーク(VPN)を実装するための簡単なメカニズムを提供します。VPNテクノロジーを使用すると、公共のインターネットに入る前にトラフィックを暗号化し、他のトラフィックから論理的に分離することで、機関のオフィス間トラフィックを公共のインターネット経由で送信できます。VPNの簡略化された動作を次の図に示します-
IPsecの概要
IPsecは、IP層でセキュリティを提供するためのフレームワーク/プロトコルスイートです。
原点
1990年代初頭、インターネットは、主に学術目的で、いくつかの機関で使用されていました。しかし、その後の数十年で、ネットワークの拡大と通信やその他の目的でインターネットを使用するいくつかの組織により、インターネットの成長は指数関数的になりました。
インターネットの大規模な成長と、TCP / IPプロトコルに固有のセキュリティの弱点が相まって、インターネット上でネットワークセキュリティを提供できるテクノロジの必要性が感じられました。「インターネットアーキテクチャのセキュリティ」というタイトルのレポートは、1994年にインターネットアーキテクチャ委員会(IAB)によって発行されました。これは、セキュリティメカニズムの主要な領域を特定しました。
IABには、次世代IPであるIPv6の重要なセキュリティ機能として認証と暗号化が含まれていました。幸い、これらのセキュリティ機能は、現在のIPv4と将来のIPv6の両方で実装できるように定義されています。
セキュリティフレームワークであるIPsecは、いくつかの「Requests forcomments」(RFC)で定義されています。一部のRFCはプロトコルの一部を指定しますが、他のRFCはソリューション全体を扱います。
IPsec内の操作
IPsecスイートは、同時に実行すると2つの別個の操作を持ち、セキュリティサービスの完全なセットを提供すると見なすことができます。これらの2つの操作は、IPsec通信とインターネットキー交換です。
IPsec通信
通常、標準のIPsec機能に関連付けられています。これには、IPデータグラムのカプセル化、暗号化、ハッシュ化、およびすべてのパケットプロセスの処理が含まれます。
通信当事者間で確立された利用可能なセキュリティアソシエーション(SA)に従って通信を管理する責任があります。
認証ヘッダー(AH)やカプセル化SP(ESP)などのセキュリティプロトコルを使用します。
IPsec通信は、キーの作成やその管理には関与しません。
IPsec通信操作自体は、一般にIPsecと呼ばれます。
インターネットキーエクスチェンジ(IKE)
IKEは、IPsecに使用される自動キー管理プロトコルです。
技術的には、キー管理はIPsec通信に必須ではなく、キーは手動で管理できます。ただし、手動のキー管理は大規模なネットワークには望ましくありません。
IKEは、IPsecのキーの作成と、キー確立プロセス中の認証の提供を担当します。IPsecは他のキー管理プロトコルに使用できますが、デフォルトではIKEが使用されます。
IKEは、すでに定義されているキー管理フレームワークであるインターネットセキュリティアソシエーションキー管理プロトコル(ISAKMP)で使用される2つのプロトコル(OakleyとSKEME)を定義しています。
ISAKMPはIPsec固有ではありませんが、任意のプロトコルのSAを作成するためのフレームワークを提供します。
この章では、主に、セキュリティを実現するために採用されているIPsec通信と関連プロトコルについて説明します。
IPsec通信モード
IPsec通信には、2つの機能モードがあります。トランスポートモードとトンネルモード。これらのモードは、必要な通信のタイプに応じて、組み合わせて使用することも、個別に使用することもできます。
輸送モード
IPsecは、上位層から受信したパケットをカプセル化しません。
元のIPヘッダーは維持され、データは上位層プロトコルによって設定された元の属性に基づいて転送されます。
次の図は、プロトコルスタックのデータフローを示しています。
トランスポートモードの制限は、ゲートウェイサービスを提供できないことです。次の図に示すように、ポイントツーポイント通信用に予約されています。
トンネルモード
このモードのIPsecは、他のセキュリティサービスとともにカプセル化サービスを提供します。
トンネルモードの操作では、セキュリティプロトコルを適用する前に、上位層からのパケット全体がカプセル化されます。新しいIPヘッダーが追加されました。
次の図は、プロトコルスタックのデータフローを示しています。
トンネルモードは通常、ゲートウェイアクティビティに関連付けられています。カプセル化は、単一のゲートウェイを介して複数のセッションを送信する機能を提供します。
一般的なトンネルモード通信は、次の図に示すとおりです。
エンドポイントに関する限り、それらは直接トランスポート層接続を持っています。ゲートウェイに転送された1つのシステムからのデータグラムはカプセル化されてから、リモートゲートウェイに転送されます。リモートに関連付けられたゲートウェイは、データのカプセル化を解除し、内部ネットワーク上の宛先エンドポイントに転送します。
IPsecを使用すると、ゲートウェイと個々のエンドシステムの間でもトンネリングモードを確立できます。
IPsecプロトコル
IPsecは、セキュリティプロトコルを使用して、必要なセキュリティサービスを提供します。これらのプロトコルはIPsec操作の中心であり、他のすべてはIPsecでこれらのプロトコルをサポートするように設計されています。
通信エンティティ間のセキュリティアソシエーションは、使用されるセキュリティプロトコルによって確立および維持されます。
IPsecで定義されているセキュリティプロトコルには、認証ヘッダー(AH)とカプセル化セキュリティペイロード(ESP)の2つがあります。
認証ヘッダー
AHプロトコルは、データの整合性と発信元認証のサービスを提供します。オプションで、メッセージの再生抵抗に対応します。ただし、いかなる形式の機密性も提供しません。
AHは、ヘッダーを追加することにより、データグラムの内容の全部または一部の認証を提供するプロトコルです。ヘッダーは、データグラムの値に基づいて計算されます。データグラムのどの部分が計算に使用され、ヘッダーをどこに配置するかは、モードの連携(トンネルまたはトランスポート)によって異なります。
AHプロトコルの操作は驚くほど簡単です。これは、チェックサムの計算やエラー検出のためのCRCチェックの実行に使用されるアルゴリズムと同様と見なすことができます。
AHの背後にある概念は同じですが、単純なアルゴリズムを使用する代わりに、AHが特別なハッシュアルゴリズムと通信側だけが知っている秘密鍵を使用する点が異なります。これらの詳細を指定する2つのデバイス間のセキュリティアソシエーションが設定されます。
AHのプロセスは、次のフェーズを経ます。
IPパケットが上位プロトコルスタックから受信されると、IPsecは、パケット内の利用可能な情報から関連するセキュリティアソシエーション(SA)を決定します。たとえば、IPアドレス(送信元と宛先)。
SAから、セキュリティプロトコルがAHであることが識別されると、AHヘッダーのパラメータが計算されます。AHヘッダーは、次のパラメーターで構成されます-
ヘッダーフィールドは、AHヘッダーに続くパケットのプロトコルを指定します。シーケンスパラメータインデックス(SPI)は、通信当事者間に存在するSAから取得されます。
シーケンス番号が計算され、挿入されます。これらの番号は、リプレイ攻撃に抵抗するためのオプション機能をAHに提供します。
認証データの計算方法は、通信モードによって異なります。
トランスポートモードでの認証データの計算と送信用の最終IPパケットの組み立てを次の図に示します。元のIPヘッダーでは、AHの指定されたアプリケーションに対して、プロトコル番号51のみが変更されています。
トンネルモードでは、次の図に示すように、上記のプロセスが実行されます。
カプセル化セキュリティプロトコル(ESP)
ESPは、機密性、整合性、発信元認証、オプションの再生抵抗などのセキュリティサービスを提供します。提供されるサービスのセットは、セキュリティアソシエーション(SA)の設立時に選択されたオプションによって異なります。
ESPでは、暗号化とオーセンティケーターの生成に使用されるアルゴリズムは、SAの作成に使用される属性によって決定されます。
ESPのプロセスは次のとおりです。最初の2つのステップは、上記のAHのプロセスと同様です。
ESPが関与していると判断されると、ESPパケットのフィールドが計算されます。ESPフィールドの配置を次の図に示します。
トランスポートモードでの暗号化と認証のプロセスを次の図に示します。
トンネルモードの場合、暗号化と認証のプロセスは次の図のようになります。
認証と機密性はESPが提供する主要なサービスですが、どちらもオプションです。技術的には、認証なしでNULL暗号化を使用できます。ただし、実際には、ESPを効果的に使用するには、2つのうちの1つを実装する必要があります。
基本的な概念は、認証と暗号化が必要な場合はESPを使用し、暗号化なしの拡張認証が必要な場合はAHを使用することです。
IPsecのセキュリティアソシエーション
セキュリティアソシエーション(SA)は、IPsec通信の基盤です。SAの特徴は次のとおりです。
データを送信する前に、送信エンティティと受信エンティティの間に「セキュリティアソシエーション(SA)」と呼ばれる仮想接続が確立されます。
IPsecは、ネットワークの暗号化と認証を実行するための多くのオプションを提供します。各IPsec接続は、暗号化、整合性、信頼性、または3つすべてのサービスを提供できます。セキュリティサービスが決定されると、2つのIPsecピアエンティティは、使用するアルゴリズムを正確に決定する必要があります(たとえば、暗号化の場合はDESまたは3DES、整合性の場合はMD5またはSHA-1)。アルゴリズムを決定した後、2つのデバイスはセッションキーを共有する必要があります。
SAは、IPsecセッションを構築するための2つ以上のシステム間の関係を提供する上記の通信パラメーターのセットです。
SAは本質的に単純であるため、双方向通信には2つのSAが必要です。
SAは、セキュリティプロトコルヘッダーに存在するセキュリティパラメータインデックス(SPI)番号によって識別されます。
送信エンティティと受信エンティティの両方が、SAに関する状態情報を維持します。これは、状態情報も保持するTCPエンドポイントに似ています。IPsecは、TCPのようにコネクション型です。
SAのパラメータ
SAは、次の3つのパラメータによって一意に識別されます-
セキュリティパラメータインデックス(SPI)。
SAに割り当てられた32ビット値です。これは、同じ宛先で終了し、同じIPsecプロトコルを使用する異なるSAを区別するために使用されます。
IPsecのすべてのパケットは、SPIフィールドを含むヘッダーを伝送します。SPIは、着信パケットをSAにマッピングするために提供されています。
SPIは、受信者に対してSAを識別するために送信者によって生成される乱数です。
Destination IP Address −エンドルーターのIPアドレスにすることができます。
Security Protocol Identifier −関連付けがAHであるかESPSAであるかを示します。
次の図に、IPsec通信に関与する2つのルーター間のSAの例を示します。
セキュリティ管理データベース
IPsecには、IPsecデータグラムの処理を制御する2つのデータベースがあります。1つはセキュリティアソシエーションデータベース(SAD)で、もう1つはセキュリティポリシーデータベース(SPD)です。IPsecを使用する各通信エンドポイントには、論理的に分離されたSADとSPDが必要です。
セキュリティアソシエーションデータベース
IPsec通信では、エンドポイントはセキュリティアソシエーションデータベース(SAD)でSA状態を保持します。SADデータベースの各SAエントリには、次の表に示すように9つのパラメータが含まれています。
シニア番号 | パラメータと説明 |
---|---|
1 | Sequence Number Counter アウトバウンド通信用。これは、AHまたはESPヘッダーで提供される32ビットのシーケンス番号です。 |
2 | Sequence Number Overflow Counter オプションフラグを設定して、特定のSAを利用したそれ以上の通信を防止します |
3 | 32-bit anti-replay window インバウンドAHまたはESPパケットがリプレイであるかどうかを判別するために使用されます |
4 | Lifetime of the SA SAがアクティブのままになるまでの時間 |
5 | Algorithm - AH AHおよび関連するキーで使用されます |
6 | Algorithm - ESP Auth ESPヘッダーの認証部分で使用されます |
7 | Algorithm - ESP Encryption ESPとそれに関連するキー情報の暗号化に使用されます |
8 | IPsec mode of operation トランスポートまたはトンネルモード |
9 | Path MTU(PMTU) 観測されたパスの最大伝送ユニット(断片化を回避するため) |
SAD内のすべてのSAエントリは、宛先IPアドレス、セキュリティプロトコル識別子、およびSPIの3つのSAパラメータによってインデックスが付けられます。
セキュリティポリシーデータベース
SPDは、発信パケットの処理に使用されます。どのSADエントリを使用するかを決定するのに役立ちます。SADエントリが存在しない場合は、SPDを使用して新しいエントリを作成します。
すべてのSPDエントリには-が含まれます
SADで開催されたアクティブSAへのポインタ。
セレクタフィールド–IPsecの適用を決定するために使用される上位層からの着信パケットのフィールド。セレクターには、送信元アドレスと宛先アドレス、関連する場合はポート番号、アプリケーションID、プロトコルなどを含めることができます。
送信IPデータグラムは、SPDエントリから特定のSAに移動して、エンコーディングパラメータを取得します。着信IPsecデータグラムは、SPI / DEST IP /プロトコルトリプルを使用して直接正しいSAに到達し、そこから関連するSADエントリを抽出します。
SPDは、IPsecをバイパスする必要があるトラフィックを指定することもできます。SPDは、決定されたアクションがSAプロセスのアクティブ化であるパケットフィルターと見なすことができます。
概要
IPsecは、ネットワーク接続を保護するための一連のプロトコルです。これはかなり複雑なメカニズムです。特定の暗号化アルゴリズムと認証機能を簡単に定義するのではなく、通信側の両方が合意したものを実装できるフレームワークを提供するからです。
認証ヘッダー(AH)とカプセル化セキュリティペイロード(ESP)は、IPsecで使用される2つの主要な通信プロトコルです。AHは認証のみを行いますが、ESPは接続を介して送信されるデータを暗号化および認証できます。
トランスポートモードは、IPヘッダーを変更せずに、2つのエンドポイント間の安全な接続を提供します。トンネルモードは、ペイロードIPパケット全体をカプセル化します。新しいIPヘッダーを追加します。後者は、信頼できないインターネットを介して仮想の安全なトンネルを提供するため、従来のVPNを形成するために使用されます。
IPsec接続の設定には、あらゆる種類の暗号の選択が含まれます。認証は通常、MD5やSHA-1などの暗号化ハッシュの上に構築されます。暗号化アルゴリズムは、DES、3DES、Blowfish、およびAESが一般的です。他のアルゴリズムも可能です。
通信する両方のエンドポイントは、ハッシュまたは暗号化で使用される秘密の値を知っている必要があります。手動キーでは、両端に秘密値を手動で入力する必要があります。これは、おそらく何らかの帯域外メカニズムによって伝達されます。IKE(Internet Key Exchange)は、これをオンラインで行うための高度なメカニズムです。