Q1 / 2025 Universidade Federal do ABC
Segurança de Dados
Segurança em Redes
Camada de Transporte
Prof. Rodrigo Augusto Cardoso da Silva
Bibliografia
Capítulo 17
Conteúdo
01 Introdução Segurança no TCP/IP
02 TLS Transport layer security (TLS)
03 HTTPS Hyper Text Transfer Protocol Secure (HTTPS)
04 Secure Shell Secure Shell (SSH)
01
Introdução
Segurança no TCP/IP
Ataques à pilha TCP/IP
● Camada de enlace
○ ARP Spoofing, MAC flooding
● Camada de rede
○ IP Spoofing, ICMP Flooding,
Fragmentação de IP
● Camada de transporte
○ Inundação TCP SYN, inundação
UDP, TCP Reset, Sequestro de
sessão TCP
Ataques à pilha TCP/IP
● Camada de aplicação
○ SQL Injection, Cross-Site Scripting
(XSS), Cross-Site Request Forgery
(CSRF)
Protocolos para
segurança em nível de
transporte
TLS HTTPS SSH
Suíte de protocolos para Execução do HTTP sobre Protocolos para TCP
deixar TCP seguro o TLS seguro ao TLS com
suporte para
tunelamento de
conexões
02 TLS
Transport layer security (TLS)
Transport layer security
● Conexão: relação ponto a ponto,
transiente (momentânea), para
transporte de dados. Associada a uma
sessão
● Sessão: associação entre cliente e
servidor, criadas pelo protocolo de
handshake. Sessão guarda todos
parâmetros de segurança
Transport layer security
● Evolução do Secure Sockets Layer (SSL)
● Conjunto de protocolos executados
sobre o TCP
● Pode ser oferecido através de uma
biblioteca ou implementado
diretamente na aplicação
Transport layer security
● Uma sessão pode ter múltiplas
conexões associadas
● Um par cliente/servidor pode ter várias
sessões (não é comum na prática)
Parâmetros da sessão
● Identificador
● Certificado X509.v3 (pode ser nulo)
● Método de compactação
● Especificação da cifra (algoritmo
simétrico, de hash, e outros parâmetros)
● Segredo mestre (número secreto
compartilhado entre cliente e servidor )
● Retomável (pode ser usada para criar
novas conexões)
Parâmetros da conexão
● Aleatórios do servidor e cliente
● Segredo MAC de escrita do servidor
● Segredo MAC de escrita do cliente
● Chave de escrita do servidor
● Chave de escrita do cliente
● Vetores de inicialização
● Números de sequência
Arquitetura TLS
Prot. de Prot. de mudança Prot. de Prot.
de especificação HTTP
handshake de cifra alerta Heartbeat
Protocolo de registro
TCP
IP
Prot. = protocolo
Arquitetura TLS
TLS
Prot. de Prot. de mudança Prot. de Prot.
de especificação HTTP
handshake de cifra alerta Heartbeat
Protocolo de registro
TCP
IP
Prot. = protocolo
Arquitetura TLS
Prot. de Prot. de mudança Prot. de Prot.
de especificação HTTP
Handshake de cifra alerta Heartbeat
Protocolo de registro
Oferece serviços de confidencialidade
TCP (criptografia) e integridade de
mensagem (Message Authentication
IP Code)
Prot. = protocolo
Protocolo de registro
Protocolo de registro
● Tipo de conteúdo (8 bits)
● Versão principal (8 bits)
● Versão secundária (8 bits)
● Tamanho compactado (16 bits)
Protocolo de registro
Aceita seguintes cifras*:
● AES (chave de 128 ou 256 bits)
● 3DES (chave de 168 bits)
● RC4-128** (chave de 128 bits)
* lista atual pode estar diferente
** cifra de fluxo
Arquitetura TLS
Prot. de Prot. de mudança Prot. de Prot.
de especificação HTTP
handshake de cifra alerta Heartbeat
Protocolo de registro
Estabelece conexão
Autentica cliente e servidor
Negocia algoritmo de criptografia
TCP
simétrica e MAC
Negocia chaves simétricas
IP
Prot. = protocolo
Arquitetura TLS
Prot. de Prot. de mudança Prot. de Prot.
de especificação HTTP
handshake de cifra alerta Heartbeat
Protocolo de registro
Protocolo mais simples de todos
(um byte)
Serve para atualizar estado da
TCP
conexão pendente para estado
atual sem necessidade de
reinicializar conexão
IP
Prot. = protocolo
Arquitetura TLS
Prot. de Prot. de mudança Prot. de Prot.
de especificação HTTP
handshake de cifra alerta Heartbeat
Protocolo de registro
Serve para emitir alertas para o par. Exemplos de alertas:
● Mensagem não apropriada recebida (unexpected_message)
● MAC incorreto recebido (bad_record_mac)
● Erro com a função de descompactação (decompression_failure)
TCP
● Não foi possível negociar parâmetros aceitáveis
(handshake_failure)
● Campo inválido/inconsistente no handshake (illegal_parameter)
IP
● Relativo ao certificado (no_certificate, bad_certificate,
unsupported_certificate, certificate_revoked,
certificate_expired, certificate_unknown)
Prot. = protocolo
Arquitetura TLS
Prot. de Prot. de mudança Prot. de Prot.
de especificação HTTP
handshake de cifra alerta Heartbeat
Protocolo de registro
Falaremos só dele
TCP
IP
Prot. = protocolo
Arquitetura TLS
Prot. de Prot. de mudança Prot. de Prot.
de especificação HTTP
handshake de cifra alerta Heartbeat
Protocolo de registro
Mantém conectividade mesmo
durante ociosidade
TCP
Garante que par ainda está ativo
IP
Prot. = protocolo
TLS
Há outros aspectos do TLS não
mencionados aqui:
● Troca de mensagens no handshake
● Troca de chaves
● Operação do MAC
● Entre outros
Ataques ao TLS
● Protocolo é atualizado sempre para
mitigar vulnerabilidades
● Muito ataques feitos desde a introdução
do SSL em 1993
Tipos de ataques ao TLS
● Ataques ao protocolo de handshake
● Ataques ao protocolo de registro de
handshake
● Ataques ao public key infrastructure
(PKI)
● Negação de Serviço
● Entre outros
03
HTTPS
Hyper Text Transfer Protocol Secure (HTTPS)
HTTPS
● Originalmente HTTP over SSL, hoje
HTTP over TLS
● HTTP original não tem suporte a
segurança
● Conexão é iniciada usando uma sessão
do TLS
● HTTPS representado no navegador por
cadeado na barra de endereços
HTTPS
HTTPS
● Encriptação: criptografa toda troca
entre cliente e servidor (páginas, mídia,
cookies, dados digitados em
formulários, cabeçalho do HTML)
● Integridade: checa integridade dos
dados
● Autenticação: garante que o usuário
está se comunicando com o site
pretendido
04
Secure Shell
Secure Shell (SSH)
SSH
● Desenvolvido inicialmente para logon
seguro
● Pode ser usado para, por exemplo,
transferência de arquivos, e-mail, e
tunelamento de conexões
Arquitetura SSH
Protocolo de autenticação de usuário Protocolo de conexão
Protocolo da camada de transporte
TCP
IP
Arquitetura SSH
SSH
Protocolo de autenticação de usuário Protocolo de conexão
Protocolo da camada de transporte
TCP
IP
Arquitetura SSH
Protocolo de autenticação de usuário Protocolo de conexão
Protocolo da camada de transporte
Oferece autenticação,
TCP
confidencialidade, e integridade.
Oferece opcionalmente IP
compactação.
Protocolo da camada de transporte
● Responsável por autenticar o servidor
baseado em chaves públicas
● Chaves públicas podem ser guardadas
em banco de dados local…
● … ou uma única chave de Autoridade de
Certificação (CA) pode ser usada
Protocolo da camada de transporte
Para iniciar conexão:
● Conexão TCP é criada
● Cliente e servidor se identificam
● Cliente e servidor combinam
algoritmos (encriptação, MAC, e
compactação)
● Cliente e servidor trocam chaves
Arquitetura SSH
Protocolo de autenticação de usuário Protocolo de conexão
Protocolo da camada de transporte
TCP
Autentica usuário no servidor
IP
Protocolo de autenticação de usuário
Há vários tipos de autenticação:
● Chave pública: cliente envia sua chave
pública ao servidor e uma mensagem
assinada com sua chave privada
● Senha: cliente envia senha do usuário
● Hostbased: autenticação feita a partir
de mensagem assinada pela máquina
hospedeira. Servidor assume que
hospedeiro validou credenciais do
usuário
Arquitetura SSH
Protocolo de autenticação de usuário Protocolo de conexão
Protocolo da camada de transporte
TCP
Multiplexa diversos canais de
comunicação lógica em uma única
conexão SSH
IP
Protocolo de conexão
● Assume que autenticação foi feita
● Gerencia canais de comunicação
iniciados pelo servidor ou cliente
● Cada tipo de comunicação (por ex.
terminal) é feita em um canal separado
Protocolo de conexão
Tipos de canal:
● session: execução remota de programa
● x11: X windows system, execução
remota de programa no servidor com
interface gráfica no cliente
● forwarded-tcpip: encaminhamento de
porta remoto
● direct-tcpip: encaminhamento de
porta local
Encaminhamento de porta
● Também chamado de tunelamento SSH
● Forma de transformar um canal TCP
inseguro em um canal SSH seguro
Encaminhamento de porta
● Encaminhamento local
● Encaminhamento remoto
Encaminhamento de porta local
● Cliente cria uma porta para o túnel
● Cliente direciona o tráfego de uma
porta local para o túnel
● Servidor recebe dados de forma
segura
● Servidor encaminha para sua porta
local
Conexão via TCP
Cliente Servidor
Aplicação cliente Aplicação servidora
TCP TCP
Conexão TCP insegura
Conexão via TCP
Cliente Servidor
Aplicação cliente Aplicação servidora
SSH SSH
Túnel SSH seguro
TCP TCP
Conexão TCP insegura
Encaminhamento de porta remoto
● Cliente cria porta local
● Cliente redireciona tráfego local para
túnel
● Servidor recebe mensagens de forma
segura
● Servidor envia mensagens para porta
remota como se estivessem partindo
dele
Conexão via TCP
Cliente Serviço
Aplicação cliente Aplicação servidora
TCP TCP
Conexão TCP passando por rede
insegura
Conexão via TCP
Cliente Servidor
Serviço
SSH
Aplicação cliente Aplicação servidora Aplicação servidora
SSH SSH
TCP
Túnel SSH seguro
TCP TCP
Conexão TCP insegura
Considerações
finais
O que estudamos
● Como aumentar a segurança através da
camada de transporte
● TLS
● HTTPS
● SSH
Dúvidas?
Obrigado!
[email protected]
CRÉDITOS: o template desta apresentação foi
criado por Slidesgo, incluindo ícones por
Flaticon e infográficos e imagens por Freepik.