• 投稿者:
  • 投稿コメント:0件のコメント
  • 投稿カテゴリー:OS
  • 投稿の最終変更日:2024年12月12日

RHEL 9でSHA-1を有効にする方法: crypto-policiesssh.configの2つのアプローチ


はじめに

SHA-1(Secure Hash Algorithm 1)は、かつて広く使用されていたハッシュアルゴリズムですが、衝突攻撃に対する脆弱性が発見され、現在では安全とは言えません。特に証明書や署名検証、暗号化通信でSHA-1を使用することはセキュリティリスクを伴います。そのため、RHEL 9ではSHA-1はデフォルトで無効化されています。

しかし、いくつかのシナリオでは、SHA-1を有効にしなければならない場合があります。例えば、古いシステムやサードパーティ製のアプリケーションとの互換性維持のためにSHA-1を使用する必要がある場合です。この記事では、SHA-1を有効にする2つの方法について解説します。

  1. crypto-policiesを使用してシステム全体でSHA-1を有効にする方法
  2. 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を許可する設定を追加します。次のように、PubkeyAcceptedAlgorithmsHostkeyAlgorithmsを設定します

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を無効にし、より強力なアルゴリズムを使用することが推奨されます。

影響範囲とセキュリティリスク

  1. crypto-policiesを使用する場合
    • システム全体にSHA-1を有効にすることで、すべての暗号化通信がSHA-1を使用するようになります。特に、インターネット通信や証明書検証などで攻撃者による偽造や改竄のリスクが増大します。
    • SHA-1の使用を避けるため、SHA-256やSHA-3への移行を進めるべきです。
  2. ssh.configを使用する場合
    • 特定のSSH接続にのみSHA-1を適用することで、全体的なセキュリティには影響しませんが、接続先サーバーが弱い暗号化を使用している場合、セキュリティリスクに依存することになります。

スポンサーリンク

結論

SHA-1を有効にする方法は、crypto-policiesssh.configの2つの方法があります。どちらを選ぶかは、使用するシナリオやセキュリティ要件に依存します。セキュリティリスクを理解した上で、できるだけ早急にSHA-256やSHA-3に移行することが推奨されます。


参考文献

コメントを残す