Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

高度な MACsec 機能の設定

メディアアクセス制御セキュリティ(MACsec)は、イーサネットリンク上のほぼすべてのタイプのトラフィックに安全な通信を提供する業界標準のセキュリティ技術です。MACsecは、直接接続されたノード間のイーサネットリンクにポイントツーポイントのセキュリティを提供し、サービス拒否、侵入、中間者攻撃、なりすまし、受動的盗聴、プレイバック攻撃など、ほとんどのセキュリティ上の脅威を特定して防止することができます。MACsecはIEEE 802.1AEで標準化されています。

Feature Explorerを使用して、特定の機能に対するプラットフォームとリリースのサポートを確認します。

暗号化オプションを設定する

暗号化アルゴリズムを割り当てる

以下のMACsec暗号化アルゴリズムのいずれかを使用して、インターフェイスに出入りするすべてのトラフィックを暗号化できます。

  • gcm-aes-128:拡張パケット番号(XPN)モードのない GCM-AES-128 暗号スイート

  • gcm-aes-256—GCM-AES-256 暗号スイート(XPN なし)

  • gcm-aes-xpn-128—GCM-AES-XPN_128 暗号スイート(XPN モード)

  • gcm-aes-xpn-256:XPN モードの GCM-AES-XPN_256 暗号スイート

MACsec 暗号化が有効で、暗号化アルゴリズムが指定されていない場合、デフォルト(gcm-aes-128)の暗号化アルゴリズムが XPN モードなしで使用されます。

手記:

40Gおよび100GリンクでMACsecを使用する場合は、XPNを使用することを強くお勧めします。

手記:
  • XPNモードでの暗号化アルゴリズムは、MXシリーズMPC7E-10Gルーターではサポートされていません。

  • GCM-AES-128 のみが、MIC-3D-20GE-SFP-E および MIC-3D-20GE-SFP-EH でサポートされています。

たとえば、 ca1 という名前の接続アソシエーションで GCM-AES-XPN-128 アルゴリズムを使用して暗号化する場合は、次のようにします。

暗号化を無効にする

MACsecのデフォルト動作は、リンクを通過するトラフィックを暗号化することです。エンドポイントを認証し、リンクの整合性を保証するためだけにMACsecを使用する場合は、暗号化を無効にできます。これは、整合性のみモードと呼ばれます。整合性のみモードは、複数のホップでMACsecを伝送する際に、暗号化されていないペイロードを表示する必要がある場合に便利です。

暗号化を無効にすると、トラフィックはクリアテキストでイーサネットリンクを介して転送されます。リンクを監視しているときに、リンクを通過するイーサネットフレーム内の暗号化されていないデータを表示できます。ただし、MACsecヘッダーはフレームに適用され、すべてのMACsecデータ整合性チェックがリンクの両端で実行され、リンクで送受信されるトラフィックが改ざんされておらず、セキュリティ上の脅威になっていないことを確認します。

暗号化を無効にするには、次のコマンドを使用します。

オフセットの設定

Offsetは、完全暗号化と暗号化なしのオプションを提供します。ペイロードの設定されたバイト数を公開し、残りを暗号化するようにオフセットを設定します。これは、中間のロードバランシングや、スイッチツーホストリンクの場合のホストでの負荷分散に使用できます。

デフォルトのオフセットは 0 です。暗号化が有効で、 offset が設定されていない場合、接続アソシエーション内のすべてのトラフィックが暗号化されます。

オフセットを 30 に設定すると、IPv4 ヘッダーと TCP/UDP ヘッダーは暗号化されず、残りのトラフィックは暗号化されません。オフセットが 50 に設定されている場合、IPv6 ヘッダーと TCP/UDP ヘッダーは暗号化されず、残りのトラフィックは暗号化されます。

