Upgrade to Pro — share decks privately, control downloads, hide ads and more …

システム全体の暗号化ポリシーをカスタマイズ

Kazuo Moriwaka
December 08, 2022

 システム全体の暗号化ポリシーをカスタマイズ

crypto-policiesの設定をカスタマイズする方法について簡単に紹介するスライドです

Kazuo Moriwaka

December 08, 2022
Tweet

More Decks by Kazuo Moriwaka

Other Decks in Technology

Transcript

  1. 1
    GENERAL Distribution
    システム全体の暗号化
    ポリシーをカスタマイズ
    2022 年 12 月 8 日
    レッドハット株式会社
    森若 和雄

    View full-size slide

  2. 2
    GENERAL Distribution
    このスライドについて
    対象
    RHEL8.2 以降 or 9 でシステム全体の暗号化ポリシーを設定・変更したい人
    目的
    crypto-policies の基本的なカスタマイズ方法と、現状の制限を紹介する

    View full-size slide

  3. 3
    GENERAL Distribution
    概要
    ● システム全体の暗号化ポリシー設定とは何か ?
    ● crypto-policies の使い方
    ● crypto-policies のカスタマイズ
    ● crypto-policies 利用時の注意点
    ● 参考資料

    View full-size slide

  4. 4
    GENERAL Distribution
    システム全体の暗号化
    ポリシー設定とは何か ?

    View full-size slide

  5. 5
    GENERAL Distribution
    背景
    RHEL で利用できる暗号化方式には複数の方式があります
    システムのセキュリティ要件により一部の方式は利用が制限されます
    システムが従うべきガイドラインやポリシーは業界や規格により様々です
    一番弱い暗号化を利用している箇所が弱点になります
    一部のサービスで強力な暗号化方式を利用して、別のサービスでは弱い暗号化方式
    を利用している場合、一番弱い暗号化がそのシステムの弱点になります
    多数のプログラムがそれぞれ暗号化の設定を扱うため、各プ
    ログラムで同等の設定を維持するには手間がかかります

    View full-size slide

  6. 6
    GENERAL Distribution
    暗号化ポリシーの設定 とは
    システム全体の暗号化スイートの設定を一箇所で行う
    一部の脆弱な設定によりシステム全体が脆弱になる事故を防ぎます
    あらかじめ推奨される設定を提供
    デフォルトで現在の標準的なサーバ用途で推奨される設定になります
    カスタムポリシーを設定する
    要件にあわせて用意されているポリシーから一部を変更します

    View full-size slide

  7. 7
    GENERAL Distribution
    crypto-policies 概要図
    ポリシーから設定を生成
    update-crypto-policies コマンド
    でプリセットの選択または生成
    各ソフトウェアからデ
    フォルト設定として参照
    各ソフトウェアパッケージで設定
    読み込みなど必要な対応を実施
    ポリシー
    *.pol
    update-crypto-policies
    各バックエンド用
    設定
    サブポリシー
    *.pmod
    読込
    生成
    サブポリシー
    *.pmod
    bind
    httpd
    sshd
    openjdk
    kerberos
    curl

    View full-size slide

  8. 8
    GENERAL Distribution
    crypto-policies の使い方

    View full-size slide

  9. 9
    GENERAL Distribution
    crypto-policies とは何か ?
    システム全体の暗号化ポリシー設定を行う
    GnuTLS, OpenSSL, NSS, OpenJDK, libkrb5, BIND, OpenSSH, libreswan, libssh のデ
    フォルトをまとめて設定します。これらのライブラリやアプリケーションのパッ
    ケージと連携します。
    あらかじめ定義されたプロファイルを提供
    LEGACY, DEFAULT, FIPS, FUTURE の 4 種類のプロファイルを提供します。
    プロファイルのカスタマイズ
    設定によりプロファイルを新規に作成したり、既存のプロファイルをカスタマイズ
    します。

    View full-size slide

  10. 10
    GENERAL Distribution
    crypto-policies 関連コマンド
    管理者が利用するコマンド
    ● update-crypto-policies
    利用例
    # update-crypto-policies --show
    DEFAULT
    # update-crypto-policies --set DEFAULT:ECDHE-ONLY
    Setting system policy to DEFAULT:ECDHE-ONLY
    Note: System-wide crypto policies are applied on application start-up.
    It is recommended to restart the system for the change of policies
    to fully take place.

    View full-size slide

  11. 11
    GENERAL Distribution
    ポリシーの選び方
    特に何も問題がなければ DEFAULT のまま利用する
    DEFAULT ポリシーは現在一般的に推奨される設定です
    古い機器との接続に問題がある場合や、特有の要件がある場
    合にはポリシーをカスタマイズする
    SHA1 や TLS1.1 の許可や禁止など必要なカスタマイズを行えます
    例外がある場合はアプリケーションを個別に設定する
    アプリケーション毎の個別の設定は crypto-policies のデフォルト設定より優先さ
    れます

    View full-size slide

  12. 12
    GENERAL Distribution
    LEGACY DEFAULT FIPS FUTURE
    IKEv1 no no no no
    3DES no no no no
    RC4 no no no no
    DH min. 2048-bit min. 2048-bit min. 2048-bit min. 3072-bit
    RSA min. 2048-bit min. 2048-bit min. 2048-bit min. 3072-bit
    DSA no no no no
    TLS v1.0 no no no no
    TLS v1.1 no no no no
    デジタル署名と証明書内の
    SHA-1
    yes no no no
    CBC モード暗号 yes no no no
    対称暗号 < 256 ビット鍵 yes yes yes no
    黄色は RHEL 8 から 9 で変わったもの

    View full-size slide

  13. 13
    GENERAL Distribution
    crypto-policies の
    カスタマイズ

    View full-size slide

  14. 14
    GENERAL Distribution
    ポリシーのカスタマイズ
    サブポリシー ( モジュール ) の利用
    ポリシー名のあとにコロン区切りでサブポリシーを指
    定します。複数のサブポリシーを指定できます。
    例 :
    # update-crypto-policies --set DEFAULT:ECDHE-ONLY:SHA1
    ポリシーの作成
    RHEL 8.2 以降でポリシーの作成が可能
    ● カスタマイズ用のポリシーとサブポリシー
    /etc/crypto-policies/policies
    ポリシー
    *.pol
    update-crypto-policies
    各バックエンド用
    設定
    サブポリシー
    *.pmod
    読込
    生成
    サブポリシー
    *.pmod

    View full-size slide

  15. 15
    GENERAL Distribution
    RHEL9 に同梱されているサブポリシー
    AD-SUPPORT-LEGACY.pmod , AD-SUPPORT.pmod
    Active Directory との Kerberos 連携のため暗号化ポリシーを緩和する
    OSPP.pmod
    Common Criteria OSPP Profile むけに FIPS ポリシーを制限する
    ECDHE-ONLY.pmod
    鍵交換に ECDHE を強制する例
    NO-SHA1.pmod
    SHA1 の利用を全て禁止する例
    SHA1.pmod
    SHA1 の利用を全て許可する例

    View full-size slide

  16. 16
    GENERAL Distribution
    ポリシー定義
    ポリシー
    /usr/share/crypto-policies/policies/*.pol
    /etc/crypto-policies/policies/*.pol
    ● key = value 形式で必要項目について許容する暗
    号化スイートのリストや値を定義する
    ● key の一覧は man crypto-policies に記載
    ポリシー作成時のコツ
    LEGACY.pol にサポートされる暗号化が列挙されて
    いるので、コピーしてから不要なものを削除すると
    間違いにくい
    # DEFAULT.pol の例
    mac = AEAD HMAC-SHA2-256 HMAC-SHA1 UMAC-128 HMAC-SHA2-38
    HMAC-SHA2-512
    group = X25519 X448 SECP256R1 SECP384R1 SECP521R1 \
    FFDHE-2048 FFDHE-3072 FFDHE-4096 FFDHE-6144 FFDHE-8192
    hash = SHA2-256 SHA2-384 SHA2-512 SHA3-256 SHA3-384 SHA3-512
    SHA2-224 SHA3-224 \
    SHAKE-256
    sign = ECDSA-SHA3-256 ECDSA-SHA2-256 ECDSA-SHA2-256-FIDO \
    ECDSA-SHA3-384 ECDSA-SHA2-384 \
    ( 中略 )
    ECDSA-SHA3-224 RSA-PSS-SHA3-224 RSA-SHA3-224
    cipher = AES-256-GCM AES-256-CCM CHACHA20-POLY1305 \
    ( 中略 )
    protocol@TLS = TLS1.3 TLS1.2 DTLS1.2
    protocol@IKE = IKEv2
    # Parameter sizes
    min_dh_size = 2048
    min_dsa_size = 2048 # DSA is disabled
    min_rsa_size = 2048
    ( 以下略 )

    View full-size slide

  17. 17
    GENERAL Distribution
    サブポリシー
    サブポリシー
    /usr/share/crypto-policies/policies/
    modules/*.pmod
    /etc/crypto-policies/policies/modules/*.pmod
    ● key = value 形式で変更する箇所のみ記載する
    ● リストの変更
    ● “ 値+” で先頭に追加
    ● “ +値” で末尾に追加
    ● “− 値” で値を削除
    # SHA1.pmod の例
    hash = SHA1+
    sign = ECDSA-SHA1+ RSA-PSS-SHA1+ RSA-SHA1+
    sha1_in_certs = 1

    View full-size slide

  18. 18
    GENERAL Distribution
    注意
    /etc/crypto-policies/back-ends 以下の直接編集
    update-crypto-policies コマンドを実行すると上書きされるため危険です
    update-crypto-policies --check でポリシーとバックエンド間の差分有無を確認で
    きます

    View full-size slide

  19. 19
    GENERAL Distribution
    crypto-policies 利用時
    の注意点

    View full-size slide

  20. 20
    GENERAL Distribution
    crypto-policies の注意点
    crypto-policies は全ての暗号化を網羅できていません
    暗号化をあつかう全ての箇所を網羅はできていません。 gnupg2 や Go 言語によるアプリ
    ケーションは暗号化を扱いますが crypto-policies で管理されていません。
    アプリケーション個別での設定でオーバライドされます
    crypto-policies は各ライブラリやアプリケーションのデフォルト設定に影響しますが強制
    力はありません。アプリケーションで明示的に設定が行われると、そちらが優先されます。
    オーバライドしたい場合の手順は均一ではない
    sshd など一部のソフトウェアは単純に設定を行うだけでオーバライドできないものがあ
    ります。 RHEL9 ドキュメント「セキュリティーの強化」内「システム全体の暗号化ポリ
    シーに従わないようにアプリケーションを除外」を参照ください。

    View full-size slide

  21. 21
    GENERAL Distribution
    まとめ
    ● Red Hat Enterprise Linux でシステム全体の暗号化ポリシー
    設定をまとめて設定が可能です
    ● DEFAULT をベースにモジュールでカスタマイズします
    ● 個別のアプリケーションでポリシーをオーバライドすること
    も可能です

    View full-size slide

  22. 22
    GENERAL Distribution
    参考資料

    View full-size slide

  23. 23
    GENERAL Distribution
    参考 : RHEL9 で利用できないアルゴリズムとプロトコル
    RHEL9 から排除された暗号スイートとプロトコル
    以下はソースコードに含まれないか、ビルド時に無効にされています。
    設定によらず利用できません。
    ● DES (RHEL 7 以降 )
    ● すべてのエクスポートグレードの暗号化スイート (RHEL 7 以降 )
    ● 署名内の MD5 (RHEL 7 以降 )
    ● SSLv2 (RHEL 7 以降 )
    ● SSLv3 (RHEL 8 以降 )
    ● すべての ECC 曲線 < 224 ビット (RHEL 6 以降 )
    ● すべてのバイナリーフィールドの ECC 曲線 (RHEL 6 以降 )

    View full-size slide

  24. 24
    GENERAL Distribution
    参考 : RHEL9 でサポートされない
    アルゴリズムとプロトコル
    これらはカスタム暗号化ポリシーの適用、または個々のアプリケーションの明示的な設定に
    よってのみ有効にできます。有効にする設定はサポートされていないと見なされます。
    ● バージョン 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
    ● IKEv1 (RHEL 8 以降 )

    View full-size slide

  25. 25
    GENERAL Distribution
    参考情報
    ● 公式ドキュメント「セキュリティーの強化」内「システム全体の暗号化ポリ
    シーの使用」
    http://bit.ly/3E9TCzb
    ● man page: crypto-policies(7), update-crypto-policies(8)
    ● fedora-crypto-policies プロジェクトのページ
    https://gitlab.com/redhat-crypto/fedora-crypto-policies

    View full-size slide

  26. 26
    GENERAL Distribution
    Thank You

    View full-size slide