Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

TCP 認証オプション(TCP-AO)

概要 BGP および LDP セッションの TCP 認証オプション(TCP-AO)について説明します。

BGP および LDP セッション用の TCP-AO

BGPおよびLDPプロトコルは、トランスポートにTCPを使用します。TCP-AOは、 RFC5925、BGP およびLDPセッション中に交換されたTCPセグメントのセキュリティと信頼性を強化するために提案された新しい認証方法です。また、IPv4とIPv6の両方のトラフィックもサポートしています。

TCP-AO のメリット

TCP-AO は、TCP MD5 よりも以下のメリットを提供します。

  • より強力なアルゴリズム—HMAC-SHA-1-96やAES-128-CMAC-96などの複数の強力な認証アルゴリズムをサポートします( RFC5925、TCP認証オプションで義務付けられています)。HMAC-SHA-1-96 はハッシュベースの MAC であり、AES-128-CMAC-96 は暗号ベース MAC であるため、MD5 アルゴリズムを使用して作成されたダイジェストよりも複雑でセキュアなメッセージダイジェストになります。

  • 二重セキュリティ:TCP-AO方式では、設定された認証アルゴリズムが2つの段階で使用されます。一度、ユーザーが設定したキーから内部トラフィックキーを生成し、生成されたトラフィックキーを使用してメッセージダイジェストを生成します。一方、TCP MD5アルゴリズムは、ユーザー設定キーを使用してメッセージダイジェストを生成します。

  • より良いキー管理と俊敏性:セッションに対して最大64個のキーを設定でき、セッションのライフタイム中はいつでもキーを追加できます。TCP接続を閉じることなく、同じ接続内でキーを変更(キーから別のキーに移動)する機能を提供することで、シンプルなキー調整メカニズムを提供します。確立された接続中にTCP MD5キーを変更すると、接続でフラップや再起動が発生する可能性があります。

  • 長寿命の接続に適しています。BGPやLDPなどのルーティングプロトコルや、単一接続の繰り返しインスタンス間での長期接続に適しています。

TCP-AOとは

TCP-AO は以下のフレームワークを提供します。

  • HMAC-SHA1やAES-128など、複数の強力なアルゴリズムをサポートして、内部トラフィックキーとメッセージダイジェストを作成します。

  • 確立された接続の内部トラフィックキーを生成する新しいユーザー設定鍵と、BGPまたはLDPピア間で鍵変更を同期するメカニズムを追加します。

以前のリリースでは、Junos デバイスは BGP および LDP セッションに対してのみ TCP MD5 認証方法をサポートしていました。MD5メソッドは、TCP-AOよりも安全性の低いMD5アルゴリズムのみをサポートしています。さらに、MD5キーを変更すると、TCP-AOとは異なり、通常TCPセッションが中断します。TCP MD5は、 RFC2385、 TCP MD5シグネチャオプションを介したBGPセッションの保護で定義されています。TCP MD5 の詳細については、 TCP を参照してください。

メモ:

次の図は、TCP-AOとTCP MD5認証の違いを説明しています。最初のフローは TCP-AO の設定と処理フローを、2 つ目のフローは TCP-MD5 の設定と処理フローを示しています。

図 1:TCP MD5 TCP-AO in comparison with TCP MD5 と比較した TCP-AO

以下に、図 1 に示す処理フローについて説明します。

  • TCP-AO — ユーザーはキーチェーン(キー 0 とキー 1)で、必要なすべてのパラメーターで 2 つのキーを設定しました。キーチェーンは、HMAC SHA1 と AES-128(RFC5925 に従って必須)の 2 つのアルゴリズムをサポートしています。TCPは、図のタイムスタンプに示すように、現在アクティブになっているキーであるキー0を取得します。この例では、鍵 0 は HMAC-SHA1 で設定されています。

    SHA1 は、(鍵 0 設定から)「秘密」と接続固有のパラメーターを暗号化するために取得し、内部トラフィック キーを生成します。

    SHA1 は、内部トラフィック キーと TCP セグメントを再度暗号化して、メッセージ ダイジェストを生成します。ダイジェストは、TCPセグメントのTCP-AOオプションのTCP-AO MACフィールドにコピーされます。その後、セグメントが受信側デバイスに送信されます。

  • TCP-MD5—TCP MD5オプションが接続に対して1つのキーのみをサポートするため、ユーザーは1つのキーを設定しました。さらに、MD5 アルゴリズムのみをサポートします。MD5 アルゴリズムは、鍵と TCP セグメントから「秘密」を暗号化してメッセージ ダイジェストを生成します。このメッセージダイジェストは、TCPセグメントのMD5ダイジェストフィールドにコピーされ、受信デバイスに送信されます。

