- 2/14/2019
- 2 minutes de lecture
Ce document spécifie le protocole Secure Socket Tunneling Protocol(SSTP). Le SSTP est un mécanisme permettant d’encapsuler le trafic du protocole point à point (PPP)sur un protocole HTTPS, comme spécifié dans , ,et . Ce protocole permet aux utilisateurs d’accéder à un réseau privé en utilisant HTTPS. L’utilisation deHTTPS permet de traverser la plupart des pare-feu et des proxies web.
De nombreux services VPN fournissent un moyen pour les utilisateurs mobiles et à domicile d’accéder au réseau de l’entreprise à distance en utilisant le protocole de tunneling point à point (PPTP) et le protocole de tunneling couche deux/sécurité du protocole Internet(L2TP/IPsec). Cependant, avec la popularisation des pare-feu et des proxies web, de nombreux fournisseurs de services, comme les hôtels, n’autorisent pas le trafic PPTP et L2TP/IPsec. Les utilisateurs ne bénéficient donc pas d’une connectivité omniprésente à leurs réseaux d’entreprise. Par exemple, le blocage des ports GRE (generic routing encapsulation) par de nombreux fournisseurs de services Internet (ISP) est un problème courant lors de l’utilisation du PPTP.
Ce protocole fournit un tunnel crypté (un tunnel SSTP) au moyen du protocole SSL/TLS. Lorsqu’un client établit une connexion VPN basée sur SSTP, il établit d’abord une connexion TCP avec le serveur SSTP sur le port TCP 443. La poignée de main SSL/TLS a lieu sur cette connexion TCP.
Après la négociation réussie de SSL/TLS, le client envoie une requête HTTP avec un codage de longueur de contenu et une grande longueur de contenu sur la connexion protégée par SSL (voir la section 3.2.4.1 pour plus de détails). Le serveur renvoie une réponse HTTP avec le statutHTTP_STATUS_OK(200). Les détails spécifiques de la demande et de la réponse qui ont été discutés précédemment peuvent être trouvés dans la section 4.1. La connexion HTTPS est maintenant établie, et le client peut envoyer et recevoir des paquets de contrôle SSTPC et des paquets de données SSTP sur cette connexion. L’établissement de la connexion HTTPS lorsqu’un proxy web est présent est spécifié dans .
SSTP exécute les fonctionnalités suivantes :
-
Permettre la délimitation des trames PPP du flux continu de données qui est envoyé en utilisant HTTPS. Pour plus d’informations sur le PPP, voir .
-
Négociation de paramètres entre deux entités. Voir la section 1.7 pour plus de détails.
-
Format de message extensible pour prendre en charge de nouveaux paramètres à l’avenir. Pour plus d’informations, voir la section 2.2.
-
Opérations de sécurité pour empêcher un attaquant de type man-in-the-middle de relayer des trames PPP de manière inappropriée sur SSTP. SSTP utilise le matériel de clé généré pendant l’authentification PPP pour la liaison cryptographique (sections 3.2.5.2et 3.3.5.2.3).
Les paquets de contrôle SSTP contiennent des messages pour négocierles paramètres et pour s’assurer qu’il n’y a pas d’homme du milieu non fiable. Les paquets de données SSTPD contiennent des trames PPP comme charge utile.
Dans un VPN basé sur le SSTP, la négociation de la couche de protocole se produit dans l’ordre suivant :
-
La connexion TCP est établie à un serveur SSTP sur le port TCP443.
-
La poignée de main SSL/TLS est terminée.
-
La demande-réponse HTTPS est terminée.
-
La négociation SSTP commence.
-
La négociation PPP est initiée, et l’authentification PPP est terminée ou contournée.
-
La négociation SSTP est terminée.
-
La négociation PPP est terminée.
-
La connexion entre dans un état prêt pour le transport de toute couche réseau (par exemple, les paquets IP).
Les opérations d’encapsulation suivantes se produisent sur le client :
-
Les paquets d’application sont encapsulés sur n’importe quel protocole de transport (par exemple, TCP et UDP).
-
Les paquets de la couche transport sont encapsulés sur un protocole réseau (par exemple, IP).
-
Les paquets de la couche réseau sont encapsulés sur une couche de données PPP.
-
Les paquets PPP sont encapsulés sur SSTP.
-
Les paquets SSTP sontencapsulés sur SSL/TLS.
-
Les enregistrements SSL/TLS sont encapsulés sur TCP.
-
Les paquets TCP sont encapsulés sur IP.
-
Les paquets IP sont envoyés sur toute couche de liaison de données (telle qu’Ethernet ou PPP). Pour plus d’informations sur PPP, voir .
Côté serveur, les opérations visant à supprimer l’encapsulation se déroulent dans l’ordre inverse.