機能が機能を実行するためにオクテット内のデータを見る必要がある場合、通常は最初の30または50オクテットを暗号化せずにトラフィックを転送しますが、そうでない場合は、リンクを通過するフレーム内の残りのデータを暗号化することを好みます。特にロードバランシング機能では、トラフィックを適切にロードバランシングするために、通常、最初の30または50オクテットでIPヘッダーとTCP/UDPヘッダーを確認する必要があります。

オフセットを設定するには、次のコマンドを使用します。

たとえば、 ca1 という名前の接続性の関連付けでオフセットを 30 に設定する場合は、次のようにします。

事前共有鍵ヒットレスロールオーバーキーチェーンの設定(ルーター間リンクでMACsecを有効にする場合に推奨)

リリース17.4R1より前の静的接続アソシエーションキー(CAK)を使用したMACsec実装では、ユーザーは接続アソシエーションごとに1つの静的CAKを設定できます。CAK の設定が変更されるたびに、MACsec セッションがドロップされ、ピア セッションがリセットされるか、ルーティング プロトコルが中断されます。

セキュリティを強化し、CAK 設定が変更されたときにセッションがドロップされるのを防ぐために、ヒットレス ロールオーバー キーチェーン機能が実装されています。この実装では、複数のセキュリティ キー、キー名、および開始時刻を持つキー チェーンが使用されます。キーチェーンの各キーには、一意の開始時刻があります。次のキーの開始時刻に、現在のキーから次のキーへのロールオーバーが発生し、次のキーが現在のキーになります。ヒットレス ロールオーバー キーチェーン機能の実装により、MACsec Key Agreement(MKA)プロトコルは、CAK 設定が変更されたときにセッションをドロップすることなく、MACsec セッションを正常に確立します。

事前共有鍵(PSK)ヒットレスロールオーバーキーチェーンを使用して MACsec 設定を成功させるには、以下を行います。

  • 各キーのキーチェーン名、キー、および開始時刻は、参加しているノードの両方で同じである必要があります。

  • キーチェーン名、キー、および開始時刻の順序は、参加している両方のノードで同じである必要があります。

  • 参加ノードで時刻を同期させる必要があります。

既存の authentication-key-chains コマンドと macsec connectivity-association コマンドは、2 つの新しい属性が追加されたヒットレスロールオーバーキーチェーンを実装するために使用されます。

  • key-name- 認証キー名で、この key-name はMACsecのCKNとして使用されます。

  • pre-shared-key-chain- 事前共有接続アソシエーションのキーチェーン名。

PSKヒットレスロールオーバーキーチェーン設定でMACsecを使用して、ルーター間のイーサネットリンクを保護するには:

手記:

次の手順は、両方の参加ノードで同じ順序で実行してください。

  1. 参加ノードの時刻を同じNTPサーバに同期します。

    たとえば、NTP サーバ 192.168.40.1 に従って日付と時刻を設定するには、次のように入力します。

  2. キーチェーンで一連の PSK を設定します。キーチェーンは、セキュリティ キー、キー名、および開始時刻で構成されます。

    キーチェーンを設定するには:

    1. 使用するシークレットパスワードを作成します。これは、最大64文字の長さの16進数の文字列です。文字列を引用符で囲む場合、パスワードにはスペースを含めることができます。キーチェーンのシークレットデータは CAK として使用されます。

      たとえば、キーチェーンmacsec_key_chainとキー 1 の秘密のパスワード01112233445566778899aabbccddeeffを作成するには、次のように入力します。

    2. 認証キー名を設定します。これは、最大 32 文字の長さの 16 進数の文字列です。

      たとえば、キー名 01112233445566778899aabbccddeefeを作成するには、次のように入力します。

    3. 事前共有ロールオーバーキーチェーンが開始する時間を設定します。

      たとえば、01112233445566778899aabbccddeefe を含むキー名を 2017-12-18.20:55:00 +0000 にロールオーバーを開始する場合は、次のように入力します。

  3. 新しく作成したキーチェーンを MACsec 接続の関連付けに関連付けます。
    1. 接続アソシエーションのMACsecセキュリティモードを設定します。

      例えば、接続アソシエーション ca1 をセキュリティー・モード static-cak で構成するには、次のように入力します。

    2. 事前共有キーチェーン名を接続の関連付けに関連付けます。

      たとえば、キーチェーン名macsec_key_chainを接続アソシエーション ca1 に関連付ける場合は、次のように入力します。

  4. 設定された接続アソシエーションを指定されたMACsecインターフェイスに割り当てます。

    例えば、接続性アソシエーションca1をインターフェイスge-0/0/1に割り当てるには、以下を行います。