構成

まず、キーチェーンを設定します。次に、BGPまたはLDPセッションにTCP-AOを適用します。

TCP-AO のキーチェーンを(1 つのキーで)設定するには、 階層レベルで以下のステートメントを [edit security] 設定します。

BGP セッションに TCP-AO を適用するには(キーチェーンを設定した)、 階層レベルで以下のステートメントを [edit protocols] 設定します。

TCP-AO を LDP セッション(設定されたキーチェーンを使用)に適用するには、 階層レベルで以下のステートメントを [edit protocols] 設定します。

例: キーチェーンを設定する(TCP-AO)

概要 この例では、BGP または LDP セッションを認証するために TCP-AO キーチェーンを作成する方法を示します。

この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。

  • MXシリーズまたはPTXシリーズルーター。

  • Junos OS リリース 20.3R1 以降のバージョン。

この例では、BGP または LDP セッションを認証するために TCP-AO キーチェーンを作成する方法を示します。

この例では、デバイス R1 と key 1 R2 でキーkey 0を 2 つ使用してキーチェーンnew_auth_keyを作成できます。

  1. 最初のキーでキーチェーンnew_auth_keyを作成するには、(key 0):
    メモ:

    以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除してネットワーク構成に合わせて必要な詳細を変更し、コマンドをコピーして CLI に貼り付けます。

    R1

    R2 (逆の場合 send-idrecv-id 値が逆の場合)

    キーチェーンを設定する際は、以下のパラメータを考慮してください。

    表 1: キーチェーン パラメータ

    パラメーター

    説明

    key-chain

    一意の名前を入力します。

    key

    一意のキー ID を入力します。

    secret

    一意のパスワードを入力します。

    start-time

    キーの開始時間を指定する形式で YYYY-MM-DD.HH:MM 一意の時間を入力します。

    algorithm

    アルゴリズムを入力します ao

    send-id そして recv-id

    0~255 の任意の 2 つの数字を入力します。これらの数字は、そのキーチェーン内の他のキーには使用しないでください。

    cryptographic-algorithm

    または のいずれかを hmac-sha-1-96 選択します aes-128-cmac-96

    tcp-ao-option

    TCP-AO オプションを有効にすることを選択 enabled します。

  2. 作成後に別のキー(key 1)を key 0追加するには:

    R1

    R2 (逆の場合 send-idrecv-id 値が逆の場合)

  3. 両方のデバイスの設定モードからを入力 commit して、変更を有効にします。
  4. 2 つのキーが設定されたキーでキーチェーンnew_auth_keyを検証するには、設定モードから コマンドをshow security authentication-key-chains使用します。

    以下は、この例に基づいた出力例です。

キーチェーンの作成に成功しました!

キーチェーンを削除するには、設定モードから コマンドを delete security authentication-key-chains key-chain key-chain-name 使用します。

メモ:
  • そのライフタイム中に、1 つの TCP-AO キーチェーンを BGP または LDP セッションに関連付けることができます。そのライフタイムのセッションに別のキーチェーンを指すことはできません。

  • キーチェーン内の後続の任意の 2 つのキーの開始時間の間には、最小 30 分の間隔をお勧めします。

  • キーチェーンが設定され、TCP 接続で使用されると、そのアクティブなキーの または recv-id 値をsend-id変更することはできません。ただし、キーの他のパラメータを変更することができ、更新されたキーチェーンに関連付けられた新しい接続は、その接続確立のために更新されたパラメータを取得します。

  • Junos OS リリース 21.2R1 以降、 を使用 tcpao-auth-mismatch allow-without-tcpao して、1 つの TCP エンドポイントに TCP-AO が設定されていない場合、TCP-AO なしの接続確立を許可できます。

運用モードから既存のキーチェーン(存在する場合)に関する情報を表示するには、 コマンドを show security keychain 使用します。出力例を以下に示します。

例:TCP-AO を使用して BGP セッションを認証する

