20.2. 暗号化コンポーネントの変更
RHEL 9 と RHEL 10 の間で暗号化コンポーネントに生じた最も注目すべき変更点について概説します。
ca-certificatesトラストストアが移動される-
/etc/pki/tls/certsトラストストアは、OpenSSL に最適化された別の形式に変換されます。したがって、/etc/pki/tls/certs内のファイルを直接使用する場合は、同じデータが保存されている/etc/pki/ca-trust/extractedディレクトリーに切り替えます。たとえば、/etc/pki/tls/certs/ca-bundle.crtのトラストバンドルにアクセスするソフトウェアは、代わりに/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pemを使用するように切り替える必要があります。 fips-mode-setupが削除される-
fips-mode-setupコマンドは RHEL から削除されました。連邦情報処理規格 (FIPS) 140 で義務付けられている暗号化モジュールの自己チェックを有効にするには、システムのインストール時に FIPS モードを有効にします。詳細は、セキュリティーの強化 ドキュメントの FIPS モードへの RHEL の切り替え の章を参照してください。 /etc/system-fipsが削除される-
/etc/system-fipsファイルを通じて FIPS モードを示すサポートが、RHEL から削除されました。FIPS モードで RHEL をインストールするには、システムのインストール時にfips=1パラメーターをカーネルコマンドラインに追加します。/proc/sys/crypto/fips_enabledファイルを表示することで、RHEL が FIPS モードで動作しているかどうかを確認できます。 compat-openssl11が削除される-
OpenSSL 1.1 の互換性ライブラリー
compat-openssl11は、RHEL 10 から削除されました。OpenSSL 1.1 はアップストリームでメンテナンスされなくなりました。OpenSSL TLS ツールキットを使用するアプリケーションは、バージョン 3.x に移行する必要があります。 pkcs11-providerがopenssl-pkcs11を置き換える-
OpenSSL エンジンからプロバイダー API への移行の一環として、
openssl-pkcs11パッケージ (engine_pkcs11) がpkcs11-providerパッケージに置き換えられました。openssl-pkcs11パッケージは RHEL 10 から削除されました。 DEFAULT暗号化ポリシーが RSA 鍵交換による TLS 暗号を拒否するRSA 鍵交換を使用する TLS 暗号は、RHEL 10 の
DEFAULTシステム全体の暗号化ポリシーでは受け入れられなくなりました。これらの暗号は完全な Perfect Forward Secrecy を提供しないため、Elliptic-curve Diffie-Hellman (ECDH) 鍵交換などの他の鍵交換を使用する暗号ほど安全であるとは考えられていません。この変更により、RSA 鍵交換で PKCS #1 v1.5 暗号化パディングが使用され、タイミングサイドチャネル攻撃に対する脆弱性が生じる可能性があるため、サイドチャネル攻撃に対する露出も減少します。
レガシーシステムとの相互運用性のために RSA 鍵交換が必要な場合は、LEGACY システム全体の暗号化ポリシーを使用するか、カスタムサブポリシーを適用することで、再度有効化できます。
LEGACY暗号化ポリシーが TLS での SHA-1 署名を許可しない-
RHEL 10 の
LEGACYシステム全体の暗号化ポリシーでは、TLS コンテキストで SHA-1 を使用する署名の作成または検証は許可されなくなりました。したがって、OpenSSL 以外のライブラリーは、ユースケースに関係なく、SHA-1 を使用する署名を受け入れたり作成したりできなくなる可能性があります。システムがLEGACYの場合、またはこの機能がカスタムサブポリシーで再度有効になっている場合、OpenSSL は TLS に使用されない SHA-1 を使用する署名を引き続き受け入れます。 SHA1サブポリシーが削除される-
update-crypto-policies --set DEFAULT:SHA1コマンドを入力した後に、DEFAULTシステム全体の暗号化ポリシーで署名の作成と検証に SHA-1 アルゴリズムを使用することを許可していたSHA1サブポリシーは、RHEL 10 では使用できなくなりました。 - OpenSSL が TLS の
SECLEVEL=2で SHA-1 を許可しなくなる -
RHEL 10 では、OpenSSL は TLS の
SECLEVEL=2で SHA-1 アルゴリズムを受け入れません。シナリオで TLS 1.0 または 1.1 を使用する必要がある場合は、明示的にSECLEVEL=0を設定し、LEGACY システム全体の暗号化ポリシーに切り替える必要があります。LEGACY ポリシーでは、TLS 外部の署名で SHA-1 を使用するアプリケーションは引き続き動作します。 - OpenSSL 暗号スイートは、ハッシュまたは MAC が無効になっている暗号スイートを有効化しなくなる
-
以前は、OpenSSL TLS 1.3 固有の
Ciphersuitesオプション値が暗号化ポリシーのciphersオプションによってのみ制御されていたため、カスタム暗号化ポリシーを適用すると、ハッシュまたは MAC が無効になっている場合でも、特定の TLS 1.3 暗号スイートが有効のままになることがありました。この更新により、crypto-policiesは、暗号スイートを有効にするか決定する際に、より多くのアルゴリズムを考慮するようになりました。その結果、カスタム暗号化ポリシーを持つシステム上の OpenSSL は、システム設定に従って、以前に有効にされた TLS 1.3 暗号スイートの一部とのネゴシエーションを拒否する可能性があります。 - OpenSSL FIPS インジケーターが RHEL 10 のライフタイム中に変更される可能性があります
- RHEL はアップストリームの OpenSSL より前に OpenSSL FIPS インジケーターを導入しました。両者は設計が異なるため、このインジケーターは RHEL 10 の今後のマイナーバージョンで変更される可能性があります。アップストリームの API が導入された場合、RHEL 10.0 のインジケーターは、結果ではなく "unsupported" というエラーメッセージを返す可能性があります。詳細は、OpenSSL FIPS Indicators の GitHub ドキュメントを参照してください。
- OpenSSL 3.5 が ML-KEM と ML-DSA に標準形式を使用するようになりました
RHEL 10.0 では、
oqsproviderライブラリーが、Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM) および Module-Lattice-Based Digital Signature Algorithm (ML-DSA) の秘密鍵に、標準化前の形式を使用していました。OpenSSL 3.5 へのリベースに伴い、ユーザーは次のコマンドを使用して ML-KEM 鍵と ML-DSA 鍵を標準形式に変換する必要があります。# openssl pkcs8 -in <old_private_key> -nocrypt -topk8 -out <standard_private_key><old_private_key>は、非標準の秘密鍵へのパスに置き換えます。<standard_private_key>は、標準形式の鍵を保存するパスに置き換えます。- LEGACY ポリシーに切り替えても、TLS 接続での SHA-1 のサポートは有効化されない
SHA-1 署名のサポートは、デフォルトの暗号文字列で指定された
@SECLEVEL設定またはrh-allow-sha1-signaturesプロパティーによって制御できます。TLS コンテキストでの SHA-1 のサポートは、@SECLEVEL=0を設定することで有効になります。ただし、この設定では他の安全でないアルゴリズムも許可されます。evp_propertiesセクションでrh-allow-sha1-signaturesプロパティーを指定することにより、SECLEVEL設定をオーバーライドできます。デフォルトでは、設定ファイルで指定されていない場合、evp_propertiesはnoに設定されます。システム全体の暗号化ポリシーでは、LEGACYポリシーに切り替えた後、このプロパティはyesに設定されます。したがって、TLS 以外のコンテキストで SHA-1 のサポートを有効にするには、システムを
LEGACY暗号化ポリシーに切り替えます。TLS で SHA-1 を有効にするには、システムをLEGACYに切り替えて、カスタム暗号化ポリシーを定義するか、OpenSSL でアプリケーションに設定して、@SECLEVEL=0を設定する暗号文字列を使用する必要があります。- より厳格な SSH ホストキー権限が復元される
-
必要なホストキー権限は、以前のそれほど厳密ではない値
0640から、アップストリームでも使用されている値である0600に変更されました。以前にすべての SSH キーを所有していたssh_keysグループも削除されました。したがって、ssh-keysignユーティリティーは SGID ビットの代わりに SUID ビットを使用します。 - GnuTLS の
crypto-policiesでallow-rsa-pkcs1-encrypt = falseが設定されるようになる -
RHEL 10 では、GnuTLS ライブラリーがデフォルトで RSA PKCS #1 v1.5 パディングによる暗号化と復号化をブロックします。LEGACY ポリシーを除き、すべてのシステム全体の暗号化ポリシー (DEFAULT、FUTURE、および FIPS) で
allow-rsa-pkcs1-encrypt = falseオプションが指定されます。