「ssl-enum-ciphers」の版間の差分

提供: セキュリティ
移動: 案内検索
行1: 行1:
[[ssl-enum-ciphers]] とは、[[nmap NSEスクリプト|NSEスクリプト]]の1つで、[[nmap]]を利用して、[[Transport Layer Security]](TLS)と[[SSL]]の脆弱性検出の機能を提供します。
+
[[ssl-enum-ciphers]] とは、[[nmap NSEスクリプト|NSEスクリプト]]の1つで、[[nmap]]を利用して、[[Transport Layer Security]](TLS)と[[SSL]]の脆弱性検出の機能を提供します。[[SSL]]といえば、近年、多くのセキュリティ脆弱性の問題で世の中を賑わせました。提供しているウェブサービスなどの暗号通信が安全であるか、診断することが大切です。
  
 
'''読み方'''
 
'''読み方'''
行16: 行16:
 
* SSLv3 での CBCモード暗号の利用は CVE-2014-3566 の問題がある
 
* SSLv3 での CBCモード暗号の利用は CVE-2014-3566 の問題がある
 
などを教えてくれます。
 
などを教えてくれます。
 +
== なぜ脆弱性診断をするのか? ==
 +
[[SSL]]といえば、近年、多くのセキュリティ脆弱性の問題で世の中を賑わせました。提供しているウェブサービスなどの暗号通信が安全であるか、診断することが大切です。
 +
 +
[[TLS]]/[[SSL]]は、以下の目的で利用します。
 +
* 通信路を[[暗号]]する
 +
* 通信相手が正しいことを証明する(真正性)
 +
 +
脆弱性があると
 +
* 通信路が覗かれる
 +
* 改ざんされる
 +
* 証明書を偽装される
 +
といった問題につながります。
 +
== 問題はどこにあるのか? ==
 +
問題は、
 +
* プロトコルの問題
 +
* 実装の問題
 +
* 暗号の問題
 +
** 設定の問題
 +
など多岐にわたります。
 +
== 近年発見された脆弱性 ==
 +
* [[Heartbleed]]
 +
* [[POODLE]]
 +
* [[FREAK]]
 
== もし問題が見つかった場合 ==
 
== もし問題が見つかった場合 ==
 
もし、問題が見つかったなら、修正をするべきですが、修正することによって、利用者に影響を及ぼすため、本当に変更してよいのか、考える必要があります。
 
もし、問題が見つかったなら、修正をするべきですが、修正することによって、利用者に影響を及ぼすため、本当に変更してよいのか、考える必要があります。

2015年11月21日 (土) 16:15時点における版

ssl-enum-ciphers とは、NSEスクリプトの1つで、nmapを利用して、Transport Layer Security(TLS)とSSLの脆弱性検出の機能を提供します。SSLといえば、近年、多くのセキュリティ脆弱性の問題で世の中を賑わせました。提供しているウェブサービスなどの暗号通信が安全であるか、診断することが大切です。

読み方

ssl-enum-ciphers

概要

nmap (Network Mapper) は、セキュリティスキャナで、ポートスキャンの機能やOSやサービスのバージョン検出、サービスの検出などの機能を持っています。

nmapは、NSEスクリプトと呼ばれる拡張機能を持っています。ssl-enum-ciphersは、NSEスクリプトの1つです。 TLS/SSLを診断し、利用している暗号アルゴリズムを列挙し、安全性を AからFのグレードで評価し、警告を表示し、問題を教えてくれます。

例えば、

  • メッセージの完全性のためにサイファースイートがMD5を利用している
  • 証明書のシグネチャ(署名) に SHA-1 を利用している
  • SSLv3 での CBCモード暗号の利用は CVE-2014-3566 の問題がある

などを教えてくれます。

なぜ脆弱性診断をするのか?

SSLといえば、近年、多くのセキュリティ脆弱性の問題で世の中を賑わせました。提供しているウェブサービスなどの暗号通信が安全であるか、診断することが大切です。

TLS/SSLは、以下の目的で利用します。

  • 通信路を暗号する
  • 通信相手が正しいことを証明する(真正性)

脆弱性があると

  • 通信路が覗かれる
  • 改ざんされる
  • 証明書を偽装される

といった問題につながります。

問題はどこにあるのか?

問題は、

  • プロトコルの問題
  • 実装の問題
  • 暗号の問題
    • 設定の問題

など多岐にわたります。

近年発見された脆弱性

もし問題が見つかった場合

もし、問題が見つかったなら、修正をするべきですが、修正することによって、利用者に影響を及ぼすため、本当に変更してよいのか、考える必要があります。

問題の修正方法は、問題の内容によってことなりますが、よくある対応例を挙げます。

  • 証明書を設定を変更して作りなおす
  • OpenSSLをアップグレードする
  • ミドルウェアのサイファースイート(暗号スイート)の設定を変更する

インストール

nmapをインストールしてください。

ubuntu# sudo apt install nmap
centos# sudo yum install nmap
freebsd# sudo pkg install nmap

使い方

$ nmap --script ssl-enum-ciphers login.example.co.jp -p 443

脆弱性診断

これは、実行例です。

login.yahoo.co.jp

$ nmap --script ssl-enum-ciphers login.yahoo.co.jp -p 443
 