概要 この例では、TCP 認証オプション(TCP-AO)キーチェーンを使用して BGP セッションを認証する方法を示します。

要件

この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。

  • MXシリーズまたはPTXシリーズルーター。

  • Junos OS リリース 20.3R1 以降のバージョン。

  • キーチェーンを設定します new_auth_keyキーチェーンの設定(TCP-AO)を参照してください。

概要

BGP は、そのトランスポート プロトコルとして TCP を使用します。TCP-AO は、BGP セッションの認証に使用できる方法です。BGP ネイバーまたは設定階層の BGP グループ レベルで TCP-AO キーチェーンを適用できます。

トポロジ

図 2:BGP 認証 Topology for BGP Authenticationのトポロジー

構成

この例では、両方のデバイスで TCP-AO 認証キーチェーン new_auth_key と認証アルゴリズム ao を関連付けて、BGP セッションを認証します。

CLI クイックコンフィギュレーション

この例を迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に合わせて必要な詳細を変更して、コマンドを CLI にコピー アンド ペーストします。

R1

R2

手順

  1. 設定モードに入ります。

  2. 両方のデバイスで、インターフェイスIPアドレス、インターフェイス説明、ループバックアドレス、ルーターID、AS番号などの基本設定を構成します。

    R1

    R2

  3. R1 と R2 の間で EBGP を設定します。

    R1

    R2

  4. 認証キーチェーン new_auth_key と認証アルゴリズム ao を、両方のデバイスの BGP セッションに関連付けます。

    R1

    R2

  5. 両方のデバイスの設定モードから を入力 commit します。

    両方のデバイスで設定ステートメントをコミットすると、BGPセッションはTCP-AO認証方法を使用して確立する必要があります。

結果

設定モードから 、 、 show routing-optionsおよび show protocols コマンドをshow interfaces使用して、設定を確認します。

user@R1# show interfaces

user@R1# show routing-options

user@R1# show protocols

検証

BGP セッション確立の確認
目的

TCP-AOを有効にした後、BGPセッション確立の出力を確認します。

アクション

運用モードコマンドを使用して、BGPセッション状態のBGP概要を show bgp summary 表示します。

意味

ハイライトされた出力値は、BGPが1分19分前にTCP-AO認証方法とのセッションを正常に確立したことを示しています。

BGPセッションがTCP-AOを使用していることを確認する
目的

BGP ネイバーが TCP-AO キーチェーンで認証されていることを確認します。

アクション

コマンドを show bgp neighbor neighbor 使用して、BGP ピアの設定の詳細を表示します。出力で認証固有の詳細のみをフィルタリングするには、以下に示すように パイプ(|)機能を使用し、 で 一致します authentication

意味

出力は、認証キーチェーン new_auth_key と認証アルゴリズム ao がBGPネイバーに適用されていることを示しています 192.0.2.2

例:TCP-AOを使用してLDPセッションを認証する

概要 この例では、TCP 認証オプション(TCP-AO)キーチェーンを使用して LDP セッションを認証する方法を示します。

要件

この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。

  • MXシリーズまたはPTXシリーズルーター。

  • Junos OS リリース 20.3R1 以降のバージョン。

  • キーチェーンを設定します new_auth_keyキーチェーンの設定(TCP-AO)を参照してください。

概要

ラベル配布プロトコル(LDP)は、MPLSシグナリングプロトコルです。これにより、ルーターはネットワークを通じてLSP(ラベルスイッチパス)を確立できます。TCP-AO は、LDP ピア間で作成されるセッションのセキュリティを強化するのに役立ちます。

図 3:LDP 設定 Topology for LDP Configurationのトポロジー

構成

この例では、TCP-AO 認証キーチェーン new_auth_key と認証アルゴリズム ao を両方のデバイスに関連付けて、LDP セッションを認証します。

CLI クイックコンフィギュレーション

この例を迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に合わせて必要な詳細を変更して、コマンドを CLI にコピー アンド ペーストします。

R1

R2

手順

  1. 設定モードに入ります。

  2. R1およびR2のデバイスインターフェイス、ループバック、インターフェイス説明、ルーターID、AS番号などの基本的な設定を行います。

    R1

    R2

  3. 両方のデバイスでMPLSとLDPを設定します。

    R1

    R2

  4. ループバックアドレスの到達可能性をアドバタイズする内部ゲートウェイプロトコル(IGP)を設定します。この例では、OSPFを設定します。

    R1

    R2

  5. R1 および authentication-algorithm ao R2 のラベル スペース ID とを関連付けますauthentication-key-chain new_auth_key

    R1

    R2

  6. 両方のデバイスの設定モードから を入力 commit します。

