9.1.4 SSHのセキュリティ機能
SSHには,セキュリティを確保するために暗号技術を使用する機能が五つあります。
-
ホスト認証
-
ユーザ認証
-
セッション鍵の共有
-
暗号化
-
メッセージ認証(SSHv2だけ)
以降,各機能について説明します。
- 〈この項の構成〉
(1) ホスト認証
ホスト認証は,SSHクライアントがSSHサーバを認証する機能です。
各SSHサーバは,それぞれ異なるホスト鍵ペアを保持しています。SSHv1では,ホスト公開鍵を使用してクライアントからサーバへ公開鍵暗号で通信することによって,サーバを認証します。SSHv2では,サーバがホスト秘密鍵でデジタル署名を作成し,クライアントがホスト公開鍵で署名を確認することによって,サーバを認証します。本装置がサポートするホスト鍵ペアの公開鍵アルゴリズムとサイズを次の表に示します。
SSH バージョン |
公開鍵 アルゴリズム |
鍵のサイズ |
|
---|---|---|---|
SSHサーバ |
SSHクライアント |
||
SSHv1 |
RSA |
1024bit |
1024bit〜2048bit |
SSHv2 |
ECDSA |
521bit(nistp521), 384bit(nistp384), 256bit(nistp256) |
521bit(nistp521), 384bit(nistp384), 256bit(nistp256) |
RSA |
1024bit,2048bit,3072bit,4096bit |
512bit〜5120bit |
|
DSA |
1024bit |
512bit〜1536bit |
本装置のSSHサーバ機能では,デフォルトでSSHv1用RSA 1024bitとSSHv2用RSA 2048bitのホスト鍵ペアを生成します。デフォルト以外の鍵ペアを使用する場合や鍵ペアを生成し直す場合は,運用コマンドset ssh hostkeyを使用してください。SSHv2の不要なアルゴリズムの鍵ペアを削除する場合は,運用コマンドerase ssh hostkeyを使用してください。なお,SSHv1のRSAホスト鍵ペアは削除できません。
SSHクライアントでは,過去に接続したサーバのホスト公開鍵を保持しています。SSHクライアントでは,SSHサーバへ初めて接続するときやサーバのホスト公開鍵が変更されたときに,公開鍵のフィンガープリント(ハッシュ値)を表示して,ユーザに正しい公開鍵かどうか確認を要求します。事前にユーザへ告知したサーバのホスト公開鍵のフィンガープリントと,ユーザが接続したときに表示されたフィンガープリントを比較することで,サーバのなりすましを防げます。
本装置のSSHサーバ機能のホスト公開鍵およびホスト公開鍵のフィンガープリントを確認するには,運用コマンドshow ssh hostkeyを使用してください。表示内容と表示形式を次の表に示します。
SSHバージョン |
表示内容 |
表示形式 |
---|---|---|
SSHv1 |
公開鍵 |
SSHv1形式 |
フィンガープリント |
SECSH(MD5)形式(RFC4716) |
|
フィンガープリント |
SHA256形式 |
|
SSHv2 |
公開鍵 |
OpenSSH形式 |
フィンガープリント |
SECSH(MD5)形式(RFC4716) |
|
フィンガープリント |
SHA256形式 |
本装置のSSHクライアント機能がサーバ初回接続時に表示する,フィンガープリントの表示形式を次の表に示します。
SSHバージョン |
表示内容 |
表示形式 |
---|---|---|
SSHv1 |
フィンガープリント |
SECSH(MD5)形式(RFC4716) |
フィンガープリント |
SHA256形式 |
|
SSHv2 |
フィンガープリント |
SECSH(MD5)形式(RFC4716) |
フィンガープリント |
SHA256形式 |
(2) ユーザ認証
ユーザ認証は,SSHサーバがSSHクライアントを認証する機能です。本装置では,ユーザ認証方式として次に示す二つの方式をサポートしています。
-
公開鍵認証
-
パスワード認証
本装置のSSHサーバが使用するユーザ認証方式は,コンフィグレーションコマンドip ssh authenticationで設定できます。なお,本装置のSSHクライアントは,パスワード認証だけをサポートしています。
(a) 公開鍵認証
公開鍵アルゴリズムを使用してユーザを認証する機能です。各ユーザは,それぞれ鍵ペアを用意します。SSHサーバには,ユーザの公開鍵を設定しておきます。SSHv1では,サーバから公開鍵暗号で通信することによってユーザを認証します。SSHv2では,クライアントがユーザの秘密鍵でデジタル署名を作成し,サーバが署名を確認することでユーザを認証します。
本装置では,SSHサーバ機能だけが公開鍵認証をサポートして,SSHクライアント機能は公開鍵認証をサポートしません。本装置から別の本装置へSSHで接続する場合,ユーザ認証方式に公開鍵認証を使用できない点に注意してください。
本装置のSSHサーバがユーザ認証でサポートする,公開鍵アルゴリズムと公開鍵のサイズを次の表に示します。
SSH バージョン |
公開鍵 アルゴリズム |
ユーザ公開鍵のサイズ |
---|---|---|
SSHv1 |
RSA |
512bit〜2560bit |
SSHv2 |
ECDSA |
521bit(nistp521),384bit(nistp384),256bit(nistp256) |
RSA |
512bit〜5120bit |
|
DSA |
512bit〜1536bit |
本装置のSSHサーバでは,ユーザ公開鍵の登録にコンフィグレーションコマンドip ssh authkeyを使用します。登録できる公開鍵の形式を次の表に示します。
SSHバージョン |
表示形式 |
---|---|
SSHv1 |
SSHv1形式の公開鍵ファイル |
SSHv1形式の公開鍵を示す数字列 |
|
SSHv2 |
SECSH(RFC4716)形式の公開鍵ファイル |
OpenSSH形式の公開鍵ファイル |
|
SECSH形式またはOpenSSH形式の公開鍵を示す文字列 |
(b) パスワード認証
SSHクライアントがユーザ名とパスワードを送信し,SSHサーバがサーバ内のユーザアカウント情報と照合するか,またはRADIUS/TACACS+などによって認証サーバへユーザ名とパスワードが正しいかどうか問い合わせることで,ユーザ名とパスワードを確認します。SSHでは,ユーザ認証情報は暗号化されるため,盗聴によってパスワードが漏洩する危険はありません。
本装置では,SSHサーバ機能およびSSHクライアント機能のどちらもパスワード認証をサポートしています。ただし,本装置のSSHサーバでは,パスワードを設定していないユーザはパスワード認証ができません。本装置へのSSH接続のユーザ認証方式としてパスワード認証を使用する場合は,ユーザアカウントにパスワードを設定してください。
(3) セッション鍵の共有
セキュア通信路の暗号化やメッセージ認証に共通鍵として使用するセッション鍵を,サーバとクライアントで共有する機能です。SSHv1では,クライアントがセッション鍵を作成し,ホスト認証時のRSA公開鍵暗号によってクライアントからサーバへセッション鍵を送付します。SSHv2では,鍵交換方式によってサーバとクライアントの両方に同じセッション鍵を生成します。
本装置では,SSHv2サーバが使用する鍵交換方式を選択できます。鍵交換方式を選択するには,コンフィグレーションコマンドip ssh key-exchangeを使用してください。
(4) 暗号化
セキュア通信路を暗号化する機能です。暗号化には共通鍵暗号を使用しますが,SSHv2では認証付き暗号も使用できます。
本装置では,コンフィグレーションコマンドip ssh ciphersを設定することで,SSHv2サーバの暗号化方式を制限できます。また,SSHクライアント機能の運用コマンドに-cパラメータを使用すると,SSHクライアント機能で使用する暗号化方式を指定できます。
(5) メッセージ認証
セキュア通信路のデータを認証する機能で,SSHv2だけに存在します。メッセージ認証では,メッセージ認証コードを使用します。また,暗号化方式に認証付き暗号を使用した場合は,認証付き暗号でデータを認証します。
本装置では,コンフィグレーションコマンドip ssh macsを設定することで,SSHv2サーバのメッセージ認証コードを制限できます。また,SSHv2クライアント機能の運用コマンドに-mパラメータを使用すると,SSHv2クライアント機能が使用するメッセージ認証方式を指定できます。