快速而强大的ssl/tls服务器扫描库

sslyze的Python项目详细描述


分析

Build StatusPyPI versionJoin the chat at https://gitter.im/sslyze/community

用于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。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何反射地迭代数组字段?   java NamedQuery错误“具有给定标识符的多行:1”   java无法使用单独类中的计时器更新TextView   兼容性什么时候可以很快使用新的Java功能?   java二叉树路径和   java矩形的性能   java我想从同一个子表在主表中添加两个外键   java如何获取基于特定日期的所有数据?   java javafx、OO编程规则和写入变量类型的选择   java使用带枚举的switch语句   java异步任务生成运行时异常   java为什么JLabel不显示下划线字符?   java如何解析具有可变参数号的函数?   带有按钮的java JavaFX自定义列表单元格:未调用处理程序   java Modelmapper无法映射整个模型?   传递给持久化的java分离实体,包含LatLng列表