フェールオープン モードでの MACsec 鍵合意プロトコルの設定

MACsec のフェールオープン モードを設定して、MKA セッションが非アクティブなときにトラフィックがドロップされるのを防ぐことができます。これは、情報セキュリティよりもネットワークの可用性を優先するサービス プロバイダーに推奨されます。

MACsecは、MACsecで保護されたリンクで送信されたイーサネットフレームにMACsecヘッダーを追加することで、データの整合性を維持します。MKA セッションがアクティブな場合、MACsec ヘッダーを持つフレームのトラフィックのみがリンクで許可されます。MKA セッションが非アクティブの場合、フレームは MACsec ヘッダーを受信しません。イングレスとエグレスの両方のトラフィックがすべてドロップされます。唯一の例外は EAPoL トラフィックです。

should-secure CLI ステートメントを使用して、フェイルオープンモードを設定できます。これにより、MKAセッションが非アクティブなときでも、MACsecで保護されたリンク上のトラフィックが可能になります。トラフィックは、MACsecヘッダーなしでクリアテキストとして送信されます。

MKA プロトコルをフェールオープンモードで設定するには:

リプレイ防御の設定

MACsecは、MACsecで保護されたリンク上の各パケットにID番号を割り当てます。リプレイ防御が有効な場合、受信側インターフェイスは、MACsec セキュリティで保護されたリンクを通過したすべてのパケットの ID 番号を確認します。パケットが順不同で到着し、パケット番号の差がリプレイ防御ウィンドウ サイズを超えると、受信側インターフェイスはパケットを破棄します。

例えば、リプレイ防御ウィンドウ サイズが 5 に設定されていて、ID 1000 が割り当てられたパケットの直後に ID 1006 が割り当てられたパケットが受信リンクに到着した場合、ID 1006 のパケットはリプレイ防御ウィンドウの外側にあるためドロップされます。

リプレイ保護は、中間者攻撃と戦うのに役立ちます。イーサネットリンク上の中間者攻撃者によってリプレイされたパケットは、順不同で受信リンクに到着するため、リプレイ保護は、リプレイされたパケットがネットワークを介して転送されるのではなく、ドロップされるようにするのに役立ちます。

手記:

再生ウィンドウ サイズを 0 に設定することで、すべてのパケットが順番に到着するように要求できます。パケットが順不同で到着することが予想される場合は、リプレイ保護を有効にしないでください。

リプレイ防御を有効にするには、次のコマンドを使用します。

たとえば、接続アソシエーション ca1でウィンドウ サイズが 5 のリプレイ防御を有効にするには、次のようにします。

有界遅延保護の設定

制限付き遅延保護を設定して、2 秒以上の遅延後に MACsec(Media Access Control Security)フレームが配信されないようにすることができます。これにより、中間者攻撃に起因するMACsecフレームの遅延が検出されることはありません。

有界遅延保護を構成する場合は、リプレイ保護も構成する必要があります。これは、重複パケットとリプレイパケットが許可される時間帯です。有界遅延は、リプレイ保護よりも優先されます。ウィンドウ サイズに低い値を構成することで、有界遅延保護の有効性を高めることができます。

有界遅延保護を構成する前に、リプレイ保護を構成する必要があります。 リプレイ防御の設定を参照してください。

有界遅延保護を設定するには、次のコマンドを使用します。

