TLS/SSL (Transport Layer Security / Secure Sockets Layer)
Definição
TLS (Transport Layer Security) e seu antecessor SSL (Secure Sockets Layer) são protocolos criptográficos que têm como objetivo proteger a comunicação de dados entre dois sistemas, garantindo segurança na troca de informações pela internet.
O TLS atua entre a camada de transporte (TCP) e os protocolos de aplicação (como HTTP), fornecendo:
- Criptografia dos dados em trânsito;
- Autenticação entre as partes (geralmente do servidor);
- Integridade dos dados.
Embora o termo SSL ainda seja muito usado, ele está obsoleto. A maioria dos sistemas modernos usa TLS 1.2 ou TLS 1.3.
Objetivos do TLS/SSL
- Confidencialidade: impedir que terceiros leiam os dados transmitidos.
- Integridade: detectar qualquer alteração nos dados durante o transporte.
- Autenticação: validar a identidade do servidor (e opcionalmente do cliente).
- Base para HTTPS: o TLS é o protocolo de segurança utilizado no HTTPS.
Exemplo prático (Python) — Conectar com TLS e verificar segurança
import ssl
import socket
def testar_tls(hostname):
contexto = ssl.create_default_context()
with socket.create_connection((hostname, 443)) as sock:
with contexto.wrap_socket(sock, server_hostname=hostname) as ssock:
print(f"Protocolo TLS utilizado com {hostname}:", ssock.version())
# Exemplo de uso
testar_tls("www.programicio.com")
Saída
Protocolo TLS utilizado com www.programicio.com: TLSv1.3
(A versão pode variar de acordo com o servidor.)
O ciclo do TLS/SSL
[Cliente inicia conexão] --> (Handshake TLS: troca de chaves e verificação do certificado) --> [Canal seguro estabelecido]
O handshake define os algoritmos e chaves de sessão.
Após isso, os dados são transmitidos com criptografia ponta a ponta.