Ha valaki meglátja a TLS szót egy VPN-leírásban, és arra jut, hogy egy webes proxy meg fogja érteni a forgalmat, az gyakori rövidítés. Ezen protokollon belül a felek a saját csomagjaikat cserélik, és a TLS e csere egyik csatornájának részeként fut. A felhasználó számára fontos hasznos teher más üzenetformátumban utazik, ezért a kettő soha nem egyezik meg egy szokásos HTTPS-munkamenettel.

Először a boríték jön

Minden alagútcsomag a protokoll saját fejlécével kezdődik: üzenettípus, kulcsazonosító, bájtfolyam-átvitel esetén pedig egy hosszelőtag, amely megjelöli, hol végződik a csomag. Az olvasó, aki nem elemzi ezt a borítékot, nem tudhatja, hol kezdődik a következő mező.

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)

Ez a vázlat térkép, nem bájttáblázat, mert a pontos mezők az üzenettípus függvényei, bár az első oktett mindig együtt csomagolja az opkódot és a kulcsazonosítót. Az üzenettípus portszámból való kitalálása az, ahogyan a dekóderek végül félrenevezik azt, amit látnak. A diagnózis szempontjából a sorrend számít: átvitel, majd a protokollboríték, majd a kétféle munka egyike. Olvassa el a borítékot, mielőtt véleményt alkotna arról, ami következik. A rossz helyen kezdő dekóder magabiztos ostobaságot állít elő.

A megbízhatósági réteg a protokollhoz tartozik

A vezérlőüzenetek rendezett, nyugtázott kézbesítést igényelnek, és a protokoll ezt maga biztosítja nyugtákkal és újraküldésekkel. Egy nyugta érkezhet saját üzenetként, vagy utazhat egy másik vezérlőüzenettel, amitől a nyomok szabálytalannak tűnnek annak, aki egyetlen tiszta cserét vár.

Az előny, hogy a TLS-kézfogás megbízható hordozót kap akkor is, ha a külső átvitel UDP. Az ár, hogy egyetlen datagram csak a beszélgetés egy részét tartalmazhatja, így önálló TLS-rekordként kezelése ostobaságot szül. Az újraösszeállítást a protokoll rétegén kell elvégezni. Ezért egy rögzített csomag ritkán néz ki teljes kézfogási lépésnek.

A külső átvitel TCP-re váltása nem távolítja el ezt a réteget. A megbízható átvitel kevesebb újraküldést jelent a protokoll szintjén, nem azt, hogy a keretezés eltűnik, vagy hogy a forgalom HTTP-vé válik.

Az adatcsomagok más formátumot használnak

Amint létezik a munkamenet, a hasznos teher adatüzenetekként érkezik, amelyek belső IP-csomagokat vagy Ethernet-kereteket hordoznak. Saját kulcsaikkal és saját feldolgozásukkal védettek, és nem TLS-alkalmazásrekordok abban az értelemben, ahogy egy TLS-könyvtár elfogadná őket.

Ez a szétválás a konfigurációban látható: a vezérlőcsatornának és az adatcsatornának külön titkosítási beállításai vannak, így az egyiket megnevező naplósor semmit nem mond a másikról. Egy erős vezérlőtitkosítás erős adattitkosítás bizonyítékaként való olvasása gyakori jelentési hiba.

Tartson távol egy kapcsolódó tévhitet is a magyarázattól. A TLS nem egy nyilvános kulcsú csatorna a szimmetrikus adatcsatorna mellett, mert a TLS maga szimmetrikusan védi rekordjait, amint a kulcsok létrejönnek. A valódi különbség a szerep és a csomagformátum, nem az, hogy melyik fél milyen kriptográfiát használ.

Miért nem segíthet egy HTTPS-proxy

A TLS-t lezáró proxy TLS-rekordfolyamot, majd azon belül egy alkalmazásprotokollt vár. Ennek a protokollnak a vezérlőcsatornája a saját keretezésén belül, megbízhatósági réteggel körülvéve kerül továbbításra, ezért a lezáró proxy ezt a keretezést sérült bemenetként olvassa.

Egy átlátszó továbbító, amely bájtokat vagy datagramokat értelmezés nélkül továbbít, működhet, feltéve, hogy nem írja át és nem állítja újra össze a folyamot. A kérdés, amelyet bármely közvetítőről fel kell tenni, az, hogy az tényleges átvitelt és keretezést továbbít-e, nem pedig az, hogy támogat-e valahol TLS-t. Kérdezze meg ezt, mielőtt egy estét proxyszabályokkal tölt. Az itteni hibák többsége architekturális, nem hiányzó beállítás.

Egy nyom helyes olvasása

Először vezérlőcserét várjon, majd sokkal nagyobb számú adatüzenetet, mindkettő egy átvitelt oszt meg. Ha a vezérlési fázis befejeződik, és az adatfázis elakad, a hiba a kulcsokat, az útválasztást vagy az adatút szűrését érinti, nem a kézfogást. Rögzítsen néhány adatüzenetet, és ellenőrizze, hogy egyáltalán elhagyják-e a klienst. Ez az egyetlen megfigyelés kettévágja a keresést.

A kulcsmódszerek történeti leírásai a protokoll dokumentációjában nem jelentik azt, hogy egy adott kiadás még mindig támogat minden régi formátumot. Ellenőrizze a futtatott verziót, mielőtt várakozást építene egy olyan bekezdésre, amely leírja, hogyan működtek a dolgok korábban.

Kapcsolódó cikkek