这是 sslsplit 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
sslsplit -- 透明且可扩展的 SSL/TLS 拦截
概要
拆分 [-kCKOPZdDgGsrReumjplLSFi] -c PEM 代理规格 [...]
拆分 [-kCKOPZdDgGsrReumjplLSFi] -c PEM -t DIR 代理规格 [...]
拆分 [-OPZdDgGsrReumjplLSFi] -t DIR 代理规格 [...]
拆分 -E
拆分 -V
拆分 -h
商品描述
SSLsplit是一种针对SSL/TLS加密网络的中间人攻击工具
连接。 通过网络地址透明拦截连接
翻译引擎并重定向到 SSLsplit。 SSLsplit 终止 SSL/TLS 并启动
到原始目标地址的新 SSL/TLS 连接,同时记录所有数据
传送。 SSLsplit 旨在用于网络取证和渗透
测试。
SSLsplit 支持通过 IPv4 和
IPv6。 对于 SSL 和 HTTPS 连接,SSLsplit 生成并签名伪造的 X509v3
动态证书,基于原始服务器证书主题 DN 和
subjectAltName 扩展名。 SSLsplit 完全支持服务器名称指示 (SNI) 并且是
能够使用 RSA、DSA 和 ECDSA 密钥以及 DHE 和 ECDHE 密码套件。 根据
OpenSSL 的版本,SSLsplit 支持 SSL 3.0、TLS 1.0、TLS 1.1 和 TLS 1.2,以及
也可选择 SSL 2.0。 SSLsplit 还可以使用现有的证书,其中
私钥可用,而不是生成伪造的。 SSLsplit 支持 NULL-
前缀 CN 证书,并可以以通用方式拒绝 OCSP 请求。 对于 HTTP 和 HTTPS
连接,SSLsplit 删除 HPKP 的响应头以防止公钥
固定,用于 HSTS 以允许用户接受不受信任的证书,以及备用
防止切换到 QUIC/SPDY 的协议。
SSLsplit 支持许多 NAT 引擎、静态转发和 SNI DNS 查找以
确定重定向连接的原始目的地(请参阅 NAT 引擎和代理
规格如下)。
要真正实施攻击,您还需要将流量重定向到系统
运行 拆分. 您的选择包括运行 拆分 在合法路由器上,ARP
欺骗、ND 欺骗、DNS 中毒、部署恶意接入点(例如使用 hostap
模式)、物理重新布线、恶意 VLAN 重新配置或路由注入, / etc / hosts文件
修改等。 SSLsplit 不实现实际的流量重定向。
配置
-c 文件
使用来自的 CA 证书 文件 签署即时伪造的证书。 如果 文件
也包含匹配的CA私钥,也加载了,否则必须
提供 -k。 如果 文件 还包含 Diffie-Hellman 组参数,它们
也被加载,否则他们可以提供 -g。 如果 -t 还给出了,
SSLsplit 只会在没有匹配证书的情况下伪造证书
提供的证书目录。
-C 文件
使用来自的 CA 证书 文件 作为证书链中的额外证书。
如果 CA 给出了,这是需要的 -k 和 -c 是一个子 CA,在这种情况下,任何
中间 CA 证书和根 CA 证书必须包含在
证书链。
-d 从 TTY 分离并作为守护进程运行,将错误消息记录到 syslog 而不是
标准错误。
-D 在调试模式下运行,将大量调试信息记录到标准错误中。 这也是
强制前景模式,不能与 -d.
-e 发动机
使用 VHDL 语言编写 发动机 作为默认的 NAT 引擎 代理规格 没有显式的 NAT 引擎,
静态目标地址或 SNI 模式。 发动机 可以是任何 NAT 引擎
由系统支持,由返回 -E.
-E 列出系统上可用的所有受支持的 NAT 引擎并退出。 查看 NAT 引擎
获取 SSLsplit 当前支持的 NAT 引擎列表。
-F 日志规范
记录连接内容以使用给定的路径规范分隔日志文件(请参阅
日志规格如下)。 对于每个连接,都会写入一个日志文件,其中
将包含传输的两个方向的数据。 有关的信息
连接将仅包含在文件名中。 如果 -F 用于 -j, 日志规范
是相对于 监狱目录。 如果 -F 用于 -u, 日志规范 必须是可写的 用户.
-g 文件
使用 Diffie-Hellman 组参数来自 文件 对于短暂的 Diffie-Hellman
(EDH/DHE) 密码套件。 如果 -g 未给出,SSLsplit 首先尝试加载 DH
来自 PEM 文件的参数由 -K, -k or -c. 如果没有找到DH参数
在密钥文件中,自动使用内置的 512 或 1024 位组参数
如果一个非 RSA 私钥被赋予 -K. 这是因为 DSA/DSS 私钥
本身只能用于签名,因此需要DH交换一个
SSL/TLS 会话密钥。 如果 -g 给定,来自给定的参数 文件 将
始终使用,即使使用 RSA 私钥(在可用的密码套件中
OpenSSL)。 这 -g 选项仅在 SSLsplit 针对某个版本构建时可用
支持 Diffie-Hellman 密码套件的 OpenSSL。
-G 曲线
使用命名的 曲线 用于临时椭圆曲线 Diffie-Hellman (EECDH) 密码
套房。 如果 -G 未给出,默认曲线(SECP160R2) 自动使用 iff
一个非 RSA 私钥被赋予 -K. 这是因为 ECDSA/ECDSS 私钥
本身只能用于签名,因此需要ECDH交换一个
SSL/TLS 会话密钥。 如果 -G 给出,命名 曲线 将永远被使用,即使
使用 RSA 私钥(在 OpenSSL 中可用的密码套件内)。 这 -G
选项仅在 SSLsplit 是针对 OpenSSL 版本构建时可用
支持椭圆曲线 Diffie-Hellman 密码套件。
-h 显示有关使用和退出的帮助。
-i 对于每个连接,找到拥有该连接的本地进程。 这使得
进程信息,例如 pid、owner:group 和连接的可执行路径
源自与 SSLsplit 可用于连接日志的同一系统上并启用
各自 -F 路径规范指令。 -i 可在 Mac OS X 和
FreeBSD; 对其他平台的支持尚未实现。
-j 监狱目录
将根目录更改为 监狱目录 运用 chroot(2)打开文件后。 笔记
这对 -F, -S,和 斯尼 代理规格. 给出的路径
-S or -F 将相对于 监狱目录 因为之前无法打开日志文件
调用 chroot(2). 根据您的操作系统,您将需要复制文件
如 / etc / resolv.conf中 至 监狱目录 为了使名称解析起作用。 使用
斯尼 proxyspecs 取决于名称解析。 某些操作系统需要特殊
设备节点,例如 的/ dev / null的 出现在监狱内。 检查您的系统
有关详细信息的文档。
-k 文件
使用 CA 私钥来自 文件 签署即时伪造的证书。 如果 文件
也包含匹配的CA证书,也加载了,否则必须
提供 -c。 如果 文件 还包含 Diffie-Hellman 组参数,它们
也被加载,否则他们可以提供 -g。 如果 -t 还给出了,
SSLsplit 只会在没有匹配证书的情况下伪造证书
提供的证书目录。
-K 文件
使用私钥来自 文件 对于即时伪造的证书。 如果 -K 是不是
给定,SSLsplit 将生成一个随机的 1024 位 RSA 密钥。
-l 日志文件
记录连接到 日志文件 每个连接格式在一行中,包括
地址和端口以及一些 HTTP 和 SSL 信息(如果有)。
-L 日志文件
将连接内容记录到 日志文件. 内容日志将包含一个可解析的日志
带有传输数据的格式,前面带有标识连接的标头和
每个记录段的数据长度。
-m 使用删除权限时 -u, 覆盖要设置为的目标主要组
组.
-O 拒绝所有在线证书状态协议 (OCSP) 请求 代理规格 和
对于所有 OCSP 服务器的 OCSP 响应为 稍后再试, 导致 OCSP 客户端
暂时接受甚至吊销的证书。 HTTP 请求被视为
OCSP 请求,如果方法是 的GET 并且 URI 包含一个语法上有效的
OCSPRequest ASN.1 结构可被 OpenSSL 解析,或者如果方法是 解决方案&帖子 和
内容类型 is 应用程序/ ocsp 请求. 为了使这有效,SSLsplit 必须
处理发往 OCSP 服务器使用的端口的流量。 特别是,
SSLsplit 必须配置为接收到所有 OCSP 服务器使用的端口的流量
内的目标证书 证书目录 由 -t.
-p pid文件
将进程ID写入 pid文件 并拒绝运行,如果 pid文件 已在使用中
通过另一个过程。
-P 不能拆分而不是丢弃它们的直通 SSL/TLS 连接。
如果出现以下情况,则无法拆分连接 -c 和 -k 未给出且站点不匹配
使用加载的任何证书 -t,或者如果与原始服务器的连接给出
SSL/TLS 错误。 具体来说,如果站点请求客户端,就会发生这种情况
证书。 直通与 -P 为客户提供不间断的服务,
如果必须进行不受监控的连接,则丢弃是更安全的选择
预防。
-r 原
强制客户端和服务器端的 SSL/TLS 协议版本为 原 通过选择
相应的 OpenSSL 方法构造函数而不是默认的 SSLv23_method()
它支持所有协议版本。 这在分析流量时很有用
仅支持特定版本的 SSL/TLS 且未实现的服务器
适当的协议协商。 取决于构建选项和 OpenSSL 的版本
即使用,以下值 原 被接受: SSL2, SSL3, TLS10, TLS11
和 TLS12. 请注意,默认情况下未内置 SSL 2.0 支持,因为某些
服务器不会优雅地处理 SSL 2.0 Client Hello 消息。
-R 原
禁用 SSL/TLS 协议版本 原 在客户端和服务器端
禁用 OpenSSL 中的相应协议。 禁用多个协议
版本, -R 可以多次给予。 如果 -r 也给了,就不会有
禁用其他协议版本的效果。 禁用协议版本很有用
分析不处理某些协议版本的服务器的流量时
好吧,或者用不同的协议版本测试行为。 视构建而定
选项和使用的 OpenSSL 版本,以下值 原 旨在
公认: SSL2, SSL3, TLS10, TLS11 和 TLS12. 请注意,不支持 SSL 2.0
默认内置,因为某些服务器不处理 SSL 2.0 Client Hello 消息
优雅地。
-s 密码
使用 OpenSSL 密码 服务器和客户端 SSL/TLS 连接的规范。
If -s 没有给出,密码列表 全部:-aNULL 用来。 通常,SSL/TLS
实现选择最安全的密码套件,而不是最快的。 经过
指定适当的 OpenSSL 密码列表,密码套件集可以是
仅限于快速算法,或 空 可以添加密码套件。 请注意,对于
连接成功,SSLsplit 密码套件必须至少包含一个
每个连接的客户端和服务器都支持的密码套件。 看
密码(1) 有关如何构建 OpenSSL 密码列表的详细信息。
-S 日志目录
将连接内容记录到单独的日志文件下 日志目录. 对于每个连接,一个
将写入日志文件,其中包含两个方向的数据,如
传送。 有关连接的信息将包含在文件名中
只要。 如果 -S 用于 -j, 日志目录 是相对于 监狱目录。 如果 -S 用于
-u, 日志目录 必须是可写的 用户.
-t 证书目录
使用 PEM 文件中的私钥、证书和证书链 证书目录
匹配各自常用名称的站点,而不是使用伪造的证书
即时。 单个 PEM 文件必须包含单个私钥、单个
证书和可选的中间和根 CA 证书用作
证书链。 如果 -c 和 -k 还给出,证书将被伪造——
The-fly 适用于不匹配任何从其加载的证书的站点 证书目录.
否则,不匹配证书的连接将被丢弃,或者如果 -P 给出,
通过而不拆分 SSL/TLS。
-u 通过设置真实、有效和打开套接字和文件后删除权限
存储的用户 ID 用户 并加载适当的主要和辅助组。
If -u 未给出,如果 EUID != UID,则 SSLsplit 将放弃对存储的 UID 的权限
(setuid 位场景),或 没有人 如果全速运行 根 特权(EUID ==
UID == 0) 和 -S 未使用。 由于苹果的错误, -u 不能与 pf
Mac OS X 上的proxyspecs。
-V 显示版本和编译功能信息并退出。
-Z 在所有连接上禁用 SSL/TLS 压缩。 如果您的限制,这很有用
因素是 CPU,而不是网络带宽。 这 -Z 选项仅在 SSLsplit 时可用
是针对支持禁用压缩的 OpenSSL 版本构建的。
代表委任 产品规格
代理规格(代理规格) 由连接类型、侦听地址和
静态转发地址或地址解析机制(NAT 引擎、SNI DNS 查找):
HTTPS 收听地址 端口 [自然引擎|转发地址 端口|斯尼 端口]
SSL 收听地址 端口 [自然引擎|转发地址 端口|斯尼 端口]
HTTP 收听地址 端口 [自然引擎|转发地址 端口]
TCP 收听地址 端口 [自然引擎|转发地址 端口]
HTTPS SSL/TLS 拦截与 HTTP 协议解码,包括去除 HPKP,
HSTS 和备用协议响应标头。
SSL SSL/TLS 拦截,无需任何低级协议解码; 解密
连接内容被视为不透明的字节流,不会被修改。
HTTP 不带 SSL/TLS 的普通 TCP 连接,带有 HTTP 协议解码,包括
删除 HPKP、HSTS 和备用协议响应标头。
TCP 没有 SSL/TLS 和任何低层协议解码的普通 TCP 连接;
解密的连接内容被视为不透明的字节流,不会被修改。
收听地址 端口
要侦听的 IPv4 或 IPv6 地址和端口或服务名称。 这是地址
以及 NAT 引擎应该将连接重定向到的端口。
自然引擎
NAT 引擎查询确定原始目的地址和端口
透明重定向连接。 如果未给出引擎,则默认引擎为
使用,除非被覆盖 -e. 使用 NAT 引擎时, 拆分 需要继续运行
与将流量重定向到的 NAT 规则相同的系统 拆分. 见 NAT
ENGINES 支持的 NAT 引擎列表。
转发地址 端口
静态目标地址,IPv4 或 IPv6,带有端口或服务名称。 当这是
使用,连接被转发到给定的服务器地址和端口。 如果 转发地址
是一个主机名,它将被解析为一个 IP 地址。
斯尼 端口
在 ClientHello 中使用客户端发送的服务器名称指示 (SNI) 主机名
SSL/TLS 消息来确定要连接的服务器的 IP 地址。 这仅
效劳于 SSL 和 HTTPS 代理规格 并且需要一个端口或服务名称作为参数。
因为这需要 DNS 查找,所以最好使用 NAT 引擎查找(请参阅
上面),除非这是不可能的,例如当不支持 NAT 时
发动机或运行时 拆分 在与 NAT 规则不同的系统上
重定向实际连接。 注意使用时 -j - 斯尼, 你可能需要
准备 监狱目录 在 chroot 目录中进行名称解析。
登录 产品规格
日志规范由零个或多个 printf 风格的指令组成; 普通的
字符直接包含在输出路径中。 SSLsplit 当前支持
以下指令:
%T 作为 ISO 8601 UTC 时间戳的初始连接时间。
%d 目标地址和端口。
%s 源地址和端口。
%x 本地进程的名称。 需要 -i 要使用的。 如果进程信息是
不可用,该指令将从输出路径中省略。
%X 本地进程的完整路径。 需要 -i 要使用的。 如果处理
信息不可用,该指令将从输出路径中省略。
%u 本地进程的用户名或数字 uid。 需要 -i 要使用的。 如果
进程信息不可用,该指令将从输出中省略
路径。
%g 本地进程的组名或数字 gid。 需要 -i 要使用的。 如果
进程信息不可用,该指令将从输出中省略
路径。
%% 文字 '%' 字符。
NAT 引擎
SSLsplit 目前支持以下 NAT 引擎:
pf OpenBSD 数据包过滤器 (pf) RDR/转至 NAT 重定向,也可在 FreeBSD 上使用,
NetBSD 和 Mac OS X。完全支持,包括 IPv6。 假设入站接口
em0, 首先是旧的 (FreeBSD, Mac OS X),然后是新的 (OpenBSD 4.7+) 语法:
RDR 通过 on em0 原 TCP 在 2001:db8 :: / 64 至 任何 端口 80 \
-> :: 1 端口 10080
RDR 通过 on em0 原 TCP 在 2001:db8 :: / 64 至 任何 端口 443 \
-> :: 1 端口 10443
RDR 通过 on em0 原 TCP 在 192.0.2.0/24 至 任何 端口 80 \
-> 127.0.0.1 端口 10080
RDR 通过 on em0 原 TCP 在 192.0.2.0/24 至 任何 端口 443 \
-> 127.0.0.1 端口 10443
通过 in 快 on em0 原 TCP 在 2001:db8 :: / 64 至 任何 \
端口 80 转至 :: 1 端口 10080
通过 in 快 on em0 原 TCP 在 2001:db8 :: / 64 至 任何 \
端口 443 转至 :: 1 端口 10443
通过 in 快 on em0 原 TCP 在 192.0.2.0/24 至 任何 \
端口 80 转至 127.0.0.1 端口 10080
通过 in 快 on em0 原 TCP 在 192.0.2.0/24 至 任何 \
端口 443 转至 127.0.0.1 端口 10443
网易 FreeBSD IP 防火墙 (IPFW) 转移套接字,在 Mac OS X 上也可用。 可用
在 FreeBSD 和 OpenBSD 上使用 pf 转移到. 完全支持 FreeBSD 和 OpenBSD,
包括 IPv6。 由于旧版本的 IPFW,仅在 Mac OS X 上支持 IPv4
包括。 首先在 IPFW,然后在 pf 转移到 句法:
网易 加 前轮驱动 :: 1,10080 TCP 在 2001:db8 :: / 64 至 任何 80
网易 加 前轮驱动 :: 1,10443 TCP 在 2001:db8 :: / 64 至 任何 443
网易 加 前轮驱动 127.0.0.1,10080 TCP 在 192.0.2.0/24 至 任何 80
网易 加 前轮驱动 127.0.0.1,10443 TCP 在 192.0.2.0/24 至 任何 443
通过 in 快 on em0 原 TCP 在 2001:db8 :: / 64 至 任何 \
端口 80 转移到 :: 1 端口 10080
通过 in 快 on em0 原 TCP 在 2001:db8 :: / 64 至 任何 \
端口 443 转移到 :: 1 端口 10443
通过 in 快 on em0 原 TCP 在 192.0.2.0/24 至 任何 \
端口 80 转移到 127.0.0.1 端口 10080
通过 in 快 on em0 原 TCP 在 192.0.2.0/24 至 任何 \
端口 443 转移到 127.0.0.1 端口 10443
过滤器
IPFilter (ipfilter, ipf),在很多系统上都可用,包括 FreeBSD、NetBSD、
Linux 和 Solaris。 由于 SIOCGNATL 的限制,仅支持 IPv4 读写控制(2)
界面。 假设入站接口 基因组0:
RDR 基因组0 0.0.0.0/0 端口 80 -> 127.0.0.1 端口 10080
RDR 基因组0 0.0.0.0/0 端口 443 -> 127.0.0.1 端口 10443
网络过滤器
使用 iptables REDIRECT 目标的 Linux netfilter。 由于仅支持 IPv4
SO_ORIGINAL_DST 中的限制 获取库存(2)接口。
iptables的 -t NAT -A PREROUTING -s 192.0.2.0/24 \
-p TCP --d端口 80 \
-j REDIRECT --到端口 10080
iptables的 -t NAT -A PREROUTING -s 192.0.2.0/24 \
-p TCP --d端口 443 \
-j REDIRECT --到端口 10443
代理 Linux netfilter 使用 iptables TPROXY 目标和路由表魔术
允许非本地流量源自本地套接字。 全力支持,
包括 IPv6。
ip -f 网络6 排除 加 标记 1 查找 100
ip -f 网络6 路线 加 本地 默认 开发 lo 表 100
ip6表 -t 失踪 -N 转移
ip6表 -t 失踪 -A 转移 -j 标记 --设置标记 1
ip6表 -t 失踪 -A 转移 -j 接受
ip6表 -t 失踪 -A PREROUTING -p TCP -m 插座 -j 转移
ip6表 -t 失踪 -A PREROUTING -s 2001:db8 :: / 64 \
-p TCP --d端口 80 \
-j 代理 --tproxy-标记 0x1 / 0x1 --在港口 10080
ip6表 -t 失踪 -A PREROUTING -s 2001:db8 :: / 64 \
-p TCP --d端口 443 \
-j 代理 --tproxy-标记 0x1 / 0x1 --在港口 10443
ip -f INET 排除 加 标记 1 查找 100
ip -f INET 路线 加 本地 默认 开发 lo 表 100
iptables的 -t 失踪 -N 转移
iptables的 -t 失踪 -A 转移 -j 标记 --设置标记 1
iptables的 -t 失踪 -A 转移 -j 接受
iptables的 -t 失踪 -A PREROUTING -p TCP -m 插座 -j 转移
iptables的 -t 失踪 -A PREROUTING -s 192.0.2.0/24 \
-p TCP --d端口 80 \
-j 代理 --tproxy-标记 0x1 / 0x1 --在港口 10080
iptables的 -t 失踪 -A PREROUTING -s 192.0.2.0/24 \
-p TCP --d端口 443 \
-j 代理 --tproxy-标记 0x1 / 0x1 --在港口 10443
请注意,接口上也需要禁用返回路径过滤(rp_filter)
它处理 TPROXY 重定向的流量。
示例
匹配上面的NAT引擎配置示例,拦截HTTP和HTTPS over IPv4
和 IPv6 使用带有 CA 私钥的伪造证书 密钥 和证书 ca.crt,
记录连接到 连接日志 和连接数据到单独的文件下 / tmp目录 (加
-e 自然引擎 如果您的设备上有多个引擎可用,则选择合适的引擎
系统):
拆分 -k 密钥 -c ca.crt -l 连接日志 -L / tmp目录 \
HTTPS :: 1 10443 HTTPS 127.0.0.1 10443 \
HTTP :: 1 10080 HTTP 127.0.0.1 10080
使用相同的设置拦截 IMAP/IMAPS:
拆分 -k 密钥 -c ca.crt -l 连接日志 -L / tmp目录 \
SSL :: 1 10993 SSL 127.0.0.1 10993 \
TCP :: 1 10143 TCP 127.0.0.1 10143
更有针对性的设置,仅限 HTTPS,使用来自的证书/链/密钥文件 /路径/到/cert.d
并静态重定向到 www.example.org 而不是查询 NAT 引擎:
拆分 -t /路径/到/cert.d -l 连接日志 -L / tmp目录 \
HTTPS :: 1 10443 www.example.org 443 \
HTTPS 127.0.0.1 10443 www.example.org 443
原始示例,但使用通过禁用压缩来优化速度的 SSL 选项
并仅选择快速分组密码密码套件并使用预先计算的私钥
叶键 对于伪造的证书(最显着的速度提升是通过
为 CA 和叶私钥选择快速算法和小密钥; 查看
openssl的 速度 用于您系统上的算法性能):
拆分 -Z -s 空:RC4:AES128 -K 叶键 \
-k 密钥 -c ca.crt -l 连接日志 -L / tmp目录 \
HTTPS :: 1 10443 HTTPS 127.0.0.1 10443 \
HTTP :: 1 10080 HTTP 127.0.0.1 10080
原始示例,但在用户下作为守护程序运行 拆分 并写入一个PID文件:
拆分 -d -p /var/run/sslsplit.pid -u 拆分 \
-k 密钥 -c ca.crt -l 连接日志 -L / tmp目录 \
HTTPS :: 1 10443 HTTPS 127.0.0.1 10443 \
HTTP :: 1 10080 HTTP 127.0.0.1 10080
生成 CA 私钥 密钥 和证书 ca.crt 使用 OpenSSL:
猫 >x509v3ca.cnf <<'EOF'
[要求]
区分名称 = 请求
[要求]
[v3_ca]
基本约束 = CA:TRUE
主题密钥标识符 = 哈希
AuthorityKeyIdentifier = keyid:always,颁发者:always
EOF
openssl的 根萨 退房手续 密钥 1024
openssl的 REQ -新的 -节点 -x509 -sha1 退房手续 ca.crt -键 密钥 \
-config x509v3ca.cnf -扩展 v3_ca \
-主题 '/O=SSLsplit Root CA/CN=SSL 拆分 Root CA/' \
-set_serial 0 -天 3650
附注
SSLsplit 能够处理相对较多的侦听器和连接
基于libevent的多线程、基于事件的架构,利用平台
特定的 select() 替换,例如 kqueue。 主线程处理侦听器和
信号,而工作线程的数量等于 CPU 内核数量的两倍
用于处理单独事件库中的实际连接,包括 CPU-
密集的 SSL/TLS 处理。
已谨慎选择性能良好的数据结构来缓存证书和
SSL 会话。 日志记录是在单独的磁盘写入线程中实现的,以确保
套接字事件处理线程不必阻塞磁盘 I/O。 执行 DNS 查找
异步。 SSLsplit 在两端使用 SSL 会话缓存来最小化
完整的 SSL 握手,但即便如此,处理 SSL 连接的限制因素是
实际的 bignum 计算。
使用 onworks.net 服务在线使用 sslsplit