快速而强大的ssl/tls服务器扫描库
sslyze的Python项目详细描述
分析
用于Python3.6+的快速而强大的SSL/TLS服务器扫描库。
说明
sslyze是一个python库和cli工具,可以通过连接到它来分析服务器的ssl配置。它是 旨在快速和全面,并应帮助组织和测试人员识别影响 他们的ssl/tls服务器。
主要功能包括:
- 完全documented Python API,以便运行扫描并直接从python处理结果。
- new:支持tls 1.3和早期数据(0-rtt)测试。
- 扫描在多个进程之间自动调度,使它们非常快。
- 性能测试:会话恢复和TLS票证支持。
- 安全测试:弱密码套件,不安全的重新谈判,机器人,心血等。
- 通过ocsp装订进行服务器证书验证和吊销检查。
- 支持smtp、xmpp、ldap、pop、imap、rdp、postgres和ftp上的starttls握手。
- 扫描结果可以写入xml或json文件以供进一步处理。
- 还有更多!
用作cli
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已经在以下平台上测试过:debian 7(32位和64位)、macos high sierra和windows 10 (仅限Python 64位)。
用作库
sslyze公开了一个python api,以便在python中直接运行扫描和处理结果;完整的文档是 available here。
开发环境
如果要在本地环境中设置sslyze,首先需要安装 pipenv。然后可以使用以下命令初始化环境:
$ cd sslyze
$ pipenv install --dev
$ pipenv shell
然后您可以运行测试套件:
$ invoke test
Windows可执行文件
不需要安装python的windows可执行文件在 Releases page标签。
码头工人
默认情况下,图像运行-h
标志:
docker run --rm -it nablac0d3/sslyze Usage: sslyze [options] target1.com target2.com:443 target3.com:443{ip} etc... Options: --version show program's version number and exit -h, --help show this help message and exit
此图像将作为可执行文件运行,如下所示:
docker run --rm -it nablac0d3/sslyze --regular www.github.com:443
从图像创建实用程序
将以下行添加到shell的rc文件(例如~/.bashrc):
alias'sslyze'='docker run --rm -it nablac0d3/sslyze'
现在通过运行以下命令重新加载shell默认值:
source ~/.bashrc
现在您可以像这样执行图像:
$ sslyze Usage: sslyze [options] target1.com target2.com:443 target3.com:443{ip} etc... Options: --version show program's version number and exit -h, --help show this help message and exit
它是如何工作的?
sslyze都是python代码,但它使用 OpenSSL wrapper written in C called nassl,专门为 允许sslyze访问执行深层ssl测试所需的低级opensslapi。
信托商店从哪里来?
sslyze用于证书验证的信任存储(mozilla、microsoft等)从 Trust Stores Observatory。
可以使用cli:
将信任存储更新到最新版本$ python -m sslyze --update_trust_stores
或者python api:
fromsslyze.plugins.utils.trust_store.trust_store_repositoryimportTrustStoresRepositoryTrustStoresRepository.update_default()
许可证
版权所有(c)2018 Alban Diquet
sslyze根据gnu-affero通用公共许可证(agpl)的条款提供。有关详细信息和例外情况,请参见license.txt。