Die Version 1.4 des Proxy-Servers outline-ss-server wurde veröffentlicht. Dieser verwendet das Shadowsocks-Protokoll, um die Art des Traffics zu verschleiern, Firewalls zu umgehen und Systeme zur Paketinspektion zu überlisten. Der Server wird von dem Projekt Outline weiterentwickelt, das zusätzlich Kundenanwendungen und ein Verwaltungsinterface bereitstellt, um mehrbenutzerfähige Shadowsocks-Server auf Basis des outline-ss-server schnell in öffentlichen Cloud-Umgebungen oder auf eigener Hardware bereitzustellen, sie über eine Web-Oberfläche zu verwalten und den Benutzern den Zugang über Schlüssel zu ermöglichen. Die Code-Entwicklung und -Wartung erfolgt durch Jigsaw, eine Abteilung bei Google, die zur Förderung von Zensurumgehung und freiem Informationsaustausch geschaffen wurde.
Outline-ss-server ist in der Programmiersprache Go geschrieben und wird unter der Lizenz Apache 2.0 vertrieben. Die Basis bildet der Proxy-CodeServer go-shadowsocks2, der von der Entwickler-Community von Shadowsocks erstellt wurde. In letzter Zeit liegt der Schwerpunkt der Shadowsocks-Projekte auf der Entwicklung eines neuen Servers in Rust, während die Umsetzung in Go seit mehr als einem Jahr nicht aktualisiert wurde und in Bezug auf die Funktionalität deutlich zurückbleibt.
Die Unterschiede zwischen outline-ss-server und go-shadowsocks2 liegen in der Unterstützung der Verbindung mehrerer Nutzer über einen einzigen Netzwerkport, der Möglichkeit, mehrere Netzwerkports zum Empfang von Verbindungen zu öffnen, der Unterstützung für Hot-Reload und Konfigurationsaktualisierungen ohne Unterbrechung der Verbindungen sowie in den integrierten Überwachungs- und Traffic-Änderungsfunktionen auf Basis der Plattform prometheus.io.

Im outline-ss-server wurde zudem ein Schutz gegen Angriffe durch Überprüfung von Anfragen und Replay-Angriffe integriert. Der Angriff durch Überprüfung von Anfragen zielt darauf ab, das Vorhandensein eines Proxys zu erkennen; der Angreifer kann beispielsweise an den betroffenen Shadowsocks-Server Datenmengen unterschiedlicher Größe senden und analysieren, welches Volumen der Server liest, bevor er einen Fehler feststellt und die Verbindung schließt. Der Replay-Angriff basiert auf der Abhörung der Sitzung zwischen Client und dem Server durch dem anschließenden Versuch, die abgefangenen Daten erneut zu senden, um das Vorhandensein eines Proxys festzustellen.
Um sich vor Angriffen durch Prüfanforderungen zu schützen, unterbricht der outline-ss-server die Verbindung nicht und gibt keinen Fehler aus, wenn ungültige Daten eingehen. Er akzeptiert weiterhin Informationen und fungiert als eine Art schwarze Tüte. Um die Wiederverwendung von empfangenen Daten zu verhindern, werden diese zusätzlich auf Duplikate anhand von Prüfziffern überprüft, die für die letzten mehreren Tausend Handshake-Sequenzen gespeichert sind (maximal 40.000, die Größe wird beim Start des Servers festgelegt und verbraucht 20 Byte Speicher pro Sequenz). Zur Blockierung wiederholter Antworten vom Server werden in allen Server-Handshake-Sequenzen HMAC-Authentifizierungscodes mit 32-Bit-Tags angewendet.
Der Shadowsocks-Protokoll, implementiert als outline-ss-server, bietet in der Hinsicht der Traffic-Verschleierung eine ähnliche Leistung wie der Obfs4-Anschluss in dem anonymen Tor-Netzwerk. Das Protokoll wurde entwickelt, um die Zensur des Datenverkehrs in China (»Große Firewall von China«) zu umgehen und ermöglicht es, den durch einen anderen Server geleiteten Datenverkehr recht effektiv zu verbergen (der Datenverkehr ist nur schwer identifizierbar, da er mit zufälligen Blöcken versehen und als kontinuierlicher Fluss simuliert wird).
Für das Proxying von Anfragen wird SOCKS5 verwendet – ein Proxy, der auf dem lokalen System läuft und SOCKS5 unterstützt, tunneliert den Datenverkehr zu einem entfernten Server, von dem aus die Anfragen tatsächlich ausgeführt werden. Der Datenverkehr zwischen Client und Server wird in einem verschlüsselten Tunnel platziert (authentifizierte Verschlüsselung wird durch AEAD_CHACHA20_POLY1305, AEAD_AES_128_GCM und AEAD_AES_256_GCM unterstützt). Die Verschleierung der Tatsache, dass dieser Tunnel erstellt wurde, ist die primäre Aufgabe von Shadowsocks. Sowohl TCP- als auch UDP-Tunnel werden unterstützt, und es können beliebige Tunnel erstellt werden, die nicht auf SOCKS5 beschränkt sind, durch die Verwendung von Plugins, die an die Transport-Anschlüsse in Tor erinnern.
Quelle: opennet.ru
