A apărut versiunea 1.4 a serverului proxy outline-ss-server, care utilizează protocolul Shadowsocks pentru a ascunde natura traficului, a ocolit firewall-urile și a păcălit sistemele de inspecție a pachetelor. Serverul este dezvoltat de proiectul Outline, care oferă în plus un wrapper pentru aplicații client și o interfață de gestionare, permițând desfășurarea rapidă a serverelor multi-utilizator Shadowsocks bazate pe outline-ss-server în medii cloud publice sau pe echipamentele proprii, gestionarea acestora prin intermediul unei interfețe web și organizarea accesului utilizatorilor prin chei. Dezvoltarea și întreținerea codului sunt gestionate de Jigsaw, o subdiviziune a Google, creată pentru a dezvolta instrumente de ocolire a cenzurii și a organiza un schimb liber de informații.
Outline-ss-server este scris în limbajul Go și este distribuit sub licența Apache 2.0. Codul proxy-ului a fost bazat peserver go-shadowsocks2, creat de comunitatea dezvoltatorilor Shadowsocks. Recent, activitatea principală a proiectului Shadowsocks s-a concentrat pe dezvoltarea unui nou server în limbajul Rust, iar implementarea în limbajul Go nu a mai fost actualizată de mai bine de un an și este semnificativ în urmă în ceea ce privește funcționalitatea.
Diferențele dintre outline-ss-server și go-shadowsocks2 se rezumă la suportul pentru conectarea mai multor utilizatori printr-un singur port de rețea, capacitatea de a deschide mai multe porturi de rețea pentru a accepta conexiuni, suportul pentru repornirea la cald și actualizarea configurării fără întreruperea conexiunilor, instrumentele încorporate de monitorizare și modificare a traficului pe baza platformei prometheus.io.

În outline-ss-server a fost adăugată, de asemenea, protecția împotriva atacurilor legate de trimiterea cererilor de verificare și reproducerea traficului. Atacul prin cereri de verificare vizează determinarea existenței proxy-ului; de exemplu, atacatorul poate trimite către serverul Shadowsocks țintă seturi de date de dimensiuni diferite și poate analiza ce volum de date serverul va citi înainte de a determina o eroare și a închide conexiunea. Atacul de reproducere a traficului se bazează pe interceptarea sesiunii între client și serverul ulterior, încercarea de a retransmite datele interceptate pentru a determina existența proxy-ului.
Pentru a proteja împotriva atacurilor prin cereri de verificare, serverul outline-ss-server nu întrerupe conexiunea și nu afișează erori în cazul în care se primesc date incorecte, ci continuă să accepte informațiile, acționând ca un fel de gaură neagră. Pentru a preveni reproducerea datelor trimise de client, informațiile sunt verificate suplimentar pentru duplicate prin sume de control, păstrate pentru ultimele câteva mii de secvențe handshake (maximum 40 de mii, dimensiunea este configurată la pornirea serverului și consumă 20 de octeți de memorie pe secvență). Pentru a bloca răspunsurile repetate de la server, în toate secvențele handshake ale serverului se aplică coduri de autentificare HMAC cu etichete de 32 de biți.
În ceea ce privește nivelul de mascare a traficului, protocolul Shadowsocks implementat în outline-ss-server este apropiat de transportul plugin Obfs4 din rețeaua anonimă Tor. Protocolul a fost creat pentru a ocoli sistemul de cenzură a traficului din China („Marele firewall chinezesc”) și permite mascare eficientă a traficului redirecționat printr-un alt server (traficul este dificil de identificat datorită atașării de semințe aleatorii și simulării unui flux continuu).
Protocolul utilizat pentru proximitatea cererilor este SOCKS5 – pe sistemul local se rulează un proxy care suportă SOCKS5, care tunelizează traficul către un server de la distanță, de pe care se efectuează efectiv cererile. Traficul între client și server este plasat într-un tunel criptat (este suportat criptarea autenticată AEAD_CHACHA20_POLY1305, AEAD_AES_128_GCM și AEAD_AES_256_GCM), ascunderea faptului că a fost creat acest tunel fiind sarcina principală a Shadowsocks. Este susținută organizarea tunelurilor TCP și UDP, precum și crearea tunelurilor arbitrare, fără restricții de SOCKS5, prin utilizarea pluginurilor care se aseamănă cu transporturile plugin din Tor.
Sursa: opennet.ro
