SSHで推奨される暗号スイートとは?安全なSSH設定で選ぶべき暗号方式を解説

SSHで推奨される暗号スイートとは?

SSHで推奨される暗号スイートを理解して安全なサーバ運用を実現しよう

SSHはLinuxサーバ管理に欠かせないリモートアクセス技術ですが、その安全性は利用する暗号アルゴリズムに大きく依存しています。

SSHでは接続時に複数の暗号技術が利用されており、それらをまとめて「暗号スイート(Cipher Suite)」と呼ぶことがあります。

古い暗号方式には既知の脆弱性が存在するため、現在では安全なアルゴリズムのみを利用する設定が推奨されています。

本記事ではSSHで利用される暗号技術の種類や、現在推奨される設定について解説します。

SSHで利用される暗号技術

SSH接続では複数の暗号アルゴリズムが組み合わされています。

主に以下の要素があります。

  • 鍵交換アルゴリズム(KEX)
  • ホスト鍵アルゴリズム
  • 公開鍵認証アルゴリズム
  • 共通鍵暗号方式
  • MAC(完全性保護)

これらが組み合わさって安全な通信を実現しています。

暗号スイートとは

SSHでは接続時にクライアントとサーバが利用可能な暗号方式を交換します。

その中から双方が対応する最も強力なアルゴリズムが選択されます。

これを暗号スイートと呼ぶことがあります。

現在推奨されるホスト鍵アルゴリズム

ホスト鍵はサーバ認証に利用されます。

現在推奨されるのは以下です。

ssh-ed25519

OpenSSHでもデフォルト推奨となっています。

ED25519が推奨される理由

ED25519には以下の特徴があります。

  • 高速
  • 安全性が高い
  • 鍵サイズが小さい
  • 実装ミスに強い

現在のSSH環境では第一選択となっています。

RSAは使えないのか

RSA自体が危険になったわけではありません。

しかし古いRSA署名方式は非推奨になっています。

現在利用するなら2048bit以上、できれば3072bit以上が推奨されます。

$ ssh-keygen -t rsa -b 4096

新規作成ではED25519が推奨です。

DSAは利用しない

DSA(ssh-dss)は現在利用すべきではありません。

OpenSSHでもデフォルト無効です。

古いシステム以外では使用を避けましょう。

鍵交換アルゴリズム(KEX)

SSH接続開始時には鍵交換が行われます。

推奨されるアルゴリズムです。

curve25519-sha256
curve25519-sha256@libssh.org

高速かつ安全です。

Curve25519とは

楕円曲線暗号を利用した鍵交換方式です。

現在のOpenSSHで標準的に利用されています。

性能と安全性のバランスに優れています。

共通鍵暗号方式とは

鍵交換後の実際の通信暗号化に利用されます。

推奨される方式は以下です。

chacha20-poly1305@openssh.com
aes256-gcm@openssh.com
aes128-gcm@openssh.com

現在の主流となっています。

ChaCha20-Poly1305とは

OpenSSHで特に推奨される暗号方式です。

特徴です。

  • 高速
  • AES-NI不要
  • 安全性が高い
  • モバイル環境でも有利

多くの環境で優先的に利用されています。

AES-GCMとは

AESと認証機能を組み合わせた方式です。

現在の企業システムでも広く利用されています。

CPUのAES-NI支援がある環境では非常に高速です。

MACとは

通信内容の改ざん検知に利用されます。

推奨される方式です。

hmac-sha2-256
hmac-sha2-512

SHA1系は利用を避けるべきです。

現在非推奨な暗号方式

以下は利用を避けることが推奨されています。

  • ssh-dss
  • diffie-hellman-group1-sha1
  • hmac-sha1
  • 3des-cbc
  • arcfour

古いシステムとの互換性が必要な場合のみ利用します。

利用可能な暗号方式を確認する

SSHクライアントで確認できます。

暗号方式です。

$ ssh -Q cipher

鍵交換方式です。
$ ssh -Q kex

ホスト鍵方式です。
$ ssh -Q key

サーバ設定を確認する

OpenSSHサーバでは以下で確認できます。

$ sshd -T

有効な設定一覧が表示されます。

Ciphers設定例

暗号方式を限定する例です。

Ciphers chacha20-poly1305@openssh.com,
aes256-gcm@openssh.com

強力な暗号のみ利用します。

KexAlgorithms設定例

KexAlgorithms curve25519-sha256,
curve25519-sha256@libssh.org

推奨アルゴリズムに限定できます。

HostKeyAlgorithms設定例

HostKeyAlgorithms ssh-ed25519

ED25519を利用します。

クラウド環境での考え方

AWSやAzureの最新Linux環境では、ほとんどの場合推奨アルゴリズムが標準で有効になっています。

無理に変更する必要はありません。

まずはOpenSSHを最新状態に保つことが重要です。

監査で確認される項目

セキュリティ監査では以下が確認されることがあります。

  • SSHバージョン
  • SHA1利用有無
  • 古い暗号利用有無
  • RSA鍵長
  • ED25519利用状況

企業環境では重要なポイントです。

OpenSSH最新版を利用する

最も重要な対策はOpenSSHを最新状態に保つことです。

古い暗号方式の無効化や安全な設定は、OpenSSHの更新によって自動的に改善されることがあります。

実務で推奨される構成

  • ED25519鍵
  • Curve25519鍵交換
  • ChaCha20-Poly1305
  • AES-GCM
  • SHA2系MAC

現在のLinuxサーバ運用で広く採用されています。

まとめ

SSHの安全性は暗号アルゴリズムの選択に大きく左右されます。

現在はED25519、Curve25519、ChaCha20-Poly1305、AES-GCMなどが推奨されており、古いSHA1系やDSA系の利用は避けるべきです。

また暗号設定だけでなく、OpenSSHを最新状態に保つことも重要なセキュリティ対策です。

SSHサーバを運用する際は、定期的に暗号スイートを確認し、安全な設定を維持していきましょう。