第7章 米連邦政府の標準および規制

どの組織も、米連邦政府または業界のセキュリティー仕様、標準および規制の遵守に取り組むことで一定のセキュリティーレベルを維持することができます。本章では、これらの標準および規制のいくつかについて説明します。

7.1. 連邦情報処理標準 (FIPS: Federal Information Processing Standard)

連邦情報処理標準 (FIPS) のパブリケーションである 140-2 は、暗号モジュールの品質を検証するために連邦政府と業界の作業部会によって開発されたコンピューターセキュリティー標準です。FIPS のパブリケーション (140-2 を含む) は以下の URL にあります。http://csrc.nist.gov/publications/PubsFIPS.html。Red Hat Enterprise Linux 7.3 のリリース時点で 140-3 のパブリケーションは草稿なので、これが完成版の標準ではない可能性があることに注意してください。
FIPS 140-2 標準は、暗号化ツールが正しく実装されていることを確認します。FIPS 標準の上記の各レベルや他の仕様についての詳細は、正規の FIPS 140-2 標準 (http://csrc.nist.gov/publications/fips/fips140-2/fips1402.pdf を参照してください。
すべての FIPS 140-2 証明書の完全一覧については http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140val-all.htm を参照してください。コンプライアンス要件については Red Hat Government: Standards page を参照してください。

7.1.1. FIPS モードの有効化

Red Hat Enterprise Linux を連邦情報処理標準 (FIPS) パブリケーション 140-2 に準拠させるには、いくつかの変更を加えて認定済み暗号モジュールを使用することが必要です。システムのインストール中または後に、FIPS モードを有効にしてください。

システムのインストール時

厳格な FIPS 140-2 へのコンプライアンス を満たすには、システムのインストール中にカーネルコマンドラインに fips=1 カーネルオプションを追加します。このオプションでは、、FIPS で承認されているアルゴリズムを使って鍵を生成し、継続的なモニタリングテストを実施することができます。インストール後には、システムは自動的に FIPS モードで起動します。

重要

マウスを移動させるか、キーを何度も押して、インストールプロセス中にシステムに十分なエントロピーを確保します。推奨されるキー入力の回数は 256 回以上です。255 回以下の場合は、一意でない鍵が生成される可能性があります。

システムインストールの後

システムのインストール後にシステム、カーネル、ユーザー領域を FIPS モードに切り替えるには、以下のステップに従います。
  1. プレリンクが無効になっていることを確認します。
    モジュール内の整合性検証の適切な実行にあたり、ライブラリーやバイナリーのプレリンクは無効にする必要があります。プレリンクは prelink パッケージにより行われますが、デフォルトではインストールされません。プレリンクを無効にするには、/etc/sysconfig/prelink 設定ファイルで PRELINKING=no オプションを設定します。全システムファイルの既存のプレリンクを無効にするには、prelink -u -a コマンドを使用します。
  2. dracut-fips パッケージをインストールします。
    ~]# yum install dracut-fips
    AES New Instructions (AES-NI) サポートのある CPU は、dracut-fips-aesni パッケージもインストールします。
    ~]# yum install dracut-fips-aesni
  3. initramfs ファイルを再生成します。
    モジュール内の整合性検証を有効化して、カーネルの起動中に必要なモジュールがすべて揃っているようにするには、initramfs ファイルを再生成する必要があります。
    ~]# dracut -v -f

    警告

    この操作により、既存の initramfs ファイルが上書きされます。
  4. ブートローダーの設定を変更します。
    FIPS モードで起動するには、ブートローダーのカーネルコマンドラインに fips=1 オプションを追加します。/boot または /boot/EFI パーティションが個別のパーティションにある場合には、boot=<partition> パラメーター (<partition> は /boot または /boot/EFI を指す) もカーネルのコマンドラインに追加してください。
    ブートパーティションを特定するには、以下のコマンドを実行します。
    ~]$ df /boot
    Filesystem           1K-blocks      Used Available Use% Mounted on
    /dev/sda1               495844     53780    416464  12% /boot
    ブート間でデバイス名が変更されても boot= 設定オプションが機能するようにするには、以下のコマンドを実行してパーティションの UUID (Universally Unique Identifier) を特定します。
    ~]$ blkid /dev/sda1
    /dev/sda1: UUID="05c000f1-f899-467b-a4d9-d5ca4424c797" TYPE="ext4"
    UUID をカーネルコマンドラインに追加します。
    boot=UUID=05c000f1-f899-467b-a4d9-d5ca4424c797
    お使いのブートローダーによっては、以下の変更を加えてください。
    • grub2
      /etc/default/grub ファイルの GRUB_CMDLINE_LINUX キーに、fips=1boot=<partition of /boot or /boot/EFI> のオプションを追加します。/etc/default/grub への変更を適用するには、以下のように grub.cfg ファイルを再構築します。
      • BIOS ベースのマシンでは、root で以下のコマンドを実行します。
        ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
      • UEFI ベースのマシンでは、root で以下のコマンドを実行します。
        ~]# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
    • zipl (IBM z Systems アーキテクチャーのみ)
      カーネルコマンドラインで /etc/zipl.conffips=1 および boot=<partition of /boot> オプションを追加し、root として以下のコマンドを実行して変更を適用します。
      ~]# zipl
  5. システムを再起動します。