RHEL 9でSHA-1を有効にする方法: crypto-policies
とssh.config
の2つのアプローチ
はじめに
SHA-1(Secure Hash Algorithm 1)は、かつて広く使用されていたハッシュアルゴリズムですが、衝突攻撃に対する脆弱性が発見され、現在では安全とは言えません。特に証明書や署名検証、暗号化通信でSHA-1を使用することはセキュリティリスクを伴います。そのため、RHEL 9ではSHA-1はデフォルトで無効化されています。
しかし、いくつかのシナリオでは、SHA-1を有効にしなければならない場合があります。例えば、古いシステムやサードパーティ製のアプリケーションとの互換性維持のためにSHA-1を使用する必要がある場合です。この記事では、SHA-1を有効にする2つの方法について解説します。
crypto-policies
を使用してシステム全体でSHA-1を有効にする方法ssh.config
を使用してSSH接続時にSHA-1を有効にする方法
それぞれの設定方法、メリット・デメリット、影響範囲を解説し、実際にSHA-1を有効にする際の注意点も取り上げます。
方法 1: crypto-policies
でSHA-1を有効にする
crypto-policies
は、システム全体の暗号化ポリシーを管理するツールで、SHA-1を有効にすることで、SSH、TLS、証明書署名など、システム全体でSHA-1を使用できるようになります。
1.1 SHA-1を有効にする理由とリスク
SHA-1は衝突攻撃に弱く、実際に攻撃者による改竄が発生するリスクがあります。SHA-1を有効にする主な理由としては、以下のようなシナリオが考えられます:
- 古いシステムとの互換性: 古いサーバーやアプリケーションがSHA-1を使用しており、最新のRHEL 9システムと互換性を持たせるため。
- サードパーティ製アプリケーション: 一部のサードパーティのアプリケーションやライブラリがSHA-1に依存している場合。
SHA-1を有効にすることはセキュリティリスクを伴うため、できるだけ早急にSHA-256やSHA-3への移行を検討する必要があります。
1.2 crypto-policies
でSHA-1を有効にする手順
SHA-1サブポリシーをDEFAULT
ポリシーに適用 SHA-1を有効にするには、update-crypto-policies
コマンドを使用します。次のコマンドでSHA-1を有効にできます
sudo update-crypto-policies --set DEFAULT:SHA1
これにより、システム全体の暗号化ポリシーがDEFAULT:SHA1
に設定され、SHA-1を使用した署名や通信が可能になります。
システムの再起動 システム全体に適用された暗号化ポリシーが有効になるためには、システムの再起動が必要です。次のコマンドでシステムを再起動します
sudo reboot
設定確認 設定が正常に反映されたかを確認するために、以下のコマンドを実行します
sudo update-crypto-policies --show
DEFAULT:SHA1
が表示されれば、SHA-1が有効になっています。
1.3 crypto-policies
でSHA-1を有効にするメリット・デメリット
- メリット
- システム全体の暗号化通信にSHA-1を有効にできるため、アプリケーションやサービスの設定変更をせずに、SHA-1を使用することができます。
- 特に、古いシステムやサードパーティアプリケーションとの互換性を保ちながら、新しいシステムで動作を続けることができます。
- デメリット
- SHA-1はセキュリティリスクを伴います。特に、インターネットを介した通信や署名検証などでSHA-1を使用すると、衝突攻撃や偽造証明書に対して脆弱になります。
- 現代のセキュリティ基準ではSHA-1の使用は推奨されません。将来的にはSHA-256やSHA-3への移行が必要です。
方法 2: ssh.config
でSHA-1を有効にする
特定のSSH接続においてのみSHA-1を使用したい場合、ssh.config
ファイルを編集してSHA-1を有効にすることができます。この方法では、システム全体の暗号化ポリシーを変更せずに、特定のSSH接続でのみSHA-1を有効にできます。
2.1 SSHでSHA-1を有効にする理由とリスク
SSH接続では、公開鍵認証やデジタル署名が使用されます。SHA-1を有効にする理由としては、以下のようなケースが考えられます:
- 古いSSHサーバーとの互換性: 既存のSSHサーバーがSHA-1で署名された鍵を使用している場合、SHA-1を無効にすると接続できなくなります。
- 互換性のためにSHA-1が必要: 特定のサーバー設定がSHA-1を要求する場合。
2.2 ssh.config
でSHA-1を有効にする手順
SSH設定ファイルを編集
ssh.config
(通常は/etc/ssh/ssh_config
)を開き、SHA-1を許可する設定を追加します。次のように、PubkeyAcceptedAlgorithms
とHostkeyAlgorithms
を設定します
Host <対象のホスト名またはIPアドレス>
PubkeyAcceptedAlgorithms +ssh-rsa
HostkeyAlgorithms +ssh-rsa
この設定は、指定したホストとのSSH接続時にSHA-1(ssh-rsa
)アルゴリズムを許可します。
SSH接続を確認
設定を変更した後、対象のサーバーにSSHで接続し、SHA-1が有効になっていることを確認します。接続に成功すれば、設定は正しく適用されています。
2.3 ssh.config
でSHA-1を有効にするメリット・デメリット
- メリット
- SHA-1を有効にするのは特定のSSH接続にのみ影響を与えるため、システム全体のセキュリティには影響を与えません。
- 古いサーバーやレガシーシステムとの互換性を保ちながら、SFTPやSSH接続を維持できます。
- デメリット
- SSH接続時にのみSHA-1を使用することに限定されるため、管理が煩雑になりがちです。設定ミスによるセキュリティリスクが発生する可能性もあります。
- セキュリティリスクを完全に回避するためには、全システムでSHA-1を無効にし、より強力なアルゴリズムを使用することが推奨されます。
影響範囲とセキュリティリスク
crypto-policies
を使用する場合- システム全体にSHA-1を有効にすることで、すべての暗号化通信がSHA-1を使用するようになります。特に、インターネット通信や証明書検証などで攻撃者による偽造や改竄のリスクが増大します。
- SHA-1の使用を避けるため、SHA-256やSHA-3への移行を進めるべきです。
ssh.config
を使用する場合- 特定のSSH接続にのみSHA-1を適用することで、全体的なセキュリティには影響しませんが、接続先サーバーが弱い暗号化を使用している場合、セキュリティリスクに依存することになります。
結論
SHA-1を有効にする方法は、crypto-policies
とssh.config
の2つの方法があります。どちらを選ぶかは、使用するシナリオやセキュリティ要件に依存します。セキュリティリスクを理解した上で、できるだけ早急にSHA-256やSHA-3に移行することが推奨されます。