検索

20.2. 暗号化ポリシー、RHEL コア暗号化コンポーネント、およびプロトコル

download PDF

SHA-1 の非推奨の継続

RHEL 9 では、署名の SHA-1 の使用は、DEFAULT システム全体の暗号化ポリシーで制限されています。HMAC を除いて、SHA-1 は TLS、DTLS、SSH、IKEv2、DNSSEC、および Kerberos プロトコルでは許可されなくなりました。RHEL システム全体の暗号ポリシーにより制御されていない個々のアプリケーションも、RHEL 9 で SHA-1 ハッシュを使用することから離れています。

シナリオで既存またはサードパーティーの暗号署名を検証するために SHA-1 を使用する必要がある場合は、次のコマンドを入力して有効にできます。

# update-crypto-policies --set DEFAULT:SHA1

または、システム全体の暗号化ポリシーを LEGACY ポリシーに切り替えることもできます。LEGACY は、セキュアではない他の多くのアルゴリズムも有効にすることに注意してください。詳細は、RHEL 9 Security hardening ドキュメントの Re-enabling SHA-1 セクションを参照してください。

まだ SHA-1 を必要とするシステムとの互換性の問題の解決策については、次の KCS の記事を参照してください。

すべてのポリシーレベルで無効になっているアルゴリズム

RHEL 9 で提供される LEGACYDEFAULT、および FUTURE の暗号化ポリシーでは、以下のアルゴリズムが無効になっています。

  • バージョン 1.2 より古い TLS (RHEL 9 以降、以前では RHEL 8 の 1.0 未満)
  • バージョン 1.2 より古い DTLS (RHEL 9 以降、RHEL 8 では 1.0 未満)
  • パラメーターが 2048 ビット未満の DH (RHEL 9 以降、RHEL 8 では 1024 ビット未満)
  • 鍵サイズ (2048 ビット 未満) の RSA (RHEL 9 以降、RHEL 8 では 1024 ビット未満)
  • DSA (RHEL 9 以降、RHEL 8 では 1024 ビット未満)
  • 3DES (RHEL 9 以降)
  • RC4 (RHEL 9 以降)
  • FFDHE-1024 (RHEL 9 以降)
  • DHE-DSS (RHEL 9 以降)
  • Camellia (RHEL 9 以降)
  • ARIA
  • SEED
  • IDEA
  • 完全性のみの暗号スイート
  • SHA-384 HMAC を使用した TLS CBC モード暗号化スイート
  • AES-CCM8
  • TLS 1.3 と互換性がないすべての ECC 曲線 (secp256k1 を含む)
  • IKEv1 (RHEL 8 以降)
  • BIND 設定の NSEC3DSA (RHEL 9.2 以降)
警告

シナリオで、無効になっているポリシーが必要な場合は、カスタム暗号化ポリシーを適用するか、個々のアプリケーションを明示的に設定することで有効にできますが、結果として得られる設定はサポートされません。

TLS の変更

RHEL 9 では、TLS 設定はシステム全体の暗号化ポリシーメカニズムを使用して実行されます。1.2 未満の TLS バージョンはサポートされなくなりました。DEFAULTFUTURE、および LEGACY の暗号化ポリシーでは、TLS 1.2 および 1.3 のみが許可されます。詳細は、Using system-wide cryptographic policies を参照してください。

RHEL 9 に含まれるライブラリーが提供するデフォルト設定は、ほとんどのデプロイメントで十分に安全です。TLS 実装は、可能な場合は、安全なアルゴリズムを使用する一方で、レガシーなクライアントまたはサーバーとの間の接続は妨げません。セキュリティーが保護されたアルゴリズムまたはプロトコルに対応しないレガシーなクライアントまたはサーバーの接続が期待できないまたは許可されない場合に、厳密なセキュリティー要件の環境で、強化設定を適用します。

Extended Master Secret TLS エクステンションが FIPS 対応システムに適用されるようになりました。

RHSA-2023:3722 アドバイザリーのリリースにより、FIPS 対応 RHEL 9 システム上の TLS 1.2 接続に、TLS Extended Master Secret (EMS) エクステンション (RFC 7627) エクステンションが必須になりました。これは FIPS-140-3 要件に準拠しています。TLS 1.3 は影響を受けません。

EMS または TLS 1.3 をサポートしていないレガシークライアントは、RHEL 9 で実行されている FIPS サーバーに接続できなくなりました。同様に、FIPS モードの RHEL 9 クライアントは、EMS なしでは TLS 1.2 のみをサポートするサーバーに接続できません。これは実際には、これらのクライアントが RHEL 6、RHEL 7、および RHEL 以外のレガシーオペレーティングシステム上のサーバーに接続できないことを意味します。これは、OpenSSL のレガシー 1.0.x バージョンが EMS または TLS 1.3 をサポートしていないためです。

