增加防探测功能,增加流量加密功能
This commit is contained in:
19
README.md
19
README.md
@ -1,11 +1,11 @@
|
||||
# Shadow-TLS
|
||||
### TLS伪装代理 -- 包装任意TCP连接为真正合法域名的TLS连接
|
||||
## 基本原理
|
||||
与服务端连接后,服务端会请求指定合法的HTTPS域名(例如www.apple.com)并转发TLS握手流量(给防火墙/审计设备表演一个真正的TLS握手),与客户端TLS握手成功后后续将转发实际的TCP流量,对审计设备(防火墙/上网行为管理软件/零信任网关)而言你是访问一个合法且是真实证书的HTTPS网站.
|
||||
给审计设备表演一个访问指定网站的TLS握手,在后续的加密流量中传输自定义的数据,由于握手的证书是真实的证书,对审计设备(防火墙/上网行为分析/零信任网关)而言本次TCP连接是访问指定网站的HTTPS流量
|
||||
|
||||
## 使用场景
|
||||
- 在有域名白名单的情况下需要将流量转发出去
|
||||
- 对抗网络审计设备的审查
|
||||
- 审计设备会验证TLS证书合法性,自签证书无法通过审计设备的场景
|
||||
|
||||
## 使用方法
|
||||
- 服务端示例:
|
||||
@ -18,6 +18,17 @@
|
||||
```shell
|
||||
./shadowtls client -l 0.0.0.0:11222 -s 145.142.63.32:443 -d www.apple.com
|
||||
```
|
||||
|
||||
## 探测防御
|
||||
- 设置参数密码-p 可开启探测防御功能,服务端检测到非被客户端发起的请求后将会作为标准的SNI代理服务器,转发用于伪装源站的所有流量,对主动探测者而言这台服务器是指定网站的官方服务器
|
||||
- 若被大量请求可能造成服务器产生大量流量,注意风控
|
||||
|
||||
## 流量加密
|
||||
- 设置加密密钥参数-k 可启用流量加密,密钥长度必须为16,24或32个字符
|
||||
|
||||
## 已知限制
|
||||
- 若审计软件会对HTTPS证书进行替换使用审计软件自签的证书,本工具将不再适用
|
||||
|
||||
## 使用Nginx将本服务和其他443端口服务并存
|
||||
- 编译带有stream和stream_ssl_preread模块的nginx
|
||||
- 参考以下配置
|
||||
@ -69,10 +80,6 @@ http {
|
||||
|
||||
```
|
||||
|
||||
|
||||
## 安全性特别说明
|
||||
- 包装的TCP流量没有加密,因由上层处理,推荐配合gost使用
|
||||
|
||||
## 特别说明
|
||||
- 感谢v2ex网友ihciah的思路灵感.
|
||||
- 仅供技术研究,请勿用于非法用途.
|
Reference in New Issue
Block a user