catch-img

量子コンピュータ時代に備えるPQC実践編:Ciscoルータで実現する耐量子IPsec VPN

現在広く利用されているRSAなどの公開鍵暗号や、DHなどの鍵交換方式は、将来、十分な能力を持つ量子コンピュータによって安全性を破られる可能性があるとされています。本記事では、Ciscoのルータ製品によるIPsec VPNにおいて、このリスクへの対策方法を解説します。

目次[非表示]

  1. 1.量子コンピュータによる暗号解読の脅威とPQC
  2. 2.CiscoルータのIPsec VPNの量子コンピュータ対策
    1. 2.1.Manual PPK の設定方法
    2. 2.2.ML-KEMハイブリッド鍵交換の設定方法
  3. 3.まとめ
  4. 4.参考情報
  5. 5.関連ブログ

量子コンピュータによる暗号解読の脅威とPQC

現在のネットワーク製品やセキュリティ製品では、制御プレーン処理における認証や鍵交換に公開鍵暗号が広く利用されています。量子コンピュータは特定の計算を極めて効率的に処理できるため、将来的には、こうした公開鍵暗号や鍵交換方式が短時間で破られる可能性があり、そのリスクが懸念されています。

その対策として、量子コンピュータを使った攻撃にも耐えられるよう設計された新しい暗号技術であるPQC(Post-Quantum Cryptography:耐量子計算機暗号)の標準化と製品への実装が進んでいます。

別の記事でPQCが必要とされる背景やPQCの概要、Cisco製品のPQCサポートについて説明していますので、詳細はそちらをご参照ください。

CiscoルータのIPsec VPNの量子コンピュータ対策

Ciscoルータ製品では、量子コンピュータへの耐性を持つIPsec VPNの仕組みとして次の2つの方法が実装されています。

• PPK(Post-quantum Pre-shared Key)
既存の鍵交換に耐量子事前共有鍵を組み合わせて強化する方式
IOS XE ルータ製品では、IOS XE 17.11.1a/17.12.1a 以降でサポート

• ML-KEMハイブリッド鍵交換
NIST標準のML-KEMを組み合わせ、より本格的に量子耐性を高める方式
C8000 シリーズ セキュアルータでは、IOS XE 26.1.1 からサポート開始

ここからはCiscoルータのIPsec VPNで量子コンピュータ対策を行う際の具体的な設定方法について説明します。

Manual PPK の設定方法

まず、幅広いCiscoルータ製品で既に実装されているPPK方式をIKEv2/IPsecに導入する設定方法について説明します。PPKの導入方法にはManual方式とDynamic方式がありますが、今回は導入が容易なManual方式を取り上げます。

IPsecに関連する設定部分の具体的な設定方法は次のようになります。

crypto ikev2 proposal PROPOSAL

 encryption aes-cbc-256

 integrity sha512

 group 19

!

crypto ikev2 policy POLICY

 proposal PROPOSAL

!

crypto ikev2 keyring KEYRING

 peer PEER

  address <remote address>

  ppk manual id <ppk_id> key <password> [required]

 !

!

!

crypto ikev2 profile IKEV2-PROFILE

 match identity remote address <remote address> 255.255.255.255

 identity local address <local address>

 authentication remote pre-share key <pre-shared key>

 authentication local pre-share key <pre-shared key>

 keyring ppk KEYRING

!

crypto ipsec transform-set TRANSFORM-SET esp-gcm 256

 mode tunnel

!

crypto ipsec profile IPSEC-PROFILE

 set transform-set TRANSFORM-SET

 set ikev2-profile IKEV2-PROFILE

!

interface Tunnel0

 ip address <ip address> <subnet mask>

 tunnel source <source interface>

 tunnel mode ipsec ipv4

 tunnel destination <remote address>

 tunnel path-mtu-discovery

 tunnel protection ipsec profile IPSEC-PROFILE

!

設定のポイント

  • crypto ikev2 keyring
    • ppk manual コマンドを追加
    • ppk_id と password を指定する(IPsec接続を確立する両端のルータで一致させる)。
    • PPKの使用を必須とする場合は required オプションを追加する。PPKを使用しない従来方式のIKEv2/IPsec接続へのフォールバックを許可する場合は required オプションを追加しない。
  • crypto ikev2 profile
    • 従来の pre-shared key も PPK と併用されるため、pre-shared key を設定する。
    • keyring ppk コマンドで crypto ikev2 keyring 設定をひも付ける。

両端のルータの設定が完了してIPsec接続が確立すると、次の表示例のように show crypto ikev2 sa detail コマンドで動作状況を確認することができます。

Router#show crypto ikev2 sa detailed

 IPv4 Crypto IKEv2  SA

