TLS-Schlësseldeelung géint Client-Zertifikat: wat mellt sech un?
Trennt d'Schlësselevereechnung vun der Client-Authentifizéierung an der Applikatiounsidentitéit, a liest d'Handshake-Noriichten, déi weisen, wat eng Verbindung tatsächlech benotzt huet.
En ëffentleche Schlëssel-Austauschwäert an engem Handshake droen ass net déiselwecht Evenement wéi e Client, dee sech umellt. Dat engt setzt kryptografeschen Zoustand fir d'Verbindung op; dat anert seet, wien de Client ass, an et geschitt nëmmen, wann de Server et freet an den Austausch et ënnerstëtzt. Dat éischt als dat zweet ze behandelen féiert zu falschen Ofleideungen driwwer, wat eng VPN verstoppt an wat net. Liest d'Noriichten an entscheet duerno, wat vun véier Eegenschaften dir tatsächlech observéiert hutt.
Zwee Objeten, déi an enger Opnam gläich ausgesinn
En TLS 1.3-Client ka Schlësselaustauschmaterial an sengem éischte Fluch bäidroen, ouni en Zertifikat virzeleeën. Dee Bäitrag ass vu Konzept ëffentlech, well de Server en brauch, fir de gemeinsam Geheimnis ofzeleeden. En Client-Zertifikat ass eng aner Noriicht a gëtt eréischt geschéckt, nodeems de Server eng ugefrot huet. Et dréit eng Identitéit, déi de Server duerno verifizéiert, an d'gegenseiteg Authentifizéierung ass eng Entscheedung vum Server, net eng Eegenschaft, déi d'Cipher Suite implizéiert. D'Applikatiounsidentitéit ass eng ganz drëtt Saach: en Umellformular, en Bearer-Token, e Cookie. Nee vun deene erschéngt am Handshake, an all si si iwwerliewe eng Ännerung vum Netzwierkwee.
| Object in play | What it establishes |
|---|---|
| Key-exchange share | Cryptographic state for this connection |
| Server certificate | Which server the client reached |
| Client certificate | Client authentication, when requested |
| Application session | Account identity inside the application |
Déi véier Zeilen sinn onofhängeg. Eng Verbindung ka Zeil eent an zwee hunn, Zeil dräi iwwersprangen an nach ëmmer Zeil véier an engem Cookie-Header droen.
Entscheet, wat en opgehollenen Handshake beweise kann
Just aus dem Handshake léiert en Observateur déi ausgehandelt Versioun, d'Cipher Suite, dem Server säin Zertifikat an déi ëffentlech Schlësselaustauschwäerter. Dat duerft, fir eng Client-Implementéierung ze fingerprinten an ze gesinn, wéi e Server kontaktéiert gouf. Wat et net gëtt, ass de private Zoustand, deen néideg ass, fir d'Verbindung ze decrypten; seng Geheimhaltung berout op dem ephemeren Austausch an net op dem ëffentlechen Deel. Et gëtt och keng Kontidentitéit, déi vun Ufank un net am Handshake war.
Dofir ass déi éierlech Konklusioun enk: an dësem Austausch gouf keen Client-Zertifikat virgeluecht. Et ass net, well de Client näischt Verknäppbares geschéckt huet, an et ass bestëmmt net, well d'Sessioun keng Identifikatioun gedroen huet.
Liest d'Noriichten amplaz vum Cipher-Numm
Frot de Server, wat en ufreet, amplaz vun der Cipher Suite ofzeleeden. En TLS 1.3-Handshake mat enger Zertifikatsufro ass am Transkript ze gesinn, an säin Absenz ass genausou siichtbar.
openssl s_client -connect app.example.net:443 -tls1_3 -msg < /dev/null 2>&1 | grep -i -E 'key_share|CertificateRequest'
Widderhollt duerno mat engem konfiguréierten Client-Zertifikat a vergläicht. Déi zweet Ausféierung sollt weisen, datt den Zertifikat geschéckt a akzeptéiert gëtt; déi éischt sollt keen weisen, an dat ass den konkreten Ënnerscheed, ëm deen et geet.
openssl s_client -connect app.example.net:443 -tls1_3 -cert client.pem -key client.key -quiet
Wann dir just de gewéinleche Browserfall braucht, duerft déi ausféierlech Client-Ausgab, fir d'Protokollversioun, d'Resultat vun der Verifikatioun a fir ze gesinn, ob en Client-Zertifikat ugebuede gouf. En Server, deen ni eng Zertifikatsufro schéckt, kann eng kritt hunn.
Wou d'Reprise d'Äntwert ännert
D'Reprise an TLS 1.3 benotzt Ticketen, déi u geheime Zoustand gebonnen sinn, sou datt eng spéider Verbindung ouni vollständigen Zertifikatsaustausch fäerdeg gëtt. Dat reduzéiert, wat en Observateur gesäit, an ännert, wat den Transkript beweist. Et schaaft keng Identitéit do, wou keng war. Eng widderholl Sessioun gehéiert nach ëmmer zu der selwechter Applikatiounssessioun, an all Cookie oder Token an där Sessioun bleift den Identifikator, op deen et ukënnt.
Dofir verpasst eng Dateschutz-Iwwerpréifung, déi bei "kee Client-Zertifikat" stoppt, den interessanten Deel. D'Fro ass, wien en stabelen Identifikator hält, net wéi eng Noriicht an engem Handshake gefehlt huet.
Schreift véier Eegenschaften op, net eng eenzeg Uerteel
Schreift Schlësselevereechnung, Serververifikatioun, Client-Authentifizéierung an Applikatiounsidentitéit als véier getrennte Zeilen op, mam Beweis fir jiddwereng. Dës Lëscht iwwerlieft Ännerunge vun der Protokollversioun, an et mécht en Argument iwwer Dateschutz fir anerer nogepréifbar. Füügt duerno bäi, wat den Netzwierkwee bäidréit. Eng VPN ännert d'Quelladress, déi en Déngscht gesäit; si entfernt keen Umellen, kee Cookie an kee Apparat-Fingerofdrock, déi d'Applikatioun schonn huet.
Schreift d'ausgehandelt Versioun vun der Verbindung an d'Resultat vun der Zertifikatsufro zesummen op, well genau dës Pair en Iwwerpréifer brauch, fir är Konklusioun ouni eegen Opnam ze reproduzéieren.