SSH
Security

OpenSSHでRC4とMD5を無効にしてみた

More than 3 years have passed since last update.

SSLでRC4やMD5が危ないといわれていますが、SSHについて言及された記事はあまり見たことがないので書いてみた。

OpenSSHのデフォルト設定

OpenSSHはバージョンによってデフォルトの暗号アルゴリズム優先度が異なる。

OpenSSH 6.6以前

Ciphers

aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128, 
aes128-gcm@openssh.com,aes256-gcm@openssh.com, 
chacha20-poly1305@openssh.com, 
aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc, 
aes256-cbc,arcfour

MACs

hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com, 
umac-64-etm@openssh.com,umac-128-etm@openssh.com, 
hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com, 
hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com, 
hmac-md5-96-etm@openssh.com, 
hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com, 
hmac-sha2-256,hmac-sha2-512,hmac-ripemd160, 
hmac-sha1-96,hmac-md5-96

※引用元 : OpenBSD 5.5 Doucment

OpenSSH 6.7以降

Ciphers

aes128-ctr,aes192-ctr,aes256-ctr, 
aes128-gcm@openssh.com,aes256-gcm@openssh.com, 
chacha20-poly1305@openssh.com

MACs

umac-64-etm@openssh.com,umac-128-etm@openssh.com, 
hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com, 
umac-64@openssh.com,umac-128@openssh.com, 
hmac-sha2-256,hmac-sha2-512

※引用元 : OpenBSD 5.6 Document

このようにOpenSSH 6.6以前ではRC4(arcfour)やMD5が有効になっているが、6.7ではデフォルトで無効に設定されている。

現状、OpenSSH 6.7をバンドルしているのはOpenBSD 5.6ぐらいなのでほとんどのUNIXシステムでRC4やMD5が有効になっており、また、OpenSSH 6.6以前はMD5が優先的に使用されるアルゴリズムになっていて、知らず知らずのうちに暗号学的に弱いアルゴリズムを使っていることになっている。

解決策

OpenSSHのグローバル設定である/etc/ssh/ssh_confと/etc/ssh/sshd_confに次の行を追加することでOpneSSH 6.7と同じ設定にすることができる

Ciphers aes128-ctr,aes192-ctr,aes256-ctr, 
aes128-gcm@openssh.com,aes256-gcm@openssh.com, 
chacha20-poly1305@openssh.com

MACs umac-64-etm@openssh.com,umac-128-etm@openssh.com, 
hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com, 
umac-64@openssh.com,umac-128@openssh.com, 
hmac-sha2-256,hmac-sha2-512

※aes-gcm, *-etmなどはOpenSSH 6.2以降、chacha20-poly1305はOpenSSH 6.5以降でしか動作しないので注意(設定するとエラーになる)

主要なLinuxのOpenSSHバージョン

ディストリビューション OS バージョン OpenSSH バージョン
Amazon Linux 2014.09 OpenSSH 6.2
Ubuntu 14.04 OpenSSH 6.6