Nyilvános kulcscsere-értéket hordozni egy kézfogásban nem ugyanaz az esemény, mint egy kliens bejelentkezése. Az egyik kriptográfiai állapotot hoz létre a kapcsolat számára; a másik megmondja, ki a kliens, és csak akkor történik meg, ha a kiszolgáló kéri, és a csere támogatja. Ha az elsőt a másodiknak tekintjük, téves következtetésekre jutunk arról, mit rejt el a VPN és mit nem. Olvassa el az üzeneteket, majd döntse el, a négy tulajdonság közül melyiket figyelte meg valójában.

Két objektum, amelyek egy rögzítésben egyformának látszanak

Egy TLS 1.3 kliens az első repülésében kulcscsere-anyagot adhat anélkül, hogy bármilyen tanúsítványt bemutatna. Ez a hozzájárulás tervezésnél fogva nyilvános, mert a kiszolgálónak szüksége van rá a közös titok levezetéséhez. A kliens-tanúsítvány másik üzenet, és csak akkor küldődik el, miután a kiszolgáló kért egyet. Olyan azonosságot hordoz, amelyet a kiszolgáló aztán ellenőriz, és a kölcsönös hitelesítés a kiszolgáló döntése, nem pedig a titkosítási csomag által implikált tulajdonság. Az alkalmazásazonosság teljesen harmadik dolog: bejelentkező űrlap, bearer token, süti. Ezek egyike sem jelenik meg a kézfogásban, és mindegyik túléli a hálózati útvonal változását.

Object in playWhat it establishes
Key-exchange shareCryptographic state for this connection
Server certificateWhich server the client reached
Client certificateClient authentication, when requested
Application sessionAccount identity inside the application

A négy sor független. Egy kapcsolatnak lehet első és második sora, kihagyhatja a harmadikat, és mégis hordozhatja a negyediket egy süti fejlécében.

Döntse el, mit bizonyíthat egy rögzített kézfogás

Csak a kézfogásból a megfigyelő megtudja az egyeztetett verziót, a titkosítási csomagot, a kiszolgáló tanúsítványát és a nyilvános kulcscsere-értékeket. Ez elég egy kliensmegvalósítás ujjlenyomatához és ahhoz, hogy lássa, melyik kiszolgálót kereste meg. Amit nem ad meg, az a kapcsolat visszafejtéséhez szükséges privát állapot, amelynek titkossága az efemer cserén és nem a nyilvános részen nyugszik. Nem ad fiókazonosságot sem, ami kezdettől fogva nem volt a kézfogásban.

Tehát a becsületes következtetés szűk: ebben a cserében nem mutattak be kliens-tanúsítványt. Nem arról van szó, hogy a kliens nem küldött semmi összekapcsolhatót, és biztosan nem arról, hogy a munkamenet nem hordozott semmilyen azonosítót.

Az üzeneteket olvassa, ne a titkosítás nevét

Kérdezze meg a kiszolgálót, mit kér, ahelyett hogy a titkosítási csomagból következtetne. A tanúsítványkérést tartalmazó TLS 1.3 kézfogás látható az átiratban, és a hiánya ugyanolyan látható.

openssl s_client -connect app.example.net:443 -tls1_3 -msg < /dev/null 2>&1 | grep -i -E 'key_share|CertificateRequest'

Ezután ismételje meg beállított kliens-tanúsítvánnyal, és hasonlítsa össze. A második futásnak mutatnia kell, hogy a tanúsítvány elküldődik és elfogadódik; az elsőnek semmit sem szabad mutatnia, és éppen ez a konkrét különbség, amelyről a vita szól.

openssl s_client -connect app.example.net:443 -tls1_3 -cert client.pem -key client.key -quiet

Ha csak a szokásos böngészési esetre van szüksége, a kliens részletes kimenete elegendő a protokollverzió, az ellenőrzés eredménye és annak megtekintéséhez, hogy felajánlottak-e kliens-tanúsítványt. Egy kiszolgáló, amely soha nem küld tanúsítványkérést, nem kaphatott egyet.

Ahol a folytatás megváltoztatja a választ

A TLS 1.3 folytatása titkos állapothoz kötött jegyeket használ, így egy későbbi kapcsolat teljes tanúsítványcsere nélkül is befejeződhet. Ez csökkenti, mit lát a megfigyelő, és megváltoztatja, mit bizonyít az átirat. Nem teremt azonosságot ott, ahol nem volt. A folytatott munkamenet továbbra is ugyanahhoz az alkalmazás-munkamenethez tartozik, és bármely süti vagy token abban a munkamenetben továbbra is a fontos azonosító.

Ezért egy olyan adatvédelmi áttekintés, amely megáll a "nincs kliens-tanúsítvány" pontnál, elvéti az érdekes részt. A kérdés az, melyik fél tart stabil azonosítót, nem az, melyik üzenet hiányzott egy kézfogásból.

Négy tulajdonságot rögzítsen, ne egyetlen ítéletet

Írja fel a kulcsmegállapodást, a kiszolgáló ellenőrzését, a klienshitelesítést és az alkalmazásazonosságot négy külön sorba, mindegyik bizonyítékával. Ez a leltár túléli a protokollverzió változásait, és más számára is ellenőrizhetővé teszi az adatvédelemről szóló érvet. Ezután adja hozzá, mit nyújt a hálózati útvonal. A VPN megváltoztatja a forrás címet, amelyet egy szolgáltatás lát; nem távolít el egy bejelentkezést, sütit vagy eszköz-ujjlenyomatot, amely már az alkalmazásnál van.

Rögzítse együtt a kapcsolat egyeztetett verzióját és a tanúsítványkérés kimenetelét, mert erre a párra van szüksége egy bírálónak ahhoz, hogy saját rögzítés nélkül reprodukálja a következtetését.

Kapcsolódó cikkek