
量子コンピュータ時代に備えるPQC実践編:Ciscoルータで実現する耐量子IPsec VPN
現在広く利用されているRSAなどの公開鍵暗号や、DHなどの鍵交換方式は、将来、十分な能力を持つ量子コンピュータによって安全性を破られる可能性があるとされています。本記事では、Ciscoのルータ製品によるIPsec VPNにおいて、このリスクへの対策方法を解説します。
目次[非表示]
量子コンピュータによる暗号解読の脅威と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 (省略) |
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移行を検討される際には、ぜひお気軽にお問い合わせください。
※もしメーカー情報と差異がある場合はメーカー情報を優先してください。





