SSH プロトコル平文を回復できる脆弱性の回避

- OpenSSH情報 - SSHプロトコルに平文を回復できる脆弱性
http://www.unixuser.org/~haruyama/security/openssh/20081117.html

SSHプロトコルに設計のエラーがあり, OpenSSHの標準の設定だと, 2の-14〜-18乗の確率で4バイト(32ビット)の平文を回復できる可能性があるとのことです

ということで,sshd の設定を少し変更.

# grep Ciphers /etc/ssh/sshd_config
# echo "# Advisory Reference CPNI-957037" >> /etc/ssh/sshd_config 
# echo "Ciphers aes256-ctr,aes192-ctr,aes128-ctr" >> /etc/ssh/sshd_config 
# /etc/init.d/ssh restart

これでこのサーバに繋ぐ分は大丈夫と思う.

で,他のサーバに繋ぐときそっちが対策されてないかもなのでclient 側も設定変更.

$ echo "# Advisory Reference CPNI-957037" >> ~/.ssh/config
$ echo "Ciphers aes256-ctr,aes192-ctr,aes128-ctr" >> ~/.ssh/config

ちゃんと設定されているかを確認.
サーバ側でデバッグモードのデーモンを別に起動.

# /usr/sbin/sshd -d -p 2222

-d でデバッグモード
-p 2222 で2222 port で起動.#default の22 は既に起動してるので.

この状態でclient から接続します.

$ ssh user@hostname -p 2222

すると,デバッグログがだーっと出てきてその中に以下の様なログが出てきました.

debug1: kex: client->server aes256-ctr hmac-md5 none
debug1: kex: server->client aes256-ctr hmac-md5 none

ちなみに設定前のログは以下.

debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: kex: server->client aes128-cbc hmac-md5 none

変わってるみたいですね.
これをsshd_config, ~/.ssh/config の設定について確認しました.


以下man sshd_config(5) より.

     Ciphers
             Specifies the ciphers allowed for protocol version 2.  Multiple ciphers must be comma-separated.  The supported
             ciphers are ``3des-cbc'', ``aes128-cbc'', ``aes192-cbc'', ``aes256-cbc'', ``aes128-ctr'', ``aes192-ctr'',
             ``aes256-ctr'', ``arcfour128'', ``arcfour256'', ``arcfour'', ``blowfish-cbc'', and ``cast128-cbc''.  The default is

               ``aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,
                 arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr,
                 aes192-ctr,aes256-ctr''


追記)

- セキュリティホール memo
http://www.st.ryukoku.ac.jp/~kjm/security/memo/2008/11.html#20081117_SSH

PuTTY ではデフォルトでCTR みたい.
利用者の多いTera Term はどうなんだろう.

追記2)

- スラッシュドット・ジャパン | SSH通信において低確率ながら一部データが漏えいする可能性
http://slashdot.jp/security/article.pl?sid=08/11/18/0341216

ちなみに、Tera Term(ttssh2)もCTRモードに対応していません。
# 現在、鋭意対応中。

Tera Term は未だ未対応らしい><
ということは,aes128-ctr,aes192-ctr,aes256-ctr だけだとまずいのかな?
要確認.

確認してみました.やっぱ駄目

- SSH プロトコル平文を回復できる脆弱性の回避2-TeraTerm の対応状況- - matoken’s meme -hatena-
http://d.hatena.ne.jp/matoken/20081119/1227102507