8.6. セキュリティー
OpenSSH キーの生成は FIPS 互換インターフェイスを使用します
OpenSSH で使用される OpenSSL 暗号化ライブラリーは、レガシーとモダンの 2 つのインターフェイスを提供します。以前は、OpenSSH はキー生成にレガシーインターフェイスを使用していましたが、これは連邦情報処理標準 (FIPS) 要件に準拠していませんでした。今回の更新で、ssh-keygen
ユーティリティーは、低レベルの FIPS 非互換 API ではなく、FIPS 準拠 API を使用するようになりました。そのため、OpenSSH キーの生成は FIPS に準拠しています。
FIPS で承認されていない暗号化が FIPS モードの OpenSSL で機能しなくなりました
これまで、FIPS 承認されていない暗号は、システム設定に関係なく OpenSSL ツールキットで機能していました。したがって、システムが FIPS モードで実行している場合に無効にする必要のある暗号化アルゴリズムと暗号を、以下の例のように使用できていました。
- RSA 鍵交換を使用する TLS 暗号化スイートが機能する。
- 公開鍵の暗号化および復号化用の RSA ベースのアルゴリズムは、PKCS#1 および SSLv23 パディングを使用したり、2048 ビットより短い鍵を使用したりしても機能する。
この更新では、FIPS によって承認されていない暗号化が FIPS モードの OpenSSL で動作しないように修正が含まれています。
任意の曲線を指定できるオプションを OpenSSL から削除しました
以前は、明示的な曲線パラメーターの安全性のチェックが不完全でした。そのため、p
値が十分な大きさの任意の楕円曲線が RHEL で機能していました。今回の更新で、チェックで明示的な曲線パラメーターがよく知られている曲線のいずれかと一致するか検証できるようになりました。その結果、明示的な曲線パラメーターを使用して任意の曲線を指定するオプションが OpenSSL から削除されました。任意の明示的曲線を指定するパラメーターファイル、秘密鍵、公開鍵、および証明書は OpenSSL では機能しなくなります。明示的な曲線パラメーターを使用して、P-224、P-256、P-384、P-521、secp256k1
などのよく知られている曲線のいずれかを指定した場合も、FIPS 以外のモードで引き続きサポートされます。
(BZ#2066412)
OpenSSL req
は、秘密鍵の暗号化に AES-256-CBC を使用します
以前は、OpenSSL req
ツールは、3DES アルゴリズムを使用して秘密鍵ファイルを暗号化していました。3DES アルゴリズムは安全ではなく、暗号化モジュールの現在の FIPS 140 規格では使用できないため、req
は代わりに AES-256-CBC アルゴリズムを使用して暗号化された秘密鍵ファイルを生成します。全体的な PKCS#8 ファイル形式は変更されません。
FFDHE の使用時に OpenSSL が接続に失敗しなくなりました
以前は、有限フィールドベースの Diffie-Hellman ephemeral (FFDHE) 鍵交換メカニズムを使用する TLS 接続は、クライアントから FFDHE 鍵共有を処理するときに失敗することがありました。これは、OpenSSL のチェックが過度に制限されていることが原因でした。その結果、OpenSSL サーバーは internal_error
アラートで接続を中止しました。今回の更新により、OpenSSL はより小さくても準拠したクライアントキー共有を受け入れるようになりました。その結果、OpenSSL と他の実装の間の接続は、FFDHE 鍵交換を使用しているときにランダムに中止されなくなりました。
OpenSSL ベースのアプリケーションが、Turkish ロケールで正しく動作するようになりました。
OpenSSL
ライブラリーは大文字と小文字を区別しない文字列比較関数を使用するため、OpenSSL ベースのアプリケーションはトルコ語ロケールで正しく機能せず、チェックを省略すると、このロケールを使用するアプリケーションがクラッシュしました。この更新プログラムは、大文字と小文字を区別しない文字列比較のために Portable Operating System Interface (POSIX) ロケールを使用するためのパッチを提供します。その結果、curl などの OpenSSL ベースのアプリケーションはトルコ語のロケールで正しく機能します。
SELinux ポリシーに insights-client
のパーミッションが追加されました
新しい insights-client
サービスには、以前の selinux-policy
バージョンにはないパーミッションが必要です。そのため、insights-client
の一部のコンポーネントが正しく機能せず、アクセスベクターキャッシュ (AVC) エラーメッセージを報告していました。今回の更新で、SELinux ポリシーに新しいパーミッションが追加されました。その結果、AVC エラーを報告せずに insights-client
が正常に実行されます。
(BZ#2081425、BZ#2077377、BZ#2087765、BZ#2107363)
SELinux staff_u
ユーザーは誤って unconfined_r
に誤って切り替えることができなくなりました
以前は、secure_mode
ブール値を有効にすると、staff_u
ユーザーが unconfined_r
ロールに切り替えることができましたが、これは想定外の動作でした。これにより、staff_u
ユーザーは、システムのセキュリティーに影響する特権操作を実行できました。今回の更新で、SELinux ポリシーが修正され、staff_u
ユーザーは誤って unconfined_r
に切り替えることができなくなりました。
OpenSCAP が使用可能なメモリーをチェックするときに誤ったエラーを生成しなくなりました
以前は、一部の XCCDF ルールを評価するときに、OpenSCAP がエラーメッセージ Failed to check available memory
を誤って表示し、無効なスキャン結果を生成していました。たとえば、これはルール accounts_user_dot_no_world_writable_programs
、accounts_user_dot_group_ownership
、accounts_users_home_files_permissions
で発生しました。今回の更新で、エラー処理のバグが修正され、エラーメッセージは実際の障害に対してのみ表示されるようになりました。
fagenrules --load
が正常に動作するようになりました
以前は、fapolicyd
サービスはシグナルのハングアップ (SIGHUP) を正しく処理しませんでした。そのため、fapolicyd
は SIGHUP を受信した後に終了し、fagenrules --load
コマンドが正しく機能しませんでした。この更新では、その問題が修正されました。その結果、fagenrules --load
が正常に機能し、ルール更新時に fapolicyd
を手動で再起動する必要がなくなりました。