Table des matières

Introduction

Informations générales

AnyConnect

Passerelle sécurisée

Flux de connexion VPN SSL AnyConnect

Connexion SSL

Allô du client

Allô du serveur

certificat du serveur

Demande de certificat client

Échange de clés client

POST - Sélection de groupe

POST - Authentification utilisateur

Téléchargeur AnyConnect

CONNEXION CSTP

Connexion DTLS

Client

Serveur

Port DTLS bloqué

Informations connexes

Introduction

Ce document décrit le flux des événements entre AnyConnect et Secure Gateway pendant l'établissement d'une connexion SSLVPN.

Informations générales

AnyConnect

AnyConnect est le client VPN Cisco conçu pour les protocoles SSL (Secure Socket Layer) et IKEv2 (Internet Key Exchange). Il est disponible pour la plupart des plates-formes de bureau et mobiles. AnyConnect établit principalement des connexions sécurisées avec les routeurs Firepower Threat Defense (FTD), Adaptive Security Appliances (ASA) ou Cisco IOS® et Cisco IOS® XE, appelés passerelles sécurisées.

Passerelle sécurisée

Dans la terminologie Cisco, un serveur VPN SSL est appelé passerelle sécurisée, tandis qu'un serveur IKEv2 (IPSec) est appelé passerelle VPN d'accès à distance. Cisco prend en charge la terminaison de tunnel VPN SSL sur ces plates-formes :

- Cisco ASA (ASAv, 5500 et 5500-X)

- Cisco FTD (gammes FTDv, 1000, 2100, 3100, 4100, 4200 et 9300)

- Cisco ISR 4000 et ISR G2

- Cisco CSR 1000v

- Cisco Catalyst 8000v

Flux de connexion VPN SSL AnyConnect

Les événements qui se produisent entre AnyConnect et Secure Gateway lors de l’établissement d’une connexion VPN SSL se divisent en six phases :

1. Connexion SSL

2. POST - Sélection des groupes

3. POST - Authentification utilisateur avec nom d'utilisateur/mot de passe (facultatif)

4. Téléchargeur VPN (facultatif)

5. CONNEXION CSTP

6. Connexion DTLS (facultatif)

Connexion SSL

La connexion SSL est initiée par le client AnyConnect après la fin de la connexion en trois étapes TCP (Transmission Control Protocol) avec un message Hello client. Le déroulement des événements et les principales leçons à retenir sont les suivants :

Allô du client

La session SSL commence par l'envoi par le client d'un message Hello du client. Dans ce message :

- L'ID de session SSL est défini sur 0, ce qui indique le lancement d'une nouvelle session.

- La charge utile comprend les suites de chiffrement prises en charge par le client et un nonce aléatoire généré par le client.

Allô du serveur

Le serveur répond par un message Hello du serveur, qui inclut :

- Suite de chiffrement sélectionnée dans la liste fournie par le client.

- Le serveur a généré l'ID de session SSL et un nonce aléatoire.

certificat du serveur

Après le paquet Server Hello, le serveur transmet son certificat SSL, qui sert d'identité. Les points clés sont :

- Si ce certificat échoue lors d’un contrôle de validation strict, AnyConnect bloque le serveur par défaut.

- L'utilisateur a la possibilité de désactiver ce bloc, mais les connexions suivantes affichent un avertissement jusqu'à ce que les erreurs signalées soient résolues.

Demande de certificat client

Le serveur peut également demander un certificat client, en envoyant une liste de noms de sujet de tous les certificats d'autorités de certification chargés sur la passerelle sécurisée. Cette demande a deux objectifs :

- Il aide le client (utilisateur) à choisir le certificat d'identité correct si plusieurs certificats d'identité sont disponibles.

- Garantit que le certificat renvoyé est approuvé par la passerelle sécurisée, même si une validation plus poussée du certificat doit encore avoir lieu.

Échange de clés client

Le client envoie ensuite un message d'échange de clé client, qui comprend une clé secrète pré-maître. Cette clé est chiffrée à l'aide de :

