高度な 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 でサポートされています。
[edit security macsec connectivity-association <varname>connectivity-association-name</varname>] user@host# set cipher-suite (gcm-aes-128 | gcm-aes-256 | gcm-aes-xpn-128 | gcm-aes-xpn-256)
たとえば、 ca1 という名前の接続アソシエーションで GCM-AES-XPN-128 アルゴリズムを使用して暗号化する場合は、次のようにします。
[edit security macsec connectivity-association ca1] user@host# set cipher-suite gcm-aes-xpn-128
暗号化を無効にする
MACsecのデフォルト動作は、リンクを通過するトラフィックを暗号化することです。エンドポイントを認証し、リンクの整合性を保証するためだけにMACsecを使用する場合は、暗号化を無効にできます。これは、整合性のみモードと呼ばれます。整合性のみモードは、複数のホップでMACsecを伝送する際に、暗号化されていないペイロードを表示する必要がある場合に便利です。
暗号化を無効にすると、トラフィックはクリアテキストでイーサネットリンクを介して転送されます。リンクを監視しているときに、リンクを通過するイーサネットフレーム内の暗号化されていないデータを表示できます。ただし、MACsecヘッダーはフレームに適用され、すべてのMACsecデータ整合性チェックがリンクの両端で実行され、リンクで送受信されるトラフィックが改ざんされておらず、セキュリティ上の脅威になっていないことを確認します。
暗号化を無効にするには、次のコマンドを使用します。
[edit security macsec connectivity-association connectivity-association-name] user@host# set no-encryption
オフセットの設定
Offsetは、完全暗号化と暗号化なしのオプションを提供します。ペイロードの設定されたバイト数を公開し、残りを暗号化するようにオフセットを設定します。これは、中間のロードバランシングや、スイッチツーホストリンクの場合のホストでの負荷分散に使用できます。
デフォルトのオフセットは 0 です。暗号化が有効で、 offset が設定されていない場合、接続アソシエーション内のすべてのトラフィックが暗号化されます。
オフセットを 30 に設定すると、IPv4 ヘッダーと TCP/UDP ヘッダーは暗号化されず、残りのトラフィックは暗号化されません。オフセットが 50 に設定されている場合、IPv6 ヘッダーと TCP/UDP ヘッダーは暗号化されず、残りのトラフィックは暗号化されます。
機能が機能を実行するためにオクテット内のデータを見る必要がある場合、通常は最初の30または50オクテットを暗号化せずにトラフィックを転送しますが、そうでない場合は、リンクを通過するフレーム内の残りのデータを暗号化することを好みます。特にロードバランシング機能では、トラフィックを適切にロードバランシングするために、通常、最初の30または50オクテットでIPヘッダーとTCP/UDPヘッダーを確認する必要があります。
オフセットを設定するには、次のコマンドを使用します。
[edit security macsec connectivity-association connectivity-association-name] user@host# set offset (0 | 30 | 50)
たとえば、 ca1 という名前の接続性の関連付けでオフセットを 30 に設定する場合は、次のようにします。
[edit security macsec connectivity-association ca1] user@host# set offset 30
フェールオープン モードでの MACsec 鍵合意プロトコルの設定
MACsec のフェールオープン モードを設定して、MKA セッションが非アクティブなときにトラフィックがドロップされるのを防ぐことができます。これは、情報セキュリティよりもネットワークの可用性を優先するサービス プロバイダーに推奨されます。
MACsecは、MACsecで保護されたリンクで送信されたイーサネットフレームにMACsecヘッダーを追加することで、データの整合性を維持します。MKA セッションがアクティブな場合、MACsec ヘッダーを持つフレームのトラフィックのみがリンクで許可されます。MKA セッションが非アクティブの場合、フレームは MACsec ヘッダーを受信しません。イングレスとエグレスの両方のトラフィックがすべてドロップされます。唯一の例外は EAPoL トラフィックです。
should-secure CLI ステートメントを使用して、フェイルオープンモードを設定できます。これにより、MKAセッションが非アクティブなときでも、MACsecで保護されたリンク上のトラフィックが可能になります。トラフィックは、MACsecヘッダーなしでクリアテキストとして送信されます。
MKA プロトコルをフェールオープンモードで設定するには:
[edit security macsec connectivity-association connectivity-association-name] user@host# set mka should-secure;
リプレイ防御の設定
MACsecは、MACsecで保護されたリンク上の各パケットにID番号を割り当てます。リプレイ防御が有効な場合、受信側インターフェイスは、MACsec セキュリティで保護されたリンクを通過したすべてのパケットの ID 番号を確認します。パケットが順不同で到着し、パケット番号の差がリプレイ防御ウィンドウ サイズを超えると、受信側インターフェイスはパケットを破棄します。
例えば、リプレイ防御ウィンドウ サイズが 5 に設定されていて、ID 1000 が割り当てられたパケットの直後に ID 1006 が割り当てられたパケットが受信リンクに到着した場合、ID 1006 のパケットはリプレイ防御ウィンドウの外側にあるためドロップされます。
リプレイ保護は、中間者攻撃と戦うのに役立ちます。イーサネットリンク上の中間者攻撃者によってリプレイされたパケットは、順不同で受信リンクに到着するため、リプレイ保護は、リプレイされたパケットがネットワークを介して転送されるのではなく、ドロップされるようにするのに役立ちます。
再生ウィンドウ サイズを 0 に設定することで、すべてのパケットが順番に到着するように要求できます。パケットが順不同で到着することが予想される場合は、リプレイ保護を有効にしないでください。
リプレイ防御を有効にするには、次のコマンドを使用します。
[edit security macsec connectivity-association connectivity-association-name] user@host# set replay-protect replay-window-size number-of-packets
たとえば、接続アソシエーション ca1でウィンドウ サイズが 5 のリプレイ防御を有効にするには、次のようにします。
[edit security macsec connectivity-association ca1] user@host# set replay-protect replay-window-size 5
有界遅延保護の設定
制限付き遅延保護を設定して、2 秒以上の遅延後に MACsec(Media Access Control Security)フレームが配信されないようにすることができます。これにより、中間者攻撃に起因するMACsecフレームの遅延が検出されることはありません。
有界遅延保護を構成する場合は、リプレイ保護も構成する必要があります。これは、重複パケットとリプレイパケットが許可される時間帯です。有界遅延は、リプレイ保護よりも優先されます。ウィンドウ サイズに低い値を構成することで、有界遅延保護の有効性を高めることができます。
有界遅延保護を構成する前に、リプレイ保護を構成する必要があります。 リプレイ防御の設定を参照してください。
有界遅延保護を設定するには、次のコマンドを使用します。
[edit security macsec connectivity-association connectivity-association-name mka] user@host# set bounded-delay
有界遅延は 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 を参照してください。
| CAK ステータス | の説明 |
|---|---|
住む |
|
能動 |
|
進行中 |
|
鍵の不一致は、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 を構成します。
[edit security macsec connectivity-association ca-name] user@switch# set fallback-key cak key user@switch# set fallback-key ckn key-name
フォールバック 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 を有効にするには、ローカルノードで以下の設定を使用します。