SCP は RHEL 9 ではサポートされていません。

セキュアコピープロトコル (SCP) プロトコルは、セキュリティーで保護することが難しいため、サポートされなくなりました。これにより、CVE-2020-15778 などのセキュリティー問題が発生しています。RHEL 9 では、SCP はデフォルトで SSH File Transfer Protocol (SFTP) に置き換わります。

警告

デフォルトでは、SSH は RHEL 9 システムから古いシステム (RHEL 6 など) に接続することも、古いシステムから RHEL 9 に接続することもできません。これは、古いバージョンで使用されていた暗号化アルゴリズムが、安全ではないと見なされるようになったためです。シナリオで古いシステムとの接続が必要な場合は、レガシーシステムで ECDSA および ECDH アルゴリズムをキーとして使用するか、RHEL 9 システムでレガシー暗号化ポリシーを使用することができます。詳細は、ソリューション記事の SSH from RHEL 9 to RHEL 6 systems does not work および Failed connection with SSH servers and clients that do not support the server-sig-algs extension を参照してください。

CNSA 1.0 により FIPS:OSPP ホストの相互運用性が影響を受ける

OSPP サブポリシーは、Commercial National Security Algorithm (CNSA) 1.0 に準拠しています。これは、FIPS:OSPP ポリシーとサブポリシーの組み合わせを使用するホストの相互運用性に影響します。主に影響を受ける点は次のとおりです。

  • RSA キーの最小サイズは 3072 ビットとすることが必要です。
  • アルゴリズムネゴシエーションでは、AES-128 暗号、secp256r1 楕円曲線、および FFDHE-2048 グループがサポートされなくなりました。

OpenSSH root パスワードのログインはデフォルトで無効化

RHEL 9 の OpenSSH のデフォルト設定では、ユーザーがパスワードを使用して root としてログインすることを禁止し、攻撃者がパスワードに対するブルートフォース攻撃によってアクセスすることを防ぎます。

OpenSSH は SHA-2 をさらに強制する

暗号化目的で安全性の低い SHA-1 メッセージダイジェストからさらに移行する取り組みの一環として、OpenSSH に次の変更が加えられました。

  • sshd 起動時に、システムで SHA-1 の使用が設定されているかどうかのチェックを追加しました。SHA-1 が使用できない場合、OpenSSH は操作に SHA-1 を使用しようとしません。これにより、DSS キーが存在する場合はロードしなくなり、また、rsa-sha2 の組み合わせが使用可能な場合には、その組み合わせを強制的にアドバタイズするようになります。
  • SSH 秘密キーの変換では、OpenSSH は RSA キーのテストに明示的に SHA-2 を使用します。
  • サーバー側で SHA-1 署名が使用できない場合、sshd は SHA-2 を使用してホストキーの証明を確認します。これは、RHEL 8 以前のバージョンのクライアントと互換性がない可能性があります。
  • SHA-1 アルゴリズムがクライアント側で使用できない場合、OpenSSH は SHA-2 を使用します。
  • クライアント側では、キー証明リクエストで SHA-1 が使用された場合、またはハッシュアルゴリズムが指定されていない場合 (デフォルトを想定)、OpenSSH はサーバーからの SHA-2 ベースのキー証明を許可します。これは、RSA 証明書の既存の例外と合わせており、サポートされている場合は最新のアルゴリズムを使用して接続できるようになります。

GnuTLS は、FIPS モードで EMSを備えた TLS 1.2 が必要

FIPS-140-3 標準に準拠するために、GnuTLS サーバーとクライアントは、FIPS モードでネゴシエートされるすべての TLS 1.2 接続に対して、Extended Master Secret (EMS) 拡張 (RFC 7627) を必要とします。EMS をサポートしていない古いサーバーおよびクライアントとの互換性を維持する必要があり、TLS 1.3 を使用できない場合は、NO-ENFORCE-EMS システム全体の暗号化サブポリシーを適用できます。

# update-crypto-policies --set FIPS:NO-ENFORCE-EMS
警告

EMS なしで TLS 1.2 接続を許可すると、システムは FIPS-140-3 要件を満たさなくなります。

TPM 1.2 は GnuTLS のサポート対象外となる

GnuTLS ライブラリーは、TPM (Trusted Platform Module) 1.2 テクノロジーに対応しなくなりました。GnuTLS API を介して TPM を使用するアプリケーションは、TPM 2.0 に対応している必要があります。

GOST への GnuTLS のサポートの削除

RHEL 8 では、システム全体の暗号化ポリシーにより、GOST 暗号が無効になっています。RHEL 9 では、このような暗号化への対応が GnuTLS ライブラリーから削除されました。

