Transport Layer Security é um protocolo de segurança amplamente utilizado, projetado para garantir a confidencialidade e a segurança dos dados durante a troca de dados pela Internet.. Em particular, usamos TLS diariamente para criptografar a comunicação entre servidores e clientes – uma comunicação comum para todos. Enquanto isso, as pessoas costumavam ouvir a abreviatura HTTPS sobre a mesma coisa – comunicação cliente-servidor segura. Mas qual é a diferença entre os protocolos TLS e HTTPS? Vamos descobrir isso.
A diferença entre TLS e HTTPS
O antecessor do TLS é the previous Secure Sockets Layer (SSL) protocolo de criptografia desenvolvido pela Netscape. Porque a versão TLS 1.0 começou o desenvolvimento como versão SSL 3.1, o nome do protocolo foi alterado antes da publicação. Portanto, os termos TLS e SSL às vezes são usados como sinônimos. Além disso, você pode conhecer ambas as tecnologias em uso até hoje. A maioria dos navegadores da web suporta o uso do protocolo SSL para proteger a conexão, apesar da IETF considerá-lo obsoleto em 2014. Em algumas configurações, you may witness a connection error ao tentar abrir o site com o padrão de segurança obsoleto.
SSL/TLS is what adds S to HTTP. Para tornar a conexão do site segura, você precisa de um certificado SSL/TLS atualizado. Quando você instala um certificado SSL, você o configura para transferir dados usando HTTPS. Por isso, as duas tecnologias andam de mãos dadas e, portanto, não pode ser operado um sem o outro. URLs são precedidos por HTTP (Protocolo de Transferência de Hipertexto) ou HTTPS (Protocolo de transferência de hipertexto seguro), que determina como os dados que você recebe ou envia são transferidos. Para determinar se um site usa um certificado SSL, verifique o URL e veja se ele usa HTTP ou HTTPS porque as conexões HTTPS exigem um certificado de segurança SSL. Por isso, podemos concluir que a diferença entre TLS e HTTPS não é tão grande: o primeiro faz parte do último.
Por que as empresas deveriam usar TLS?
Porque a criptografia TLS pode ajudar a proteger aplicações web contra vazamento de dados e outros ataques, HTTPS com segurança TLS é uma prática padrão para sites. Nesse ponto, não há diferença entre TLS e HTTPS, pois eles significam coisas iguais para você. O navegador Chrome promovido a transição de sites para HTTPS, depois disso, outros navegadores seguiram o exemplo. Hoje, especialistas em segurança cibernética não recomendo sites confiáveis que não tenham um ícone de cadeado HTTPS. SSL ou versões mais antigas do TLS podem conter violações exploráveis – portanto, a última versão (1.3) é a única opção. Escusado será dizer que usar conexões não seguras é como tomar banho em um box transparente no meio da praça lotada.
O que o TLS faz?
O objetivo do protocolo TLS consiste em serviços para todos os aplicativos que trabalham nele: criptografia, autenticação, e integridade. Tecnicamente, você pode aplicar apenas dois aleatoriamente, proporcionando um nível suficiente de segurança. Mas na prática, todos eles são geralmente aplicados para segurança:
- Criptografia – ocultar informações que um computador envia para outro. Mesmo que um terceiro pegue, não haverá como ler os dados sem a chave pública. Para um espectador, torna-se uma sequência ilegível de símbolos.
- Autenticação – verificar a identidade de ambas as partes da comunicação. Geralmente, isso é um aperto de mão e uma verificação de correspondência de URL. Isso garante a ausência de um terceiro que atue como intermediário obscuro e fique no meio.
- Integridade – detecção de falsificação de informações. O intermediário que mencionamos acima poderia não apenas obter a chave pública e ler as informações, mas também injetar seus próprios pacotes, falsificando o resultado. A integridade verifica a soma hash dos pacotes da Internet em cada etapa da transferência.
Como funciona o TLS?
Para que o TLS funcione em um site ou aplicativo, o servidor de origem deve conter o certificado TLS ou SSL. Uma autoridade certificadora o emite para a pessoa ou empresa proprietária do domínio. Contém informações essenciais sobre quem possui o domínio e a chave pública do servidor, que é necessário para autenticação do servidor. Então, uma conexão TLS é iniciada usando uma sequência conhecida como handshake TLS. Por exemplo, quando um usuário acessa um site que usa TLS, o handshake TLS começa entre o dispositivo do usuário (também chamado de dispositivo cliente) e o servidor web. Durante o handshake TLS, o dispositivo do usuário e o servidor web fazem o seguinte:
- Especifique a versão do TLS que eles usarão (TLS 1.0, 1.2, 1.3, etc.)
- Decida quais conjuntos de criptografia eles usarão.
- Autentique o servidor com o certificado do servidor TLS.
- Gere chaves de sessão para criptografar mensagens entre eles após a conclusão do handshake
O handshake TLS define uma cifra para cada sessão de comunicação. Conjuntos de criptografia são algoritmos que especificam as informações, como criptografia compartilhada ou chaves de sessão, para ser usado em uma determinada sessão. Por exemplo, graças à criptografia, O TLS pode estabelecer chaves de sessão correspondentes em um canal não criptografado. A criptografia é baseada em uma tecnologia de chave pública. Além disso, handshake lida com autenticação, que consiste no servidor confirmar sua identidade ao cliente.
Chaves públicas são usadas para isso. Estas são chaves de criptografia que usam criptografia unidirecional. Qualquer pessoa com uma chave pública pode descriptografar dados criptografados com a chave privada do servidor para garantir sua autenticidade. No entanto, apenas o remetente original pode criptografar os dados com a chave privada. A chave pública do servidor faz parte do seu certificado TLS.
Depois que os dados forem criptografados e autenticados, é assinado com um código de autenticação de mensagem (MAC). O destinatário pode verificar o MAC para garantir a integridade dos dados. Isto é algo como a película protetora de um frasco de aspirina, cuja integridade garante ao comprador que ninguém mexeu no medicamento.
O impacto do TLS no desempenho de aplicações Web
As versões mais recentes do TLS quase não afetam o desempenho dos aplicativos da web. No entanto, devido ao complexo processo de setting up a TLS connection, leva algum tempo e poder de processamento para carregar. Além disso, o cliente e o servidor precisam trocar dados várias vezes antes de trocar pacotes, que consome preciosos milissegundos de tempo de carregamento de aplicativos da web e memória para cliente e servidor.
Os administradores de servidor podem usar certos truques para reduzir o atraso potencial criado pelo handshake TLS. Um deles é o TLS False Start, que permite que o servidor e o cliente comece a transferir dados antes que o handshake TLS seja concluído. Outra tecnologia para acelerar o TLS é a retomada da sessão TLS. Ele permitirá que clientes e servidores que já trocaram dados usem um handshake abreviado.
Essas melhorias tornam o TLS um protocolo rápido que não deve afetar visivelmente os tempos de acesso. Quanto ao custo computacional associado ao TLS, não é muito importante para os padrões de hoje. TLS 1.3, lançado em 2018, tornou o TLS ainda mais rápido. Porque handshakes TLS em TLS 1.3 requer apenas uma viagem de ida e volta (ou comunicação bidirecional) em vez de dois, isso reduz o processo em alguns milissegundos. No entanto, suponha que um usuário já tenha se conectado a um site. Nesse caso, o handshake TLS não tem viagens de ida e volta, acelerando assim ainda mais.
Como implementar um certificado SSL no local?
Dependendo dos parâmetros de hospedagem do site, há diferentes maneiras de adicionar um certificado SSL. Às vezes, o site deve obrigatoriamente ter o certificado – por exemplo, se for uma página de comércio eletrônico. Grandes provedores de hospedagem geralmente oferecem pacotes de hospedagem que já incluem certificados SSL. Além disso, é possível transferir um SSL existente de outro host exportando-o do servidor original e importando-o para o novo servidor. Deve haver instruções especiais no site de hospedagem para isso. Finalmente, algumas autoridades de certificação exigem a compra de uma licença de servidor para cada servidor que hospeda o certificado.