#tcp-connection #encryption #communication #obfuscation #framework #protocols #obfuscated

sillad-sosistab3

在sillad框架内类似于scramblesuit的混淆协议

10个版本

0.2.0-alpha.122024年8月17日
0.2.0-alpha.112024年8月13日
0.2.0-alpha.102024年8月12日
0.1.2 2024年4月1日

#780 in 网络编程

Download history 10/week @ 2024-05-15 17/week @ 2024-05-22 12/week @ 2024-05-29 7/week @ 2024-06-05 3/week @ 2024-06-12 28/week @ 2024-06-19 36/week @ 2024-06-26 72/week @ 2024-07-03 46/week @ 2024-07-10 20/week @ 2024-07-17 54/week @ 2024-07-24 32/week @ 2024-07-31 428/week @ 2024-08-07 259/week @ 2024-08-14

776 每月下载量
3 个crate(2个直接) 中使用

ISC 许可证

52KB
1K SLoC

Geph5

Geph5是对Geph4的重大重写,在架构上略有不同,主要目的是 简化并大量清理设计

概述

  • sosistab2 或任何类似的在不可靠管道上建立可靠传输的方法不再使用。相反,混淆传输本身必须提供可靠传输。在实践中,这意味着基于TCP的多路复用流,而不是数据包和UDP。
  • 客户端不再具有复杂的逻辑来智能地热插拔管道。鉴于不同的网络环境、极其不准确/迟钝的手机时钟等,这已被证明是很难实现的。相反,启动一个会话并使用它,直到它中断,然后启动另一个会话,等等。只要会话创建足够快,唯一的明显区别就是代理的TCP连接重置,大多数应用程序都能优雅地处理这种情况。
  • 中央认证服务器称为 经纪人,而不是绑定器。它现在还使用一个简单的JSON-RPC API,没有端到端加密,完整性关键响应具有ed25519签名。
    • 与基于RSA盲签名和大量密钥的实现不同,mizaru2将使用一些嵌入每个匿名凭证中一些未盲化位点的方案,以及退出端的非交互式验证。后者将 大大 减少经纪人的负载以及连接延迟,因为出口不再需要为每个新会话与经纪人通信。
  • 经纪人负责与桥梁和出口通信,为用户设置路由。消除了复杂的 (桥梁数量) * (出口数量) 通信模式,经纪人可以很容易地用于生成Earendil和类似软件的路由。
  • VPN模式通过流("socks5")模式进行隧道传输,但支持以tun2socks风格的拦截流量。
  • 我们普遍使用配置文件而不是大量的命令行参数。
  • 我们不再使用webview进行GUI。相反,GUI客户端是用Rust编写的,并直接调用协议库。

许可证

代码通常根据MPL 2.0授权。对各种项目都有用的底层库,如sillad框架,通常根据ISC许可证授权。

代码组织

与Geph4不同,Geph5以Cargo工作空间的形式组织,采用"monorepo"风格。

  • libraries/包含可能相互依赖的库crate。所有这些crate也收到crates.io的发布。
  • binaries/包含二进制crate。
    • geph5-client
    • geph5-exit
    • geph5-bridge
    • geph5-broker

依赖

~16–50MB
~785K SLoC