第2章 ポスト量子署名を用いた RPM パッケージの検証
将来の量子コンピューティング攻撃から RHEL システムの整合性を保護するため、量子耐性署名付きの RPM パッケージをインストールして検証してください。これらの量子耐性アルゴリズムを利用することで、ソフトウェアの長期的な真正性を確保し、将来の偽造を防ぐことができます。
2.1. ポスト量子 RPM 署名検証の有効化 リンクのコピーリンクがクリップボードにコピーされました!
将来の量子コンピューティングの脅威から RHEL オペレーティングシステムを強化するために、量子耐性アルゴリズムを使用して RPM パッケージの検証を有効にする。この設定により、システムは耐量子計算機暗号で署名されたソフトウェアの完全性と出所を認証できるようになります。
以前の Red Hat Enterprise Linux (RHEL) リリースでは、RPM ユーティリティーは RPMv4 の署名のみを検証していました。RHEL 9.7 以降の RHEL 9 バージョンでは、multisig DNF プラグインをインストールすることで、RPMv6 署名のサポートを有効にできます。システムは、インストールプロセス中にこのプラグインを使用して、量子化後の署名を透過的に検証します。検証を成功させるには、システムが必要なすべての OpenPGP 証明書を信頼していることを確認する必要があります。
1 つのパッケージには複数の RPMv6 署名を含めることができますが、RPMv4 署名は 1 つしか含めることができません。たとえば、RHEL の RPM パッケージには以下の署名が含まれています。
- RSA およびハイブリッド ML-DSA-87-Ed448 RPMv6 署名
- RSA RPMv4 署名
redhat-release パッケージには、RHEL RPM 署名の検証に必要なすべての OpenPGP 証明書がすでに含まれています。
$ rpm -ql redhat-release
...
/etc/pki/rpm-gpg/RPM-GPG-KEY-PQC-redhat-release
/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta
/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
...
RHEL 10.1 以降、RPM は RPMv6 署名をネイティブでサポートするようになったことに注意してください。パッケージに RPMv6 署名が含まれている場合、システムはそれを自動的に検証し、従来の RPMv4 署名は無視します。このプロセスには、追加の設定やプラグインは必要ありません。
RSA などの古典的な鍵と、ML-DSA などの量子暗号後の鍵の両方を含む、すべての OpenPGP 証明書を必ずインポートまたは参照してください。このハイブリッド検証はセキュリティーを強化します。つまり、一方の暗号アルゴリズムまたは鍵が侵害された場合でも、システムはもう一方のアルゴリズムまたは鍵によって保護されます。
量子耐性署名を含む独自の RPM パッケージを配布する場合は、署名の検証に必要なすべての OpenPGP 証明書に対する信頼を確立してください。また、ポスト量子証明書と従来の証明書は別々のファイルに保存してください。
前提条件
- RHEL 9.7 以降がインストールされ、完全にアップデートされていること。
手順
dnf-plugin-multisigパッケージをインストールしてください。このパッケージは、デフォルトのシステム RPM ツールとは別のpqrpmパッケージもインストールします。pqrpm パッケージは、独自の信頼できる OpenPGP 証明書データベースを使用します。# dnf install dnf-plugin-multisigRed Hat OpenPGP 証明書の信頼を確立するには、以下のいずれかの手順を実行してください。
証明書を DNF リポジトリー設定ファイルに追加してください。
/etc/yum.repos.d/<repo_name>.repoファイルでgpgkeyディレクティブを使用して、両方の証明書ファイルをリスト表示します。gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PQC-redhat-releasegpgkeyの値のインデントは重要です。このオプションを使用する場合、
dnfコマンドを--assumeyesまたは-yオプション付きで使用しない限り、CLI からのパッケージインストール中にシステムは追加の対話型プロンプトを表示することに注意してください。両方の証明書を
pqrpmデータベースにインポートします。# /usr/lib/pqrpm/bin/rpmkeys --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release /etc/pki/rpm-gpg/RPM-GPG-KEY-PQC-redhat-release最初の方法が利用できない場合、たとえば DNF リポジトリーの設定ファイルが外部で管理されていて簡単に編集できない場合などに、この代替手段を使用してください。
検証
RPM パッケージをインストールまたは更新する例:
# dnf install gnupg2前回のパッケージのインストールまたはアップデート時に、DNF プラグインがすべての署名を正常に検証したことを確認してください。
# grep "Multisig:" /var/log/dnf.log2026-03-11T13:44:51+0100 DEBUG Multisig: verifying: /var/cache/dnf/rhel-9.8.0-baseos-f47b1846dcc4d7f2/packages/gnupg2-2.3.3-5.el9_7.x86_64.rpm 2026-03-11T13:44:52+0100 DEBUG Multisig: verification result: All signatures for gnupg2-2.3.3-5.el9_7.x86_64.rpm successfully verified (code=0)検証済みの特定の署名のリストを確認する必要がある場合は、次のステップを参照してください。
OpenPGP 証明書が
pqrpmデータベースにインポートされていることを確認してください。$ /usr/lib/pqrpm/bin/rpmkeys -lfd431d51-4ae0493b: Red Hat, Inc. (release key 2) <security@redhat.com> public key 5a6340b3-6229229e: Red Hat, Inc. (auxiliary key 3) <security@redhat.com> public key 05707a62-68e6a1f3: Red Hat, Inc. (release key 4) <security@redhat.com> public keyDNF リポジトリーの設定ファイルに証明書を追加した場合、それらはパッケージのインストールが正常に完了した後にのみインポートされることに注意してください。