TLS reizget yn ’e kontrôlekanal, net troch de hiele tunnel
De peers wikselje har eigen pakketten út, en TLS rint yn ’e kontrôle-útwikseling. In proxy dy't HTTPS begrypt, hat gjin idee wat dit ferkear is.
It wurd TLS yn in VPN-beskriuwing sjen en konkludearje dat in webproxy it ferkear begripe sil, is in gewoane fluchwei. Binnen dit protokol wikselje de peers har eigen pakketten út, en TLS rint as part fan ien kanaal binnen dy útwikseling. De nuttige lading dêr't de brûker him om bekroadet, reizget yn in oar berjochtformaat, en dêrom komme de twa nea oerien mei in gewoane HTTPS-sesje.
De omhulsel komt earst
Elk tunnelpakket begjint mei de eigen kop fan it protokol: in berjochttype, in kaai-identifikaasje en, oer in bytestreamferfier, in lingtefoarheaksel dat oanjout wêr't it pakket einiget. In lêzer dy't dat omhulsel net parse, kin net witte wêr't it folgjende fjild begjint.
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)
Dy skets is in kaart en gjin bytetabel, om't de krekte fjilden fan it berjochttype ôfhingje, hoewol't it earste oktet altyd de opkoade en de kaai-identifikaasje byinoar ferpakt. It berjochttype út it poartnûmer riede is hoe't dekoders úteinliks ferkeard beneame wat se sjogge. De folchoarder is wat foar diagnostyk fan belang is: ferfier, dan it protokolomhulsel, dan ien fan twa soarten wurk. Lês it omhulsel foardat jo in miening foarmje oer wat dêrnei komt. In dekoder dy't op it ferkearde plak begjint, produsearret selsbetrouwe ûnsin.
De betrouberenslaach heart by it protokol
Kontrôleberjochten hawwe oardere, befêstige levering nedich, en it protokol soarget dêr sels foar mei befêstigings en weromstjoeringen. In befêstiging kin as eigen berjocht oankomme of mei in oar kontrôleberjocht reizgje, wat spoaren ûnregelmjittich lykje lit foar elkenien dy't ien skjinne útwikseling ferwachtet.
It foardiel is dat de TLS-hânskikking in betroubere drager krijt sels as it bûtenferfier UDP is. De kosten binne dat ien datagram miskien mar in part fan dat petear befettet, sadat it behanneljen as in selsstannich TLS-record ûnsin produsearret. Weromgearjen moat op 'e protokolleach barre. Dêrom liket in fêstlein pakket selden op in folsleine hânskikkingsstap.
It bûtenferfier omsette nei TCP ferwideret dizze laach net. Betrouber ferfier betsjut minder weromstjoeringen op protokolnivo, net dat de raming ferdwynt of dat it ferkear HTTP wurdt.
Datapakketten brûke in oar formaat
As de sesje bestiet, komt de nuttige lading as databerjochten dy't ynterne IP-pakketten of Ethernet-ramen drage. Se wurde beskerme mei har eigen kaaien en har eigen ferwurking, en se binne gjin TLS-tapassingsrecords yn hokker sin dan ek dy't in TLS-bibleteek akseptearje soe.
Dy skieding is sichtber yn konfiguraasje: de kontrôlekanal en de datakanal hawwe aparte sjiferynstellingen, sadat in logrigel dy't ien neamt jo neat oer de oare fertelt. In sterke kontrôlesjifer lêze as bewiis fan in sterke datasjifer is in gewoane rapportaazjeflater.
Hâld ek in besibbe misfetting bûten de útlis. TLS is gjin iepenbiere-kaaikanal njonken in symmetryske datakanal, om't TLS sels syn records symmetrysk beskermet sadree't kaaien fêststeld binne. It echte ûnderskie is rol en pakketformaat, net hokker soarte kryptografy elke kant brûkt.
Wêrom't in HTTPS-proxy net helpe kin
In proxy dy't TLS beëiniget, ferwachtet in TLS-recordstream en dan in tapassingsprotokol dêryn. De kontrôlekanal fan dit protokol wurdt binnen syn eigen raming droegen mei in betrouberenslaach deromhinne, sadat in beëinigjende proxy dy raming as skansearre ynfier lêst.
In transparante trochstjoerder dy't bytes of datagrammen trochjaan lit sûnder se te ynterpretearjen, kin wurkje, mits er de stream net oerskriuwt of weromgearret. De fraach dy't oer elke tuskenpersoan steld wurde moat, is oft er it echte ferfier en de raming trochstjoert, net oft er earne TLS stipet. Freegje dat foardat jo in jûn oan proxyregels besteegje. De measte misslaggen hjir binne arsjitektoanysk en net in ûntbrekkende ynstelling.
In spoar goed lêze
Ferwachtsje earst in kontrôle-útwikseling, dan in folle grutter oantal databerjochten, beide op ien ferfier. As de kontrôletafaze foltôge is en de datafaze stûket, giet de flater oer kaaien, routing of filterjen fan it datapaad en net oer de hânskikking. Fêstlizze in pear databerjochten en kontrolearje oft se de klant hielendal ferlitte. Dy iene observaasje spjaltet it sykjen yn 'e midden.
Histoaryske kaaimetoadebeskriuwingen yn 'e protokoldokumintaasje betsjutte net dat in bepaalde útjefte noch elk âld formaat stipet. Kontrolearje de ferzje dy't jo draaie foardat jo in ferwachting bouwe op in paragraaf dy't beskriuwt hoe't dingen earder wurken.