手記:

有界遅延は CPU 使用率に影響し、パフォーマンスが低下する可能性があります。制限された遅延は、どうしても必要なインターフェイスでのみ設定することをお勧めします。

フォールバックPSKによるMACsecの設定

静的 CAK セキュリティ モードを使用して MACsec を有効にすると、ポイントツーポイント イーサネット リンクの両端のデバイス間で PSK(事前共有鍵)が交換されます。PSKには、CKN(コネクティビティアソシエーション名)とCAK(コネクティビティアソシエーションキー)が含まれています。MACsecセッションが確立されるためには、PSKがデバイス間で一致する必要があります。不一致がある場合、セッションは確立されず、すべてのパケットが破棄されます。

プライマリ PSK が接続の確立に失敗した場合にトラフィックの損失を防ぐため、フォールバック PSK を設定できます。フォールバックPSKは、最初のMACsecネゴシエーションで主キーが一致しない場合に使用されます。

MACsecセッションがすでに確立されており、一方のデバイスでプライマリPSKが変更され、もう一方のデバイスでは変更されない場合、結果として生じる不一致は古いプライマリPSKを使用して解決されます。古いプライマリ PSK は、先行する PSK と呼ばれる一時キーです。

フォールバックPSKが設定されていると、MACsecセッションを以下のキーのいずれかで保護できます。

  • プライマリPSK(設定可能):優先キー。

  • フォールバックPSK(設定可能)—プライマリPSKがMACsecセッションの確立に失敗した場合に使用されます。

  • 先行PSK(設定不可)—新しいプライマリPSKが設定されると、古いプライマリPSKが先行するPSKになります。

各キーの CAK の状態は、ライブ、アクティブ、または進行中のいずれかです。各状況の説明については、 表 1 を参照してください。

表 1:CAK ステータスの説明
CAK ステータス の説明

住む

  • CAKはMKAによって検証されています。

  • MACsecセッションはライブです。

  • SAK は、このキーを使用して正常に生成されます。

  • CAKは、MACsecセッションの暗号化と復号化に使用されます。

  • MKA hello パケットは、設定された間隔でこのキーに対して送受信されます。

能動

  • CAKはMKAによって検証されています。

  • MACsecセッションはライブです。

  • SAK は、このキーを使用して生成されません。

  • CAK は、MACsec セッションの暗号化と復号化には使用されません。

  • MKA hello パケットは、設定された間隔でこのキーに対して送受信されます。

進行中

  • 有効なライブ ピアまたは潜在的なピアが見つかりません。

  • ピアを見つけるためのMACsecセッションが進行中です。

  • MKA helloパケットは、設定された間隔でこのキーに対して送信されます。

鍵の不一致は、MACsec リンクの片側に新しい PSK が設定され、もう片側に新しい鍵が誤って設定されているか、または設定されていない場合に発生します。フォールバック動作は、PSK のどのコンポーネントが変更されるか(CAK、CKN、またはその両方)によって異なります。それぞれの不一致シナリオについて、以下で説明します。

  • CAK が変更され、CKN が同じままの場合、既存の MACsec セッションは切断されます。新しいセッションは、古い CKN と新しい CAK 値で開始されます。

  • CKN が変更され、CAK が同じままの場合、既存の CAK とペアになっている古い CKN が前の PSK になり、セッションは前の PSK でライブになります。新しく作成された CKN と CAK を使用して新しいセッションが開始され、ピア ノードも同じ CKN で設定されるまで進行中です。

  • CAK と CKN の両方が変更された場合、古い CAK+CKN のペアが前の PSK になり、セッションは前の PSK でライブになります。新しいセッションは、新しい CAK+CKN ペアで開始され、ピア ノードも同じ CAK+CKN で設定されるまで進行中です。

手記:

先行するPSKはフォールバックPSKよりも優先されるため、セッションが先行するPSKでライブの場合、フォールバックPSKは有効になりません。セッションをフォールバックPSKでライブにする場合は、 disable-preceding-key ステートメントを設定する必要があります。

フォールバック PSK は、事前共有キーチェーンでサポートされています。フォールバックPSKは、事前共有キーまたは事前共有キーチェーンとともに設定できます。事前共有鍵と事前共有キーチェーンは相互に排他的です。

フォールバックPSKのみが設定され、プライマリPSKがない場合、両方のデバイスがフォールバックPSKとのセッションを確立しようとします。セッションが立ち上がると、フォールバックPSKから派生したSAKがデータトラフィックの暗号化に使用されます。確立されたセッションが中断された場合、デバイスはセッションの再確立を試行し続け、セッションが再確立されるまでトラフィックはドロップされます。

フォールバック PSK は、接続アソシエーション (CA) の一部として構成されます。CA は、すべてのインターフェイスに対してグローバルに設定することも、インターフェイスごとに設定することもでき、インターフェイスごとに異なるフォールバック キーを使用できます。

フォールバック PSK を構成するには、CA の一部として CAK と CKN を構成します。

フォールバック PSK 設定には、次の制限が適用されます。

  • フォールバック CAK と CKN は、事前共有キーの CKN と CAK、または同じ CA のキーチェーンで構成されているキーと一致しません。

  • フォールバックキーを設定するには、セキュリティモード設定が存在する必要があります。

  • 設定された暗号スイートのキー長の制限は、フォールバック CAK と CKN に適用されます。

GRES による MACsec の設定

グレースフルスイッチオーバー(GRES)機能により、冗長ルーティングエンジンを搭載したスイッチまたはルーターは、1つのルーティングエンジン(RE)に障害が発生した場合でも、パケットの転送を継続することができます。REスイッチオーバー中にMACsecを設定して、サービスを中断させないようにすることができます。

MACsec Key Agreement(MKA)プロトコルは、ポイントツーポイント MACsec リンク上の 2 つのノード間の MACsec セッションを維持します。MKAプロトコルは、2つのノード間のコントロールプレーンレベルで動作します。1 つのノードがキー サーバーとして機能し、リンクを保護するためのセキュア アソシエーション キー(SAK)を生成します。

ローカルノードがREスイッチオーバーを開始すると、リモートピアノードにリクエストを送信して、コントロールプレーンでのMACsecセッションを一時停止します。データ プレーンでは、中断中もトラフィックはポイントツーポイント リンクを通過し続けます。中断前にプログラムされた SAK は、切り替えが完了するまで引き続き使用されます。スイッチオーバー後、キー サーバはリンクを保護するために新しい SAK を生成します。キー サーバは、MACsec が有効になっている限り、リンク上で SAK を定期的に作成して共有し続けます。

MACsec の GRES を有効にするには、RE のスイッチオーバー時に中断要求を送信するように、ローカルノードで suspend-for ステートメントを設定する必要があります。また、キー サーバとして機能するノードは、 suspend-on-request ステートメントを使用して中断要求を受け入れるように設定する必要があります。それ以外の場合、キー サーバは中断要求を拒否し、MACsec セッションが終了します。

suspend-forおよびsuspend-on-requestステートメントを設定する場合、GRES とノンストップルーティングも設定する必要があります。

Feature Explorerを使用して、特定の機能に対するプラットフォームとリリースのサポートを確認します。

手記:

GRES 中は、以下の MACsec 機能が無効になります。

  • 主キー、フォールバック、または先行キーの切り替え。

  • キーチェーンキースイッチ。

  • SAKキー更新タイマー。

MACsec の GRES を有効にするには、ローカルノードで以下の設定を使用します。

  1. グレースフル スイッチオーバーを設定します。
  2. ノンストップルーティングを設定します。
  3. RE スイッチオーバーの開始時に中断要求を送信するようにノードを構成します。
  4. (鍵サーバーのみ)中断要求を受け入れるようにノードを構成します。