2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

概要

  • RHEL8以降、RHEL系統のLinuxディストリビューションには、crypto-policiesパッケージが含まれるようになりました
  • この記事はcyrpto-policiesについての備忘録です

crypto-policiesとは

crypto-policiesは、TLS、SSH、DNSSec、およびKerberosの各プロトコルや、それらを利用するサーバー、あるいはJavaアプリケーション等について、従来の個別での暗号スイート管理・設定を省力化し、サーバー単位で一括管理しやすくするものです

従来Linuxでは、アプリやライブラリごとに個別に暗号スイートの管理をしていました。しかし一部のアプリやライブラリで十分な強度のある暗号スイート設定を維持していても、もし他の箇所で暗号スイートに脆弱な暗号が含まれていたら、攻撃者は強固な部位を迂回して脆弱な部位を攻撃するでしょう。crypto-policiesを使うメリットは暗号スイートの一括管理によって安全性を確保することにあります

暗号スイート(Cipher suite)とは

暗号スイートは、使用する暗号技術の組み合わせのことです
暗号技術には様々な用途や性質を持つものがあり、必要に応じて複数の暗号技術を組み合わせて使用します

  • 時代の変遷や状況の変化によって、新しい暗号技術が使えるようになったり、これまで安全とされていた暗号技術が専門機関によって脆弱と判断され非推奨になったりします
  • このような推奨される暗号技術の変化に合わせて、管理するシステムで使用される暗号スイートを管理することは大事なことといえます

crypto-policiesによる暗号スイート管理

crypto-policiesは、ポリシーおよびサブポリシーの組み合わせによって暗号スイートを管理します

ポリシー

暗号スイートは基本的にポリシーに定義されています
crypto-policiesは、それぞれの性質に応じて設定されたポリシーがあります
通常はこれらを選択することによって設定します

ポリシー 概要 留意点その他
DEFAULT デフォルトのポリシー 初期状態、通常これで問題ない
LEGACY 互換性を重視したポリシー 安全ではない暗号技術も含まれる
FUTURE 近い将来を想定したポリシー 強力だが互換性に欠ける
FIPS 米国政府基準のポリシー 米国政府機関で使用するためのもの

サブポリシー

サブポリシーは、ポリシーの断片のようなものです
より柔軟な暗号スイート管理を可能とするために、サブポリシーをポリシーに組み合わせることで、ポリシーに定義された暗号スイートから特定の暗号技術を追加したり除外したりすることが可能です

crypto-policiesの使い方

主にupdate-crypto-policiesコマンドを使います

現在のポリシー確認

現在のポリシー確認
$ update-crypto-policies --show
DEFAULT

ポリシーの切り替え

ポリシー切り替え
$ update-crypto-policies --show
DEFAULT
$ update-crypto-policies --set FUTURE
(再起動、または必要なプロセスを再起動)
$ update-crypto-policies --show
FUTURE

サブポリシーを組み合わせる

DEFAULTポリシーにSHA1を追加して、古いOSや機器と互換性を確保する場合

サブポリシー組み合わせ
$ update-crypto-policies --show
DEFAULT
$ update-crypto-policies --set DEFAULT:SHA1
(再起動、または必要なプロセスを再起動)
$ update-crypto-policies --show
DEFAULT:SHA1

カスタマイズによるより細かな管理

ポリシーやサブポリシーは予め用意されたものだけではなく、管理者が独自に作成して適用することができます

カスタムサブポリシーの作成

カスタムサブポリシーを作成することで、任意の内容のサブポリシーを作成することが可能です

もしDEFAULTポリシーにSHA1を追加して、古いOSや機器と互換性を確保する場合でも、それがsshに限定できるのならば、サブポリシーSHA1を用いて全体にSHA1を許可するよりも、sshに限定して許可する方が望ましいでしょう

カスタムサブポリシー作成・適用例
$ cat /usr/share/crypto-policies/policies/modules/SHA1.pmod
# This subpolicy adds SHA1 hash and signature support

hash = SHA1+

sign = ECDSA-SHA1+ RSA-PSS-SHA1+ RSA-SHA1+

sha1_in_certs = 1

$ cd /etc/crypto-policies/policies/modules
$ cp -a /usr/share/crypto-policies/policies/modules/SHA1.pmod SHA1_SSH.pmod
$ vi SHA1_SSH.pmod
$ cat SHA1_SSH.pmod 
# This subpolicy adds SHA1 hash and signature support

hash@SSH = SHA1+

sign@SSH = ECDSA-SHA1+ RSA-PSS-SHA1+ RSA-SHA1+

#sha1_in_certs = 1

$ update-crypto-policies --set DEFAULT:SHA1_SSH
$ systemctl restart sshd
$ update-crypto-policies --show
DEFAULT:SHA1_SSH
記述例 意味
SHA1+ 末尾に追加
+SHA1 先頭に追加
-SHA1 削除

カスタムポリシーの作成

ポリシーそのものを任意の内容で作成することが可能です

カスタムポリシー作成・適用例
$ cd /etc/crypto-policies/policies
$ cp -a /usr/share/crypto-policies/policies/DEFAULT.pol MYPOLICY.pol
$ vi MYPOLICY.pol
$ update-crypto-policies --set MYPOLICY
(再起動)
$ update-crypto-policies --show
MYPOLICY
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?