
高速SSL/TLSスキャナー。対応している暗号スイート、プロトコル、脆弱性(Heartbleed、POODLE、CRIME)を発見し、証明書チェーン分析と鍵交換列挙機能を備えています。
sslscan バージョン 2 がリリースされました。これにはバックエンドスキャンコードの大幅な書き換えが含まれており、多くのチェックで OpenSSL のバージョンに依存しなくなりました。これにより、コンパイル時にリンクされた OpenSSL のバージョンに関係なく、レガシープロトコル(SSLv2 や SSLv3)のサポートに加え、TLSv1.3 もサポートできるようになりました。
これは主に jtesta の作業によって可能になりました。彼はバックエンドの書き換えの大部分を担当しました。
その他の主な変更点は以下の通りです。
--http オプションは削除されました。このオプションは壊れており、そもそも使用頻度が非常に低かったためです。バージョン 2.0.0-beta4 では、XML 出力に互換性を破る可能性のある変更が加えられました。以前は、複数の <certificate> 要素が返される可能性がありました(デフォルトで 1 つ、--show-certificate が使用された場合にもう 1 つ)。
主な変更点は次のとおりです。
<certificates> が追加され、<certificate> 要素を格納します。<certificate> 要素に新しい type 属性が追加されました。値は以下のいずれかになります。
short:デフォルト出力の場合。full:--show-certificate が使用された場合。<certificate> 内の <signature-algorithm> 要素には、先頭の "Signature Algorithm:" プレフィックス、スペース、改行が含まれなくなりました。XML 出力を使用している場合は、パーサーに変更を加える必要があるかもしれません。
これは、rbsec ([email protected]) による ioerror バージョンの sslscan のフォークです(元の README は以下に含まれています)。
主な変更点は以下の通りです。
--show-certificate で表示)。--failed で表示)。--ipv6 で強制可能)。--no-compression で無効化)。--no-ciphersuites。--no-colour。--no-heartbleed で無効化)。--rdp による RDP サーバーのスキャンをサポート(skettler 氏による)。--sleep オプションを追加。--no-preferred。システムにインストールされている OpenSSL を無視し、独自のバージョンに対して静的にビルドすることを推奨します。これにより、生成される sslscan バイナリのリソース(ファイルサイズ、メモリ消費など)は増加しますが、TLS 圧縮などの追加チェックが可能になります。なお、sslscan バージョン 2.2.0 以降では、sslscan に必要な最小 OpenSSL バージョンは 3.5.0(LTS)です。そのため、ディストリビューションに同梱されている OpenSSL が古い場合、それに対してビルドしても動作しないため、静的ビルドを行う必要があります。
独自の OpenSSL バージョンをコンパイルするには、おそらく OpenSSL のビルド依存関係をインストールする必要があります。以下のコマンドは、Debian でこれを行うためのものです。
apt install git zlib1g-dev make gcc
その後、以下を実行します。
make static
これにより、OpenSSL リポジトリ がクローンされ、sslscan のコンパイル前に OpenSSL の設定/コンパイル/テストが行われます。
注意: デフォルトでは、OpenSSL は gcc を使用して追加のカスタマイズなしでコンパイルされます。clang でコンパイルするには、以下のコマンドを使用してビルド依存関係をインストールします。
apt install git zlib1g-dev make clang
その後、以下を実行します。
make static CC=clang
静的にリンクされた OpenSSL バージョンであるかどうかは、sslscan --version で表示されるバージョンに -static というサフィックスが付いているかどうかを確認することで判断できます。
ローカルの Docker インストールが機能していることを確認し、以下のコマンドでコンテナをビルドします。
make docker
または手動で:
docker build -t sslscan:sslscan .
その後、sslscan を実行します。
docker run --rm -ti sslscan:sslscan --help
jtesta によるパッチのおかげで、sslscan は Windows でもコンパイルできるようになりました。これは、ネイティブで行うか、Linux からクロスコンパイルすることで可能です。手順については INSTALL を参照してください。
sslscan は元々 Linux 向けに書かれており、Windows では広範囲にテストされていないことに注意してください。そのため、Windows バージョンは実験的なものと見なされます。
クロスコンパイル済みの Windows バイナリは、GitHub リリースページ から入手できます。
macOS(旧称 OS X)での静的ビルドの実験的なサポートがありますが、これはサポート対象外と見なすべきです。macOS(旧称 OS X)上で OpenSSL をソースからコンパイルするために必要な依存関係をインストールする必要があるかもしれません。インストールが完了したら、以下を実行するだけです。
make static
これは、STARTTLS をより適切にサポートするための sslscan.c のフォークです。
sslscan の元のホームページは以下の通りです。
http://www.titania.co.uk
sslscan は元々、以下の人物によって書かれました。
Ian Ventura-Whiting
このフォークの現在のホームページ(完全なパッチがアップストリームにマージされるまで)は以下の通りです。
http://www.github.com/ioerror/sslscan
TLS 以前のプロトコル設定のほとんどは、OpenSSL の s_client.c プログラムに触発されました。 このフォークの目標は、STARTTLS の設定が洗練された後に、最終的に元のプロジェクトにマージすることです。
OpenSSL のセットアップコードの一部は、Tor Project の Tor プログラムから借用されました。 したがって、BSD ライセンスに準拠するために、以下のように記載するのが適切です。 Copyright (c) 2007-2010, The Tor Project, Inc.
--show-client-cas。--no-cipher-details)。--cipher-details)。--starttls-ldap。--sni-name(Ken 氏による)。--iana-names。--show-certificates。