SSL, ou Secure Sockets Layer, é um protocolo criptográfico projetado para fornecer comunicação segura em uma rede de computadores. Ele estabelece um link criptografado entre um servidor web e um navegador web, garantindo que todos os dados transmitidos entre eles permaneçam privados e íntegros. O SSL opera usando técnicas de criptografia assimétrica para trocar com segurança chaves de sessão simétricas, que são então usadas para criptografar dados durante a sessão.
O SSL funciona iniciando um processo de handshake entre o cliente (como um navegador da web) e o servidor (como um servidor da web). Durante o aperto de mão:
- O cliente envia uma mensagem “ClientHello” ao servidor, indicando as versões SSL/TLS e algoritmos criptográficos suportados.
- O servidor responde com uma mensagem “ServerHello”, confirmando a versão SSL/TLS e selecionando o conjunto de criptografia mais forte para criptografia.
- O servidor envia ao cliente seu certificado digital, que contém a chave pública do servidor. O certificado é emitido por uma Autoridade de Certificação (CA) confiável e inclui informações para verificar a identidade do servidor.
- O cliente verifica o certificado do servidor em relação a uma lista de CAs confiáveis armazenadas em seu armazenamento de certificados local. Se o certificado for válido e confiável, o cliente gera um segredo pré-mestre e o criptografa com a chave pública do servidor.
- Tanto o cliente quanto o servidor usam o segredo pré-mestre para gerar independentemente uma chave de sessão, que é usada para criptografia simétrica e descriptografia de dados trocados durante a sessão SSL.
A camada SSL em redes de computadores funciona como um canal de comunicação seguro entre aplicativos executados em sistemas clientes e servidores. Ele opera acima da camada de transporte (por exemplo, TCP/IP) e abaixo da camada de aplicação (por exemplo, HTTP, SMTP), fornecendo criptografia e descriptografia transparentes de dados transmitidos entre terminais de rede. A camada SSL garante a confidencialidade, integridade e autenticidade dos dados transmitidos, criptografando informações confidenciais e verificando a identidade das partes comunicantes usando certificados digitais.
Um exemplo de SSL é HTTPS (HyperText Transfer Protocol Secure), que é a versão segura do HTTP. HTTPS usa protocolos SSL/TLS para criptografar dados trocados entre navegadores e servidores web, evitando espionagem e adulteração de informações confidenciais, como credenciais de login, detalhes de pagamento e dados pessoais. Sites protegidos com HTTPS exibem um ícone de cadeado na barra de endereço do navegador, indicando que a comunicação é criptografada e segura.
DNS (Domain Name System) e SSL trabalham juntos para fornecer comunicação segura e autenticada pela Internet:
- DNS resolve nomes de domínio (por exemplo, www.example.com) para endereços IP que os computadores usam para se comunicar pela Internet.
- Os protocolos SSL/TLS, usados em HTTPS, garantem que os dados trocados entre o cliente e o servidor durante consultas e respostas DNS sejam criptografados e protegidos contra interceptação ou modificação por partes não autorizadas.
- Quando um cliente acessa um site usando HTTPS, o DNS resolve o nome de domínio para um endereço IP e o SSL/TLS protege a comunicação subsequente criptografando consultas DNS, respostas e todos os dados trocados entre o cliente e o servidor.
No geral, SSL (Secure Sockets Layer) e seu sucessor TLS (Transport Layer Security) são cruciais para estabelecer canais de comunicação seguros em redes de computadores, garantindo confidencialidade, integridade e autenticidade dos dados transmitidos entre clientes e servidores.