O que é SSL e TLS? E por que é hora de atualizar para TLS 1.3
23 de janeiro de 2018Aqui estão os conceitos básicos dos protocolos SSL/TLS como funciona e o que vem depois.
Por Josh Fruhlinger
Desde da criação da Internet, os protocolos SSL e seu sucessor, TLS, forneceram criptografia e segurança que tornam possível o comércio de internet [e transações eletrônicas de todos os tipos.]
A história de décadas desses protocolos foi marcada por atualizações contínuas que visam acompanhar os atacantes cada vez mais sofisticados. A próxima versão principal do protocolo, TLS 1.3, em breve será finalizada – e a maioria de quem roteia um site irá querer atualizar, porque os cibercriminosos estão se preparando.
O que é SSL?
Secure Sockets Layer, ou SSL, foi o nome original do protocolo quando foi desenvolvido em meados da década de 1990 pela Netscape, a empresa que fez o navegador mais popular na época. O SSL 1.0 nunca foi lançado ao público, e o SSL 2.0 teve falhas graves. O SSL 3.0, lançado em 1996, foi completamente reformulado, e preparou o cenário para o que se seguiu.
Veja o que os diferentes certificados realmente significam
Leia também SSL: Tipos de certificados para proteger seu site
O que é TLS?
A versão do protocolo TLS foi lançada em 1999, foi padronizada pela Internet Engineering Task Force (IETF) e recebeu um novo nome: Transport Layer Security, ou TLS. Como observa a especificação TLS , “as diferenças desse protocolo e SSL 3.0 não são dramáticas”. Assim, não é realmente uma questão de TLS vs. SSL; Em vez disso, os dois formam uma série de protocolos continuamente atualizados, e geralmente são agrupados como SSL / TLS.
O protocolo TLS criptografa o tráfego de internet de todos os tipos. O mais comum é o tráfego da web; Você sabe que seu navegador está conectado via TLS se a URL no seu endereço começar com “https”, e há um indicador com um cadeado informando que a conexão é segura, como nesta captura de tela do Chrome.
Mas TLS também pode ser usado por outros aplicativos, incluindo e-mail, por exemplo.
Como funciona o TLS
A criptografia é necessária para se comunicar de forma segura pela internet: se seus dados não são criptografados, qualquer um pode examinar seus pacotes e ler informações confidenciais. O método mais seguro de criptografia é chamado de criptografia assimétrica; isso requer duas chaves criptográficas – informações, geralmente muito grandes – para funcionar corretamente, um público e um privado.
A matemática aqui é complexa, mas, em essência, você pode usar a chave pública para criptografar os dados, mas precisa da chave privada para decriptografar. As duas chaves estão relacionadas umas com as outras por alguma fórmula matemática complexa que é difícil de engenharia reversa por força bruta.
Pense na chave pública como informação sobre a localização de uma caixa de correio bloqueada com um slot na frente e a chave privada como a chave que desbloqueia a caixa de correio. Qualquer pessoa que saiba onde a caixa de correio se encontra pode colocar uma mensagem nela, mas para outras pessoas acessem a mensagem dentro da caixa precisam da chave privada.
Como a criptografia assimétrica envolve esses problemas matemáticos difíceis, é preciso uma grande quantidade de recursos de computação, tanto que, se você o usasse para criptografar toda a informação em uma sessão de comunicação, o computador e a conexão parariam.
O TLS contorna esse problema apenas usando criptografia assimétrica no início de uma sessão de comunicação para criptografar a conversa que o servidor e o cliente devem concordar em uma única chave de sessão que ambos usarão para criptografar seus pacotes a partir desse ponto.
A criptografia usando uma chave compartilhada é chamada de criptografia simétrica.
Como essa chave de sessão foi estabelecida usando criptografia assimétrica, a sessão de comunicação como um todo é muito mais segura do que seria de outra forma.
O processo pelo qual essa chave de sessões é acordada é chamado de handshake – aperto de mão, já que é o momento em que os dois computadores comunicantes se apresentam um ao outro, e está no coração do protocolo TLS.
Processo de handshake TLS
O processo de handshake TLS é bastante complexo, e há várias variações permitidas pelo protocolo. As etapas a seguir fornecem um amplo esquema que deve dar uma ideia de como ele funciona.
1 – O cliente entra em contato com o servidor e solicita uma conexão segura. O servidor responde com a lista de conjuntosde cifras – kits de ferramentas algorítmicas de criação de conexões criptografadas – que ele sabe como usar. O cliente compara isso com sua própria lista de conjuntos de cifras suportados, seleciona um, e permite que o servidor saiba que ambos estarão usando.
2 – O servidor então fornece seu certificado digital,um documento eletrônico emitido por uma autoridade certificadora de terceiros que confirma a identidade do servidor. A informação mais importante no certificado é a chave criptográfica pública do servidor. O cliente confirma a autenticidade do certificado.
3 – Usando a chave pública do servidor, o cliente e o servidor estabelecem uma chave de sessão que ambos usarão para o resto da sessão para criptografar a comunicação.
Existem várias técnicas para fazer isso.
O cliente pode usar a chave pública para criptografar um número aleatório que é enviado ao servidor para decriptografar, e ambas as partes usam esse número para estabelecer a chave da sessão. Alternativamente, as duas partes podem usar o que é chamado de troca de chaves Diffie-Hellman para estabelecer a chave da sessão.
Como o próprio nome indica, a chave da sessão só é boa para o curso de uma sessão de comunicação única e ininterrupta. Se, por algum motivo, as comunicações entre o cliente e o servidor são interrompidas – devido a um problema de rede, por exemplo, ou porque o cliente está ocioso por muito tempo – será necessário um novo aperto de mão para estabelecer uma nova chave de sessão quando a comunicação for restabelecida.
Vulnerabilidades TLS 1.2 e TLS 1.2
TLS 1.2 é a versão mais atual do protocolo, e tem sido por vários anos. Ele estabeleceu uma série de novas opções criptográficas para comunicação. No entanto, como algumas versões anteriores do protocolo, também permitiu a utilização de técnicas criptográficas antigas, de modo a suportar computadores mais antigos. Infelizmente, isso abriu caminho para vulnerabilidades, já que essas técnicas antigas se tornaram mais vulneráveis à medida que o tempo passou e o poder de computação se tornou mais barato.
Em particular, o TLS 1.2 tornou-se cada vez mais vulnerável aos chamados ataques do “man-in-the-middle” , nos quais um hacker intercepta pacotes na comunicação média e os envia depois de lê-los ou alterá-los. Ele também está aberto aos ataques POODLE, SLOTH, e DROWN. Muitos desses problemas surgiram nos últimos dois anos, aumentando a sensação de urgência para atualizar o protocolo.
TLS 1.3
Felizmente, a ajuda está a caminho. A versão 1.3 do protocolo TLS, atualmente em forma de rascunho, mas em breve finalizada, conecta muitos desses buracos descartando o suporte para sistemas de criptografia legados . Existe uma compatibilidade com versões anteriores, no sentido de que as conexões retornarão ao TLS 1.2 se uma extremidade não for capaz de usar os sistemas de criptografia mais recentes na lista 1.3 aprovada.
No entanto, se, por exemplo, um ataque “man-in-the-middle” tentar forçar um retorno para 1,2 para bisbilhotar os pacotes, será detectado e a conexão cai.
Ainda existem servidores que utilizam versões do TLS ainda mais antigos do que 1.2 – alguns ainda estão usando o protocolo SSL original. Se seu servidor é um desses, você deve fazer as atualizações agora.
TLware crimeware
Uma última nota sobre TLS e segurança: os bons não são os únicos que usam! Muitos cibercriminosos usam TLS para criptografar o tráfego de comando e controle entre seus servidores e Malware instalados nos computadores da vítima.
Existem várias técnicas para lidar com esse tipo de ataque criptografado, incluindo o uso de metadados de rede sobre o tráfego criptografado e para ter uma ideia do que os atacantes estão fazendo sem realmente ler nada disso.
Fonte:CSO ONLINE
Artigo original escrito em Inglês por por Josh Fruhlinger