Nmapを使ったWebサイトの利用可能な暗号化プロトコル・暗号スイートのチェックについて
- 2020/11/26
- コラム

Nmapを使ったWebサイトの利用可能な暗号化プロトコル・暗号スイートのチェックについて
はじめに
2020年7月に IPA より「TLS暗号設定ガイドライン」第3.0版が公開されました。
第3.0版では、TLS1.3 の採用及び SSL3.0 が禁止されたと共に、前ガイドラインまでは推奨セキュリティ型での利用が認められてきた TLS1.0 や TLS1.1 がセキュリティ例外型のみでの利用に限定といった変更がなされています。
また、暗号化プロトコルだけでなく、推奨される暗号スイートについても紹介されています。
これを機会に、管理しているWebサイトの暗号化プロトコルと暗号スイートの設定の見直しをおこなうことは大切です。
そこで、対象のサイトにてどのような暗号化プロトコルと暗号スイートが有効になっているかをチェックするための簡単な方法として、Nmap の利用をご紹介します。
Nmapとは
Nmap (Network Mapper) は、ネットワーク検出とセキュリティ監査のためのオープンソース (ライセンス) ユーティリティです。ポートスキャンツールとして幅広く利用されています。
Nmap は、Linux、Windows、および Mac OS Xといった多くのコンピューターオペレーティング システムで実行が可能です。
基本的にはコマンドラインにて実行する形を取りますが、GUI上で実行可能な Zenmap といったツールも利用可能です。
また、Nmap Scripting Engine (NSE) いう拡張機能があり、検知したポートに対する脆弱性の検出や更なる調査といった機能をスクリプトで拡張することができます。
今回は、Nmap Scripting Engine (NSE) の中の「ssl-enum-ciphers」というスクリプトを利用します。
Nmapの公式サイト
https://nmap.orgssl-enum-ciphers
https://nmap.org/nsedoc/scripts/ssl-enum-ciphers.html
Nmapの準備
Nmapのインストール方法をご説明します。今回は、WindowsOS(Windows10)へのインストールと LinuxOS(Ubuntu)へのインストールのご紹介となります。
Windowsの場合
- Nmap の公式サイトの download ページにアクセスします。
https://nmap.org/download.html
2. Windows版のバイナリーファイルを探します。
「Microsoft Windows binaries」の「Latest stable release self-installer:」の先にプログラムへのリンクがありますので、リンクを選択してダウンロードします。
※2020年11月現在:nmap-7.91-setup.exe が最新となります。
3. ダウンロードしたファイルを実行します。
実行を開始した時にユーザーアカウント制御のメッセージが表示される場合は、「はい」を選択して下さい。

4. License Agreement 画面が表示されます。
内容に問題がなければ「I Agree」を選択して進みます。

5. Choose Components 画面が表示されます。
選択されている Components はそのままで「Next」を選択します。

6. Choose Install Location 画面が表示されます。
表示されているインストール先のままで問題がなければ、そのままで「Install」を選択します。

7. インストールが開始されます。

8. インストールが進むと、Npcap の License Agreement 画面が表示されます。
Npcap は、Nmap を利用する上でインストールする必要があります。
内容に問題がなければ、このまま「I Agree」を選択します。

9. Npcap の Installation Options 画面が表示されます。
選択されている Options はそのままで、「Install」を選択します。

10. Npcap のインストールが進みます。

11. Npcap の Installation Complete 画面が表示されます。
「Next」を選択して先に進みます。

12. Npcap インストールの Finished 画面が表示されます。
「Finish」を選択して先に進みます。

13. Nmap の Installation Complete 画面が表示されます。
「Next」を選択します。

14. Create Shortcuts 画面が表示されます。
Nmap のショートカットが不要な場合は、選択されているチェックを外して下さい。
「Next」を選択します。

15. Nmap インストールの Finished 画面が表示されます。
「Finish」を選択して完了です。

Linuxの場合
Linux(Ubuntu)では、リポジトリからインストールが可能です。
- ターミナルを起動します。

2. 次のコマンドを入力します。
sudo apt update
パッケージリストを更新します。

3. 次のコマンドを入力します。
sudo apt -y install nmap
インストールが開始されます。

4. 次のコマンドを入力します。
sudo dpkg-query -l | grep nmap
nmap がインストールされたかを確認します。nmap が表示されていれば OK です。
(nmap-common は、nmap と一緒にインストールされる関連ファイルです。)

使用方法
Windowsの場合
- コマンドプロンプトを起動します。

2. 次のコマンドを入力します。
nmap -sV --
script ssl-enum-ciphers -p 443 <host>
<host> には対象のIPアドレスまたはホスト名を指定します。

- 実行結果が表示されます。
結果の見方については次の項目の「実行結果の見方」で説明します。

Linuxの場合
- ターミナルを起動します。

2. 次のコマンドを入力します。
sudo nmap -sV --
script ssl-enum-ciphers -p 443 <host>
<host> には対象のIPアドレスまたはホスト名を指定します。

- 実行結果が表示されます。
結果の見方については次の項目の「実行結果の見方」で説明します。

実行結果の見方
実行結果の表示内容は、Windows、Linux ともに同じとなります。Windows での実行結果を見て行きます。
次が Windows での実行結果となります。
検知されてきた結果は、暗号化プロトコルのバージョン毎にツリー上に表示されます。

ツリーの先頭には、対象の Port とHTTP サーバーの情報が表示されます。

続いて、暗号化プロトコルのバージョン毎にセクションが分かれて表示されます。
下記は、TLSv1.0 にて利用可能な暗号スイートの一覧です。これにより、まず TLSv1.0 が有効になっていることが確認出来ます。
さらに、どのような暗号スイートが利用可能であるということも確認出来ます。

表示されている暗号スイート名からも確認出来る情報があります。
下記の場合は、「公開鍵アルゴリズムに RSA、対称鍵の暗号化アルゴリズムに Triple-DES 、 暗号化ハッシュ・アルゴリズムに SHA-1」を用いていることが確認出来ます。

また、セクションの下部の「warnings:」に利用可能な暗号スイートに対する警告情報が表示されます。
下記の場合、3DES 、RC4 、MD5 を利用したに暗号スイートに対しての警告内容が確認出来ます。

これらの実行結果を元に、ご自身のサイトの設定とTLS暗号設定ガイドラインでの推奨設定を見比べてみて、よりセキュアな環境を目指しましょう。
最後に
今回は、自身が管理しているWebサイトにて利用可能な暗号化プロトコルと暗号スイートのチェック方法として、Nmap をご紹介しました。
Nmap には、利用可能な暗号化プロトコルと暗号スイートのチェック以外にも様々な拡張機能があります。機会があれば、ご紹介したいと思います。
