Est-ce que HTTPS utilise TCP ou UDP?

41

Est-ce que HTTPS utilise TCP ou UDP?

Steven
la source

Réponses:

41

HTTPS peut s'exécuter sur n'importe quel protocole de transport de flux fiable . Normalement, c'est TCP, mais cela pourrait aussi être SCTP. Il n'est PAS prévu de fonctionner sur UDP, qui est un protocole de datagramme peu fiable (en fait, bien que ce ne soit pas son nom officiel, c'est un bon moyen de se souvenir de quoi il s'agit).

L'affectation IANA pour UDP est historique; à l'époque, presque tous les protocoles se voyaient attribuer les numéros de port TCP et UDP, même s'il était prévu qu'ils n'en utiliseraient jamais qu'un. Il a été question de fusionner les registres de numéros de ports et d’attribuer un seul port à un protocole à partir de maintenant. Cela facilitera le déploiement de futurs protocoles de transport qui auraient autrement besoin de leurs propres registres. Je ne sais pas comment cette discussion s'est terminée.

Andrew McGregor
la source
1
La plupart des implémentations SSL l'exposent en tant que socket SSL, ce qui implique TCP. Il est très rare d’utiliser un autre moyen de transport.
Nasko
3
Attention: cette réponse est obsolète (il y a 9 ans). Examinez la réponse à propos du protocole QUIC, qui est une implémentation utilisée par Google pour Chrome. Je dis juste.
ivanleoncz
33

Il utilise TCP. Il serait difficile de l'exécuter sur UDP sans la garantie de l'arrivée des paquets. Si les paquets n'arrivent pas, les données cryptées ne seront pas déchiffrables.

sybreon
la source
4
Ou si les paquets arrivent dans l’ordre, car UDP ne contient aucune disposition pour réorganiser les paquets comme TCP.
janneb
3
Ne pas aller à -1 parce que ce serait un peu pédant, mais il est à noter qu'il n'y a aucune raison pour qu'il ne puisse pas être écrasé sur UDP. C'est peut-être atypique, mais c'est possible.
ThatGraemeGuy
12

Pour la prochaine fois, si vous vous demandez si un service de port par défaut est exécuté sur TCP ou UDP, vous pouvez consulter / etc / services sur une machine Linux.

Deimosfr
la source
3
Ou une machine Windows, dans une invite de commande:find "https" %windir%\system32\drivers\etc\services
ThatGraemeGuy le
1
Mon / etc / services répertorie également 80 / udp. En fait, de nombreux services ont attribué les deux ports, "juste au cas où" je suppose.
Peter Eisentraut
8

De nos jours, HTTPS peut fonctionner au-dessus de TCP ou UDP.

Le nouveau protocole "QUIC" vise à remplacer plusieurs connexions TCP par une connexion UDP multiplexée et peut donc gérer SSL et HTTPS:

HTTPS → SSL → Flux QUIC → UDP → IP

QUIC a été développé à l'origine en 2012 par Google et est en cours de révision par l'IETF. Pour plus de détails, voir Wikipedia.

JP Tosoni
la source
Cela devrait être la solution, compte tenu du scénario actuel. Par exemple, à des fins expérimentales, je ne pouvais bloquer que le trafic HTTPS pour une adresse IP spécifique, en utilisant des DROPcibles sur une mangletable, en utilisant un udpprotocole pour la règle.
ivanleoncz
2
+1, ne s'attendait pas à apprendre quelque chose en cliquant sur cette question.
T.Coutlakis
7

Le modèle OSI permet aux protocoles de couche supérieure de s'exécuter sur tout protocole sous-jacent fournissant les services appropriés. HTTPS est HTTP utilisant la sécurité SSL / TLS. SSL / TLS s'exécute généralement sur TCP, mais rien ne vous empêche de l'exécuter sur UDP, SCTP ou tout autre protocole de couche de transport.

En fait, HTTPS sur TCP et UDP sont tous deux définis comme "bien connus" par l'IANA et ont des numéros de port réservés.

Voir http://www.iana.org/assignments/port-numbers pour les combinaisons "officielles" ports / protocoles.

pehrs
la source
1
Voir par exemple tools.ietf.org/html/rfc4347 (Datagram Transport Layer Security) pour savoir comment SSL / TLS peut s'exécuter sur UDP.
pehrs
0
  • HTTPS est HTTP sur TLS sur TCP sur IP.
  • TLS over UDP est une implémentation spécifique appelée DTLS ; où le D signifie "Datagram".
Serge Stroobandt
la source