Hulumtuesit nga Universiteti i Marylandit, në kuadër të projektit bënë përpjekje për të krijuar për automatizimin e identifikimit të metodave që përdoren për censurimin e aksesit në përmbajtje. Të përpiqesh manualisht të gjesh mundësitë për të anashkaluar sistemet e inspektimit të thellë të paketimeve (DPI) është një proces mjaft i vështirë dhe i gjatë, në Geneva përpiqen të përdorin për të vlerësuar karakteristikat e DPI-së, për të identifikuar gabimet në implementim dhe për të zhvilluar strategjinë optimale të anashkalimit në anën e klientit. Kodi i projektit është në gjuhën Python.
Pajisjet e përdorura për bllokimin e DPI-së kanë , të cilat lejojnë të fshehin kërkesat për burime të ndaluara ose të shmangin bllokimin. Për shembull, në rastin më të thjeshtë, kur krijohet bllokimi përmes përgjigjes fiktive (përdoret nga DPI pasiv), mjafton në anën e klientit përgjigjen fiktive të dërguar nga DPI. Në rastin e përdorimit të DPI aktive, mund të përpiqesh të fshehësh vetë faktin e shkarkimit në një faqe të bllokuar, duke modifikuar pak parametrat e kërkesës HTTP (për shembull, duke shtuar një hapësirë të tepërt pas "GET"), ndarë në disa paketa të dhënat e negociatave TLS ose duke realizuar sulme TCB Teardown dhe TCB Desync. Qëllimi i sulmeve të përmendura është dërgimi nga ana e klientit fillimisht i një pakete fiktive me të dhëna ose flamuj RST/ACK, e cila nuk do të arrijë tek hosti i synuar, por do të kapet nga DPI, do të marrë vendim mbi të dhe nuk do të analizojë paketën që vjen pas saj me kërkesën e vërtetë (për shembull, në paketën e parë fiktive mund të tregosh një SNI tjetër, dhe për të fshehur këtë paketë nga hosti i synuar mund të vendosësh një TTL të ulët, si dhe kontroll të pasaktë të shumës, flamuj ose numër rendi TCP).
Gjenevë të zhvillojë një metodë funksionale për anashkalimin e DPI-së, duke përdorur katër primitive themelore për manipulimin e paketimeve rrjet: heqje, modifikim të titujve, kopjim dhe fragmëntim. Për përcaktimin e strategjisë optimale përdoret algoritmi gjenetik, i cili modelon procese të ngjashme me seleksionin natyror, përmes kombinimit të rastësishëm të variacioneve të ndryshme të manipulimeve me paketa. Në fund, primitive kombinohen në një "pemë veprimi", e cila përcakton algoritmin e anashkaluar të DPI-së.
Puna e Geneva është testuar me sukses për të anashkaluar metodat e censurës që përdoren në Kinë, Indi dhe Kazakistan, përfshirë duke zbuluar disa vrima të reja, të cilat nuk ishin të njohura më parë. Megjithatë, Geneva është efektiv vetëm për anashkalimin e bllokimeve të bazuara në DPI, dhe është e pafavorshme për bllokimin bazuar në adresat IP, pa VPN është e pamundur. Gjatë eksperimenteve disa dhjetëra strategji tipike të anashkalimit të DPI-së, të cilat mund të testohen menjëherë pa kryer një analizë të plotë, për shembull:
python3 engine.py âserver-port 80 âstrategy "[TCP:flags:PA]-duplicate(tamper{TCP:dataofs:replace:10} tamper{TCP:chksum:corrupt},),)-|" âlog debug
2020-01-24 20:54:41 DEBUG:[ENGINE] Motori u krijua me strategjinë \/ (ID bm3kdw3r) për portin 80
2020-01-24 20:54:41 DEBUG:[ENGINE] Konfigurohen rregullat e iptables
2020-01-24 20:54:41 DEBUG:[ENGINE] iptables -A OUTPUT -p tcp âsport 80 -j NFQUEUE âqueue-num 1
2020-01-24 20:54:41 DEBUG:[ENGINE] iptables -A INPUT -p tcp âdport 80 -j NFQUEUE âqueue-num 2
2020-01-24 20:54:41 DEBUG:[ENGINE] iptables -A OUTPUT -p udp âsport 80 -j NFQUEUE âqueue-num 1
2020-01-24 20:54:41 DEBUG:[ENGINE] iptables -A INPUT -p udp âdport 80 -j NFQUEUE âqueue-num 2
Burimi: opennet.ru
