Domain fronting nije VPN: dva imena, jedan zahtjev
Dva imena u jednom HTTPS zahtjevu nisu tunel. Fronting zavisi od pravila rutiranja provajdera; VPN bira koji paketi idu. Nacrtajte ih odvojeno.
Dvije tehnike se svrstavaju zajedno jer obje uključuju posrednika i obje zvuče kao skrivanje. One rade na različitim objektima. Domain fronting se odnosi na to koje ime se pojavljuje na kojem sloju jednog HTTPS zahtjeva. VPN se odnosi na to koji paketi idu određenim putem do peer-a. Nazvati fronting vrstom VPN-a vodi do dizajna koji ne mogu funkcionisati i do pregleda koji postavljaju pogrešno pitanje.
Dva imena, dva sloja
TLS konekcija može nositi ime servera u svom handshake-u. Kada konekcija postoji, HTTP zahtjev identifikuje autoritet koji želi, obično u Host zaglavlju. To su dva polja koja se čitaju u dva različita trenutka od strane dva različita dijela softvera.
| Layer | What carries the name | Who reads it |
|---|---|---|
| TLS handshake | Server name indication | The TLS terminator in front of the service |
| HTTP request | Authority or Host header | The routing layer that picks a backend |
| Network path | Destination address and port | Routers, and the VPN peer if one is in use |
Domain fronting koristi razliku između prva dva, tako da fronting servis prihvati konekciju i zatim usmjeri zahtjev negdje drugo. To funkcioniše samo tamo gdje je taj servis spreman da ga usmjeri, što je pitanje politike provajdera, a ne protokolarnog trika.
Fronting zavisi od provajdera, a ne od tehnike
Za ograničen primjer, vodič Front Door FAQ kompanije Azure dokumentuje zaštite od domain frontinga. Opisuje dozvoljeno neslaganje za domene unutar iste pretplate i konfigurisanih ruta, te odgovor 421 Misdirected Request kada zaštita od neslaganja blokira zahtjev.
Ta jedna dokumentovana politika ukida oba slogana odjednom. Ne radi svaki par različitih imena, a ni svako neslaganje nije zabranjeno. Drugi servisi imaju svoje provjere, svoje zahtjeve za implementaciju i svoje kodove grešaka.
To takođe nije uputstvo za zaobilaženje ograničenja druge mreže. Čitanje pravila rutiranja provajdera da bi se razumjelo šta dozvoljava jeste arhitektonski posao; tretiranje tih pravila kao recepta za zaobilaženje je druga aktivnost s drugim posljedicama. Držite te dvije aktivnosti odvojeno u dokumentu koji pišete. Druga je ono zbog čega dizajn biva odbijen na pregledu.
Šta VPN zapravo bira
U mrežnom VPN-u, rutiranje i platformna politika biraju unutrašnji saobraćaj za tunel do peer-a. Zavisno od rasporeda, to može pokrivati nekoliko aplikacija ili definisan podskup, i može nositi protokole koji uopšte nemaju HTTP zahtjev.
Fronting ne radi ništa od toga. Organizovanje jednog HTTPS zahtjeva kroz fronting servis ne instalira rutu do privatne mreže, ne nosi proizvoljne UDP aplikacije i ne prisiljava svaki program na uređaju da koristi servis. Ako vam treba takvo pokrivanje, treba vam proxy ili tunel, a ne trik s imenom.
Zato se to dvoje brka na pregledu: oba se opisuju kao posrednici i oba se pojavljuju u dokumentima o pristupu. Sučelje koje svaki nudi potpuno je različito, a samo jedan od njih je mrežni put.
Vidljivost nije binarna
Niti je poređenje jednostavno skriveno nasuprot vidljivom. DNS upiti, odredišne adrese, karakteristike handshake-a, veličine paketa i tajming sve ostaje uočljivo onome ko je u poziciji da ih vidi, a ono što taj posmatrač nauči zavisi od toga gdje se nalazi.
Podaci aplikacije su takođe vidljivi na krajnjim točkama koje ih prekidaju. Fronting servis koji usmjerava vaš zahtjev jedna je od tih krajnjih točaka, a VPN peer je druga. Nijedan raspored ne čini sadržaj neprozirnim za stranu koja ga mora pročitati da bi vam poslužila.
Nacrtajte tri kutije
Za arhitektonski pregled nacrtajte TLS krajnju točku, HTTP servis za rutiranje i konačnu aplikaciju kao tri odvojene kutije, a zatim nacrtajte bilo koji VPN peer opet negdje drugo. Mjesto koje bira web odredište i mjesto koje prenosi pakete privatne mreže ne moraju biti isti sistem, i obično nisu.
Kada su kutije odvojene, pitanja postaju odgovoriva: koja imena ovaj provajder prihvata, koji protokoli trebaju prijenos i koja strana može šta vidjeti. Dijagram koji ih spaja proizvodi dizajn koji niko ne može implementirati i pregled koji se svađa oko rječnika.