crypto policy
crypto policy
SSLの設定をしていたら、Fedora21からcrypto policyというものが導入されていたのを知った。
crypto policyにより、各アプリケーションで個別に設定していた暗号設定を、システム全体の設定として定義し、各アプリケーションからそれを参照するようにできる。システム内の各アプリケーションの暗号関連のセキュリティレベルを、まとめて管理するために開発されたもののようだ。
Fedora23でcrypto policyに対応しているソフト/ライブラリは以下のもの(man update-crypto-policies参照)。
- GnuTLS library
- OpenSSL library
- OpenJDK
- Libkrb5
- BIND
OpenSSLでのcrypto policyの参照
例えば、OpenSSLでcrypto policyの設定を参照するには、PROFILE=SYSTEMというキーワードを使えばよい。Apacheのmod_sslの設定なら、以下のように設定することができる。
SSLCipherSuite PROFILE=SYSTEM
PROFILE=SYSTEMの部分はopensslライブラリにより、crypto policyの設定に展開される。
どのような設定になるかは、/etc/crypto-policies/back-ends/openssl.configに記述されている。
openssl.configの例
!SSLv2:kEECDH:kRSA:kEDH:kPSK:+3DES:!aNULL:!eNULL:!MD5:!EXP:!RC4:!SEED:!IDEA:!DES
なお、openssl.configはupdate-crypto-policiesコマンドで更新されるので、勝手に書き換えてはいけない。
実際にどのようなCipher Suiteが使われるかは、以下のコマンドで確認できる。
# openssl ciphers -v 'PROFILE=SYSTEM'
policyの変更
crypto policyはLEGACY/DEFAULT/FUTUREの中から選択できる。現在のモードは /etc/crypto-policies/state/current を確認するか、update-crypto-policiesコマンドで確認できる。
# update-crypto-policies --show DEFAULT
設定を変更するには、/etc/crypto-policies/config を変更する。
変更後、update-crypto-policiesを実行すると反映される。
設定の反映
# update-crypto-policies Setting system policy to FUTURE
反映させると、/etc/crypto-policies/back-ends/以下の設定が更新されているのがわかる。openssl ciphers -v 'PROFILE=SYSTEM' でも使用される暗号が変わっているのが確認できる。
参照
FedoraProjectのドキュメント
https://fedoraproject.org/wiki/Changes/CryptoPolicy