第8章 セキュリティー

8.1. コア暗号化コンポーネントの変更点

8.1.1. システム全体の暗号化ポリシーがデフォルトで適用

暗号ポリシーは、Red Hat Enterprise Linux 8 でコア暗号化サブシステムを構成するコンポーネントで、TLS、IPsec、DNSSEC、Kerbero の各プロトコルと、OpenSSH スイートに対応します。これにより、管理者が update-crypto-policies コマンドで選択できる小規模セットのポリシーを提供します。

デフォルト のシステム全体の暗号化ポリシーは、現在の脅威モデルに対して安全な設定を提供します。これは、TLS 1.2 と 1.3 のプロトコルだけでなく、IKEv2 プロトコルと SSH2 プロトコルを可能にします。RSA 鍵と Diffie-Hellman パラメーターの長さが 2047 ビット以上であれば許可されます。

詳細は、Red Hat ブログの記事 「Consistent security by crypto policies in Red Hat Enterprise Linux 8」 と、man ページの update-crypto-policies(8) を参照してください。

8.1.2. 安全ではない暗号スイートおよびプロトコルを削除した、強力な暗号デフォルト

次の一覧は、RHEL 8 のコア暗号化ライブラリーから削除された暗号スイートおよびプロトコルです。これは、ソースコード内に存在しないか、ビルド時に無効化されているため、アプリケーションが利用することはできません。

  • DES (RHEL 7 以降)
  • すべてのエクスポートグレードの暗号化スイート (RHEL 7 以降)
  • 署名内の MD5 (RHEL 7 以降)
  • SSLv2 (RHEL 7 以降)
  • SSLv3 (RHEL 8 以降)
  • すべての ECC 曲線 < 224 ビット (RHEL 6 以降)
  • すべてのバイナリーフィールドの ECC 曲線 (RHEL 6 以降)

8.1.3. すべてのポリシーレベルで無効になっている暗号スイートおよびプロトコル

以下の一覧は、すべての暗号化ポリシーレベルで無効になっています。これは、各アプリケーションで明示的に有効にした場合に限り利用可能にできます。

  • パラメーターを持つ DH < 1024 ビット
  • 鍵サイズを持つ RSA < 1024 ビット
  • Camellia
  • ARIA
  • SEED
  • IDEA
  • 完全性のみの暗号スイート
  • SHA-384 HMAC を使用した TLS CBC モード暗号化スイート
  • AES-CCM8
  • TLS 1.3 と互換性がないすべてのECC曲線 (secp256k1 を含む)
  • IKEv1 (RHEL 8 以降)

8.1.4. FIPS モードへのシステムの切り替え

システム全体の暗号化ポリシーには、連邦情報処理規格 (FIPS) 140-2 の要件に準拠した暗号化モジュールのセルフチェックを有効にするポリシーレベルが含まれます。FIPS モードを有効または無効にする fips-mode-setup ツールは、内部的に FIPS システム全体の暗号化ポリシーレベルを使用します。

RHEL 8 の FIPS モードにシステムを切り替えるには、以下のコマンドを実行してシステムを再起動します。

# fips-mode-setup --enable

詳細は、man ページのfips-mode-setup(8)を参照してください。

8.1.5. TLS 1.0 および TLS 1.1 が非推奨に

TLS 1.0 プロトコルおよび TLS 1.1 プロトコルは、システム全体の暗号化ポリシーレベル DEFAULT で無効になります。たとえば、Firefox Web ブラウザーのビデオ会議アプリケーションで、非推奨のプロトコルを使用する必要がある場合は、システム全体の暗号化ポリシーを LEGACY レベルに変更してください。

# update-crypto-policies --set LEGACY

詳細は、Red Hat カスタマーポータルのナレッジベース 「Strong crypto defaults in RHEL 8 and deprecation of weak crypto algorithms」、および man ページの update-crypto-policies(8) を参照してください。

8.1.6. 暗号化ライブラリーにおける TLS 1.3 のサポート

今回の更新で、主要なすべてのバックエンド暗号ライブラリーで、TLS (Transport Layer Security) 1.3 が有効になっています。これにより、オペレーティングシステムの通信層での待ち時間を短縮し、RSA-PSS、X25519 などの新しいアルゴリズムを使用して、アプリケーションのプライバシーおよびセキュリティーを強化します。

8.1.7. RHEL 8 で DSA が非推奨に

