TLS går inne i kontrollkanalen, ikkje gjennom heile tunnelen
Partane byter sine eigne pakkar, og TLS går inne i kontrollutvekslinga. Ein proxy som forstår HTTPS, anar ikkje kva denne trafikken er.
Å sjå ordet TLS i ei VPN-skildring og konkludere med at ein nettproxy vil forstå trafikken, er ein vanleg snarvveg. Inne i denne protokollen byter partane sine eigne pakkar, og TLS går som ein del av éin kanal i den utvekslinga. Nyttelasta brukaren bryr seg om, reiser i eit anna meldingsformat, og difor passar dei to aldri saman med ei vanleg HTTPS-økt.
Konvolutten kjem fyrst
Kvar tunnelpakke byrjar med protokollen sin eigen header: ein meldingstype, ein nøkkelidentifikator og, over ein bytestraums transport, eit lengdeprefiks som markerer kvar pakka sluttar. Ein lesar som ikkje parsar den konvolutten, kan ikkje vite kvar det neste feltet byrjar.
outer transport (UDP datagram or TCP stream)
-> OpenVPN header (opcode, key id, length where needed)
-> control message (reliability wrapper, TLS exchange)
-> data message (protected inner packet)
Den skissa er eit kart og ikkje ein bytetabell, fordi dei nøyaktige felta avheng av meldingstypen, sjølv om den fyrste oktetten alltid pakkar opkoden og nøkkelidentifikatoren saman. Å gjette meldingstypen frå portnummeret er korleis dekodarar endar med å namngi det dei ser feil. Rekkjefølgja er det som tel for diagnostikk: transport, deretter protokollkonvolutten, deretter ein av to typar arbeid. Les konvolutten før du dannar deg ei meining om det som følgjer. Ein dekodar som startar på feil stad, produserer sjølvsikker tull.
Pålitelegheitslaget høyrer til protokollen
Kontrollmeldingar treng ordna, stadfesta levering, og protokollen syter sjølv for det med stadfestingar og omsendingar. Ei stadfesting kan kome som si eiga melding eller reise med ei anna kontrollmelding, noko som får spor til å sjå uregelmessige ut for alle som ventar éi rein utveksling.
Føremonen er at TLS-handtrykket får ein påliteleg berar sjølv når den ytre transporten er UDP. Prisen er at eit einskilt datagram kanskje berre inneheld ein del av den samtalen, så å handsame det som ein frittståande TLS-post produserer tull. Gjenmontering må skje på protokollaget. Difor ser ei fanga pakke sjeldan ut som eit fullstendig handtrykksteg.
Å byte den ytre transporten til TCP fjernar ikkje dette laget. Påliteleg transport tyder færre omsendingar på protokollnivå, ikkje at innramminga forsvinn eller at trafikken blir HTTP.
Datapakkar brukar eit anna format
Når økta finst, kjem den nyttige lasta som datameldingar som ber indre IP-pakkar eller Ethernet-rammer. Dei er verna med eigne nøklar og eiga handsaming, og dei er ikkje TLS-applikasjonspostar i noka meining eit TLS-bibliotek ville godta.
Den separasjonen er synleg i konfigurasjonen: kontrollkanalen og datakanalen har separate chiffreinnstillingar, så ei logglinje som nemner den eine, fortel deg ingenting om den andre. Å lese ein sterk kontrollchiffer som prov på ein sterk datachiffer er ein vanleg rapporteringsfeil.
Hald også ei slekt misforsåing ute av forklaringa. TLS er ikkje ein offentleg nøkkel-kanal ved sida av ein symmetrisk datakanal, fordi TLS sjølv vernar postane sine symmetrisk når nøklane er etablerte. Den verkelege skilnaden er rolle og pakkeformat, ikkje kva type kryptografi kvar side brukar.
Kvifor ein HTTPS-proxy ikkje kan hjelpe
Ein proxy som terminerer TLS, ventar ein TLS-poststraum og deretter ein applikasjonsprotokoll inne i han. Kontrollkanalen til denne protokollen blir boren inne i si eiga innramming med eit pålitelegheitslag rundt, så ein terminerande proxy les den innramminga som korrupt input.
Ein gjennomsiktig videresendar som slepp byte eller datagram gjennom utan å tolke dei, kan fungere, føresett at han ikkje skriv om eller gjenmonterer straumen. Spørsmålet ein bør stille om ein kvar mellomledd, er om han videresendar den faktiske transporten og innramminga, ikkje om han støttar TLS ein stad. Spør om det før du brukar ein kveld på proxyreglar. Dei fleste feila her er arkitektoniske og ikkje ei manglande innstilling.
Å lese eit spor rett
Vent fyrst ei kontrollutveksling, deretter eit mykje større tal datameldingar, begge deler ein transport. Viss kontrollfasen blir fullført og datafasen stoppar, gjeld feilen nøklar, ruting eller filtrering av datastien og ikkje handtrykket. Tak opp nokre få datameldingar og sjekk om dei i det heile forlèt klienten. Den eine observasjonen deler søket i to.
Historiske nøkkelmetodeskildringar i protokolldokumentasjonen tyder ikkje at ei gitt utgåve framleis støttar kvart gamalt format. Sjekk versjonen du køyrer før du byggjer ei forventning på eit avsnitt som skildrar korleis ting pleidde å fungere.