O HTTPS usa TCP ou UDP?

40

O HTTPS usa TCP ou UDP?

Steven
fonte

Respostas:

41

O HTTPS pode ser executado em qualquer protocolo de transporte de fluxo confiável . Normalmente, isso é TCP, mas também pode ser SCTP. NÃO é esperado executar o UDP, que é um protocolo de datagrama não confiável (na verdade, embora esse não seja o nome oficial, é uma boa maneira de lembrar o que é).

A atribuição da IANA para o UDP é histórica; na época, quase todos os protocolos receberam os números de porta TCP e UDP, mesmo que se esperasse que ele usasse apenas um. Houve uma discussão sobre a mesclagem dos registros de número de porta e a atribuição apenas de uma porta a um protocolo daqui em diante. Isso facilita a implantação de futuros protocolos de transporte que, de outra forma, precisariam de seus próprios registros. Não estou ciente de como essa discussão terminou.

Andrew McGregor
fonte
11
A maioria das implementações SSL o expõe como soquete SSL, o que implica em TCP. Existem ocorrências muito raras de usar qualquer outro transporte.
Nasko 14/05
3
Aviso: esta resposta está desatualizada (há 9 anos). Dê uma olhada na resposta sobre o protocolo QUIC, que é uma implementação que o Google usa para o Chrome. Apenas dizendo.
ivanleoncz
33

Ele usa TCP. Seria difícil executá-lo no UDP sem a garantia de pacotes chegando. Se os pacotes não chegarem, os dados criptografados não serão decifráveis.

sybreon
fonte
4
Ou se os pacotes chegarem fora de ordem, pois o UDP não contém disposições para reordenar pacotes como o TCP.
janneb
3
Não vou te -1 porque seria um pouco pedante, mas vale a pena notar que não há razão para que não possa ser atropelado pelo UDP. Pode ser atípico, mas é possível.
precisa saber é o seguinte
12

Pela próxima vez, se você se perguntar se um serviço de porta padrão é executado no tcp ou no udp, consulte o / etc / services em uma máquina Linux.

Deimosfr
fonte
3
Ou uma máquina Windows, em um prompt de comando:find "https" %windir%\system32\drivers\etc\services
ThatGraemeGuy
11
Meu / etc / services também lista 80 / udp. Na verdade, muitos serviços alocaram as duas portas, "apenas no caso", eu acho.
Peter Eisentraut
8

Atualmente, o HTTPS pode ser executado acima do TCP ou UDP.

O novo protocolo "QUIC" visa substituir várias conexões TCP por uma conexão UDP multiplexada e, portanto, pode lidar com SSL e HTTPS:

HTTPS → SSL → fluxo QUIC → UDP → IP

O QUIC foi originalmente desenvolvido em 2012 pelo Google e está passando por uma revisão da IETF. Para mais detalhes, consulte Wikipedia.

JP Tosoni
fonte
Essa deve ser a resposta, considerando o cenário atual. Por exemplo, para fins experimentais, eu só podia bloquear o tráfego HTTPS para um IP específico, usando DROPdestinos na mangletabela, usando udpprotocolo para a regra.
ivanleoncz
2
+1, não esperava aprender algo ao clicar nesta pergunta.
T.Coutlakis
7

O modelo OSI permite que protocolos de camada superior sejam executados sobre qualquer protocolo subjacente que forneça os serviços corretos. HTTPS é HTTP usando segurança SSL / TLS. O SSL / TLS normalmente é executado em cima do TCP, mas não há nada para impedi-lo de executá-lo no UDP, SCTP ou em qualquer outro protocolo da camada de transporte.

Por uma questão de fato, HTTPS sobre TCP e UDP são definidos como "conhecidos" pela IANA e têm números de porta reservados.

Veja http://www.iana.org/assignments/port-numbers para obter as combinações "oficiais" de portas / protocolos.

pehrs
fonte
11
Veja, por exemplo, tools.ietf.org/html/rfc4347 (Segurança da camada de transporte de datagramas) para saber como o SSL / TLS pode ser executado no UDP.
pehrs
0
  • HTTPS é HTTP sobre TLS sobre TCP sobre IP.
  • TLS sobre UDP é uma implementação específica chamada DTLS ; onde D significa "Datagrama".
Serge Stroobandt
fonte