TLS leeft am Kontrollkanal, net duerch den ganze Tunnel
D'Peere tauschen hir eege Paketen aus, an TLS leeft am Kontrollaustausch. E Proxy, deen HTTPS versteet, huet keng Ahnung, wat dësen Traffic ass.
D'Wuert TLS an enger VPN-Beschreiwung ze gesinn an ze schléissen, datt e Webproxy den Traffic versteet, ass eng heefeg Ofkierzung. Bannen dësem Protokoll tauschen d'Peere hir eege Paketen aus, an TLS leeft als Deel vun engem Kanal bannen deem Austausch. D'Notzlaascht, déi de Benotzer bekëmmert, reest an engem anere Messageformat, an dofir passen déi zwee ni mat enger gewéinlecher HTTPS-Sessioun zesummen.
Den Enveloppe kënnt als éischten
All Tunnelpaket fänkt mam eegene Header vum Protokoll un: engem Messagestyp, enger Schlësselidentitéit an, iwwer engem Bytestreamtransport, engem Längtprefix, dee markéiert, wou de Paket ophält. En Lieser, deen dësen Enveloppe net parst, kann net wëssen, wou dat nächst Feld ufänkt.
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)
Dee Skizz ass eng Kaart an net eng Bytetabell, well déi genee Felder vum Messagestyp ofhänken, obwuel dat éischt Oktett ëmmer den Opcode an d'Schlësselidentitéit zesumme packt. De Messagestyp aus der Portnummer ze roden ass de Wee, wéi Decoder am End dee se gesinn falsch benennen. D'Reiefolleg ass dat, wat fir d'Diagnos zielt: Transport, dann den Protokollenveloppe, dann eng vun zwou Aarte Aarbecht. Liest den Enveloppe, ier Dir Iech eng Meenung iwwer dat bildet, wat duerno kënnt. En Decoder, deen op der falscher Plaz ufänkt, produzéiert selbstsécheren Nonsens.
D'Zouverlässegkeetsschicht gehéiert zum Protokoll
Kontrollmessage brauchen eng uerdentlech, bestätegt Liwwerung, an de Protokoll suergt selwer dofir mat Bestätegungen an Neisendungen. Eng Bestätegung kann als eege Message ukommen oder mat enger anerer Kontrollmessage reesen, wat d'Spueren onreegelméisseg ausgesi léisst fir jiddereen, deen een eenzegen proppere Austausch erwaart.
De Virdeel ass, datt den TLS-Handshake en zouverlässegen Träger kritt, och wann den äusseren Transport UDP ass. De Präis ass, datt een eenzelt Datagram nëmmen en Deel vun deem Gespréich enthalen kann, sou datt een et als eegestännegt TLS-Record behandelt Nonsens produzéiert. D'Neizesummesetzen muss op der Protokollschicht geschéien. Dofir gesäit e gefaangene Paket selten wéi e kompletten Handshake-Schrëtt aus.
Den äusseren Transport op TCP ëmzestellen, hëlt dës Schicht net ewech. Zouverlässegen Transport bedeit manner Neisendungen op Protokollniveau, net datt d'Framing verschwënnt oder den Traffic HTTP gëtt.
Datenpakete benotzen en aneren Format
Soubal d'Sessioun existéiert, kënnt d'Notzlaascht als Datenmessagen, déi bannenzeg IP-Paketen oder Ethernet-Framen droen. Si si mat hirem eegene Schlësselen an hirer eege Veraarbechtung geschützt, an si sinn a kengem Sënn TLS-Applikatiounsrecords, deen eng TLS-Bibliothéik akzeptéiere géif.
Dës Trennung ass an der Konfiguratioun ze gesinn: de Kontrollkanal an den Datenkanal hu getrennt Chiffrenastellungen, sou datt eng Logzeil, déi een nennt, Iech näischt iwwer deen aneren seet. Eng staark Kontrollchiffre als Beweis fir eng staark Datenchiffre ze liesen ass e heefege Berichtfeeler.
Halt och eng verwandte Mëssverständnis aus der Erklärung eraus. TLS ass kee Public-Key-Kanal nieft engem symmetreschen Datenkanal, well TLS selwer seng Records symmetresch schützt, soubal d'Schlësselen etabléiert sinn. Den eigentlechen Ënnerscheed ass Roll a Paketformat, net wéi eng Aart Kryptographie all Säit benotzt.
Firwat en HTTPS-Proxy net hëllefe kann
En Proxy, deen TLS terminéiert, erwaart en TLS-Recordstrom an duerno en Applikatiounsprotokoll dobannen. Dëse Protokoll säi Kontrollkanal gëtt bannen a sengem eegene Framing mat enger Zouverlässegkeetsschicht ronderëm gedroen, sou datt en terminéierende Proxy dëst Framing als beschiedegten Input liest.
En transparente Weiderleiter, dee Bytes oder Datagramme weidergëtt, ouni se z'intersichéieren, kann funktionéieren, wann en de Stream net ëmschreift oder nei zesummesetzt. D'Fro, déi ee bei engem Intermédiaire stelle soll, ass ob en den tatsächlechen Transport an d'Framing weidergëtt, net ob en iergendwou TLS ënnerstëtzt. Frot dat, ier Dir en Owend mat Proxyregelen verbréngt. Déi meescht Feeler hei sinn architektonesch an net eng fehlend Astellung.
Eng Spuer richteg liesen
Erwaart als éischten en Kontrollaustausch, duerno eng vill méi grouss Zuel vu Datenmessagen, déi zwee een Transport deelen. Wann d'Kontrollphas fäerdeg ass an d'Datenphas stoe bleift, geet de Feeler ëm Schlësselen, Routing oder Filtere vum Datenwee an net ëm den Handshake. Fänkt e puer Datenmessagen a kontrolléiert, ob se de Client iwwerhaapt verloossen. Dee eenzege Beobachtung deelt d'Sich an zwee.
Historesch Schlësselmethodebeschreiwungen an der Protokolldokumentatioun bedeiten net, datt eng bestëmmte Verëffentlechung nach all aalt Format ënnerstëtzt. Kontrolléiert déi Versioun, déi Dir ausféiert, ier Dir eng Erwaardung op e Paragraf baut, dee beschreift, wéi d'Saachen fréier funktionéiert hunn.