Home » FreeBSD » Disable SSLv3 (bsdftpd-ssl) (Tag: )

Disable SSLv3 (bsdftpd-ssl)

2014/12/23 20:48

POODLE (Padding Oracle On Downgraded Legacy Encryption) と呼ばれる攻撃方法を回避するために、SSL 3.0 の無効化が推奨されました。

apache, sendmail 等メジャーなプログラムはその方法が多く掲載されていますが、マイナーな FTP サーバプログラム bsdftpd-ssl 1.1.0 における無効化の方法を記載します。

調べた限りでは、apache, sendmail 等と異なり設定ファイルでの調整では無効化出来ませんでした。そのため、ソースファイルを修正して再度コンパイルします。

ポイントは sslapp.c で SSL 2.0, 3.0 の無効を明言することです。

ログファイルや ftps コマンドでのプロンプトでは、SSLv3, TLSv1 どちらのバージョンでも TLSv1/SSLv3 と表記されるため、ftpd.c, util.c の修正により明示することが可能です。

# diff update/ftpd.c bsdftpd-ssl-1.1.0/ftpd/
4773c4773
<                       SSL_get_version(ssl_con), SSL_CIPHER_get_name(ssl_cipher), ssl_bits);
---
>                       ssl_version, SSL_CIPHER_get_name(ssl_cipher), ssl_bits);

# diff update/sslapp.c bsdftpd-ssl-1.1.0/ssl/
137,138c137
<     /* SSL_CTX_set_options(ssl_ctx, SSL_OP_ALL); */
<     SSL_CTX_set_options(ssl_ctx, SSL_OP_ALL | SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3);
---
>     SSL_CTX_set_options(ssl_ctx, SSL_OP_ALL);

# diff update/util.c bsdftpd-ssl-1.1.0/ftp/
1002c1002
<                           SSL_get_version(ssl_con), SSL_CIPHER_get_name(ssl_cipher),
---
>                           ssl_version, SSL_CIPHER_get_name(ssl_cipher),

sslapp.c で意図的に無効化することで挙動の確認を取りました。まずは TLSv1 を無効化して、SSLv2, SSLv3 が有効化されている状態です。

SSL_CTX_set_options(ssl_ctx, SSL_OP_ALL | SSL_OP_NO_TLSv1);

# /var/log/xferlog

Dec 23 09:47:40 hs ftpd[47022]: TLS/SSL SUCCEEDED WITH hs (FTP-TLS, SSLv3, cipher AES256-SHA, 256 bits)

# ftps

Connected to hs.drive.ne.jp.
220 Drive Network FTP Server Ready
Name (hs:adn):
234 AUTH TLS command successful.
[SSLv3, cipher AES256-SHA, 256 bits]

次に、本来の措置 SSLv2, SSLv3 を無効化した場合です。

SSL_CTX_set_options(ssl_ctx, SSL_OP_ALL | SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3)

# /var/log/xferlog

Dec 23 09:54:52 hs ftpd[6198]: TLS/SSL SUCCEEDED WITH hs (FTP-TLS, TLSv1, cipher AES256-SHA, 256 bits)

# ftps

Connected to hs.drive.ne.jp.
220 Drive Network FTP Server Ready
Name (hs:adn):
234 AUTH TLS command successful.
[TLSv1, cipher AES256-SHA, 256 bits]

Random Select

魚介カレー (2)
2013/11 に 欧風カレー ボンディ (神保町本店) を訪れてからはしばらく過酷な日々が続いたので足が遠のいていました。年末最終営業日にも訪れましたが、その際はいつもながらのチキンカレーで、食べた
VAIO Fit 13A (背面)
2014/02/28 にVAIO Fit 13A (到着) で開封して、わずか 9 ヶ月程で不具合が発生しました。不具合 その 1 – ディスプレイ当初は閉じてあったディスプレイを開いた時
カーフェリー (13)
沖縄本島 (No. 2 – 本部港 Part 1) の続きです。車も人も同じ入口から入りますが、歩道 ? は入って程なくすると左側に階段があり、客席へはそこを上ります。おぉ、新幹線と飛行機
VAIO Fit 13A (背面)
Java 7.0 / 8.0 セキュリティ・レベル (Part 1) の続きです。Java 8 Update 31コントロールパネル -> セキュリティ では、確かに "中"
アジフライ定食 (ライス 大)
柏や (豚肉生姜焼定食) の続きです。今日はアジフライ定食と決めていました。到着した時間がお昼真っ只中 12:30 頃だったので、さすがに座れないかなと思いきや、昨日の様にほぼ満席でありながらも座れま
FreeBSD 9.1-RELEASE 1280x960
自宅や出張時に使用しているノート PC (hp dv5 has broken again) はホスト OS を Windows 7, ゲスト OS に FreeBSD をインストールしています。今回改
クリーミー生サーバー (11)
うまい ! がすごい。クリーミー生サーバー (Part 3) の続きです。まずはオーソドックスに、ザ・プレミアム・モルツ 350ml 缶を用意しました。飲み口を開けて本体向かって右側に向け、配管チュー
石垣御神埼灯台 (7)
石垣島 (No. 10 – 川平湾 Part 4) の続きです。川平湾を満喫して 16 時を過ぎていました。本日最後の目的地 "石垣御神埼灯台" にもまだ間に合いそうで
VAIO Fit 13A (背面)
hp dv5 has broken again and again で 5 年 3 ヶ月程愛用してきた hp dv5 の 5 回目の故障を機に、新たにノート PC を購入することにしました。初めてノー
朝日レストラン (10)
沖縄出張 (No. 33 – 辺戸岬) から名護に戻って、目指す先は 朝日レストラン でした。私自身は 5 年程前に 1 度訪れたきりですが、中には初めて訪れるメンバーもいて、みんな楽しみ
Valid HTML5 Valid CSS3 Another HTML Lint