Tunnel-id Local                 Remote                fvrf/ivrf            Status

2         10.44.xx.xx/500      10.44.yy.yy/500      none/none            READY

      Encr: AES-CBC, keysize: 256, PRF: SHA512, Hash: SHA512, DH Grp:19, Auth sign: PSK, Auth verify: PSK, QR

      Life/Active Time: 86400/5868 sec

      CE id: 0, Session-id: 4

      Local spi: 977C9FB5D48C9041       Remote spi: F2371E97160B1315

      Status Description: Negotiation done

      Local id: 10.44.xx.xx

      Remote id: 10.44.yy.yy

      Local req msg id:  2              Remote req msg id:  1

      Local next msg id: 2              Remote next msg id: 1

      Local req queued:  2              Remote req queued:  1

      Local window:      5              Remote window:      20

      DPD configured for 0 seconds, retry 0

      Fragmentation not  configured.

      Dynamic Route Update: enabled

      Extended Authentication not configured.

      NAT-T is not detected

      Cisco Trust Security SGT is disabled

      Initiator of SA : Yes

      Quantum-safe Encryption using Manual PPK

      PEER TYPE: IOS-XE

 IPv6 Crypto IKEv2  SA

Manual PPKが使用されている場合は、上記の表示例のように Quantum-safe Encryption using Manual PPK の出力が追加されます。

ML-KEMハイブリッド鍵交換の設定方法

次に、C8000 セキュアルータでサポートが開始されたML-KEMハイブリッド鍵交換方式をIKEv2/IPsecに導入する設定方法について説明します。

IPsecに関連する設定部分の具体的な設定方法は次のようになります。

crypto ikev2 proposal PROPOSAL

 pqc mlkem768 [optional]

 encryption aes-cbc-256

 integrity sha512

 group 21

!

crypto ikev2 policy POLICY

 proposal PROPOSAL

!

crypto ikev2 keyring KEYRING

 peer PEER

  address <remote address>

  pre-shared-key <pre-shared key>

 !

!

!

crypto ikev2 profile IKEV2-PROFILE

 match identity remote address <remote address> 255.255.255.255

 identity local address <local address>

 authentication remote pre-share

 authentication local pre-share

 keyring local KEYRING

 dpd 10 3 on-demand

!

crypto ipsec transform-set TRANSFORM-SET esp-gcm 256

 mode tunnel

!

crypto ipsec profile IPSEC-PROFILE

 set transform-set TRANSFORM-SET

 set pfs [group21 pqc mlkem768]  #オプション設定(PFS 有効化)

 set ikev2-profile IKEV2-PROFILE

!

interface Tunnel0

 ip address <ip address> <subnet mask>

 tunnel source <source interface>

 tunnel mode ipsec ipv4

 tunnel destination <remote address>

 tunnel path-mtu-discovery

 tunnel protection ipsec profile IPSEC-PROFILE

!

設定のポイント

  • crypto ikev2 proposal
    • pqc コマンドで ML-KEM アルゴリズムを指定する。(mlkem512, mlkem768, mlkem1024)
    • ML-KEM-1024を使用すると、鍵交換に使用するデータやIKEメッセージのサイズが大きくなり、環境によっては1500バイトを超えてIPフラグメンテーションが発生する可能性があるため注意する。
    • ML-KEMの使用を必須とせず、従来の鍵交換方式へのフォールバックを許可する場合は optional 設定オプションを追加する。ML-KEMの使用を必須とする場合には optional 設定オプションは追加しない。
  • crypto ipsec profile
    • オプション設定として、PFSを有効化する場合は crypto ipsec profile に set pfs 設定を追加。
      • set pfs と指定した場合は、ML-KEMを使用するように対向ルータとネゴシエーションを行う。
      • set pfs <dh group> pqc <mlkem> と指定した場合は、DHとML-KEMの両方を使用するように対向ルータとネゴシエーションを行う。
    • PFSのネゴシエーション結果は、両端のルータのPFS設定と、Initiator/Responderの組み合わせによって決まるため注意する。※詳細は Configuration Guide を参照

両端のルータの設定が完了してIPsec接続が確立すると、次の表示例のように show crypto ikev2 sa detail コマンド、および show crypto ipsec sa detail コマンドで動作状況を確認することができます。

Router#show crypto ikev2 sa detailed

 IPv4 Crypto IKEv2  SA

Tunnel-id Local                 Remote                fvrf/ivrf            Status

