TLS potuje znotraj nadzornega kanala, ne po celotnem tunelu
Sogovorniki izmenjujejo svoje pakete, TLS pa teče znotraj nadzorne izmenjave. Posrednik, ki razume HTTPS, nima pojma, kaj je ta promet.
Videti besedo TLS v opisu VPN in sklepati, da bo spletni posrednik razumel promet, je pogosta bližnjica. Znotraj tega protokola sogovorniki izmenjujejo svoje pakete, TLS pa teče kot del enega kanala v tej izmenjavi. Koristni tovor, ki je uporabniku pomemben, potuje v drugem formatu sporočil, zato se dva nikoli ne ujemata z običajno sejo HTTPS.
Najprej pride ovojnica
Vsak paket tunela se začne z lastno glavo protokola: vrsto sporočila, identifikatorjem ključa in pri transportu bajtnega toka s predpono dolžine, ki označuje, kje se paket konča. Bralec, ki te ovojnice ne razčleni, ne more vedeti, kje se začne naslednje polje.
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)
Ta skica je zemljevid in ne bajtna tabela, ker so natančna polja odvisna od vrste sporočila, čeprav prvi oktet vedno skupaj zapakira kodo operacije in identifikator ključa. Ugibanje vrste sporočila iz številke vrat je način, kako dekoderji na koncu napačno poimenujejo to, kar vidijo. Za diagnostiko je pomemben vrstni red: transport, nato ovojnica protokola, nato ena od dveh vrst dela. Preberite ovojnico, preden si ustvarite mnenje o tem, kar sledi. Dekoder, ki se začne na napačnem mestu, ustvari samozavestno neumnost.
Plast zanesljivosti pripada protokolu
Nadzorna sporočila potrebujejo urejeno, potrjeno dostavo in protokol to zagotavlja sam s potrditvami in ponovnimi prenosi. Potrditev lahko prispe kot lastno sporočilo ali potuje z drugim nadzornim sporočilom, zaradi česar so sledi videti nepravilne vsakomur, ki pričakuje eno čisto izmenjavo.
Prednost je, da rokovanje TLS dobi zanesljivega nosilca tudi takrat, ko je zunanji transport UDP. Cena je, da lahko en datagram vsebuje le del tega pogovora, zato obravnavanje kot samostojnega zapisa TLS ustvari neumnost. Ponovno sestavljanje se mora zgoditi na plasti protokola. Zato je zajeti paket redko videti kot celoten korak rokovanja.
Preklop zunanjega transporta na TCP te plasti ne odstrani. Zanesljiv transport pomeni manj ponovnih prenosov na ravni protokola, ne pa da uokvirjanje izgine ali da promet postane HTTP.
Podatkovni paketi uporabljajo drugačen format
Ko seja obstaja, koristni tovor prispe kot podatkovna sporočila, ki nosijo notranje pakete IP ali okvire Ethernet. Zaščiteni so z lastnimi ključi in lastno obdelavo ter niso aplikacijski zapisi TLS v nobenem smislu, ki bi ga knjižnica TLS sprejela.
Ta ločitev je vidna v konfiguraciji: nadzorni kanal in podatkovni kanal imata ločene nastavitve šifriranja, zato vrstica dnevnika, ki imenuje enega, ne pove nič o drugem. Branje močnega nadzornega šifriranja kot dokaza močnega podatkovnega šifriranja je pogosta napaka v poročilih.
Držite tudi povezano napačno predstavo zunaj razlage. TLS ni kanal z javnim ključem ob simetričnem podatkovnem kanalu, ker TLS sam simetrično ščiti svoje zapise, ko so ključi vzpostavljeni. Resnična razlika je vloga in format paketa, ne pa kakšno vrsto kriptografije uporablja vsaka stran.
Zakaj posrednik HTTPS ne more pomagati
Posrednik, ki zaključi TLS, pričakuje tok zapisov TLS in nato aplikacijski protokol v njem. Nadzorni kanal tega protokola se prenaša znotraj lastnega uokvirjanja s plastjo zanesljivosti okoli, zato zaključujoči posrednik to uokvirjanje bere kot poškodovan vnos.
Pregledni posrednik, ki prepusti bajte ali datagrame brez razlage, lahko deluje, če toka ne prepisuje ali ponovno sestavlja. Vprašanje, ki ga je treba postaviti o vsakem posredniku, je, ali posreduje dejanski transport in uokvirjanje, ne pa ali kje podpira TLS. Vprašajte to, preden preživite večer ob pravilih posrednika. Večina neuspehov je tu arhitekturnih in ne manjkajoča nastavitev.
Pravilno branje sledi
Najprej pričakujte nadzorno izmenjavo, nato veliko večje število podatkovnih sporočil, oboje si deli en transport. Če se nadzorna faza zaključi in se podatkovna faza ustavi, se napaka nanaša na ključe, usmerjanje ali filtriranje podatkovne poti in ne na rokovanje. Zajemite nekaj podatkovnih sporočil in preverite, ali sploh zapustijo odjemalca. To eno opažanje razdeli iskanje na pol.
Zgodovinski opisi metod ključa v dokumentaciji protokola ne pomenijo, da določena izdaja še vedno podpira vsak star format. Preverite različico, ki jo izvajate, preden zgradite pričakovanje na odstavku, ki opisuje, kako so stvari delovale prej.