2014年12月30日火曜日

自宅の DD-WRT Wi-Fi ルーターの SSL, TLS 対応状況を openssl コマンドで確認

久しぶりに DD-WRT をインストールした Wi-Fi ルーターの管理画面に Firefox から https で接続しようとしたところ、「切断が中断されました」と表示されて接続することができなくなっていました。

SSL 3.0 の脆弱性「POODLE」 に対応するために Firefox の設定で SSL 3.0 が使用できなくなったことが原因と想定されるので、自宅の DD-WRT Wi-Fi ルーターの SSL 3.0, TLS 1.0, 1.1, 1.2 への対応状況を openssl コマンドで確認してみました。

環境


結論から言うと、自宅の DD-WRT Wi-Fi ルーターの対応状況は以下の通りでした。

SSL or TLS 対応状況
SSL 3.0 対応
TLS 1.0 非対応
TLS 1.1 非対応
TLS 1.2 非対応

このため、想定した通り POODLE 対策のために SSL 3.0 を使用できなくした Firefox からは https で管理画面に接続できなかったようです。


まず SSL 3.0 に対応していることを確認します。

Ubuntu で SSL 3.0 を指定して openssl の s_client コマンドで DD-WRT Wi-Fi ルーターに接続

$ openssl s_client -connect <DD-WRT の IP アドレス>:443 -ssl3

「-ssl3」オプションで SSL 3.0 を指定しています。

以下のようにいろいろ接続情報が表示されます。

CONNECTED のメッセージ及びコモンネーム等 :

CONNECTED(00000003)
depth=0 C = DE, ST = Saxon, L = Dresden, O = NewMedia-NET GmbH, OU = DD-WRT, CN = NewMedia-NET GmbH, emailAddress = info@dd-wrt.com
verify error:num=18:self signed certificate
verify return:1
depth=0 C = DE, ST = Saxon, L = Dresden, O = NewMedia-NET GmbH, OU = DD-WRT, CN = NewMedia-NET GmbH, emailAddress = info@dd-wrt.com
verify return:1
---

続いて Certificate chain というものが表示されました

Certificate chain
 0 s:/C=DE/ST=Saxon/L=Dresden/O=NewMedia-NET GmbH/OU=DD-WRT/CN=NewMedia-NET GmbH/emailAddress=info@dd-wrt.com
   i:/C=DE/ST=Saxon/L=Dresden/O=NewMedia-NET GmbH/OU=DD-WRT/CN=NewMedia-NET GmbH/emailAddress=info@dd-wrt.com
---

SSL 証明書等:

Server certificate
-----BEGIN CERTIFICATE-----
... snip ...
-----END CERTIFICATE-----
subject=/C=DE/ST=Saxon/L=Dresden/O=NewMedia-NET GmbH/OU=DD-WRT/CN=NewMedia-NET GmbH/emailAddress=info@dd-wrt.com
issuer=/C=DE/ST=Saxon/L=Dresden/O=NewMedia-NET GmbH/OU=DD-WRT/CN=NewMedia-NET GmbH/emailAddress=info@dd-wrt.com
---
No client certificate CA names sent
---
SSL handshake has read 730 bytes and written 286 bytes
---
サーバーとクライアント間のネゴシエーション結果
New, TLSv1/SSLv3, Cipher is DES-CBC3-SHA
Server public key is 512 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
SSL-Session:
        Protocol  : SSLv3
        Cipher    : DES-CBC3-SHA
... snip ...
---

「Protocol : SSLv3」となっていることから SSL 3.0 で接続されたことがわかり、 Cipher は DES-CBC3-SHA が使われました。

最後に入力待ちの状態になるので、以下を入力して DD-WRT Wi-Fi ルーターが公開しているページの HTML を取得することができました。 (入力待ちの状態のまま放置するとタイムアウトしてしまうので、その前に入力します)

GET / HTTP/1.0 <= 入力待ちになるのでこれを入力して Enter キーを押す
               <= もう一度 Enter キーを押す
以下、 DD-WRT Wi-Fi ルーターが公開しているページの HTML が表示されます

以上のように SSL 3.0 に対応していることが確認できました。

TLS 1.0 に対応していないことを確認

$ openssl s_client -connect <DD-WRT の IP アドレス>:443 -tls1
... snip ...
SSL-Session:
    Protocol  : TLSv1
    Cipher    : 0000    <= Cipher が 0000 になっています。
... snip ..
---
$ <= 入力待ちにならずに終了し、コマンドプロンプトが表示されました。

「-tls1」オプションで TLS 1.0 を指定しています。 「Protocol : TLSv1」と表示されましたが Cipher が 0000 となっており、入力待ちにならずに終了してしまったので 「GET / HTTP/1.0」を入力することができませんでした。 TLS 1.0 には対応していません。

同様に TLS 1.1, 1.2 にも対応していないことを確認

TLS 1.1 にも対応していません。
$ openssl s_client -connect <DD-WRT の IP アドレス>:443 -tls1_1
... snip ...
SSL-Session:
    Protocol  : TLSv1.1
    Cipher    : 0000    <= Cipher が 0000 になっています。
... snip ...
---
$ <= 入力待ちにならずに終了し、コマンドプロンプトが表示されました。

「-tls1_1」オプションで TLS 1.1 を指定しています。

TLS 1.2 にも対応していません。
$ openssl s_client -connect <DD-WRT の IP アドレス>:443 -tls1_2
... snip ...
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : 0000    <= Cipher が 0000 になっています。
... snip ...
---
$ <= 入力待ちにならずに終了し、コマンドプロンプトが表示されました。

「-tls1_2」オプションで TLS 1.2 を指定しています。


0 件のコメント:

コメントを投稿