Red Hat Enterprise Linux 8 では、DSA (Digital Signature Algorithm) は非推奨であると見なされます。DSA キーに依存する認証メカニズムはデフォルト設定では機能しません。OpenSSH クライアントは、LEGACY のシステム全体の暗号化ポリシーレベルでも DSA ホストキーを許可しません。

8.1.8. NSSSSL2 Client Hello が非推奨に

TLS (Transport Layer Security) プロトコルバージョン 1.2 以前では、SSL (Secure Sockets Layer) プロトコルバージョン 2 と後方互換性がある形式の Client Hello メッセージを使用してネゴシエーションを開始できます。NSS (Network Security Services) ライブラリーでは、この機能のサポートが非推奨となっており、デフォルトで無効になっています。

この機能のサポートが必要なアプリケーションを有効にするには、新しい SSL_ENABLE_V2_COMPATIBLE_HELLO API を使用する必要があります。この機能のサポートは、Red Hat Enterprise Linux 8 の将来のリリースから完全に削除される可能性があります。

8.1.9. NSS がデフォルトで SQL を使用

Network Security Services (NSS) ライブラリーは、デフォルトで信頼データベースに SQL ファイル形式を使用するようになりました。以前のリリースでデフォルトのデータベース形式として使用されていた DBM ファイル形式は、マルチプロセスによる同時アクセスをサポートせず、アップストリームでは非推奨となっていました。したがって、NSS 信頼データベースを使用するアプリケーションが鍵や証明書を保存し、取消し情報がデフォルトで SQL 形式のデータベースを作成します。レガシーの DBM 形式でデータベースを作成しようとする試みは失敗します。既存の DBM データベースを読み取り専用モードで開くと、自動的に SQL 形式に変換されます。Red Hat Enterprise Linux 6 以降、NSS は SQL ファイル形式をサポートします。

8.2. SSH

8.2.1. OpenSSH がバージョン 7.8p1 にリベース

openssh パッケージが、アップストリームバージョン 7.8p1 にアップグレードされました。以下は、主な変更点です。

  • SSH version 1 プロトコルのサポートがなくなりました。
  • hmac-ripemd160 メッセージ認証コードのサポートがなくなりました。
  • RC4 (arcfour) 暗号のサポートがなくなりました。
  • Blowfish 暗号のサポートがなくなりました。
  • CAST 暗号のサポートがなくなりました。
  • UseDNS オプションのデフォルト値を no に変更しました。
  • DSA 公開鍵アルゴリズムをデフォルトで無効にしました。
  • Diffie-Hellman パラメーターの最小モジュールサイズを 2048 ビットに変更しました。
  • ExposeAuthInfo 設定オプションのセマンティクスを変更しました。
  • UsePrivilegeSeparation=sandbox オプションは必須になったため、無効にできなくなりました。
  • 許可される最小の RSA キーサイズを 1024 ビットに設定します。

8.2.2. libssh が SSH をコア暗号化コンポーネントとして実装

この変更により、Red Hat Enterprise Linux 8 のコア暗号化コンポーネントとして libssh が導入されました。libssh ライブラリーは、Secure SHell (SSH) プロトコルを実装しています。

libssh は、システム全体の暗号化ポリシーに準拠していません。

8.2.3. RHEL 8 で libssh2 が利用できない

非推奨の libssh2 ライブラリーは、楕円曲線、Generic Security Service Application Program Interface (GSSAPI) などの機能がなく、RHEL 8 では削除され、libssh が使用されます。

8.3. Rsyslog

8.3.1. デフォルトの rsyslog 設定ファイルの形式がレガシーではない

rsyslog パッケージの設定ファイルが、デフォルトで非レガシーフォーマットを使用するようになりました。レガシーフォーマットも使用できますが、現在の設定ステートメントとレガシーの設定ステートメントを混在する場合は制約がいくつかあります。以前の RHEL リリースから引き継がれた設定は修正する必要があります。詳細は man ページの rsyslog.conf(5) を参照してください。

8.3.2. imjournal オプションと、最小の journald を使用してシステムログを設定

journald がそのファイルをローテートすると発生する場合がある重複レコードを回避するには、imjournal オプションが追加されています。このオプションを使用するとパフォーマンスに影響します。

ナレッジベースの記事「Configuring system logging without journald or with minimized journald usage」に記載されるように、システムに rsyslog を設定すると、パフォーマンスが向上します。

