Quais são as diferenças exatas de nível de protocolo entre SSL e TLS?

Quais são as diferenças exatas de nível de protocolo entre SSL e TLS?

Este é um aprofundamento técnico depoisesta visão geralpergunta foi feita.

Quais são as diferenças de protocolo entre SSL e TLS?
Existe realmente diferença suficiente para justificar uma mudança de nome? (em vez de chamá-lo de "SSLv4" ou SSLv5 para as versões mais recentes do TLS)

Responder1

SSLv2 e SSLv3 são completamente diferentes (e ambos são agora considerados inseguros). SSLv3 e TLSv1.0 são muito semelhantes, mas apresentam algumas diferenças.

Você poderia considerar TLSv1.0 como SSLv3.1 (na verdade é o que acontece nos registros trocados). É apenas mais fácil comparar oTLSv1.0comTLSv1.1eTLSv1.2porque todos foram editados no IETF e seguem mais ou menos a mesma estrutura. O SSLv3 sendo editado por uma instituição diferente (Netscape), torna um pouco mais difícil identificar as diferenças.

Aqui estão algumas diferenças, mas duvido que consiga listá-las todas:

  • Na ClientHellomensagem (primeira mensagem enviada pelo cliente, para iniciar o handshake), a versão é {3,0}para SSLv3, {3,1}para TLSv1.0 e {3,2}para TLSv1.1.
  • O ClientKeyExchangedifere.
  • O MAC/HMAC é diferente (TLS usa HMAC enquanto SSL usa uma versão anterior do HMAC).
  • A derivação da chave difere.
  • Os dados do aplicativo cliente podem ser enviados logo após o envio da Finishedmensagem SSL/TLS em SSLv3. No TLSv1, deve aguardar a Finishedmensagem do servidor.
  • A lista de conjuntos de cifras é diferente (e alguns deles foram renomeados de SSL_*para TLS_*, mantendo o mesmo número de identificação).
  • Há também diferenças em relação ao novoextensão de renegociação.

Eu recomendaria fortementeLivro de Eric Rescorla -SSL e TLS: Projetando e Construindo Sistemas Seguros, Addison-Wesley, 2001 ISBN 0-201-61598-3, se você realmente quiser mais detalhes. Aprendi sobre alguns dos pontos mencionados acima neste livro. O autor ocasionalmente menciona as diferenças entre SSLv3 e TLS (v1.0 apenas na época em que o livro foi escrito) ao explicar algumas das mensagens SSL/TLS, mas você precisa de uma explicação básica sobre essas mensagens para ter a chance de entender ( e não é apropriado copiar/colar deste livro aqui).

Responder2

Vou apenas repetir as outras respostas, mas talvez com uma ênfase ligeiramente diferente.

Havia um protocolo de soquetes seguros que era "de propriedade" da Netscape, chamado SSL versão 2. Uma nova versão com uma estrutura de registro diferente e melhorias de segurança também "de propriedade" da Netscape foi lançada e chamada SSL versão 3. Dentro do protocolo em vários places é um campo de número de versão binário. Para SSL versão 3, este campo é definido como 0x03 0x00, ou seja, versão 3.0. Então a IETF decidiu criar o seu próprio padrão. Possivelmente porque havia algumas incertezas de propriedade intelectual sobre SSL, incluindo se "SSL" era uma marca registrada da Netscape, quando a IETF lançou a próxima versão deste protocolo eles deram a ele seu próprio nome: Protocolo Transport Layer Security, ou TLS versão 1.0. O formato do registro e a estrutura geral são idênticos e consistentes com SSL v3. O número da versão binária foi acelerado para 0x03 0x01 e, como outros observaram, houve algumas pequenas alterações na criptografia. Desde então, existe o TLS versão 1.1 e 1.2, para os quais os números de protocolo internos são 0x03 0x02 e 0x03 0x03.

Ignorando o SSLv2, foi basicamente apenas uma mudança de nome junto com o ajuste fino normal do protocolo que acontece à medida que as pessoas ficam mais espertas em relação à segurança e ao desempenho.

Responder3

Fundamentalmente, nada mais é do que uma mudança de nome para uma versão mais recente do protocolo. Acredito que a principal razão para isso foi diferenciá-lo do padrão informal mais antigo, projetado principalmente pela Netscape depois que se tornou um protocolo oficial de rastreamento de padrões da IETF.

Como foi dito nas respostas à sua pergunta anterior, isso não significa que SSLv3 e TLSv1.0 sejam compatíveis. Citando a RFC 2246:

as diferenças entre este protocolo e o SSL 3.0 não são dramáticas, mas são significativas o suficiente para que o TLS 1.0 e o SSL 3.0 não interoperem.

Acho que se você realmente deseja saber as diferenças exatas nos protocolos, deve ler os padrões e comparar-se.

Rascunho do protocolo SSLv3 da Netscape TLSv1.0 RFC 2246

Responder4

Diferenças:

  • O TLS é executado com base em um protocolo padrão. Uma conexão TLS começa como uma sessão não criptografada de um serviço padrão, mas em algum momento eles começam a negociar a criptografia. Requer a extensão do protocolo padrão para esta negociação.
  • Os protocolos padrão são executados sobre SSL. Uma conexão SSL primeiro negocia a criptografia e depois executa o protocolo básico sobre ela.

informação relacionada