Hulumtuesit nga Universiteti i Marylandit në kuadër të projektit bënë një 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 të prokosh manualisht mundësitë e dobësive të sistemeve të inspektimit të thellë të paketave (DPI) është një proces mjaft i vështirë dhe i gjatë, ndërsa në Geneva u përpoqën të përdorin për të vlerësuar karakteristikat e DPI, për të identifikuar gabimet në implementim dhe për të zhvilluar një strategji optimale për të përshkruar bllokimin nga ana e klientit. Kodi i projektit është shkruar në gjuhën Python.
Pajisjet e përdorura për bllokimin nga DPI kanë , që lejojnë fshehjen e kërkesës për një burim të ndaluar ose shmangien e bllokimit. Për shembull, në rastin më të thjeshtë kur organizohet bllokimi përmes zëvendësimit të një përgjigjeje fiktive (përdoret nga DPI pasive) mjafton nga ana e klientit përgjigjen fiktive që dërgohet nga DPI. Në rastin e përdorimit të DPI aktive, mund të përpiqesh të fshehësh vetë faktin e kërkesës për një sit të bllokuar, duke ndryshuar pak parametrat e kërkesës HTTP (për shembull, duke shtuar një hapësirë të panevojshme pas "GET"), duke ndarë në disa paketa të dhënat e negociatave të lidhjes TLS, ose duke realizuar sulme TCB Teardown dhe TCB Desync. Qëllimi i sulmeve të përmendura është dërgimi nga klienti fillimisht i një pakete fiktive me të dhëna ose flamuj RST/ACK, e cila nuk do të përfundojë te hosti i synuar, por do të kapet nga DPI, do të marrë një vendim mbi të dhe nuk do të analizojë paketën që vijon me kërkesën reale (për shembull, në paketën e parë fiktive mund të specifihet një SNI tjetër, dhe për të fshehur këtë paketë nga hosti i synuar mund të vendoset një TTL i ulët, si dhe një checksum të gabuar, flamuj ose numri i rendit TCP).
Geneva tĂ« zhvillojnĂ« njĂ« metodĂ« funksionale pĂ«r tĂ« kaluar DPI, duke pĂ«rdorur katĂ«r primitive bazĂ« pĂ«r manipulimin e paketave rrjetĂ«s â pĂ«rjashtimin, ndryshimin e titujve, kopjimin dhe fragmentimin. PĂ«r pĂ«rcaktimin e strategjisĂ« optimale aplikohet njĂ« algoritĂ«m gjenetik, i cili simolon proceset qĂ« janĂ« tĂ« ngjashme me zgjedhjen natyrore pĂ«rmes kombinimit tĂ« rastĂ«sishĂ«m tĂ« variacioneve tĂ« ndryshme tĂ« manipulimeve me paketat. NĂ« fund, primitive tĂ« kombinuara formojnĂ« njĂ« "pemĂ« veprimesh", e cila pĂ«rcakton algoritmin e kalimit tĂ« DPI.
Projekti Geneva është testuar me sukses për t'u përballur me metodat e cenzurës që aplikohen në Kinë, Indi dhe Kazakistan, përfshirë identifikimin e disa boshllëqeve të reja që nuk ishin njohur më parë. Megjithatë, Geneva është efektiv vetëm për anashkalimin e bllokimeve të bazuara në DPI; nuk ka asnjë dobi për bllokimin e bazuar në IP dhe pa VPN është e pamundur t'i kalosh këto barriera. disa dhjetëra strategji tipike për anashkalimin e DPI-së që mund të testohen menjëherë pa bërë 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] Konfigurimi i rregullave 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
