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

39

Este é um mergulho profundo técnico após esta visão geral pergunta foi feita.

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

    
por random65537 06.09.2010 / 20:10

5 respostas

35

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

Você poderia considerar o TLSv1.0 como SSLv3.1 (na verdade, é o que acontece nos registros trocados). É mais fácil comparar o TLSv1.0 com TLSv1.1 e TLSv1.2 porque todos foram editados no IETF e seguem mais ou menos a mesma estrutura. 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 eu possa listar todas elas:

  • Na mensagem ClientHello (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 ClientKeyExchange difere.
  • O MAC / HMAC é diferente (o TLS usa o HMAC, enquanto o SSL usa uma versão anterior do HMAC).
  • A derivação da chave é diferente.
  • Os dados do aplicativo cliente podem ser enviados diretamente após o envio da mensagem SSL / TLS Finished em SSLv3. No TLSv1, ele deve aguardar a mensagem Finished do servidor.
  • A lista de conjuntos de criptografia é diferente (e alguns deles foram renomeados de SSL_* para TLS_* , mantendo o mesmo número de ID).
  • Há também diferenças em relação à nova extensão de renegociação .

Eu recomendo strongmente o livro 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. Eu aprendi sobre alguns dos pontos mencionados acima deste livro. O autor ocasionalmente menciona as diferenças entre SSLv3 e TLS (v1.0 apenas no momento em que o livro foi escrito) ao explicar algumas mensagens SSL / TLS, mas você precisa da explicação básica sobre essas mensagens para ter uma chance de entender ( e não é apropriado copiar / colar deste livro aqui).

    
por 08.09.2010 / 11:15
4

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 que era chamado de 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 de SSL versão 3. protocolo em vários lugares é um campo de número de versão binária. Para o SSL versão 3, esse campo é definido como 0x03 0x00, ou seja, versão 3.0. Então o IETF decidiu criar 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 o IETF lançou a próxima versão deste protocolo, eles deram 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 o SSL v3. O número da versão binária foi revolvido para 0x03 0x01 e, como outros notaram, houve algumas pequenas mudanças de criptografia. Desde a versão 1.1 e 1.2 do TLS, os números de protocolo internos são 0x03 0x02 e 0x03 0x03.

Ignorando o SSLv2, foi basicamente apenas uma mudança de nome, juntamente com o ajuste normal do protocolo, que acontece quando as pessoas ficam mais inteligentes sobre segurança e desempenho.

    
por 09.09.2010 / 00:46
3

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

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

the differences between this protocol and SSL 3.0 are not dramatic, but they are significant enough that TLS 1.0 and SSL 3.0 do not interoperate.

Eu acho que se você realmente quer saber as diferenças exatas nos protocolos, você deve ler os padrões e se comparar.

Esboço do protocolo SSLv3 do Netscape TLSv1.0 RFC 2246

    
por 06.09.2010 / 20:41
0

O protocolo de criptografia SSL agora é chamado de TLS, resultando em dois nomes para o mesmo protocolo. O software atual negociará o TLS versão 1 ou o SSL versão 3 automaticamente. Os humanos, por outro lado, precisam decidir entre usar o termo SSL mais reconhecível em relação à designação oficial de TLS.

SSL é o predecessor do TLS.

O TLS e o SSL criptografam os segmentos das conexões de rede na camada de aplicativo para garantir o trânsito seguro de ponta a ponta na camada de transporte.

    
por 06.09.2010 / 20:16
-2

Diferenças:

  • O TLS é executado bem em cima de um protocolo padrão. Uma conexão TLS é iniciada como uma sessão não criptografada de um serviço padrão, mas em algum momento eles começam a negociar a criptografia. Isso requer estender o protocolo padrão para essa negociação.
  • Os protocolos padrão são executados no topo do SSL. Uma conexão SSL primeiro negocia a criptografia e, em seguida, executa o protocolo básico sobre ela.
por 09.09.2010 / 00:53