02 - Protocolo POP3 (110)
video: https://youtu.be/... no frontmatter da nota.O Protocolo POP3 (Post Office Protocol version 3) é o padrão clássico para recuperação de e-mails armazenados em um servidor de correio remoto. Padronizado na RFC 1939 (1996), o POP3 opera sobre TCP na porta 110 (sem cifragem) ou na porta 995 (com TLS, chamado POP3S). Sua filosofia é simples e direta: baixar todas as mensagens do servidor para o cliente e, opcionalmente, marcá-las para deleção após o download. Esta abordagem "offline" foi a padrão nos primórdios da internet, quando conexões discadas eram caras e o usuário precisava ler seus e-mails sem ficar conectado.
1. Modelo Operacional do POP3
O POP3 segue uma arquitetura cliente-servidor onde o cliente estabelece conexão TCP com o servidor, autentica-se, baixa as mensagens e fecha a conexão. O servidor atua como uma "caixa postal" que mantém as mensagens até que o cliente as recupere.
Estados do Protocolo
| Estado | Ações Permitidas | Transição |
|---|---|---|
| AUTHORIZATION | USER, PASS, APOP, QUIT |
Após sucesso → TRANSACTION |
| TRANSACTION | STAT, LIST, RETR, DELE, NOOP, RSET, QUIT |
Após QUIT → UPDATE |
| UPDATE | Servidor efetiva as deleções pedidas | Encerra conexão |
Diagrama de Estados Simplificado
[Cliente] [Servidor POP3]
| --- TCP SYN → porta 110 -------> |
| <-- +OK POP3 server ready ------- |
| --- USER joao -----------------> |
| --- PASS senha -----------------> | (AUTHORIZATION)
| <-- +OK user logged in -------- |
| --- STAT ----------------------> | (TRANSACTION)
| <-- +OK 5 12345 --------------- | (5 mensagens, 12345 bytes)
| --- RETR 1 --------------------> |
| <-- +OK ... (cabeçalho + corpo) |
| --- DELE 1 --------------------> |
| --- QUIT ----------------------> | (UPDATE: aplica DELEs)
| <-- +OK ----------------------- |
| <--- TCP FIN ------------------ |
2. Comandos Essenciais do POP3
| Comando | Argumento | Resposta | Função |
|---|---|---|---|
USER |
nome do usuário | +OK ou -ERR |
Identifica o usuário para autenticação |
PASS |
senha | +OK ou -ERR |
Autentica com senha em texto claro |
APOP |
nome + timestamp + MD5 | +OK ou -ERR |
Autenticação sem transmitir senha (digest MD5) |
STAT |
(nenhum) | +OK n m |
Retorna nº de mensagens (n) e total de bytes (m) |
LIST |
[nº msg] | +OK scan listing |
Lista tamanhos das mensagens |
RETR |
nº da mensagem | +OK + conteúdo |
Baixa uma mensagem completa |
DELE |
nº da mensagem | +OK |
Marca mensagem para deleção |
NOOP |
(nenhum) | +OK |
No operation — mantém conexão ativa |
RSET |
(nenhum) | +OK |
Desmarca todas as mensagens marcadas para deleção |
TOP |
nº msg + nº linhas | +OK + cabeçalho + N linhas |
Pré-visualização sem baixar tudo |
UIDL |
[nº msg] | +OK + ID único |
Lista identificadores únicos de cada mensagem |
QUIT |
(nenhum) | +OK |
Encerra sessão e aplica deleções |
Características das Respostas
+OK— sucesso (seguido de informação adicional opcional).-ERR— erro (seguido de descrição do erro).- Todas as respostas são texto ASCII, terminadas por
CRLF.
3. Autenticação e Modos de Cifragem
Autenticação Básica (Insegura)
USER joao.silva
PASS minh@s3nha
A senha trafega em texto plano na rede. Qualquer sniffing com tcpdump ou Wireshark captura as credenciais instantaneamente. Descontinuada em ambientes modernos.
APOP — Digest MD5
APOP joao.silva c4e87f3a9b2d1e5f8c7a6b9d0e1f2a3b
O servidor envia um timestamp no banner de boas-vindas. O cliente calcula MD5(timestamp + senha_secreta) e envia o hash. A senha nunca trafega em texto. Vulnerável a ataques de colisão MD5 (Kerberoasting estilo), atualmente descontinuado.
POP3S (POP3 over TLS) — Porta 995
openssl s_client -connect pop.gmail.com:995 -crlf
# Após handshake TLS, os comandos USER/PASS sao cifrados
USER usuario@gmail.com
PASS senha_de_app
Padrão moderno recomendado. Usa o comando STLS para upgrade da conexão porta 110 → TLS, ou conecta direto na porta 995 com TLS implícito.
4. Funcionalidades e Limitações
Modos de Operação
| Modo | Comportamento | Caso de Uso |
|---|---|---|
| Download-and-Delete | Baixa e apaga do servidor | Padrão clássico — usuário lê offline |
| Download-and-Keep | Baixa mas preserva no servidor (RETR sem DELE) |
Permite acessar de múltiplos dispositivos |
| Header-only | Apenas TOP n 0 para cabeçalho |
Pré-visualização para filtrar spam |
Limitações do POP3
- Sem sincronização de estado: Pastas (
Inbox,Sent,Drafts) são apenas locais no cliente. - Sem flags de mensagem: Não há conceito de "lida", "respondida", "encaminhada" no servidor.
- Sem busca server-side: Cliente precisa baixar tudo para filtrar por remetente, assunto, etc.
- Uma única pasta: Apenas a INBOX é acessível via POP3 (não é possível acessar
SentouDrafts). - Mensagens grandes: Sem
partial fetcheficiente — para ler 1 MB em uma mensagem de 50 MB, é necessário baixar tudo.
5. Comparação: POP3 vs IMAP vs Webmail
| Característica | POP3 | IMAP | Webmail (HTTP) |
|---|---|---|---|
| RFC | 1939 | 3501 | (HTTP + proprietary) |
| Porta padrão | 110 / 995 | 143 / 993 | 80 / 443 |
| Modelo | Offline | Online | Online |
| Mantém mensagens no servidor | Opcional | Sempre | Sempre |
| Pastas múltiplas no servidor | Não | Sim | Sim |
| Flags de mensagem | Não | Sim | Sim |
| Busca server-side | Não | Sim | Sim |
| Anexos sob demanda | Não | Sim | Sim |
| Bom para conexões instáveis | Sim | Não | Não |
| Bom para múltiplos dispositivos | Não | Sim | Sim |
6. Implementações Comuns de Servidor POP3
| Software | Plataforma | Observação |
|---|---|---|
| Dovecot | Linux/BSD | Padrão moderno em servidores Linux (c/ POP3 e IMAP) |
| Courier-IMAP | Linux/BSD | Alternativa histórica |
| Cyrus IMAP | Linux/BSD | Implementação acadêmica de alto desempenho |
| Microsoft Exchange | Windows | Suporta POP3 como legado (desabilitado por padrão desde 2013) |
| Zimbra | Linux | Suite completa de colaboração |
| Postfix/Dovecot combo | Linux | Stack clássico em VPS compartilhados |
7. Clientes POP3 Conhecidos
| Cliente | Plataforma | Suporte a POP3S |
|---|---|---|
| Mozilla Thunderbird | Multiplataforma | Sim |
| Microsoft Outlook | Windows/Mac | Sim |
| Apple Mail | macOS/iOS | Sim |
| Evolution | Linux | Sim |
| K-9 Mail | Android | Sim |
| Mutt | Linux (CLI) | Sim |
| fetchmail | Linux (CLI) | Sim — usado em relay automático |
| getmail | Linux (CLI) | Sim — substituto moderno do fetchmail |
8. Auditoria Técnica e Diagnóstico
# Teste manual de conexao POP3 via telnet/nc
nc -C pop.empresa.com 110
USER joao.silva
PASS senha_secreta
STAT
LIST
RETR 1
DELE 1
QUIT
# Teste via openssl (conexao segura POP3S porta 995)
openssl s_client -crlf -connect pop.gmail.com:995
USER usuario@gmail.com
PASS senha_de_app
LIST
QUIT
# Capturando trafego POP3 em texto claro (auditoria de seguranca)
sudo tcpdump -i eth0 -A -s0 'tcp port 110'
# Verificando certificado TLS do servidor POP3S
openssl s_client -connect pop.empresa.com:995 -showcerts < /dev/null 2>&1 | openssl x509 -noout -dates -issuer
# Logando falhas de autenticacao (no servidor Dovecot)
sudo journalctl -u dovecot -g "auth failed" --since "1 hour ago"
9. Casos de Uso Modernos
Embora o POP3 tenha sido amplamente substituído pelo IMAP para uso humano interativo, ainda é relevante em servidores de e-mail legados em pequenas empresas, coleta automatizada de logs via fetchmail, dispositivos IoT que enviam relatórios por e-mail, sistemas de arquivamento que baixam mensagens para repositórios locais e ambientes com conectividade intermitente (rural, marítimo) onde o download offline é preferível.
10. Conclusão
O POP3 permanece como uma peça histórica fundamental do ecossistema de e-mail, mesmo tendo sido amplamente suplantado pelo IMAP para uso humano interativo. Sua simplicidade — conectar, baixar, desconectar — tornou-o ideal para a era das conexões discadas e ainda encontra aplicação moderna em automações de coleta de mensagens, arquivamento e dispositivos com recursos limitados. Compreender os comandos básicos (USER/PASS/RETR/DELE/QUIT), os três estados do protocolo (AUTHORIZATION, TRANSACTION, UPDATE) e a transição para POP3S (porta 995) com TLS é essencial para administradores que precisam manter servidores de e-mail legados ou auditar tráfego de correio em redes corporativas.