Dondariadmin (トーク | 投稿記録) (ページの作成:「== Webサーバーが特定のSSL暗号スイートに対応しているか確認する手順メモ == curlコマンドを利用して確認します。 === 前提知識...」) |
Dondariadmin (トーク | 投稿記録) |
||
(同じ利用者による、間の10版が非表示) | |||
93行目: | 93行目: | ||
EXP-RC4-MD5 SSLv3 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export | EXP-RC4-MD5 SSLv3 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export | ||
EXP-RC4-MD5 SSLv2 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export | EXP-RC4-MD5 SSLv2 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export | ||
− | |||
+ | ===おまけ=== | ||
+ | * これで一気に確認できる? | ||
+ | openssl ciphers -v |awk '{print $1}'|xargs -n1 curl <対象サイト> --sslv3 --head --ciphers | ||
+ | |||
+ | == POODLE対応後の確認方法 == | ||
+ | * 2014/10/14に発見・発表されたSSLv3の脆弱性「POODLE」 | ||
+ | * http://www.itmedia.co.jp/news/articles/1410/15/news054.html | ||
+ | WEBサーバーの場合、対応方法はSSLv3を許可しないということになるようです。<br /> | ||
+ | こういう時、「コンフィグの設定をこうすれば良いよ」的な情報は出やすいのですが、設定を変更した後の確認方法が分からないことってありますよね。(自分ですが)<br /> | ||
+ | |||
+ | ==== SSLv3を許可しているかどうかの確認コマンド ==== | ||
+ | $ curl https://<確認対象URL> --sslv3 --head | ||
+ | ==== SSLv3許可している場合 ==== | ||
+ | HTTP/1.1 200 OK | ||
+ | ....(snip) | ||
+ | ==== SSLv3許可していない場合 ==== | ||
+ | curl: (35) error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure | ||
+ | ==== tls許可していることの確認コマンド ==== | ||
+ | $ curl https://<確認対象URL> --tlsv1.0 --head | ||
+ | $ curl https://<確認対象URL> --tlsv1.1 --head | ||
+ | $ curl https://<確認対象URL> --tlsv1.2 --head | ||
+ | |||
+ | ===リンク=== | ||
*http://www.hcn.zaq.ne.jp/___/unix/curl_manpage.html | *http://www.hcn.zaq.ne.jp/___/unix/curl_manpage.html | ||
*http://www.openssl.org/docs/apps/ciphers.html | *http://www.openssl.org/docs/apps/ciphers.html | ||
+ | |||
+ | [[Category:Linux]] | ||
+ | [[Category:Apache]] | ||
+ | [[Category:SSL]] |
curlコマンドを利用して確認します。
SSL/TLS通信はクライアント側が、対応している暗号スイートを提示し、Webサーバー側が対応していれば通信が始まる。(Client hello)
$ curl https://<対象サイト> --sslv3 --head --ciphers RC4-MD5 HTTP/1.1 200 OK Date: Wed, 25 Jul 2012 12:48:15 GMT Server: Apache ...
$ curl https://<対象サイト> --sslv3 --head --ciphers EXP-RC4-MD5 curl: (35) error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
$ curl https://<対象サイト> --sslv3 --head --ciphers EXP-RC4-MD5 --verbose * About to connect() to <対象サイト> port 443 * Trying <対象サイトIPアドレス>... connected * Connected to <対象サイト> port 443 * successfully set certificate verify locations: * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none * SSLv3, TLS handshake, Client hello (1): SSLv3, TLS alert, Server hello (2): error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure * Closing connection #0 curl: (35) error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
curlのオプション | 内容 |
---|---|
--sslv3 | SSLv3通信を強制 |
--head | ヘッダのみ取得 |
--ciphers <暗号スイート> | 暗号スイートを指定 |
--verbose | 通信詳細表示 |
$ openssl ciphers -v DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1 DHE-DSS-AES256-SHA SSLv3 Kx=DH Au=DSS Enc=AES(256) Mac=SHA1 AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1 KRB5-DES-CBC3-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=MD5 KRB5-DES-CBC3-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=SHA1 EDH-RSA-DES-CBC3-SHA SSLv3 Kx=DH Au=RSA Enc=3DES(168) Mac=SHA1 EDH-DSS-DES-CBC3-SHA SSLv3 Kx=DH Au=DSS Enc=3DES(168) Mac=SHA1 DES-CBC3-SHA SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1 DES-CBC3-MD5 SSLv2 Kx=RSA Au=RSA Enc=3DES(168) Mac=MD5 DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1 DHE-DSS-AES128-SHA SSLv3 Kx=DH Au=DSS Enc=AES(128) Mac=SHA1 AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1 RC2-CBC-MD5 SSLv2 Kx=RSA Au=RSA Enc=RC2(128) Mac=MD5 KRB5-RC4-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(128) Mac=MD5 KRB5-RC4-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(128) Mac=SHA1 RC4-SHA SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=SHA1 RC4-MD5 SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5 RC4-MD5 SSLv2 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5 KRB5-DES-CBC-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(56) Mac=MD5 KRB5-DES-CBC-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(56) Mac=SHA1 EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH Au=RSA Enc=DES(56) Mac=SHA1 EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH Au=DSS Enc=DES(56) Mac=SHA1 DES-CBC-SHA SSLv3 Kx=RSA Au=RSA Enc=DES(56) Mac=SHA1 DES-CBC-MD5 SSLv2 Kx=RSA Au=RSA Enc=DES(56) Mac=MD5 EXP-KRB5-RC2-CBC-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=RC2(40) Mac=MD5 export EXP-KRB5-DES-CBC-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(40) Mac=MD5 export EXP-KRB5-RC2-CBC-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC2(40) Mac=SHA1 export EXP-KRB5-DES-CBC-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(40) Mac=SHA1 export EXP-EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH(512) Au=RSA Enc=DES(40) Mac=SHA1 export EXP-EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH(512) Au=DSS Enc=DES(40) Mac=SHA1 export EXP-DES-CBC-SHA SSLv3 Kx=RSA(512) Au=RSA Enc=DES(40) Mac=SHA1 export EXP-RC2-CBC-MD5 SSLv3 Kx=RSA(512) Au=RSA Enc=RC2(40) Mac=MD5 export EXP-RC2-CBC-MD5 SSLv2 Kx=RSA(512) Au=RSA Enc=RC2(40) Mac=MD5 export EXP-KRB5-RC4-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(40) Mac=MD5 export EXP-KRB5-RC4-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(40) Mac=SHA1 export EXP-RC4-MD5 SSLv3 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export EXP-RC4-MD5 SSLv2 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export
openssl ciphers -v |awk '{print $1}'|xargs -n1 curl <対象サイト> --sslv3 --head --ciphers
WEBサーバーの場合、対応方法はSSLv3を許可しないということになるようです。
こういう時、「コンフィグの設定をこうすれば良いよ」的な情報は出やすいのですが、設定を変更した後の確認方法が分からないことってありますよね。(自分ですが)
$ curl https://<確認対象URL> --sslv3 --head
HTTP/1.1 200 OK ....(snip)
curl: (35) error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
$ curl https://<確認対象URL> --tlsv1.0 --head $ curl https://<確認対象URL> --tlsv1.1 --head $ curl https://<確認対象URL> --tlsv1.2 --head