Avaldatud on outline-ss-server 1.4 versioon, mis kasutab Shadowsocks protokolli liikluse iseloomu varjamiseks, tulemüüridest möödumiseks ja pakettide järelevalvesüsteemide petmiseks. Serveri arendust haldab Outline projekt, mis pakub ka rakenduste ja haldustööriistade komplekti, mis võimaldab kiiresti juurutada mitme kasutajaga Shadowsocks servereid outline-ss-serveri põhjal avalikes pilveteenustes või oma seadmetes, hallata neid veebiliidese kaudu ja korraldada juurdepääsu võtmete kaudu. Koodi arendamise ja hoolduse eest vastutab Jigsaw, Google'i haru, mis on loodud tsensuuri vältimise ja info vabade vahetuse vahendite arendamiseks.
Outline-ss-server on kirjutatud Go keeles ja levitatakse Apache 2.0 litsentsi alusel. Aluseks on kasutatud proksi-serverile go-shadowsocks2, mis on välja töötatud Shadowsocks arendajate kogukonna poolt. Viimastel aegadel on projekti Shadowsocks põhitegevus keskendunud uue serveri arendamisele Rust keeles, samas kui Go keeles teostus pole enam kui aasta uuendusi saanud ja jääb oluliselt alla funktsionaalsusele.
outline-ss-serveri ja go-shadowsocks2 vahelised erinevused seisnevad mitme kasutaja ühenduste toetuses ühe võrguporti kaudu, mitme võrguporta avamise võimaluses ühenduste vastuvõtmiseks, kuumakäivituse ja konfiguratsiooni uuendamise toetuses ühendusi katkestamata ning sisseehitatud jälgimisvahendites ja liikluse muutmises prometheus.io platvormi alusel.

outline-ss-serverisse on lisatud ka kaitse rünnakute vastu, mis on seotud kontrollküsimuste saatmise ja liikluse korduse kaalumisega. Kontrollküsimuste rünnak on suunatud proksi olemasolu määramisele; näiteks võib ründaja saata sihitud Shadowsocks-serverile erineva suurusega andmekogumeid ja analüüsida, kui palju andmeid server loeb enne vea määramist ja ühenduse sulgemist. Liikluse korduse rünnak põhineb istungi pealtkuulamisel kliendi ja serveriga seejärel püüdes Edastada pealtkuulatud andmeid proksi olemasolu määramiseks.
Kontrollküsimuste rünnakute kaitseks ei katkesta outline-ss-server ebakorrektselt andmeid saades ühendust ega väljasta viga, vaid jätkab teabe vastuvõtmist, olles omamoodi must auk. Klientidelt tulevaid andmeid kontrollitakse korduste suhtes lisaks ka kontrollsummade abil, mis salvestatakse viimastele tuhandetele handshake-järgudele (kuni 40 tuhat; suuruse määrab serveri käivitamisel, tarbides 20 baiti iga järjestuse kohta). Serverilt tulevate korduvate vastuste blokeerimiseks rakendatakse kõigis serveri handshake-järgudes 32-bitiste siltidega autentimis-koode HMAC.
Traffic masking level of the Shadowsocks protocol, implemented in outline-ss-server, is similar to the transport Obfs4 used in the Tor anonymous network. The protocol was developed to bypass the Chinese censorship system (the 'Great Firewall of China') and allows for effective concealment of traffic tunneled through another server (the traffic is difficult to identify due to the random padding attachment and continuous stream simulation).
For request proxying, SOCKS5 is used as the protocol — a proxy supporting SOCKS5 runs on the local system, tunneling traffic to a remote server from which requests are actually executed. Traffic between the client and server is placed in an encrypted tunnel (authenticated encryption is supported with AEAD_CHACHA20_POLY1305, AEAD_AES_128_GCM, and AEAD_AES_256_GCM), with the primary objective of Shadowsocks being to conceal the fact that it has been created. Support is provided for organizing TCP and UDP tunnels, as well as creating arbitrary tunnels, unrestricted by SOCKS5, through the use of plugins that resemble transport connections in Tor.
Allikas: opennet.ru
