Sõna TLS nägemine VPN-i kirjelduses ja järeldamine, et veebipuhverserver mõistab seda liiklust, on tavaline otsetee. Selle protokolli sees vahetavad osapooled omaenda pakette ja TLS töötab selle vahetuse ühe kanali osana. Kasutajale oluline koormus liigub teises sõnumivormingus, mistõttu need kaks ei lange kunagi kokku tavalise HTTPS-seansiga.

Ümbrik tuleb esimesena

Iga tunneli pakett algab protokolli enda päisega: sõnumitüüp, võtme identifikaator ja baidivoo transpordi korral pikkuse eesliide, mis märgib, kus pakett lõpeb. Lugeja, kes seda ümbrikku ei analüüsi, ei saa teada, kust järgmine väli algab.

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)

See visand on kaart, mitte baiditabel, sest täpsed väljad sõltuvad sõnumitüübist, kuigi esimene oktett pakib alati opkoodi ja võtme identifikaatori kokku. Sõnumitüübi oletamine pordi numbri järgi on viis, kuidas dekoodrid lõpuks nähtut valesti nimetavad. Diagnoosimise jaoks on oluline järjekord: transport, siis protokolli ümbrik, siis üks kahest tööliigist. Lugege ümbrikku enne, kui kujundate arvamuse selle kohta, mis järgneb. Valesti alustav dekooder toodab enesekindlat jama.

Usaldusväärsuse kiht kuulub protokollile

Juhtsõnumid vajavad järjestatud, kinnitatud kohaletoimetamist ja protokoll tagab selle ise kinnituste ja kordussaadetistega. Kinnitus võib saabuda omaette sõnumina või rännata koos teise juhtsõnumiga, mis muudab jäljed korrapäratuks kõigile, kes ootavad üht puhast vahetust.

Eelis on see, et TLS-käepigistus saab usaldusväärse kandja ka siis, kui väline transport on UDP. Hind on see, et üks datagramm võib sisaldada ainult osa sellest vestlusest, mistõttu selle käsitlemine eraldiseisva TLS-kirjena toodab jama. Uuesti kokkupanek peab toimuma protokollikihis. Seetõttu näeb püütud pakett harva välja nagu täielik käepigistuse samm.

Välise transpordi TCP-le lülitamine ei eemalda seda kihti. Usaldusväärne transport tähendab vähem kordussaadetisi protokolli tasandil, mitte seda, et raamimine kaob või liiklus muutub HTTP-ks.

Andmepaketid kasutavad teistsugust vormingut

Kui seanss on olemas, saabub kasulik koormus andmesõnumitena, mis kannavad sisemisi IP-pakette või Etherneti kaadreid. Neid kaitstakse nende endi võtmete ja nende enda töötlusega ning need ei ole TLS-i rakenduskirjed üheski tähenduses, mida TLS-i teek aktsepteeriks.

See eraldatus on konfiguratsioonis nähtav: juhtkanalil ja andmekanalil on eraldi šifri seaded, nii et ühte nimetav logirida ei ütle teise kohta midagi. Tugeva juhtšifri lugemine tugeva andmešifri tõestuseks on tavaline aruandlusviga.

Hoidke seletusest väljas ka seotud väärarusaam. TLS ei ole avaliku võtme kanal, mis seisab sümmeetrilise andmekanali kõrval, sest TLS ise kaitseb oma kirjeid sümmeetriliselt pärast võtmete loomist. Tõeline erinevus on roll ja paketivorming, mitte see, millist krüptograafiat kumbki pool kasutab.

Miks HTTPS-i puhverserver ei aita

Puhverserver, mis lõpetab TLS-i, ootab TLS-kirjete voogu ja seejärel rakendusprotokolli selle sees. Selle protokolli juhtkanalit kantakse selle enda raamimise sees, ümber usaldusväärsuse kiht, mistõttu lõpetav puhverserver loeb seda raamimist rikutud sisendina.

Läbipaistev edastaja, mis laseb baidid või datagrammid läbi ilma neid tõlgendamata, võib töötada, kui see voogu ümber ei kirjuta ega uuesti kokku ei pane. Küsimus, mida iga vahendaja kohta küsida, on see, kas ta edastab tegelikku transporti ja raamimist, mitte kas ta kuskil TLS-i toetab. Küsige seda enne, kui kulutate õhtu puhverserveri reeglitele. Enamik siinseid tõrkeid on arhitektuursed, mitte puuduv seade.

Jälje õige lugemine

Oodake esmalt juhtvahetust, seejärel palju suuremat arvu andmesõnumeid, mõlemad jagavad üht transporti. Kui juhtfaas lõpeb ja andmefaas takerdub, puudutab viga võtmeid, marsruutimist või andmetee filtreerimist, mitte käepigistust. Püüdke paar andmesõnumit ja kontrollige, kas need üldse kliendist väljuvad. See üks tähelepanek poolitab otsingu.

Ajaloolised võtmemeetodite kirjeldused protokolli dokumentatsioonis ei tähenda, et antud väljalase toetab endiselt iga vana vormingut. Kontrollige versiooni, mida käitate, enne kui loote ootuse lõigule, mis kirjeldab, kuidas asjad varem töötasid.

Seotud artiklid