cyrus-sasl は Berkeley DB の代わりに GDBM を使用

cyrus-sasl パッケージは、libdb 依存関係なしで構築されるようになりました。sasldb プラグインは、Berkeley DB ではなく GDBM データベース形式を使用します。古い Berkeley DB 形式で保存されている既存の Simple Authentication and Security Layer (SASL) データベースを移行するには、cyrusbdb2current を使用します。以下の構文を使用します。

$ cyrusbdb2current <sasldb_path> <new_path>

NSS は FIPS モードで EMS を強制するようになる

Network Security Services (NSS) ライブラリーには、FIPS 140-3 標準で義務付けられているすべての TLS 1.2 接続に対して Extended Master Secret (EMS) 拡張 (RFC 7627) を要求する TLS-REQUIRE-EMS ポリシーが含まれるようになりました。NSS は、システム全体の暗号化ポリシーが FIPS に設定されている場合に、新しいポリシーを使用します。

EMS または TLS 1.3 をサポートしていないレガシーシステムとの相互運用が必要な場合は、NO-ENFORCE-EMS システム全体の暗号化サブポリシーを適用できます。このような変更は FIPS-140-3 要件に違反します。

DBM は NSS のサポート対象外となり、pk12util のデフォルトが変更される

NSS (Network Security Services) ライブラリーが、信頼データベースの DBM ファイル形式に対応しなくなりました。RHEL 8 では、SQLite ファイル形式がデフォルト形式になり、既存の DBM データベースが読み取り専用モードで開かれ、自動的に SQLite に変換されました。RHEL 9 にアップグレードする前に、DBM から SQLite に、すべての信頼データベースを更新します。

詳細な手順は、DBM から SQLite への NSS データベースの更新 の手順を参照してください。

NSS pk12util は、デフォルトで DES-3 と SHA-1 を使用しなくなりました

秘密鍵のエクスポート時に、pk12util ツールでは、DES-3 および SHA-1 の代わりに、AES アルゴリズムおよび SHA-256 アルゴリズムがデフォルトで使用されるようになりました。

SHA-1 は、RHEL 9 のすべての署名に対して、デフォルトのシステム全体の暗号化ポリシーで無効になっていることに注意してください。

NSS が 1023 ビット未満の RSA 鍵に対応しなくなる

Network Security Services (NSS) ライブラリーの更新により、すべての RSA 操作の最小鍵サイズが 128 から 1023 ビットに変更されます。つまり、NSS は以下の機能を実行しなくなります。

  • RSA 鍵の生成は 1023 ビット未満です。
  • 1023 ビット未満の RSA 鍵で RSA に署名するか、署名を検証します。
  • 1023 ビットより短い RSA キーで値を暗号化または復号化します。

OpenSSL ENGINE エクステンション API は FIPS モードではサポートされない

OpenSSL の従来のエクステンションシステムである ENGINE API は、新しいプロバイダー API と互換性がありません。したがって、openssl-pkcs11 モジュールおよび openssl-ibmca モジュールなど、OpenSSL エンジンによって提供される機能に依存するアプリケーションは、FIPS モードでは使用できません。

OpenSSL の FIPS モードを有効にしなければ正常に機能しない

FIPS モードを有効にして openssl.cnf 設定ファイルでデフォルト以外の値を使用している場合で、特にサードパーティーの FIPS プロバイダーを使用している場合、openssl.cnf ファイルに fips=yes を追加します。

OpenSSL は、FIPS モードで明示的な曲線パラメーターを受け入れない

明示的な曲線パラメーターを指定した楕円曲線暗号化パラメーター、秘密鍵、公開鍵、および証明書は、FIPS モードでは機能しなくなりました。FIPS 承認の曲線の 1 つを使用する ASN.1 オブジェクト識別子を使用して曲線パラメーターを指定することは、FIPS モードでも機能します。

Libreswan がデフォルトで ESN を要求する

Libreswan では、設定オプション esn= のデフォルト値が no から either に変更されました。つまり、接続を開始すると、Libreswan はデフォルトで拡張シリアル番号 (ESN) の使用を要求します。特に、ハードウェアオフロードが使用されている場合、この新しい動作により、ESN をサポートしていない特定のネットワークインターフェイスカード (NIC) が IPsec 接続を確立できなくなります。ESN を無効にするには、esn=no に設定し、replay_window= オプションを 32 以下の値に設定します。以下に例を示します。

  esn=no
  replay_window=32

replay_window= オプションが必要なのは、ウィンドウサイズが 32 を超えるアンチリプレイ保護のために別のメカニズムが ESN を使用するためです。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.