8.3.3. デフォルトのロギング設定がパフォーマンスに与える悪影響

デフォルトのログ環境設定は、メモリーを 4 GB 以上使用する可能性があり、rsyslogsystemd-journald を実行している場合は、速度制限値の調整が複雑になります。

詳細は、ナレッジベースの記事「Negative effects of the RHEL default logging setup on performance and their mitigations」を参照してください。

8.4. OpenSCAP

8.4.1. OpenSCAP API が統合

この更新により、統合された OpenSCAP 共有ライブラリー API を提供します。63 個のシンボルが削除され、14 個が追加され、4 個では署名が更新されました。OpenSCAP 1.3.0 で削除されたシンボルには以下が含まれます。

  • バージョン 1.2.0 で非推奨とされたシンボル
  • SEAP プロトコルシンボル
  • 内部ヘルパー関数
  • 未使用のライブラリーシンボル
  • 未実装シンボル

8.4.2. コンテナーのセキュリティーおよびコンプライアンススキャンを行うユーティリティーが利用できない

Red Hat Enterprise Linux 7 では、Atomic テクノロジーに基づいた Docker コンテナーのスキャンに、oscap-docker ユーティリティーを使用できました。Red Hat Enterprise Linux 8 では、Docker 関連、および Atomic 関連の OpenSCAP コマンドが利用できません。そのため、コンテナーのセキュリティーおよびコンプライアンススキャンには、oscap-docker または同等のユーティリティーを使用できません。

8.5. Audit

8.5.1. Audit 3.0 で audispdauditd に置き換え

今回の更新で、audispd 機能が auditd に移行したため、audispd 設定オプションが auditd.conf に追加されました。さらに、plugins.d ディレクトリーが /etc/audit に移動しました。auditd と、そのプラグインの現在のステータスは、service auditd state コマンドを実行すれば確認できます。

8.6. SELinux

8.6.1. 新しい SELinux ブール値

今回の SELinux システムポリシーの更新により、以下のブール値が導入されました。

  • colord_use_nfs
  • mysql_connect_http
  • pdns_can_network_connect_db
  • ssh_use_tcpd
  • sslh_can_bind_any_port
  • sslh_can_connect_any_port
  • virt_use_pcscd

ブール値の一覧とその意味を取得し、有効かどうかを調べるには、selinux-policy-devel パッケージをインストールして、以下のコマンドを実行します。

# semanage boolean -l

8.6.2. SELinux パッケージが Python 3 に移行

libselinux-python パッケージの機能は、python3-libselinux パッケージで提供されるようになりました。policycoreutils-python は、policycoreutils-python-utils パッケージおよび python3-policycoreutils パッケージに置き換えられました。

8.7. 削除されたセキュリティー機能

8.7.1. shadow-utils では、ユーザー名およびグループ名に数字だけを使用することができなくなる

useradd コマンドおよび groupadd コマンドでは、数値だけのユーザー名とグループ名を使用することができません。ユーザー ID およびグループ ID は数値となるため、数値だけのユーザー名およびグループ名を使用すると、ユーザー名とユーザー ID、またはグループ名とグループ ID を組み合わせて使用するツールで、混乱が生まれるためです。数値だけのユーザー名およびグループ名は、Red Hat Enterprise Linux 7 では非推奨となり、Red Hat Enterprise Linux 8 では完全にサポートされなくなりました。

8.7.2. securetty はデフォルトで無効になる

最新の Linux システムでは、tty デバイスファイルの動的な特性により、PAM モジュール securetty はデフォルトで無効になり、/etc/securetty 設定ファイルが RHEL に含まれなくなりました。/etc/securetty には可能なデバイスが多数含まれているため、ほとんど場合は、実用的な効果はデフォルトで許可されます。この変更の影響は大きくありませんが、より大きな制限を使用する場合は、/etc/pam.d ディレクトリーの適切なファイルに、pam_securetty.so モジュールを有効にする行を追加して、新しい /etc/securetty ファイルを作成する必要があります。

8.7.3. Clevis HTTP ピンが削除される

Clevis の HTTP pin は、RHEL 8 から削除されています。サブコマンド clevis encrypt http は利用できなくなりました。

8.7.4. Coolkey が削除される

スマートカードの Coolkey ドライバーは RHEL 8 から削除されており、その機能は OpenSC から提供されるようになりました。