結果

show routing-options および show protocols コマンドを使用して設定をshow interfaces確認します。

user@R1# show interfaces

user@R1# show routing-options

user@R1# show protocols

検証

LDP セッションの検証

目的

TCP-AO による LDP セッション確立を検証します。

アクション

運用モードコマンドを show ldp session detail 使用して、LDPセッションが正しく確立されていることを確認します。

意味

出力は、LDP セッションが確立されていることを示しています。

例:TCP-AO を使用して RPKI 検証セッションを認証する

概要

Resource Public Key Infrastructure(RPKI)は、インターネットのルーティングインフラストラクチャ、特にBGPを保護するために設計されたパブリックキーインフラストラクチャフレームワークです。RPKIは、IPアドレスなどのインターネット番号リソース情報をトラストアンカーに接続する方法を提供します。RPKI を使用することで、正規の番号リソース所有者は、ルートのハイジャックやその他の攻撃を防ぐために、インターネット ルーティング プロトコルの動作を制御できます。

Junos OS リリース 22.2R1 以降、TCP 認証オプション(TCP-AO)とキーチェーンを使用して、RPKI セッションを認証できるようになりました。

この例では、TCP-AO キーチェーンを使用して RPKI 検証セッションを認証する方法を示します。クライアントデバイス(R1)とサーバー(R2)の間で認証されたRPKIセッションを確立します。

要件

この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。

  • 2台のMXシリーズルーター
  • Junos OS リリース 22.2R1 以降のバージョン。

トポロジ

図 4:認証済み RPKI セッション Topology for Authenticated RPKI Sessionのトポロジー

構成

この例では、RPKI 接続を認証するために、両方のデバイスで TCP-AO 認証キーチェーン new_auth_key と認証アルゴリズム ao を関連付ける必要があります。

CLI クイックコンフィギュレーション

この例を迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に合わせて必要な詳細を変更して、コマンドを CLI にコピー アンド ペーストします。

R1

R2

手順

  1. 両方のデバイスで、インターフェイス、ループバックアドレス、ルーターID、AS番号などの基本設定を設定します。R2では、サーバーの論理システムインターフェイスを設定します。

    R1

    R2

  2. クライアントデバイス(R1)で、RPKIサーバー(R2)と代替TCPポート番号を使用してTCPセッションを設定します。

    R1

  3. サーバーR2で、発信元検証のためにクライアントR1とのRPKIセッションを設定します。

  4. 最初のキー(キー 0)でキーチェーンを作成します new_auth_key

    R1

    R2 (send-id と recv-id の値が逆の場合)

  5. キー 0 を作成した後に別のキー(キー 1)を追加するには、

    R1

    R2 (send-id と recv-id の値が逆の場合)

  6. R1 と R2 の両方で設定されたキーチェーン new_auth_key と認証アルゴリズム ao を適用します。

    R1

    R2

  7. 両方のデバイスの設定モードからを入力 commit して、変更を有効にします。

  8. 2 つのキーが設定されたキーでキーチェーン new_auth_key を検証するには、設定モードから コマンドを show security authentication-key-chains 使用します。

結果

R1 でキーチェーン設定の結果を確認します。

user@R1# show security authentication-key-chains

以下のコマンドを使用して、R1 に適用された残りの設定を確認します。

user@R1# show interfaces

user@R1# show routing-options

検証

目的

両方のピアで設定された TCP-AO キーチェーンとアルゴリズムでセッションが確立されていることを確認します。

アクション

動作モード コマンドを使用して、検証済みセッションを show validation session 192.168.12.2 detail 表示します。

意味

出力は、設定されたキーチェーンでセッションが稼働していることを示しています new_auth_key

リリース履歴テーブル
リリース
説明
22.4R1
リリース 22.4R1 Junos OS Evolved以降、IP サブネットを使用して TCP-AO または TCP MD5 認証を設定し、そのサブネットのアドレス範囲全体を含めることができます。
22.4R1
リリース 22.4R1 Junos OS Evolved以降、TCP 認証は VRF を認識しています。