dodaの日記: Tera Term 4.97 2
既に2週間前ですが、Tera Term 4.97 をリリースしました。
全ての変更点はリリースページの変更履歴をみてください。
今回の変更内容の内、お気に入りの物として以下が有ります。
・SSH2 の共通鍵暗号方式として以下をサポートした。
・aes128-gcm@openssh.com
・aes256-gcm@openssh.com
・SSH2 の MAC アルゴリズムとして以下をサポートした。
・hmac-sha1-etm@openssh.com
・hmac-sha2-256-etm@openssh.com
・hmac-sha2-512-etm@openssh.com
・hmac-ripemd160-etm@openssh.com
・hmac-md5-etm@openssh.com
・hmac-sha1-96-etm@openssh.com
・hmac-md5-96-etm@openssh.com
共通鍵暗号方式(通信路の暗号化に使われる)に追加した AES-GCM は認証付き暗号(AEAD)という物で、
暗号化と同時にメッセージ認証(正しい送信者から送られたか、改竄されていないかチェックする)機能も持った物です。
SSH のメッセージ認証機能としては通常は MAC が使われますが、SSH での MAC の利用方法(E&M)では一旦パケットを復号してから
MAC の検証をする必要が有り、選択暗号文攻撃に対して不安が有りました。
一方 AES-GCM のような AEAD では復号と同時にメッセージの検証が行える為、選択暗号文攻撃を防ぐ事が出来ます。
AES-GCM は他の暗号化方式と比べて安全だと考えられるので、これを優先して使う事をお勧めします。
Tera Term でも新規インストール時のデフォルト設定では aes256-gcm@openssh, aes128-gcm@openssh.com を最優先するようになっていますが、
アップグレードインストールでは既存の設定が優先されるため、「設定」-「SSH」にある「優先する暗号アルゴリズム」で aes256-gcm@openssh.com,
aes128-gcm@openssh.com の優先度を上げる事をお勧めします。
もう一つの追加内容である MAC アルゴリズムですが、これは MAC の利用方法として EtM という方式を追加する物です。
前述したように SSH の MAC の利用方法(E&M) ではメッセージの復号の前にメッセージの検証が出来ません。
EtM は MAC の利用方法を変更して、復号の前にメッセージの検証を行えるようにした物で、これも選択暗号文攻撃に強くなります。
# E&M, EtM の詳細については前述の 認証付き暗号 を参照して下さい。
現在では E&M より EtM の方が安全だとみなされていますので、こちらの方も優先度を上げる事をお勧めします。
優先度を上げるのは、hmac-sha1-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512-etm@openssh.com の
三つの方式でいいでしょう。
# 設定を変更した後は、「設定」-「設定の保存」を忘れずに
hmac (スコア:0)
指定する優先度は sha2-512,sha2-256,sha1 の順の方がよい?
Re:hmac (スコア:1)
この辺りは全体としてどの程度の安全性を求めるかという話になります。
鍵長には等価安全性 [atmarkit.co.jp]という考え方があって、例えばハッシュ関数のsha2-512は暗号化のaes256と同じくらいの強度と考えられています。
一つの要素だけ極端に強くしても全体の強度には繋がらないので、例えば256ビット安全性を目指すのならばsha2-512を優先し、
128ビット安全性でもいいとするのならばsha2-256を優先するのがいいと思います。
256ビット安全性の方が確かに安全ではありますが、その分負荷等がかかります。
例えばssh通信で1バイトを送る時(例えば何かキーを押したとか)にはsshパケット本体は32バイト(AES使用時)になりますが、
hmac-sha2-256では32バイト、hmac-sha2-512では64バイトのMACがさらに付加されます。
OpenSSH はこの辺り割り切っていて、現時点ならば128ビット安全性があれば十分としてデフォルト値が決められています。