Inleiding
Dit document beschrijft de stroom van gebeurtenissen tussen AnyConnect en de Secure Gateway tijdens het instellen van een SSLVPN-verbinding.
Achtergrondinformatie
AnyConnect
AnyConnect is de Cisco VPN-client die is ontworpen voor Secure Socket Layer (SSL)- en Internet Key Exchange (IKEv2)-protocollen. Het is beschikbaar voor de meeste desktop- en mobiele platforms. AnyConnect legt voornamelijk beveiligde verbindingen met Firepower Threat Defense (FTD), Adaptive Security Appliances (ASA) of Cisco IOS®- en Cisco IOS® XE-routers, de zogenaamde Secure Gateways.
beveiligde gateway
In Cisco-terminologie wordt een SSL VPN-server een Secure Gateway genoemd, terwijl een (IPSec) IKEv2-server bekend staat als een Remote Access VPN Gateway. Cisco ondersteunt SSL VPN-tunnelbeëindiging op deze platforms:
- Cisco ASA (ASAv, 5500 en 5500-X-reeks)
- Cisco FTD (FTDv, 1000, 2100, 3100, 4100, 4200 en 9300-serie)
- Cisco ISR 4000- en ISR G2-reeks
- Cisco CSR 1000v
- Cisco Catalyst 8000v
AnyConnect SSL VPN-verbindingsstroom
De gebeurtenissen die plaatsvinden tussen AnyConnect en de Secure Gateway tijdens een SSL VPN-verbinding zijn onderverdeeld in zes fasen:
1. SSL-handshake
2. POST-groepselectie
3. POST - Gebruikersverificatie met gebruikersnaam/wachtwoord (optioneel)
4. VPN-downloader (optioneel)
5. CSTP-VERBINDING
6. DTLS-verbinding (optioneel)
SSL-handshake
De SSL-handshake wordt geïnitieerd door de AnyConnect-client na de voltooiing van de 3-weg handshake van het Transmission Control Protocol (TCP) met een Hello-bericht van de client. De stroom van gebeurtenissen en de belangrijkste afhaalrestaurants zijn zoals vermeld:
Cliënt Hallo
De SSL-sessie begint met het verzenden van een Hello-bericht naar de client. In dit bericht:
- De SSL-sessie-ID is ingesteld op 0, wat de start van een nieuwe sessie aangeeft.
- De payload omvat de door de client ondersteunde coderingssuites en een door de client gegenereerde willekeurige nonce.
Hallo server
De server reageert met een Hello-bericht voor de server, dat het volgende bevat:
- De geselecteerde codeersuite uit de lijst die door de client is opgegeven.
- De server genereerde SSL Session ID en een willekeurige nonce.
Servercertificaat
Na de Hello Server verzendt de server zijn SSL-certificaat, dat als identiteit dient. De belangrijkste punten zijn:
- Als dit certificaat niet voldoet aan een strikte validatiecontrole, blokkeert AnyConnect standaard de server.
- De gebruiker heeft de optie om dit blok uit te schakelen, maar daaropvolgende verbindingen geven een waarschuwing totdat de gerapporteerde fouten zijn opgelost.
Aanvraag voor clientcertificaat
De server kan ook een clientcertificaat aanvragen en een lijst met onderwerpnamen verzenden van alle certificaatautoriteiten (CA's) die op de beveiligde gateway zijn geladen. Dit verzoek dient twee doelen:
- Het helpt de klant (gebruiker) het juiste identiteitscertificaat te kiezen als er meerdere ID-certificaten beschikbaar zijn.
- Zorgt ervoor dat het geretourneerde certificaat wordt vertrouwd door de Secure Gateway, hoewel verdere certificaatvalidatie nog steeds moet plaatsvinden.
uitwisseling van clientsleutels
De client verzendt vervolgens een Client Key Exchange-bericht, dat een geheime sleutel voor de master bevat. Deze sleutel wordt versleuteld met behulp van:
- De publieke sleutel van de server van het servercertificaat, als de gekozen coderingssuite op RSA is gebaseerd (bijvoorbeeld TLS_RSA_WITH_AES_128_CBC_SHA)
- De openbare DH-sleutel van de server die wordt geleverd in het Hello-bericht van de server, als de gekozen coderingssuite op DHE is gebaseerd (bijvoorbeeld TLS_DHE_DSS_WITH_AES_256_CBC_SHA).
Op basis van het pre-master-geheim, de door de client gegenereerde willekeurige nonce en de door de server gegenereerde willekeurige nonce, genereren zowel de client als de Secure Gateway onafhankelijk een mastergeheim. Dit hoofdgeheim wordt vervolgens gebruikt om sessiesleutels af te leiden, waardoor een veilige communicatie tussen de client en de server wordt gewaarborgd.
SSL-sessie 1
POST - Groepselectie
Tijdens deze bewerking beschikt de client niet over informatie over het verbindingsprofiel, tenzij expliciet aangegeven door de gebruiker. De verbindingspoging is gericht op de Secure Gateway URL (asa.example.com), zoals aangegeven door het groepstoegangselement in het verzoek. De client geeft aan dat hij ondersteuning biedt voor aggregatie-authenticatie versie 2, wat een aanzienlijke verbetering betekent ten opzichte van de eerdere versie, met name in termen van efficiënte XML-transacties. Zowel de beveiligde gateway als de client moeten het eens worden over de te gebruiken versie. In scenario's waarin de beveiligde gateway versie 2 niet ondersteunt, wordt een extra POST-bewerking geactiveerd, waardoor de client terugvalt naar de eerdere versie.
In de HTTP-respons geeft de beveiligde gateway deze aan:
- De versie van geaggregeerde verificatie die de beveiligde gateway ondersteunt.
- Lijst met tunnelgroepen en het formulier Gebruikersnaam/Wachtwoord.
Opmerking: het formulier bevat een selectief element, dat de groepaliassen van alle verbindingsprofielen weergeeft die op de beveiligde gateway zijn geconfigureerd. Standaard wordt een van deze groepsaliassen gemarkeerd met het attribuut selected = "true" boolean. De elementen tunnelgroep en groepalias komen overeen met dit gekozen verbindingsprofiel.
POST - Groepselectie 1
Als de gebruiker een ander verbindingsprofiel uit deze lijst kiest, vindt een andere POST-bewerking plaats. In dit geval stuurt de client een POST-verzoek met het groepsgeselecteerde element bijgewerkt om het gekozen verbindingsprofiel weer te geven, zoals te zien is in deze afbeelding.
POST - Groep selectie 2
POST - Gebruikersverificatie
In deze bewerking verzendt AnyConnect deze informatie naar de beveiligde gateway:
- Informatie over het gekozen verbindingsprofiel: Dit omvat de naam van de tunnelgroep en het alias van de groep zoals aangegeven door de beveiligde gateway in de eerdere bewerking.
- Gebruikersnaam en wachtwoord: de authenticatiegegevens van de gebruiker.
Opmerking: omdat deze stroom specifiek is voor AAA-verificatie, kan deze afwijken van andere verificatiemethoden.
Als reactie op de POST-bewerking verzendt de Secure Gateway een XML-bestand met deze informatie:
- Sessie-ID: Dit is niet hetzelfde als de SSL-sessie-ID.
- Sessietoken: Deze token wordt later door de client gebruikt als de WebVPN-cookie.
- Verificatiestatus: aangegeven door een authentiek element met id = succes.
- Hash voor servercertificaten: deze hash bevindt zich in de cache in het bestand preferences.xml.
- vpn-core-manifest Element: Dit element geeft het pad en de versie van het AnyConnect-kernpakket aan, samen met andere componenten zoals Dart, Posture, ISE Posture, enzovoort. Het wordt gebruikt door de VPN-downloader in de volgende sectie.
- vpn-profile-manifest Element: Dit element geeft het pad (de naam van het profiel) en de SHA-1 hash van het profiel aan.
Opmerking: Als de client het profiel niet heeft, downloadt de VPN-downloader in de volgende sectie het. Als de client het profiel al heeft, wordt de SHA-1 hash van het clientprofiel vergeleken met dat van de server. In het geval van een mismatch overschrijft de VPN Downloader het clientprofiel met dat op de Secure Gateway. Dit zorgt ervoor dat het profiel op de Secure Gateway na verificatie op de client wordt afgedwongen.
POST - Gebruikersverificatie
AnyConnect-downloader
De AnyConnect Downloader start altijd een nieuwe SSL-sessie, daarom kunnen gebruikers een tweede certificaatwaarschuwing tegenkomen als het certificaat van de Secure Gateway niet wordt vertrouwd. Tijdens deze fase voert het afzonderlijke GET-bewerkingen uit voor elk item dat moet worden gedownload.
Opmerking: als het clientprofiel wordt geüpload op Secure Gateway, is het downloaden verplicht; anders wordt de gehele verbindingspoging beëindigd.
VPN-downloader
CSTP CONNECT
AnyConnect voert een CONNECT-bewerking uit als de laatste stap bij het instellen van een beveiligd kanaal. Tijdens de CONNECT-bewerking verzendt de AnyConnect-client verschillende X-CSTP- en X-DTLS-kenmerken voor de Secure Gateway om deze te verwerken. De Secure Gateway reageert met extra X-CSTP- en X-DTLS-kenmerken die de client toepast op de huidige verbindingspoging. Deze uitwisseling omvat de X-CSTP-Post-Auth-XML, vergezeld van een XML-bestand, dat grotendeels vergelijkbaar is met die in de POST-User Authentication-stap.
Nadat een antwoord is ontvangen, start AnyConnect het TLS-gegevenskanaal. Tegelijkertijd wordt de virtuele adapterinterface van AnyConnect geactiveerd met een MTU-waarde die gelijk is aan X-DTLS-MTU, ervan uitgaande dat de volgende DTLS-handshake succesvol is.
CSTP Connect
DTLS-handshake
Deze handshake is relatief snel vanwege de attributen die tijdens het CONNECT-evenement tussen de client en de server worden uitgewisseld. De handshake Datagram Transport Layer Security (DTLS) verloopt als volgt:
Klant
X-DTLS-Master-Secret: Het DTLS Master Secret wordt gegenereerd door de client en gedeeld met de server. Deze sleutel is cruciaal voor het opzetten van een beveiligde DTLS-sessie.
X-DTLS-CypherSuite: de lijst met DTLS-coderingssuites die door de client worden ondersteund, waarbij de coderingsmogelijkheden van de client worden aangegeven.
Server
X-DTLS-Session-ID: de DTLS-sessie-ID die door de server is toegewezen aan de client, zodat de continuïteit van de sessie wordt gewaarborgd.
X-DTLS-CypherSuite: De coderingssuite die door de server is geselecteerd uit de lijst die door de client is verstrekt, zodat beide partijen een compatibele coderingsmethode gebruiken.
Opmerking: terwijl de DTLS-handshake wordt uitgevoerd, blijft het TLS-gegevenskanaal actief. Dit zorgt ervoor dat de gegevensoverdracht consistent en veilig blijft tijdens het handshake-proces. Een naadloze overgang naar het DTLS-gegevenscoderingskanaal vindt alleen plaats nadat de DTLS-handshake is voltooid.
DTLS-handshake
DTLS-poort geblokkeerd
In het geval dat de DTLS-poort wordt geblokkeerd of de Secure Gateway niet reageert op de Hello-pakketten van de DTLS-client, voert AnyConnect een exponentiële back-up uit met maximaal vijf herhalingen, beginnend met een vertraging van 1 seconde en oplopend tot 16 seconden.
Als deze pogingen niet succesvol zijn, past AnyConnect de werkelijke TLS MTU, zoals opgegeven door de X-CSTP-MTU-waarde die door de Secure Gateway tijdens de CONNECT-bewerking wordt geretourneerd, toe op de virtuele AnyConnect-adapter. Aangezien deze MTU verschilt van de eerder toegepaste MTU (X-DTLS-MTU), is een herconfiguratie van de virtuele adapter noodzakelijk. Deze herconfiguratie wordt voor de eindgebruiker weergegeven als een poging om opnieuw verbinding te maken, hoewel er tijdens het proces geen nieuwe onderhandelingen plaatsvinden. Wanneer de virtuele adapter opnieuw is geconfigureerd, blijft het TLS-gegevenskanaal actief.
DTLS-poortblok
Gerelateerde informatie