Redes de computadores
Camada de aplicação
SSL/TLS e HTTPS
Professor Thiago Alexandre Nakao França
[email protected] [email protected]Recapitulando...
ISO OSI Aspecto principal Protocolos
(exemplos)
Modelo TCP/IP
clássico: Mais usado Aplicação Interface com usuário: HTTP (web sites/apps),
Browser Apps FTP(Enviar/baixar arquivos)
TCP IP Apresentação Comprime e SSL/TLS (criptografia),
Criptografa GZIP(Comprime pagina HTTP)
Aplicação Sessão
Controlar e manter a
comunicação entre 2 dispositivos
RPC(Remote Procedure Call),
durante uma sessão gRPC (Google RPC)
Transporte Transporte Definir a política de
entrega dos dados.
TCP (entrega garantida)
UDP (sem garantia)
Endereçar, encaminhar, e IP (Entrega entre redes)
Inter Rede Rede entregar pacotes entre ICMP (Diagnósticos de erros
redes diferentes. entre redes)
Endereçar, validar, coordenar Ethernet (rede cabeada)
Acesso à rede Enlace e entregar dados na mesma
rede física.
Wi-Fi (rede sem fio)
Foco: endereços e encaminhamento
Transmissão bruta de bits Não entra no cabeçalho
por um meio de comunicação
Física (cabeado ou sem fio).
de protocolos.
Apenas recebe, codifica e
Codifica bits em sinal elétrico,
transmite bits.
óptico ou de rádio.
Recapitulando... Email
Camada de aplicação (TCP/IP)
Camada mais próxima do mundo externo aos computadores.
Protocolos
Protocolos que definem serviços para aplicações interagirem com a
rede. SMTP
Navegação Downloads e uploads Acesso remoto Resolução de nomes
(no S.O) DNS (Domain Name Server)
google.com -> 8.8.8.8
quad9.net -> 9.9.9.9
Protocolos
Protocolos Protocolos Protocolos
DNS
FTP, HTTP, HTTPS SSH, Telnet
HTTP, HTTPS
Recapitulando...
Protocolo HTTP
Cabeçalhos do protocolo HTTP
podem conter outros campos,
O HTTP (Hypertext Transfer Protocol) é um protocolo de como:
comunicação da camada de aplicação, usado principalmente Authorization: credenciais de login
para transferência de páginas web. Cookie: dados armazenados no
navegador
Referer: URL da página que originou a
É um protocolo cliente-servidor baseado em requisições e requisição
respostas. Accept-Encoding: compressão (ex: gzip)
Ex de estrutura de uma requisição HTTP Ex de estrutura de uma resposta HTTP
GET /index.html HTTP/1.1 HTTP/1.1 200 OK
Host: www.exemplo.com Content-Type: text/html
User-Agent: Mozilla/5.0 Content-Length: 342
Accept: text/html <html>
<body>Olá, mundo!</body>
</html>
Rede sem fio
Protocolo HTTP PC A
10.0.0.15
Pacotes são transmitidos sem
criptografia.
Problema : Numa rede sem fio, a
radiofrequência pode ser captada
por qualquer dispositivo. PC B Destino : A (10.0.0.15) Ponto de acesso
Origem : B (10.0.0.14)
10.0.0.14 Ponto de acesso : 10.0.0.2
10.0.0.2
Headers HTTP:
Se outros dispositivos POST /index.html
captarem os pacotes, basta ler Host: http://10.0.0.15
Payload: (dados do
diretamente os dados. usuário em binário)
PC C
10.0.0.16
Programas de captura de tráfego, como o Wireshark podem facilitar
a obtenção e análise de pacotes.
Wireshark
ISO OSI
O que é o protocolo SSL/TLS? Aplicação
TCP IP
Apresentação
SSL (Secure Sockets Layer) veio Aplicação
primeiro. Sessão
Transporte
Hoje usamos TLS (Transport Layer Transporte
Security). Inter Rede
Rede
Atua acima da camada de Acesso à rede
transporte, mas abaixo da Enlace
aplicação.
Física
Responsabilidades do protocolo SSL/TLS
Criptografia Autenticação Integridade
Ocultar dados sensíveis que trafegam Impedir que um impostor se passe como Impedir a alteração de pacotes por
entre dispositivos. servidor. interceptadores.
Impostor
Um invasor de rede Wi-Fi não consegue Garantir que você está se O TLS detecta que dados foram
ler facilmente a senha que digitada num conectando ao servidor modificados indevidamente e os
site com HTTPS. verdadeiro. descarta.
Handshake TLS com RSA
Processo inicial em que cliente e servidor negociam uma conexão segura.]
Passo 0: Criação das chaves do servidor.
Antes de qualquer conexão, o servidor gera um par de chaves. Válidas por tempo determinado.
Chave Pode ser compartilhada
Pública abertamente na rede.
Clientes usarão essa chave
para criptografar o segredo
inicial. (Para iniciar a conexão)
A chave pública do servidor é
embutida em um certificado
digital.
Gerado por uma entidade
validadora , como a Let’s Encrypt .
SERVIDOR Gera Chave Cataloga servidores legítimos.
chaves
Fica guardada no servidor.
Privada
NUNCA é transmitida pela rede.
É usada p/ DESCRIPTOGRAFAR
dados criptografados com a chave pública.
Handshake
TLS1. Client Hello
Passo
O cliente (geralmente o browser) envia uma
mensagem chamada Client Hello para o servidor.
CIFRAS Nonce do
DISPONÍVEIS
Client Hello cliente
1. Client Hello
Cifras suportadas pelo cliente. ex: AES, RSA 7
(Algoritmo criptográfico e de autenticação)
Versão do TLS que suporta.
Número aleatório do cliente (nonce)
CLIENTE SERVIDOR
Handshake
TLS2: Server Hello
Passo CIFRAS Nonce do
DISPONÍVEIS
cliente
1. Client Hello
O servidor recebe o Client Hello, então responde CLIENTE 7 SERVIDOR
com um Server Hello.
Server Hello
Cifras escolhida. ex: RSA
(Algoritmo criptográfico e de autenticação)
2. Server Hello
CIFRA
Chave pública do servidor USADA Certificado com
É um certificado digital . chave pública
Assinado por uma entidade certificada .
do servidor
Como a Let’s Encrypt por exemplo.
Versão do TLS que será usada na comunicação.
Número aleatório do servidor (nonce)
Handshake
TLS3: Validação do cliente
Passo
CLIENTE SERVIDOR
Verifica se o certificado é:
● Assinado por uma CA confiável
● Não expirado ou revogado
● Correspondente ao domínio
acessado
Handshake
TLS4: Cliente gera e envia a PREMASTER SECRET
Passo
CLIENTE SERVIDOR
Cliente:
● Gera um Pre-Master Secret
(segredo aleatório)
● Criptografa esse segredo Chave
Pública
(servidor)
com a chave pública do
servidor (RSA)
● Envia isso ao servidor
Handshake
TLS5: Servidor descriptografa com chave privada
Passo
CLIENTE SERVIDOR
Servidor:
● Usa sua chave privada RSA para
descriptografar o Pre-Master
Secret
Chave
Privada
Handshake
TLS6: Ambos geram a mesma chave (simétrica)
Passo
CLIENTE SERVIDOR
Servidor e cliente:
● A partir do Pre-Master Secret + os dois
nonces (aleatórios), ambos geram a mesma
chave de sessão simétrica (ex: AES)
+ 7 + 28 + 7 + 28
● Essa chave agora será
usada por ambos para
criptografar as mensagens.
Responsabilidades do protocolo SSL/TLS
Criptografia Autenticação Integridade
Ocultar dados sensíveis que trafegam Impede que um impostor se passe como Impede a alteração de pacotes por
entre dispositivos. servidor. interceptadores.
Impostor
Chaves e tráfego sempre navegam O cliente pode verificar se o servidor Pois atacantes não conhecem a
criptografados. emitiu um certificado válido. chave de gerada após o handshake.
O tráfego propriamente dito usa a chave Ou seja: Ao descriptografar, um
gerada no handshake. pacote adulterado não vai bater com a
chave.
HTTPS:
● HTTP + TLS/SSL
● Protocolo HTTP com segurança.
● Garante confidencialidade, integridade e
autenticação através do uso do TLS/SSL.
Exercícios de fixação
Responda no papel, tira uma fotografia e submeta no moodle:
1) Explique, em suas próprias palavras, as seguintes questões:
1. O que é a principal diferença entre HTTP e HTTPS?
2. Quais são as responsabilidades do protocolo SSL/TLS?
3. Quais mecanismos de segurança o TLS fornece para garantir que os dados trocados entre o cliente e o
servidor sejam seguros?
Exercícios de fixação
Responda no papel, tira uma fotografia e submeta no moodle:
2) Abaixo estão as etapas do processo de handshake do TLS.
Organize-as na ordem correta e explique brevemente o papel de cada uma:
1. O cliente verifica o certificado digital do servidor.
2. O cliente gera um número aleatório (nonce) e envia para o servidor.
3. O servidor gera um número aleatório (nonce) e envia para o cliente.
4. O servidor envia seu certificado digital para o cliente.
5. O cliente gera e envia uma chave pré-mestra criptografada com a chave pública do servidor.
6. Ambos, cliente e servidor, geram a chave de sessão simétrica a partir do pre-master secret e dos dois nonces.
Referências bibliográficas