Inleiding
Dit document beschrijft de sessie voor Transport Layer Security (TLS) in Cisco Identity Services Engine (ISE).
Voorwaarden
Vereisten
- Kennis van TLS-handshake (Transport Layer Security).
- Kennis van Protected Extensible Verification Protocol (PEAP)-stroom
- Kennis van Cisco Identity Services Engine
Gebruikte componenten
De informatie in dit document is gebaseerd op de volgende software- en hardware-versies
- Cisco Identity Services Engine 3.2
- ISE virtuele machine (VM)
- Windows 10 PC
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Achtergrondinformatie
TLS-sessiehervatting is een techniek die wordt gebruikt om de overheadkosten van de eerste TLS-handshake te elimineren. Hiermee kunnen een client en server die eerder een TLS-sessie hebben ingesteld, die sessie hervatten zonder het resourcegerichte handshake-proces te herhalen.
Voordelen
- Het vermindert de latentie door de middel-intensieve stappen van de aanvankelijke handdruk en de tijd te vermijden die wordt vereist om dat te doen.
- Het vermindert ook de computerbelasting op de server door de intensieve sleuteluitwisseling en certificaatsvalidatieprocessen over te slaan.
Configureren
Ga op ISE als volgt te werk om de TLS-sessie in te schakelen:
Beheer > Systeem > Instellingen > Protocollen > PEAP > controleren of PEAP-sessie inschakelen
Standaard houdt ISE de sessie 7200 seconden.
Optioneel kunt u de optie Snelle herverbinding inschakelen inschakelen, waardoor de binnenmethode van PEAP wordt omzeild en de verificatie nog sneller kan worden uitgevoerd. Het is wenselijk in toepassingen zoals draadloze roaming.
Config. van ISE-PEAP-sessie
Fast Reconconnect moet ook zijn ingeschakeld in de aanvrager.
Deze configuratie is bedoeld voor Windows-native applicatie om Fast Reconconnect in te schakelen.
Windows 10-suppletconfiguratie
Deze configuratie is bedoeld voor de AnyConnect Network Access Module-profieleditor (NAM) om Fast Reconconnect in te schakelen.
AnyConnect NAM-configuratie
Verifiëren
Eerste verificatie
In de eerste PEAP-verificatie kunt u zien dat het veld Sessie-ID leeg is in de client-Hallo tijdens de TLS-handdruk.
Eerste TLS-handdruk
ISE reageert met Server Hello, die een Session ID 869175266faf4ec5fb434f819e25221fa0cf3cbf0e458806369063dba59207 bevat, samen met het certificaat en de serversleutel.
Initiële server Hallo met sessie-id
In de prt-server.log, kunt u de handshake berichten samen met de sessie-ID zien, en dat het is bewaard in het cache.
Crypto,2024-02-12 19:13:20,542,DEBUG,0x7f8f923fc700,NIL-CONTEXT,Crypto::Result=0, Crypto.SSLConnection.tlsNotifyLog - TLS LOG: where: (0x2001), ssl state (0x14), ret: 1, long string: SSLv3/TLS read client hello,SSLConnection.cpp:4495
Crypto,2024-02-12 19:13:20,542,DEBUG,0x7f8f923fc700,NIL-CONTEXT,Crypto::Result=0, Crypto.SSLConnection.tlsNotifyLog - TLS log: TLS_NOTIFY received client hello message,SSLConnection.cpp:4498
Crypto,2024-02-12 19:13:20,542,DEBUG,0x7f8f923fc700,NIL-CONTEXT,Crypto::Result=0, Call TLS Notify Callback, event 5,SSLConnection.cpp:4510
Eap,2024-02-12 19:13:20,542,DEBUG,0x7f8f923fc700,cntx=0000452308,sesn=labpan01/494696177/7940,CPMSessionID=0A6A25D0000000100030EDBC,user=host/LABPCSK.vmlab.local,CallingStationID=B4-96-91-26-DE-2E,FramedIPAddress=10.106.37.25,CLIENT HELLO, new session,EapTlsProtocol.cpp:1463
Eap,2024-02-12 19:13:20,542,DEBUG,0x7f8f923fc700,cntx=0000452308,sesn=labpan01/494696177/7940,CPMSessionID=0A6A25D0000000100030EDBC,user=host/LABPCSK.vmlab.local,CallingStationID=B4-96-91-26-DE-2E,FramedIPAddress=10.106.37.25,Session id
0000: 86 91 75 26 6f af 4e ec 5f b4 33 4f 81 9e 25 22 ..u&o.N._.3O..%"
0010: 1f a0 cf 3c bf 0e 45 88 06 36 90 63 db a5 92 07 ...<..E..6.c.... ,EapTlsProtocol.cpp:1473
Crypto,2024-02-12 19:13:20,542,DEBUG,0x7f8f923fc700,NIL-CONTEXT,Crypto::Result=0, Crypto.SSLConnection.tlsNotifyLog - TLS LOG: where: (0x2001), ssl state (0x16), ret: 1, long string: SSLv3/TLS write server hello,SSLConnection.cpp:4495
Crypto,2024-02-12 19:13:20,542,DEBUG,0x7f8f923fc700,NIL-CONTEXT,Crypto::Result=0, Crypto.SSLConnection.tlsNotifyLog - TLS log: TLS_NOTIFY sent server hello message,SSLConnection.cpp:4498
Crypto,2024-02-12 19:13:20,542,DEBUG,0x7f8f923fc700,NIL-CONTEXT,Crypto::Result=0, Call TLS Notify Callback, event 9,SSLConnection.cpp:4510
Crypto,2024-02-12 19:13:20,543,DEBUG,0x7f8f923fc700,NIL-CONTEXT,Crypto::Result=0, Crypto.SSLConnection.tlsNotifyLog - TLS LOG: where: (0x2001), ssl state (0x17), ret: 1, long string: SSLv3/TLS write certificate,SSLConnection.cpp:4495
Crypto,2024-02-12 19:13:20,543,DEBUG,0x7f8f923fc700,NIL-CONTEXT,Crypto::Result=0, Crypto.SSLConnection.tlsNotifyLog - TLS log: TLS_NOTIFY sent server certificate,SSLConnection.cpp:4498
Crypto,2024-02-12 19:13:20,543,DEBUG,0x7f8f923fc700,NIL-CONTEXT,Crypto::Result=0, Call TLS Notify Callback, event 11,SSLConnection.cpp:4510
Crypto,2024-02-12 19:13:20,581,DEBUG,0x7f8f923fc700,NIL-CONTEXT,Crypto::Result=0, Crypto.SSLConnection.tlsNotifyLog - TLS LOG: where: (0x2001), ssl state (0x18), ret: 1, long string: SSLv3/TLS write key exchange,SSLConnection.cpp:4495
Crypto,2024-02-12 19:13:20,581,DEBUG,0x7f8f923fc700,NIL-CONTEXT,Crypto::Result=0, Crypto.SSLConnection.tlsNotifyLog - TLS log: TLS_NOTIFY sent server key exchange message,SSLConnection.cpp:4498
Crypto,2024-02-12 19:13:20,581,DEBUG,0x7f8f923fc700,NIL-CONTEXT,Crypto::Result=0, Call TLS Notify Callback, event 13,SSLConnection.cpp:4510
Crypto,2024-02-12 19:13:20,581,DEBUG,0x7f8f923fc700,NIL-CONTEXT,Crypto::Result=0, Crypto.SSLConnection.tlsNotifyLog - TLS LOG: where: (0x2001), ssl state (0x1a), ret: 1, long string: SSLv3/TLS write server done,SSLConnection.cpp:4495
Crypto,2024-02-12 19:13:20,581,DEBUG,0x7f8f923fc700,NIL-CONTEXT,Crypto::Result=0, Crypto.SSLConnection.tlsNotifyLog - TLS log: TLS_NOTIFY sent server done message,SSLConnection.cpp:4498
Crypto,2024-02-12 19:13:20,737,DEBUG,0x7f8f91df9700,NIL-CONTEXT,shutting session id
0000: 86 91 75 26 6f af 4e ec 5f b4 33 4f 81 9e 25 22 ..u&o.N._.3O..%"
0010: 1f a0 cf 3c bf 0e 45 88 06 36 90 63 db a5 92 07 ...<..E..6.c.... ,SSLConnection.cpp:337
Crypto,2024-02-12 19:13:20,737,DEBUG,0x7f8f91df9700,NIL-CONTEXT,Crypto::Result=0, Crypto.SSLConnection.pvDone - session is being preserved in cache,SSLConnection.cpp:355
Vervolgens reageert de client met de specificaties van de client-sleuteluitwisseling en -wijzigingscodering.
Toetsuitwisseling voor client en andere kenmerken
Tenslotte reageert de server ook met de Change Cyper Specs en is de TLS handshake voltooid.
Specificaties voor waardecijfer wijzigen van serverzijde
In de stappen van het actieve logbestand van RADIUS kunt u zien dat de volledige TLS-handdruk tijdens de eerste verificatie plaatsvindt.
Stappen voor RADIUS Live Log TLS-handdruk
De binnenmethode voert ook de volledige MSCHAPv2-verificatie (Microsoft Challenge Handshake Verification Protocol) uit.
Stappen voor RADIUS Live Log Inner Methode
Tijdens opnieuw authenticeren
Tijdens re-authenticatie, de client verzendt dezelfde sessie-ID 869175266faf4ec5fb434f819e25221fa0cf3cbf0e458806369063dba59207 in de client-Hello die van de eerste verificatie heeft geleerd.
Klant Hallo tijdens sessiehervatting
ISE bevestigt vervolgens dat deze sessie-ID aanwezig is in Secure Socket Layer (SSL) Session cache en ze gaan allebei door wat wordt afgekort TLS handshake. Er wordt geen certificaat of belangrijke informatie uitgewisseld tijdens de verkorte TLS-handdruk en eerder onderhandelde sleutels worden opnieuw gebruikt.
Server Hallo in sessie hervatten
In het prrt-server.log kunt u zien dat na het ontvangen van de client Hello, ISE bevestigde dat de sessie wordt hergebruikt en het certificaat en de sleuteluitwisseling overslaat.
Crypto,2024-02-12 19:33:48,821,DEBUG,0x7f8f925fd700,NIL-CONTEXT,Crypto::Result=0, Crypto.SSLConnection.tlsNotifyLog - TLS LOG: where: (0x2001), ssl state (0x14), ret: 1, long string: SSLv3/TLS read client hello,SSLConnection.cpp:4495
Crypto,2024-02-12 19:33:48,821,DEBUG,0x7f8f925fd700,NIL-CONTEXT,Crypto::Result=0, Crypto.SSLConnection.tlsNotifyLog - TLS log: TLS_NOTIFY received client hello message,SSLConnection.cpp:4498
Crypto,2024-02-12 19:33:48,821,DEBUG,0x7f8f925fd700,NIL-CONTEXT,Crypto::Result=0, Call TLS Notify Callback, event 5,SSLConnection.cpp:4510
Eap,2024-02-12 19:33:48,821,DEBUG,0x7f8f925fd700,cntx=0000452772,sesn=labpan01/494696177/7949,CPMSessionID=0A6A25D0000000110043ACB0,user=host/LABPCSK.vmlab.local,CallingStationID=B4-96-91-26-DE-2E,FramedIPAddress=10.106.37.25,CLIENT HELLO, session reused,EapTlsProtocol.cpp:1463
Eap,2024-02-12 19:33:48,821,DEBUG,0x7f8f925fd700,cntx=0000452772,sesn=labpan01/494696177/7949,CPMSessionID=0A6A25D0000000110043ACB0,user=host/LABPCSK.vmlab.local,CallingStationID=B4-96-91-26-DE-2E,FramedIPAddress=10.106.37.25,Session id
0000: 86 91 75 26 6f af 4e ec 5f b4 33 4f 81 9e 25 22 ..u&o.N._.3O..%"
0010: 1f a0 cf 3c bf 0e 45 88 06 36 90 63 db a5 92 07 ...<..E..6.c.... ,EapTlsProtocol.cpp:1473
Crypto,2024-02-12 19:33:48,821,DEBUG,0x7f8f925fd700,NIL-CONTEXT,Crypto::Result=0, Crypto.SSLConnection.tlsNotifyLog - TLS LOG: where: (0x2001), ssl state (0x16), ret: 1, long string: SSLv3/TLS write server hello,SSLConnection.cpp:4495
Crypto,2024-02-12 19:33:48,821,DEBUG,0x7f8f925fd700,NIL-CONTEXT,Crypto::Result=0, Crypto.SSLConnection.tlsNotifyLog - TLS log: TLS_NOTIFY sent server hello message,SSLConnection.cpp:4498
Crypto,2024-02-12 19:33:48,821,DEBUG,0x7f8f925fd700,NIL-CONTEXT,Crypto::Result=0, Call TLS Notify Callback, event 9,SSLConnection.cpp:4510
Crypto,2024-02-12 19:33:48,821,DEBUG,0x7f8f925fd700,NIL-CONTEXT,Crypto::Result=0, Crypto.SSLConnection.tlsNotifyLog - TLS LOG: where: (0x2001), ssl state (0x23), ret: 1, long string: SSLv3/TLS write change cipher spec,SSLConnection.cpp:4495
Crypto,2024-02-12 19:33:48,821,DEBUG,0x7f8f925fd700,NIL-CONTEXT,Crypto::Result=0, Crypto.SSLConnection.tlsNotifyLog - TLS log: TLS_NOTIFY sent change cipher spec message,SSLConnection.cpp:4498
Crypto,2024-02-12 19:33:48,821,DEBUG,0x7f8f925fd700,NIL-CONTEXT,Crypto::Result=0, Call TLS Notify Callback, event 1,SSLConnection.cpp:4510
Crypto,2024-02-12 19:33:48,821,DEBUG,0x7f8f925fd700,NIL-CONTEXT,Crypto::Result=0, Crypto.SSLConnection.tlsNotifyLog - TLS LOG: where: (0x2001), ssl state (0x24), ret: 1, long string: SSLv3/TLS write finished,SSLConnection.cpp:4495
Crypto,2024-02-12 19:33:48,821,DEBUG,0x7f8f925fd700,NIL-CONTEXT,Crypto::Result=0, Crypto.SSLConnection.tlsNotifyLog - TLS log: TLS_NOTIFY sent finished message (server is ready to finish handshake),SSLConnection.cpp:4498
Ten slotte reageert Client ook met de specificaties van het wijzigingsalgoritme en wordt de handdruk van TLS voltooid.
Specificatiesessie voor client-wijzigingsalgoritme hervatten
In de stappen van het levende logbestand van RADIUS kunt u zien dat de afgekorte TLS-handdruk tijdens de herverificatie gebeurt.
Stappen voor hervatten van RADIUS Live Log TLS-sessie
Bij een nieuwe verificatie kunt u zien dat de innerlijke methode wordt overgeslagen.
RADIUS Live Log PEAP snel opnieuw verbinden
Veelgestelde vragen
1) Zijn Sessiehervatting en Snel opnieuw verbinden onafhankelijk van elkaar?
Ja, Fast Reconconnect is een optionele functie waarbij de binnenste verificatiemethode wordt omzeild. Het is niet verplicht om Snel opnieuw verbinden in te schakelen wanneer Sessiehervatting is ingeschakeld.
2) Doet het inschakelen van de sessie enig veiligheidsrisico ontstaan?
De server wijst een willekeurige sessie-ID toe tijdens de eerste handdruk met de browser (client). De client en de server slaan deze sessie-ID op, samen met de sessiesleutels en de verbindingsstatus. Om een sessie te hervatten, verstuurt de client de opgeslagen sessie-ID met het eerste protocolbericht (ClientHello) naar de server. Als de server de verbinding herkent en bereid is de sessie te hervatten, antwoordt hij met dezelfde sessie-ID om de betreffende sessie opnieuw in te stellen. Dit maakt het mogelijk om snel een beveiligde verbinding tot stand te brengen zonder dat de beveiliging verloren gaat, aangezien u de eerder onderhandelde sessiegegevens opnieuw gebruikt.
3) Worden de TLS-sessie-ID's gerepliceerd naar andere knooppunten?
Nee, de TLS sessie-ID's slaan op het PSN zelf op. Het is niet hetzelfde als andere PSN’s. In het geval van de Reboot of het opnieuw opstarten van de service van de PSN, kunnen alle sessie-ID's verloren gaan van cache en de volgende keer moet volledige TLS-handshake gebeuren.