HTTPS通信をBurpでうまく閲覧できない問題を解決する切り口の1つとして、サーバ側でサポートする暗号化アルゴリズムを把握することが挙げられます。
サーバがサポートする暗号化アルゴリズムを把握することで、例えば暗号化アルゴリズムの強度の制限による影響ではないかという観点を得ることができます。
本稿ではsslscanコマンドを使う方法を紹介します。
使い方
以下のようにコマンドを発行することで目的の情報を得ることができます。
$ sslscan --no-failed ホスト名:ポート番号
「--no-failed」オプションを指定することでサポートしている暗号化アルゴリズムのみを表示します。
サーバ側でサポートする暗号化アルゴリズムを把握する目的では、このオプションを付けておいたほうが可読性が上がります。
実験
前回使用した環境上でsslscanコマンドを発行し、socatコマンドに指定した暗号化アルゴリズムがsslscanコマンドで取得できることを実験してみます。
まずは「DHE-RSA-AES128-SHA256」を指定してsocatコマンドを起動します。
$ socat openssl-listen:8443,reuseaddr,fork,verify=0,cert=server.pem,cipher=DHE-RSA-AES128-SHA256 tcp4:localhost:8000
この状態でsslscanコマンドを発行すると、「Supported Server Cipher(s)」にsocatコマンドで指定した「DHE-RSA-AES128-SHA256」が表示されていることが確認できます。
$ sslscan --no-failed localhost:8443
(略)
Supported Server Cipher(s):
Accepted TLS12 128 bits DHE-RSA-AES128-SHA256
(略)
上記socatを終了させ、「DHE-RSA-AES128-SHA256」を「DHE-RSA-AES256-SHA256」に変更します。
$ socat openssl-listen:8443,reuseaddr,fork,verify=0,cert=server.pem,cipher=DHE-RSA-AES256-SHA256 tcp4:localhost:8000
この状態で再度sslscanコマンドを発行します。
$ sslscan --no-failed localhost:8443
(略)
Supported Server Cipher(s):
Accepted TLS12 256 bits DHE-RSA-AES256-SHA256
(略)
sslscanコマンドでの出力も「DHE-RSA-AES256-SHA256」に変化していることが確認できます。