GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

nabla-c0d3

sslyze – 高速かつ強力なSSL / TLSサーバースキャンライブラリ

投稿日:

高速かつ強力なSSL / TLSサーバースキャンライブラリ

SSLyze

Python 2.7および3.4​​+用の高速で強力なSSL / TLSサーバースキャンライブラリ。

説明

SSLyzeはPythonライブラリとCLIツールで、サーバーのSSL構成を接続して分析できます。 これは、迅速かつ包括的に設計されており、組織/テスターがSSL / TLSサーバーに影響を与える誤設定を識別するのに役立ちます。

主な機能は次のとおりです。

  • スキャンを実行し、Pythonから直接結果を処理するために、完全に文書化されたPython API
  • 新機能:TLS 1.3(ドラフト23)とROBOTの脆弱性のサポート。
  • スキャンは自動的に複数のプロセスにディスパッチされ、非常に高速になります。
  • パフォーマンステスト:セッションの再開とTLSチケットのサポート
  • セキュリティテスト:弱い暗号スイート、不安定な再交渉、犯罪、ハートブレイクなど
  • OCSPステープルによるサーバー証明書の検証と失効の確認
  • SMTP、XMPP、LDAP、POP、IMAP、RDP、PostGres、FTP上でのStartTLSハンドシェークのサポート
  • スキャン結果は、後で処理するためにXMLまたはJSONファイルに書き込むことができます。
  • そしてもっと多く!

入門

SSLyzeはpip経由で直接インストールできます:

pip install --upgrade setuptools
pip install --upgrade sslyze
python -m sslyze --regular www.yahoo.com:443 www.google.com "[2607:f8b0:400a:807::2004]:443"

SSLyzeは、Windows 7(32ビットおよび64ビット)、Debian 7(32ビットおよび64ビット)、macOS Sierra

ライブラリとしての使用

SSLyzeは、スキャンを実行して結果を直接Pythonで処理するために、Pythonモジュールとして使用できます。 完全なドキュメントはこちらから入手できます

簡単な例を次に示します。

# Setup the server to scan and ensure it is online/reachable
hostname = u'smtp.gmail.com'
try:
    server_tester = ServerConnectivityTester(
        hostname=hostname, 
        port=587,
        tls_wrapped_protocol=TlsWrappedProtocolEnum.STARTTLS_SMTP
    )
    server_info = server_tester.perform()
except ServerConnectivityError as e:
    # Could not establish an SSL connection to the server
    raise RuntimeError('Error when connecting to {}: {}'.format(e.server_info.hostname, e.error_message))

# Run one scan command synchronously to list the server's TLS 1.0 cipher suites
print(u'\nRunning one scan command synchronously...')
synchronous_scanner = SynchronousScanner()
command = Tlsv10ScanCommand()
scan_result = synchronous_scanner.run_scan_command(server_info, command)
for cipher in scan_result.accepted_cipher_list:
    print(u'    {}'.format(cipher.name))

より高度な例(スキャンコマンドの同時実行など)は、 api_sample.pyファイルとSSLyzeドキュメントで利用できます

Windows実行ファイル

事前コンパイル済みのWindows実行ファイルは、[ リリース ]タブで利用できます。 パッケージは、次のコマンドを実行して生成することもできます。

python.exe setup_cx_freeze.py build_exe

どのように機能するのですか?

SSLyzeはすべてPythonコードですが、 nasslというC言語で記述されOpenSSLラッパーを使用しています 。これは、SSLyzeが深いSSLテストを実行するために必要な低レベルのOpenSSL APIにアクセスできるように特別に開発されたものです。

信託店はどこから来たのですか?

証明書の検証にSSLyzeが使用するトラストストア(Mozilla、Microsoftなど)は、 Trust Stores Observatoryからダウンロードされます。

トラストストアは、CLIを使用して最新のバージョンに更新できます。

python -m sslyze --update_trust_stores

またはPython API:

from sslyze.plugins.utils.trust_store.trust_store_repository import TrustStoresRepository

TrustStoresRepository.update_default()







-nabla-c0d3
-, , , , , , ,

執筆者: