De acordo com a wikipedia: http://en.wikipedia.org/wiki/Transport_Layer_Security
Parece que o TLS é um substituto do SSL, mas a maioria dos sites ainda usa SSL?
De acordo com a wikipedia: http://en.wikipedia.org/wiki/Transport_Layer_Security
Parece que o TLS é um substituto do SSL, mas a maioria dos sites ainda usa SSL?
Respostas:
Resumindo, TLSv1.0 é mais ou menos SSLv3.1. Você pode encontrar mais detalhes nesta pergunta em ServerFault .
A maioria dos sites suporta SSLv3 e TLSv1.0, pelo menos, como este estudo indica (artigo de Lee, Malkin e Nahum: Força criptográfica de servidores SSL / TLS: práticas atuais e recentes , IMC 2007) (link obtido na lista de TLS da IETF ) Mais de 98% são compatíveis com TLSv1 +.
Acho que o motivo pelo qual o SSLv3 ainda está em uso é para suporte legado (embora a maioria dos navegadores suporte TLSv1 e alguns TLSv1.1 ou mesmo TLSv1.2 atualmente). Até pouco tempo atrás, algumas distribuições ainda tinham SSLv2 (considerado inseguro) ativado por padrão junto com as outras.
(Você também pode achar esta pergunta interessante, embora seja sobre o padrão de uso de TLS em vez de SSL vs. TLS (você poderia na verdade ter o mesmo padrão com SSL). Isso não se aplica a HTTPS de qualquer maneira, já que HTTPS usa SSL / TLS desde o início da conexão.)
De http://www.thoughtcrime.org/blog/ssl-and-the-future-of-authenticity/
No início dos anos 90, no início da World Wide Web, alguns engenheiros da Netscape desenvolveram um protocolo para fazer solicitações HTTP seguras, e o que eles criaram foi chamado de SSL. Dado o relativamente escasso conhecimento sobre protocolos seguros na época, bem como a intensa pressão sob a qual todos na Netscape estavam trabalhando, seus esforços só podem ser vistos como incrivelmente heróicos. É incrível que o SSL tenha durado tanto tempo, em contraste com vários outros protocolos da mesma safra. Definitivamente, aprendemos muito desde então, mas a questão sobre protocolos e APIs é que há muito pouco para voltar.
Houve duas atualizações importantes no protocolo SSL, SSL 2 (1995) e SSL 3 (1996). Eles foram feitos cuidadosamente para serem compatíveis com as versões anteriores, para facilitar a adoção. No entanto, a compatibilidade com versões anteriores é uma restrição para um protocolo de segurança para o qual pode significar vulnerabilidade anterior.
Assim, foi decidido quebrar a compatibilidade com versões anteriores, e o novo protocolo denominado TLS 1.0 (1999). (Em retrospectiva, poderia ter sido mais claro chamá-lo de TLS 4)
As diferenças entre este protocolo e 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.
O TLS foi revisado duas vezes, TLS 1.1 (2006) e TLS 1.2 (2008).
A partir de 2015, todas as versões SSL estão quebradas e inseguras (o ataque POODLE) e os navegadores estão removendo o suporte. O TLS 1.0 é onipresente, mas apenas 60% dos sites oferecem suporte ao TLS 1.1 e 1.2 , um triste estado de coisas.
Se você estiver interessado nessas coisas, recomendo a palestra inteligente e engraçada de Moxie Marlinspike em https://www.youtube.com/watch?v=Z7Wl2FW2TcA
O TLS mantém compatibilidade retroativa com SSL e, portanto, o protocolo de comunicação é quase idêntico em qualquer uma das versões aqui mencionadas. As duas diferenças importantes entre SSL v.3, TLS 1.0 e TLS 1.2 são a função pseudo-aleatória (PRF) e a função de hashing HMAC (SHA, MD5, handshake), que é usada para construir um bloco de chaves simétricas para Criptografia de dados do aplicativo (chaves do servidor + chaves do cliente + IV). A principal diferença entre o TLS 1.1 e o TLS 1.2 é que o 1.2 requer o uso de IV "explícito" para proteger contra ataques CBC, embora não haja mudanças no PRF ou no protocolo necessário para isso. O TLS 1.2 PRF é específico para o conjunto de criptografia, o que significa que o PRF pode ser negociado durante o handshake. SSL foi originalmente desenvolvido pela Netscape Communications (histórico) e mais tarde mantido pela Internet Engineering Task Force (IETF, atual). O TLS é mantido pelo Grupo de Trabalho de Rede. Aqui estão as diferenças entre as funções PRF HMAC em TLS:
TLS 1.0 e 1.1
PRF (segredo, rótulo, semente) = P_MD5 (S1, rótulo + semente) XOR P_SHA-1 (S2, rótulo + semente);
TLS 1.2
PRF (segredo, rótulo, semente) = P_hash (segredo, rótulo + semente)
"Se não está quebrado, não toque". SSL3 funciona bem na maioria dos cenários (houve uma falha fundamental encontrada no protocolo SSL / TLS em outubro, mas esta é uma falha de aplicativos mais do que de um procol em si), então os desenvolvedores não se apressam em atualizar seus módulos SSL. O TLS traz uma série de extensões úteis e algoritmos de segurança, mas são uma adição útil e não obrigatória. Portanto, o TLS na maioria dos servidores continua sendo uma opção. Se o servidor e o cliente suportarem, ele será usado.
Atualização: em 2016, SSL 3 e até mesmo TLS até 1.2 são considerados vulneráveis a vários ataques e a migração para TLS 1.2 é recomendada. Também existem ataques a implementações de TLS 1.2, embora sejam dependentes do servidor. O TLS 1.3 está atualmente em desenvolvimento. E agora o TLS 1.2 é obrigatório.
https://hpbn.co/transport-layer-security-tls/ é uma boa introdução
O protocolo SSL foi originalmente desenvolvido na Netscape para permitir a segurança das transações de comércio eletrônico na Web, que exigia criptografia para proteger os dados pessoais dos clientes, bem como garantias de autenticação e integridade para garantir uma transação segura. Para conseguir isso, o protocolo SSL foi implementado na camada de aplicativo, diretamente em cima do TCP (Figura 4-1), permitindo que os protocolos acima dele (HTTP, e-mail, mensagens instantâneas e muitos outros) operem inalterados enquanto fornecem segurança de comunicação quando comunicação através da rede.
Quando SSL é usado corretamente, um observador de terceiros pode apenas inferir os pontos de extremidade da conexão, tipo de criptografia, bem como a frequência e uma quantidade aproximada de dados enviados, mas não pode ler ou modificar nenhum dos dados reais.
SSL 2.0 foi a primeira versão do protocolo lançada publicamente, mas foi rapidamente substituído por SSL 3.0 devido a uma série de falhas de segurança descobertas. Como o protocolo SSL era propriedade da Netscape, a IETF fez um esforço para padronizar o protocolo, resultando na RFC 2246, que foi publicada em janeiro de 1999 e ficou conhecida como TLS 1.0. Desde então, o IETF continuou iterando no protocolo para resolver falhas de segurança, bem como para estender seus recursos: TLS 1.1 (RFC 2246) foi publicado em abril de 2006, TLS 1.2 (RFC 5246) em agosto de 2008 e o trabalho está agora em andamento para definir o TLS 1.3.