- Clé publique du serveur du certificat du serveur, si la suite de chiffrement choisie est basée sur RSA (par exemple, TLS_RSA_WITH_AES_128_CBC_SHA)

- Clé publique DH du serveur fournie dans le message Hello du serveur, si la suite de chiffrement choisie est basée sur DHE (par exemple, TLS_DHE_DSS_WITH_AES_256_CBC_SHA).

Sur la base du secret pré-maître, du nonce aléatoire généré par le client et du nonce aléatoire généré par le serveur, le client et la passerelle sécurisée génèrent indépendamment un secret maître. Ce secret principal est ensuite utilisé pour dériver les clés de session, assurant ainsi une communication sécurisée entre le client et le serveur.

Session SSL 1

POST - Sélection de groupe

Au cours de cette opération, le client ne possède pas d'informations sur le profil de connexion, sauf indication explicite de l'utilisateur. La tentative de connexion est dirigée vers l'URL de la passerelle sécurisée (asa.example.com), comme indiqué par l'élément group-access dans la requête. Le client indique sa prise en charge de l'authentification d'agrégation version 2, ce qui représente une amélioration significative par rapport à la version précédente, notamment en termes de transactions XML efficaces. La passerelle sécurisée et le client doivent s'entendre sur la version à utiliser. Dans les cas où la passerelle sécurisée ne prend pas en charge la version 2, une opération POST supplémentaire est déclenchée, entraînant le retour du client à la version précédente.

Dans la réponse HTTP, la passerelle sécurisée indique les éléments suivants :

- Version de l'authentification agrégée prise en charge par la passerelle sécurisée.

- Liste des groupes de tunnels et formulaire Nom d'utilisateur/Mot de passe.

Remarque : Le formulaire inclut un élément select qui répertorie les alias de groupe de tous les profils de connexion configurés sur la passerelle sécurisée. Par défaut, l'un de ces alias de groupe est mis en surbrillance avec l'attribut booléen = "true" sélectionné. Les éléments tunnel-group et group-alias correspondent à ce profil de connexion choisi.

POST - Sélection de groupe 1

Si l'utilisateur choisit un profil de connexion différent dans cette liste, une autre opération POST a lieu. Dans ce cas, le client envoie une requête POST avec l'élément group-select mis à jour afin de refléter le profil de connexion choisi, comme le montre cette image.

POST - Sélection de groupe 2

POST - Authentification utilisateur

Dans cette opération, AnyConnect envoie ces informations à la passerelle sécurisée :

- Informations de profil de connexion sélectionnées : Cela inclut le nom du groupe de tunnels et l'alias du groupe, comme indiqué par la passerelle sécurisée lors de l'opération précédente.

- Nom d'utilisateur et mot de passe : Identifiants d'authentification de l'utilisateur.

Remarque : Ce flux étant spécifique à l'authentification AAA, il peut différer des autres méthodes d'authentification.

En réponse à l'opération POST, la passerelle sécurisée envoie un fichier XML contenant les informations suivantes :

- ID de session : Ce n'est pas la même chose que l'ID de session SSL.

- Jeton de session : Ce jeton est ensuite utilisé par le client comme cookie WebVPN.

- État d'authentification : Indiqué par un élément auth avec id = success.

- Hachage du certificat du serveur : Ce hachage est mis en cache dans le fichier préférences.xml.

- vpn-core-manifest, élément : Cet élément indique le chemin d'accès et la version du package principal AnyConnect, ainsi que d'autres composants tels que Dart, Posture, ISE Posture, etc. Il est utilisé par le téléchargeur VPN dans la section suivante.

- vpn-profile-manifest, élément : Cet élément indique le chemin (le nom du profil) et le hachage SHA-1 du profil.

Remarque : Si le client n'a pas le profil, le téléchargeur VPN de la section suivante le télécharge. Si le client possède déjà le profil, le hachage SHA-1 du profil du client est comparé à celui du serveur. En cas de non-correspondance, le téléchargeur VPN remplace le profil client par celui de la passerelle sécurisée. Cela garantit que le profil de la passerelle sécurisée est appliqué au client après l'authentification.

