耐量子暗号 (QRC)
将来の量子コンピュータによる脅威に備えた、API通信を保護するハイブリッド型の耐量子暗号化への対応
概要
QRCは、従来の楕円曲線暗号 (ECDH-P256)と、NISTで標準化された耐量子暗号ML-KEM-1024 (モジュール格子ベース鍵カプセル化方式) を組み合わせることで、KeeperのAPIセキュリティを強化します。このハイブリッド方式により、現在の安全性と将来の量子耐性の両立を実現します。
QRCを有効にすると、コマンダーから送信されるすべてのAPIリクエストで二重構成の暗号化が使用され、いずれか一方の暗号方式が将来破られた場合でも、データ保護が維持されます。
要件
Pythonバージョン
3.11以降
パッケージ
keeper-mlkem (自動的にインストールされます)
要件を満たしている場合、QRCは自動的に有効になります。追加の設定は不要です。
仕組み
QRCが有効な状態でコマンダーがAPIリクエストを送信する際の処理は、以下のとおりです。
ECDHによる鍵交換 コマンダーが一時的な楕円曲線鍵ペアを生成し、サーバーの公開鍵を用いてECDHを実行
ML-KEMによるカプセル化 サーバーのML-KEM-1024公開鍵を使用し、共有シークレットをカプセル化
鍵導出 2つのシークレットをHKDF-SHA256で結合し、AES-256鍵を生成
暗号化 生成された鍵を使用し、AES-GCMで通信鍵を暗号化
代替動作
以下の場合、コマンダーは自動的に従来の楕円曲線暗号方式に切り替わります。
Pythonのバージョンが3.11未満の場合
keeper-mlkemパッケージがインストールされていない場合暗号化処理中にQRC関連のエラーが発生した場合
いずれの場合もユーザー側での操作は不要で、接続は中断されずに継続されます。
QRCの有効状態の確認
QRCが有効かどうかは、デバッグログを有効にすることで確認できます。
QRCが有効な場合、次のようなログが表示されます。
セキュリティ上の利点
量子耐性
ML-KEM-1024により、Shorのアルゴリズムを用いた将来の量子コンピュータ攻撃への耐性を確保
ハイブリッド防御
将来、ML-KEMまたはECDHのいずれかが破られた場合でも、もう一方の暗号方式によるデータ保護を維持
NIST標準
ML-KEMはNIST FIPS 203に準拠し、厳格な安全性検証を通過
定数時間処理
C拡張による実装により、タイミング攻撃などのサイドチャネル攻撃を回避
AES-256-GCM暗号化
認証付き暗号により、機密性と完全性の両立を実現
最終更新

