發布 outline-ss-server 1.4,來自 Outline 項目的 Shadowsocks 代理實現

outline-ss-server 1.4代理服務器已經發布,使用Shadowsocks協議隱藏流量的性質,繞過防火牆,欺騙數據包檢測系統。 服務器由Outline項目開發,額外提供了客戶端應用程序的綁定和控制接口,可以讓你在公有云環境或自己的設備上快速部署基於outline-ss-server的多用戶Shadowsocks服務器,通過 Web 界面管理它們並通過按鍵組織用戶訪問。 該代碼由 Jigsaw 開發和維護,Jigsaw 是谷歌內部的一個部門,旨在開髮用於規避審查和組織信息自由交換的工具。

Outline-ss-server 是用 Go 編寫的,並在 Apache 2.0 許可下分發。 由 Shadowsocks 開發者社區創建的 go-shadowsocks2 代理服務器代碼用作基礎。 最近,Shadowsocks 項目的主要活動集中在用 Rust 語言開發新服務器,而 Go 實現已經一年多沒有更新,功能明顯落後。

outline-ss-server 和 go-shadowsocks2 之間的差異歸結為支持通過單個網絡端口連接多個用戶、打開多個網絡端口接收連接的能力、熱重啟支持和配置更新而不中斷連接、內置監控以及基於prometheus平台.io的流量修改工具。

發布 outline-ss-server 1.4,來自 Outline 項目的 Shadowsocks 代理實現

outline-ss-server 還增加了針對探測請求和流量重放攻擊的保護。 通過驗證請求的攻擊旨在確定代理的存在,例如,攻擊者可以向目標 Shadowsocks 服務器發送不同大小的數據集,並在確定錯誤並關閉連接之前分析服務器將讀取多少數據. 重播攻擊基於劫持客戶端和服務器之間的會話,然後嘗試重新發送被劫持的數據以確定代理的存在。

outline-ss-server服務器為了防止通過驗證請求的攻擊,當錯誤數據到達時,不終止連接,不顯示錯誤,而是繼續接收信息,充當一種黑洞。 為了防止重播,從客戶端收到的數據會通過為最後幾千次握手序列存儲的校驗和額外檢查重複(最大 40,大小在服務器啟動時設置,每個序列消耗 20 字節的內存)。 為了阻止來自服務器的重複響應,所有服務器握手序列都使用帶有 32 位標記的 HMAC 身份驗證代碼。

在流量隱藏級別方面,outline-ss-server 實現中的 Shadowsocks 協議接近於匿名 Tor 網絡中的 Obfs4 可插拔傳輸。 該協議的創建是為了繞過中國的流量審查系統(“中國防火牆”),並允許您非常有效地隱藏通過另一台服務器轉發的流量(由於附加隨機種子並模擬連續流量,流量難以識別)。

SOCKS5 用作代理請求的協議 - 在本地系統上啟動支持 SOCKS5 的代理,它將流量隧道傳輸到實際執行請求的遠程服務器。 客戶端和服務器之間的流量被放置在加密隧道中(支持經過身份驗證的加密 AEAD_CHACHA20_POLY1305、AEAD_AES_128_GCM 和 AEAD_AES_256_GCM),隱藏創建隧道的事實是 Shadowsocks 的主要任務。 通過使用類似於 Tor 中可插入傳輸的插件,支持 TCP 和 UDP 隧道的組織,以及任意隧道的創建,不限於 SOCKS5。

來源: opennet.ru

添加評論