POST - Authentification utilisateur

Téléchargeur AnyConnect

AnyConnect Downloader lance toujours une nouvelle session SSL, ce qui explique pourquoi les utilisateurs peuvent rencontrer un deuxième avertissement de certificat si le certificat de la passerelle sécurisée n'est pas approuvé. Au cours de cette phase, il effectue des opérations GET distinctes pour chaque élément à télécharger.

Remarque : Si le profil client est téléchargé sur Secure Gateway, il est obligatoire de le télécharger ; sinon, toute la tentative de connexion est terminée.

Téléchargeur VPN

CONNEXION CSTP

AnyConnect effectue une opération CONNECT comme dernière étape de l’établissement d’un canal sécurisé. Au cours de l’opération CONNECT, le client AnyConnect envoie divers attributs X-CSTP et X-DTLS pour la passerelle sécurisée afin de les traiter. La passerelle sécurisée répond avec des attributs X-CSTP et X-DTLS supplémentaires que le client applique à la tentative de connexion en cours. Cet échange inclut le X-CSTP-Post-Auth-XML, accompagné d'un fichier XML, qui est largement similaire à celui vu dans l'étape POST-User Authentication.

Une fois la réponse reçue, AnyConnect lance le canal de données TLS. Simultanément, l'interface de la carte virtuelle AnyConnect est activée avec une valeur MTU égale à X-DTLS-MTU, en supposant que la connexion DTLS suivante est réussie.

Connexion CSTP

Connexion DTLS

Cette connexion est relativement rapide en raison des attributs échangés entre le client et le serveur lors de l'événement CONNECT. La connexion DTLS (Datagram Transport Layer Security) se déroule comme suit :

Client

X-DTLS-Master-Secret : Le mot de passe secret principal DTLS est généré par le client et partagé avec le serveur. Cette clé est essentielle pour établir une session DTLS sécurisée.

X-DTLS-CipherSuite : Liste des suites de chiffrement DTLS prises en charge par le client, indiquant les capacités de chiffrement du client.

Serveur

X-DTLS-Session-ID : ID de session DTLS attribué par le serveur au client, assurant ainsi la continuité de la session.

X-DTLS-CipherSuite : Suite de chiffrement sélectionnée par le serveur dans la liste fournie par le client, garantissant que les deux parties utilisent une méthode de chiffrement compatible.

Remarque : Pendant que la connexion DTLS est en cours, le canal de données TLS continue de fonctionner. Cela garantit que la transmission des données reste cohérente et sécurisée pendant le processus d'échange. Une transition transparente vers le canal de cryptage de données DTLS ne se produit qu'une fois la connexion DTLS terminée.

Connexion DTLS

Port DTLS bloqué

Si le port DTLS est bloqué ou si la passerelle sécurisée ne répond pas aux paquets Hello du client DTLS, AnyConnect effectue une réémission temporisée exponentielle avec un maximum de cinq tentatives, en commençant par un délai de 1 seconde et en augmentant jusqu’à 16 secondes.

Si ces tentatives échouent, AnyConnect applique la MTU TLS réelle, telle que spécifiée par la valeur X-CSTP-MTU retournée par la passerelle sécurisée pendant l'opération CONNECT, à la carte virtuelle AnyConnect. Étant donné que cette MTU diffère de la MTU précédemment appliquée (X-DTLS-MTU), une reconfiguration de la carte virtuelle est nécessaire. Cette reconfiguration apparaît à l'utilisateur final comme une tentative de reconnexion, bien qu'aucune nouvelle négociation n'ait lieu au cours du processus. Une fois la carte virtuelle reconfigurée, le canal de données TLS continue de fonctionner.

Bloc de ports DTLS

Informations connexes

- Référence de documentation des technologies VPN Cisco

- Assistance technique de Cisco et téléchargements