Starting Nmap 6.49BETA6 ( https://nmap.org ) at 2015-11-21 13:06 JST
Nmap scan report for login.yahoo.co.jp (182.22.59.186)
Host is up (0.012s latency).
PORT    STATE SERVICE
443/tcp open  https
| ssl-enum-ciphers:
|   SSLv3:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_RC4_128_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - A
|       TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|     compressors:
|       NULL
|     cipher preference: server
|     warnings:
|       CBC-mode cipher in SSLv3 (CVE-2014-3566)
|       Ciphersuite uses MD5 for message integrity
|       Weak certificate signature: SHA1
|   TLSv1.0:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_RC4_128_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - A
|       TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|     compressors:
|       NULL
|     cipher preference: server
|     warnings:
|       Ciphersuite uses MD5 for message integrity
|       Weak certificate signature: SHA1
|   TLSv1.1:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_RC4_128_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - A
|       TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|     compressors:
|       NULL
|     cipher preference: server
|     warnings:
|       Ciphersuite uses MD5 for message integrity
|       Weak certificate signature: SHA1
|       Weak cipher RC4 in TLSv1.1 or newer not needed for BEAST mitigation
|   TLSv1.2:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (secp256r1) - A
|       TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
|       TLS_ECDHE_RSA_WITH_RC4_128_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - A
|       TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|     compressors:
|       NULL
|     cipher preference: server
|     warnings:
|       Ciphersuite uses MD5 for message integrity
|       Weak certificate signature: SHA1
|       Weak cipher RC4 in TLSv1.1 or newer not needed for BEAST mitigation
|_  least strength: C
 
Nmap done: 1 IP address (1 host up) scanned in 2.44 seconds

login.yahoo.com

$ nmap --script ssl-enum-ciphers login.yahoo.com -p 443
 
Starting Nmap 6.49BETA6 ( https://nmap.org ) at 2015-11-21 12:53 JST
Nmap scan report for login.yahoo.com (98.136.189.41)
Host is up (0.14s latency).
Other addresses for login.yahoo.com (not scanned): 98.138.79.21
rDNS record for 98.136.189.41: ats1.member.vip.gq1.yahoo.com
PORT    STATE SERVICE
443/tcp open  https
| ssl-enum-ciphers:
|   TLSv1.0:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_RC4_128_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - A
|       TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|     compressors:
|       NULL
|       TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - A
|       TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|     compressors:
|       NULL
|     cipher preference: server
|     warnings:
|       Ciphersuite uses MD5 for message integrity
|       Weak cipher RC4 in TLSv1.1 or newer not needed for BEAST mitigation
|   TLSv1.2:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (secp256r1) - A
|       TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
|       TLS_ECDHE_RSA_WITH_RC4_128_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - A
|       TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|     compressors:
|       NULL
|     cipher preference: server
|     warnings:
|       Ciphersuite uses MD5 for message integrity
|       Weak cipher RC4 in TLSv1.1 or newer not needed for BEAST mitigation
|_  least strength: C
 
Nmap done: 1 IP address (1 host up) scanned in 17.54 seconds

accounts.google.com

$ nmap --script ssl-enum-ciphers accounts.google.com -p 443
 
Starting Nmap 6.49BETA6 ( https://nmap.org ) at 2015-11-21 13:05 JST
Nmap scan report for accounts.google.com (216.58.220.237)
Host is up (0.011s latency).
rDNS record for 216.58.220.237: nrt13s37-in-f13.1e100.net
PORT    STATE SERVICE
443/tcp open  https
| ssl-enum-ciphers:
|   SSLv3:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_RC4_128_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - A
|       TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|     compressors:
|       NULL
|     cipher preference: server
|     warnings:
|       CBC-mode cipher in SSLv3 (CVE-2014-3566)
|       Ciphersuite uses MD5 for message integrity
|   TLSv1.0:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_RC4_128_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|       TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - A
|       TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|     compressors:
|       NULL
|     cipher preference: server
|     warnings:
|       Ciphersuite uses MD5 for message integrity
|   TLSv1.1:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_RC4_128_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|       TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - A
|       TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|     compressors:
|       NULL
|     cipher preference: server
|     warnings:
|       Ciphersuite uses MD5 for message integrity
|       Weak cipher RC4 in TLSv1.1 or newer not needed for BEAST mitigation
|   TLSv1.2:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_RC4_128_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|       TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - A
|       TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - A
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A
|       TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA256 (rsa 2048) - A
|     compressors:
|       NULL
|     cipher preference: server
|     warnings:
|       Ciphersuite uses MD5 for message integrity
|       Weak cipher RC4 in TLSv1.1 or newer not needed for BEAST mitigation
|_  least strength: C
 
Nmap done: 1 IP address (1 host up) scanned in 2.34 seconds

login.live.com

$ nmap --script ssl-enum-ciphers login.live.com -p 443
 
Starting Nmap 6.49BETA6 ( https://nmap.org ) at 2015-11-21 13:04 JST
Nmap scan report for login.live.com (131.253.61.82)
Host is up (0.17s latency).
Other addresses for login.live.com (not scanned): 131.253.61.68 131.253.61.98 131.253.61.80
PORT    STATE SERVICE
443/tcp open  https
| ssl-enum-ciphers:
|   TLSv1.0:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp521r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp521r1) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|     compressors:
|       NULL
|     cipher preference: server
|   TLSv1.1:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp521r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp521r1) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|     compressors:
|       NULL
|     cipher preference: server
|   TLSv1.2:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (secp521r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp521r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp521r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp521r1) - A
|       TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|     compressors:
|       NULL
|     cipher preference: server
|_  least strength: C
 
Nmap done: 1 IP address (1 host up) scanned in 15.21 seconds

関連項目