1         10.44.xx.xx/500      10.44.yy.yy/500      none/none            READY

      Encr: AES-CBC, keysize: 256, PRF: SHA512, Hash: SHA512, DH Grp:21, Auth sign: PSK, Auth verify: PSK

      PQC Key Exchange: ML-KEM-768

      Life/Active Time: 86400/5413 sec

      CE id: 0, Session-id: 2

      Local spi: F1C85A27D8A91E18       Remote spi: 2C4F01A4776500B2

      Status Description: Negotiation done

      Local id: 10.44.xx.xx

      Remote id: 10.44.yy.yy

      Local req msg id:  0              Remote req msg id:  7

      Local next msg id: 0              Remote next msg id: 7

      Local req queued:  0              Remote req queued:  7

      Local window:      20             Remote window:      20

      DPD configured for 10 seconds, retry 3

      Fragmentation not  configured.

      Quantum-safe Encryption using PQC: ML-KEM-768

      Dynamic Route Update: enabled

      Extended Authentication not configured.

      NAT-T is not detected

      Cisco Trust Security SGT is disabled

      Initiator of SA : No

      PEER TYPE: IOS-XE

 IPv6 Crypto IKEv2  SA

Router#show crypto ipsec sa detail

interface: Tunnel0

    Crypto map tag: Tunnel0-head-0, local addr 10.44.xx.xx

   protected vrf: (none)

   local  ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)

   remote ident (addr/mask/prot/port): (0.0.0.0/0.0.0.0/0/0)

   current_peer 10.44.yy.yy port 500

     PERMIT, flags={origin_is_acl,}

    #pkts encaps: 50000, #pkts encrypt: 50000, #pkts digest: 50000

    #pkts decaps: 50004, #pkts decrypt: 50004, #pkts verify: 50004

    #pkts compressed: 0, #pkts decompressed: 0

    #pkts not compressed: 0, #pkts compr. failed: 0

    #pkts not decompressed: 0, #pkts decompress failed: 0

    #pkts no sa (send) 0, #pkts invalid sa (rcv) 0

    #pkts encaps failed (send) 0, #pkts decaps failed (rcv) 0

    #pkts invalid prot (recv) 0, #pkts verify failed: 0

    #pkts invalid identity (recv) 0, #pkts invalid len (rcv) 0

    #pkts replay rollover (send): 0, #pkts replay rollover (rcv) 0

    ##pkts replay failed (rcv): 0

    #pkts tagged (send): 0, #pkts untagged (rcv): 0

    #pkts not tagged (send): 0, #pkts not untagged (rcv): 0

    #pkts internal err (send): 0, #pkts internal err (recv) 0

     local crypto endpt.: 10.44.xx.xx, remote crypto endpt.: 10.44.yy.yy

     plaintext mtu 1446, path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet0/0/0

     current outbound spi: 0xD2DBF7AC(3537631148)

     PFS (Y/N): Y, DH group: group21, PQC Key Exchange: ML-KEM-768
     #set pfs group21 pqc mlkem768 設定時の表示例 

(省略)

IKEv2でML-KEMが使用されている場合は、show crypto ikev2 sa detail の表示に Quantum-safe Encryption using PQC: ML-KEM-xxxx の出力が追加されます。オプション設定でPFSを有効化してML-KEMが使用されている場合には、show crypto ipsec sa detail コマンドのPFS表示部分に PQC Key Exchange: ML-KEM-xxxx の出力が追加されます。

まとめ

本記事では、CiscoルータのIKEv2/IPsec VPNに量子コンピュータ対策を導入する方法として、Manual PPKとML-KEMハイブリッド鍵交換の設定方法を紹介しました。

Manual PPKは、既存の鍵交換に耐量子事前共有鍵を組み合わせることで、幅広いCiscoルータ製品に導入できる方式です。一方、ML-KEMハイブリッド鍵交換は、NIST標準の耐量子暗号アルゴリズムを利用して、より本格的な量子コンピュータ対策を実現します。

量子コンピュータの実用化時期を正確に予測することは困難ですが、長期間にわたって保護すべき通信やデータについては、早い段階からPQCへの移行方針を検討し、検証と準備を進めておくことが重要です。

弊社ではPQC対応製品をご提案できますので、ネットワーク機器のPQC移行を検討される際には、ぜひお気軽にお問い合わせください。

※もしメーカー情報と差異がある場合はメーカー情報を優先してください。

参考情報

関連ブログ

砂田 晃徳(すなだ あきのり)
砂田 晃徳(すなだ あきのり)
ネットワンパートナーズ セールスエンジニアリング部所属。ネットワンシステムズで色々と経験後、NOPでネットワーク系の製品担当SEやってます。
ご不明な点はお気軽に
お問い合わせください
ソリューション・カタログは
こちら

新着記事一覧

製品/ソリューションカタログはこちら
nopとは?

サイト内検索

記事カテゴリ一覧

目的から探す

人気記事