http://www.cpni.gov.uk/Docs/Vulnerability_Advisory_SSH.txtやCPNI-957037: SSH 通信において一部データが漏えいする可能性, Plaintext Recovery Attack Against SSH - SSH - Company - News, CPNI-957037: SSH 通信において一部データが漏えいする可能性 - セキュリティホール memoによると, SSHプロトコルに設計のエラーがあり, OpenSSHの標準の設定だと, 2の-14〜-18乗の確率で14〜32bitの平文を回復できる可能性があるとのことです(当初32バイトと書きましたが間違いでした, また手法によって確率と回復できる平文のbit数に違いがありました).

攻撃の詳細はわかりませんが, 対策として暗号モードにCTRモードを利用することが挙げられています. OpenSSHのデフォルトでは, 'aes128-cbc'(128bit鍵のAESをCBCモードで利用)がSSH2で一番優先されます. Ciphers設定項目で優先順位を変更できます.

デフォルトのCiphersの設定は以下の通りです[ssh_config(5)より].

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

以下のように ~/.ssh/config に設定することで, AESをCTRモードで用いる暗号法のみが利用されます.

Ciphers aes256-ctr,aes192-ctr,aes128-ctr

OpenSSHは3.7よりCTRモードを利用する暗号法をサポートしているので, OpenSSHサーバに対する接続は上記の設定で問題ないでしょう. 他のサーバにも接続する場合は, (リスクを承知の上で)aes128-cbcなどを追加する必要があるかもしれません.

CPNI-957037: SSH 通信において一部データが漏えいする可能性 - セキュリティホール memoによると, OpenSSL 0.9.8eに問題がありOpenSSH 4.5まではaes256-ctr, aes192-ctrは正しく利用できないようです. OpenSSH 4.6からは対処されている模様です. 参考: Bug 1291 – aes256-ctr, aes192-ctr, arcfour256 broken with OpenSSL 0.9.8e. OpenSSL 0.9.8eを利用しているサーバがあるならば, aes128-ctrを最優先するのが運用上よいかもしれません.

20081121追記: OpenSSHからアドバイザリ「[openssh-unix-announce] OpenSSH security advisory: cbc.adv」が出ました. (20081124追記: 修正版がでています OpenSSH Security Advisory: cbc.adv . 攻撃に必要な回数の見積りが修正されています.)これによると, ストリーム暗号で暗号モードが関係ないarcfourも問題がないため, Ciphersの設定をssh_config, sshd_configともに

Ciphers aes128-ctr,aes256-ctr,arcfour256,arcfour,aes128-cbc,aes256-cbc

とすることが(春山注: 他のクライアントとの相互運用性も考えた場合)好ましいとされています.