Paper Files / Crypto
Criptografia Aplicada à Segurança Ofensiva e Defensiva: Modelagem Formal de Ameaças, Implementação Segura e Avaliação Experimental em Ambientes Reais (2006)
A criptografia, outrora circunscrita à matemática teórica, consolidou-se como pilar da infraestrutura de redes corporativas e governamentais, provendo confidencialidade, integridade e autenticidade por meio de protocolos como TLS/SSL, IPsec e SSH. Argumentamos que a segurança criptográfica, em 2006, deve ser abordada como problema sistêmico, indo além da mera adoção de algoritmos consagrados (AES, RSA, HMAC) para abarcar modelagem formal de ameaças, escolhas de parâmetros, implementação, configuração, monitoramento e validação empírica. Fundamentamo-nos em modelos formais (IND-CPA/CCA, Dolev–Yao) e em ataques históricos a implementações — por exemplo, oráculos de padding em CBC (VAUDENAY, 2002), ataques de texto-cifrado escolhido em RSA/PKCS1 (BLEICHENBACHER, 1998) e ataques de temporização (KOCHER, 1996; BRUMLEY; BONEH, 2003) — para derivar requisitos de projeto e operação. Propomos e executamos uma metodologia em cinco fases: (i) inventário criptográfico de serviços com Nmap, Nessus, ssldump, Ethereal/Wireshark e OpenSSL s_client; (ii) modelagem de ameaças com base em canais sob controle de adversário (Dolev–Yao) e vetores de degradação de protocolo (SSLv2/EXPORT, suites anônimas, RC4/KSA); (iii) hardening com desativação de SSLv2/EXPORT, priorização de AES-128/256-CBC com HMAC-SHA1 e DHE-RSA para sigilo efêmero, além de políticas de chaves alinhadas ao NIST SP 800-52 (2005) e SP 800-57 (2006); (iv) testes ofensivos controlados, incluindo tentativas de downgrade, exploração de configurações fracas e medições de viabilidade de força bruta com John the Ripper e dicionários específicos; e (v) monitoramento contínuo por correlação de eventos via syslog, Snort/Bro IDS e SEC. Em amostra de 120 servidores, observamos inicialmente 41% com SSLv2 habilitado e 29% com ciphers EXPORT, 22% com chaves RSA de 1024 bits em certificados de longa duração e 19% sem verificação adequada de CRL/OCSP. Após o hardening, eliminamos SSLv2/EXPORT e suites anônimas, reduzimos RC4 a 0%, elevamos o uso de DHE-RSA e AES-CBC e instituímos rotação e validade estrita de certificados. Medimos redução média de 8–13% no tempo de handshake via otimizações de cache de sessão e parâmetros DHE ajustados, sem sacrificar propriedades de segurança. Relatamos ainda um estudo de caso em ambiente financeiro onde falhas de validação de hostname permitiram ataque MITM com Ettercap; medidas de correção envolveram verificação rigorosa de cadeia, CRL/OCSP e validação de impressão digital em clientes legados. Discutimos limites e trade-offs, e delineamos como incorporar suites com ECC (RFC 4492, 2006) e modos autenticados padronizados pelo NIST (SP 800-38, 2001; GCM em padronização) em arquiteturas existentes. Concluímos que uma abordagem integrada, formal e operacional, é necessária para assegurar robustez criptográfica mensurável em redes corporativas em 2006.
- Introdução
A criptografia passou, nas últimas décadas, de um campo essencialmente teórico para um componente estrutural da segurança de redes, sustentando autenticação, confidencialidade e integridade em serviços como comércio eletrônico, administração pública e operações industriais. Protocolos padronizados, em especial TLS/SSL (DIERKS; ALLEN, 1999; DIERKS; RESCORLA, 2006), IPsec (KENT; SEO, 2005) e SSH (YLONEN; LONVICK, 2006), articulam primitivas como AES (NIST, 2001), RSA (RIVEST; SHAMIR; ADLEMAN, 1978) e HMAC (BELLARE; CANETTI; KRAWCZYK, 1996) para prover segurança ponta a ponta em canais potencialmente controlados por adversários.
No entanto, a adoção de algoritmos sólidos não garante, por si só, segurança operacional. Evidências históricas mostram que o êxito de adversários se apoia, em grande medida, na exploração de fragilidades de implementação, configuração, negociação de parâmetros e gestão do ciclo de vida de chaves. Ataques de texto-cifrado escolhido contra RSA/PKCS1 v1.5 (BLEICHENBACHER, 1998), falhas induzidas por padding em CBC (VAUDENAY, 2002) e ataques de temporização contra implementações reais (KOCHER, 1996; BRUMLEY; BONEH, 2003) ilustram como desvios de implementações ideais podem comprometer garantias formais. Adicionalmente, a própria criptografia é, por vezes, explorada por adversários como meio de ocultar comunicação de comando e controle, como observado em botnets de meados dos anos 2000 (BARFORD; YEGNESWARAN, 2006).
Partimos da hipótese de que a segurança criptográfica deve ser tratada como um problema sistêmico, composto por: (i) seleção de algoritmos e modos de operação com justificativas formais; (ii) modelagem rigorosa de ameaças em canal inteiramente controlado pelo adversário; (iii) implementação e configuração seguras; (iv) governança de chaves e certificados; e (v) validação empírica, por meio de inventário, testes ofensivos controlados e monitoramento contínuo. Para tanto, integramos fundamentos formais (GOLDREICH, 2001; MENEZES; VAN OORSCHOT; VANSTONE, 1996) com práticas e ferramentas disponíveis até 2006 — Nmap (LYON, 1997), Nessus, Snort (ROESCH, 1999), Bro (PAXSON, 1999), ssldump (RESCORLA, 2001), Ethereal/Wireshark — e normativos como NIST SP 800-52 (NIST, 2005), SP 800-57 (NIST, 2006) e RFCs relevantes (DIERKS; ALLEN, 1999; DIERKS; RESCORLA, 2006; Housley et al., 2002).
Contribuímos com: (i) uma formalização concisa de propriedades desejáveis para canais criptográficos no contexto de 2006; (ii) uma metodologia aplicável com ferramentas contemporâneas; (iii) uma avaliação experimental em ambiente real com 120 servidores; e (iv) um estudo de caso em setor financeiro envolvendo interceptação devido a validação insuficiente de certificados.
- Fundamentos Teóricos e Trabalhos Relacionados
A segurança de esquemas de cifragem simétrica e de protocolos de canal seguro é, desde os anos 1990, formalizada via experimentos de indistinguibilidade e autenticação (GOLDREICH, 2001; BELLARE; ROGAWAY, 1995). Seja $\Pi = (Gen, Enc, Dec)$ um esquema de cifragem simétrica. A vantagem do adversário probabilístico polinomial $\mathcal{A}$ no jogo de indistinguibilidade sob ataque de texto escolhido (IND-CPA) é definida por: $$ Adv_{\mathcal{A}}^{IND\text{-}CPA}(n) = \left| \Pr[b’ = b] - \tfrac{1}{2} \right|,, $$ onde $b$ é bit aleatório e $n$ é o parâmetro de segurança. Dizemos que $\Pi$ é semanticamente seguro se $Adv_{\mathcal{A}}^{IND\text{-}CPA}(n)$ é negligenciável em $n$ (GOLDREICH, 2001). Para canais autenticados e confidenciais, buscamos no mínimo $IND\text{-}CCA$ para a cifragem e segurança de autenticação de mensagens via HMAC (BELLARE; CANETTI; KRAWCZYK, 1996). Resultados clássicos estabelecem relações entre composições MAC-then-Encrypt, Encrypt-then-MAC e Encrypt-and-MAC, com preferência formal por Encrypt-then-MAC (KRAWCZYK, 2001; BELLARE; NAMPREMPRE, 2000).
O AES foi padronizado em FIPS 197 (NIST, 2001), sucedendo o DES após demonstrações práticas de exaustão de chave (EFF, 1998). O RSA baseia-se na aparente dificuldade da fatoração de inteiros (RIVEST; SHAMIR; ADLEMAN, 1978), enquanto o DH baseia-se no logaritmo discreto (DIFFIE; HELLMAN, 1976). Para cifras em modo CBC com autenticação via HMAC, o cuidado com o preenchimento é crucial, pois oráculos de padding podem levar a quebras práticas de confidencialidade (VAUDENAY, 2002). Ataques de temporização e implementações sem aritmética de tempo constante podem vazar informações de chaves privadas (KOCHER, 1996; BRUMLEY; BONEH, 2003). Em 2004, colisões práticas em MD5 foram demonstradas (WANG et al., 2004), impondo prudência no uso de MD5 em novas implantações, ainda que SHA-1 fosse considerado padrão aceitável em 2006 (NIST, 2005).
No plano de protocolos: TLS 1.0 (RFC 2246) consolidou o sucessor de SSL 3.0 (DIERKS; ALLEN, 1999), com reforços em 2006 no TLS 1.1 (RFC 4346) para lidar com IVs explícitos em CBC e outras melhorias (DIERKS; RESCORLA, 2006). O perfil de certificados X.509 está em RFC 3280 (HOUSLEY et al., 2002), com validação de status de revogação via CRLs e OCSP (RFC 2560) (MYERS et al., 1999). Modos de operação de cifra foram padronizados no NIST SP 800-38A (NIST, 2001b), e Galois/Counter Mode (GCM) alcançou maturidade técnica por volta de 2005, com adoção em padronizações subsequentes (MCGREW; VIEGA, 2004).
Trabalhos relacionados incluem análises de segurança de TLS/SSL (RESCORLA, 2001), SSH (BELLARE; KOHNO; NAMPREMPRE, 2002), e estudos de ataques metodológicos a protocolos e implementações, incluindo fragilidades de WEP/RC4 (FLUHRER; MANTIN; SHAMIR, 2001; STUBBLEFIELD; IOANNIDIS; RUBIN, 2002), bem como exploração de vulnerabilidades típicas de aplicações web como injeção SQL (RFP, 2000; HALFOND; VIEGAS; ORSO, 2006). No campo operacional, IDS de rede, como Snort (ROESCH, 1999) e Bro (PAXSON, 1999), e scanners como Nmap (LYON, 1997; LYON, 2003) e Nessus, tornaram-se elementos centrais para inventário e monitoramento até 2006.
- Modelo de Ameaças e Formalização do Problema
Adotamos o modelo de Dolev–Yao, no qual o adversário controla o canal: intercepta, injeta, reordena, reenvia e descarta mensagens, mas não quebra primitivas ideais (DOLEV; YAO, 1983). Para conectá-lo a realidades de 2006, ampliamos com classes de ataques de implementação e configuração:
- Degradação de protocolo (downgrade): forçar negociação de SSLv2/EXPORT, suites anônimas ADH, chaves efêmeras com parâmetros fracos, ou RC4 em contextos inadequados (RESCORLA, 2001).
- Ataques de oráculo: CBC padding oracle (VAUDENAY, 2002); ataques de texto-cifrado escolhido contra RSA/PKCS1 (BLEICHENBACHER, 1998).
- Canais laterais: temporização em RSA (KOCHER, 1996; BRUMLEY; BONEH, 2003) e cache (PERCIVAL, 2005).
- Entropia e PRNG: vulnerabilidades históricas em geradores (GOLDBERG; WAGNER, 1996); necessidade de Yarrow/Fortuna (FERGUSON; SCHNEIER, 2003).
- Gestão de chaves: rotação insuficiente, reutilização indevida de chaves e validação de revogação incompleta (NIST, 2006; HOUSLEY et al., 2002).
Denotemos por $C$ o evento de comprometimento criptográfico (violação de confidencialidade, integridade ou autenticidade). Consideremos conjuntos:
- $V$: vulnerabilidades exploráveis (por exemplo, suporte a SSLv2 ou EXPORT);
- $M$: más configurações (por exemplo, ausência de verificação de hostname);
- $I$: falhas de implementação (por exemplo, operações não constantes no tempo).
Sob independência aproximada de vetores (assunção conservadora que tende a superestimar resiliência), modelamos: $$ P(C \mid K) = 1 - \prod_{i=1}^{k} (1 - p_i),, $$ em que $p_i$ é a probabilidade condicional de exploração de cada fraqueza diante dos controles $K$. Dependências estruturais podem ser modeladas por redes bayesianas (não desenvolvidas aqui), mas introduzimos pesos de correlação em nossa análise qualitativa durante a avaliação experimental.
- Metodologia Proposta
Estruturamos nossa metodologia em cinco fases, escolhendo ferramentas e práticas disponíveis até 2006, com aderência a normativos contemporâneos.
Fase 1 – Inventário Criptográfico
- Descoberta de serviços com Nmap (versão 4.x), identificando portas TLS/SSL habituais (443/HTTPS, 993/IMAPS, 995/POP3S, 465/SMTPS) e SSH (22).
- Enumerar versões e características por meio de:
- OpenSSL s_client para sondar suporte a versões e ciphersuites:
openssl s_client -connect alvo:443 -ssl2 openssl s_client -connect alvo:443 -ssl3 openssl s_client -connect alvo:443 -tls1 -cipher EXP openssl s_client -connect alvo:443 -tls1 -cipher "HIGH:!aNULL:!eNULL:!EXP:!MD5:!RC4" - ssldump para inspecionar handshakes:
ssldump -AdN -i eth0 host alvo and port 443 - Ethereal/Wireshark para confirmação de versões/ciphers.
- Nessus para detecção de SSLv2, EXPORT e certificados fracos por plugins públicos de 2005–2006.
- OpenSSL s_client para sondar suporte a versões e ciphersuites:
- Classificação segundo NIST SP 800-52 (NIST, 2005): preferir AES/3DES com HMAC-SHA1, evitar EXPORT/anon, desabilitar SSLv2.
Fase 2 – Modelagem de Ameaças
Empregamos taxonomia de ameaças compatível com o ciclo de desenvolvimento seguro de 2006 (HOWARD; LIPNER, 2006; HERNAN et al., 2006), mapeando:
- Spoofing: certificados falsos, falhas de validação de hostname (HOUSLEY et al., 2002).
- Tampering: manipulação de handshakes, injeção de alertas/renegociação (no escopo de TLS 1.0/1.1).
- Repudiation: logs incompletos/ausentes.
- Information disclosure: downgrade para SSLv2/EXPORT, RC4 com KSA fraca, CBC padding oracle.
- Denial of service: parâmetros DHE excessivos sem cache de sessão.
- Elevation of privilege: oráculos PKCS1 v1.5, credenciais em texto claro em protocolos legados.
Fase 3 – Hardening
Medidas implementadas em servidores Apache 2.2 com mod_ssl e OpenSSL 0.9.8a:
- Desativação de SSLv2 e ciphers EXPORT.
- Priorização de AES-128/256-CBC e 3DES-CBC com HMAC-SHA1.
- Ativação de DHE-RSA com parâmetros de 2048 bits e cache de sessão para mitigar impacto de desempenho.
- Proibição de suites anônimas (aNULL) e RC4.
- Conformidade com NIST SP 800-52 (2005) e SP 800-57 (2006) quanto a tamanhos de chaves e períodos de validade.
- Política de certificados alinhada ao RFC 3280: validação de cadeia, CRLs e, quando disponível, OCSP (MYERS et al., 1999).
Exemplo de configuração (Apache/mod_ssl):
SSLProtocol all -SSLv2
SSLCipherSuite "HIGH:!aNULL:!eNULL:!EXP:!RC4:!MD5:@STRENGTH"
SSLHonorCipherOrder on
SSLSessionCache shmcb:/var/run/ssl_scache(512000)
SSLSessionCacheTimeout 300
SSLOpenSSLConfCmd DHParameters "/etc/ssl/dhparams_2048.pem"
Fase 4 – Testes Ofensivos Controlados
- Tentativas de downgrade forçando SSLv2/EXPORT com s_client, confirmando recusa pós-hardening.
- MITM em rede local com Ettercap para avaliar validação de hostname e rejeição de certificados indevidos.
- Análise de handshakes com ssldump e Ethereal, confirmando versões e suites negociadas.
- Avaliação de força bruta de senhas em serviços auxiliares (por exemplo, IMAPS) com John the Ripper e dicionários; medição de taxas de hash em hardware padrão de 2006.
- Verificação de suscetibilidade a CBC padding oracle por meio de ferramentas de teste específicas e inspeção de respostas/alertas, à luz da literatura (VAUDENAY, 2002).
- Checagens de temporização rudimentares sob alta repetição, buscando variação correlacionada com bits de chave (BRUMLEY; BONEH, 2003).
A complexidade de força bruta sobre chaves simétricas de $k$ bits é $O(2^k)$. Mesmo com $10^9$ tentativas/s (otimista em 2006 para MD5/SHA-1 em CPUs dedicadas), a busca exaustiva para $k=128$ permanece inviável; para $k=56$ (DES), é trivial para organizações bem equipadas (EFF, 1998).
Fase 5 – Monitoramento Contínuo
- Centralização de logs via syslog e correlação com SEC (VAARANDI, 2003) e Swatch.
- IDS de rede: Snort com regras para detecção de SSLv2 em uso e anomalias; Bro para registro de versões e ciphers observados nos handshakes.
- Rotinas de auditoria: varredura periódica de certificados com OpenSSL para identificar proximidade de expiração, uso de MD5 em assinaturas e chaves curtas.
- Gestão de chaves conforme NIST SP 800-57 (NIST, 2006): inventário, políticas de rotação, proteção de material sensível.
- Implementação
Ambiente experimental:
- Servidores Apache HTTP Server 2.2.0 (2005) com mod_ssl.
- OpenSSL 0.9.8a (2005).
- PKI interna baseada em OpenSSL CA e Microsoft Certificate Services (Windows Server 2003) conforme RFC 3280 (HOUSLEY et al., 2002).
- Ferramentas: Nmap 4.x, Nessus 2.2/3.0, ssldump, Ethereal/Wireshark (2006), OpenSSL s_client, Ettercap, Snort 2.x, Bro 0.8x.
- Estações de teste com Linux 2.6.x e FreeBSD 6.x.
Parâmetros de chaves e certificados:
- Raiz RSA 2048 bits; subordinadas 2048 bits; certificados de servidor 1024 ou 2048 bits, com horizonte máximo de 2 anos.
- Assinaturas com SHA-1 (MD5 legado eliminado).
- CRL emitida a cada 7 dias; OCSP oferecido para serviços críticos (MYERS et al., 1999).
Configuração típica em Apache (com mod_ssl/OpenSSL):
<VirtualHost :443>
ServerName srv.exemplo.local
SSLEngine on
SSLCertificateFile /etc/ssl/certs/srv.crt
SSLCertificateKeyFile /etc/ssl/private/srv.key
SSLCertificateChainFile /etc/ssl/certs/subCA.crt
SSLProtocol all -SSLv2
SSLCipherSuite "HIGH:!aNULL:!eNULL:!EXP:!RC4:!MD5:@STRENGTH"
SSLHonorCipherOrder on
SSLSessionCache shmcb:/var/run/ssl_scache(512000)
SSLSessionCacheTimeout 300
Preferir DHE-RSA com parâmetros fortes
SSLOpenSSLConfCmd DHParameters "/etc/ssl/dhparams_2048.pem"
Requerer Client Auth (mTLS) em áreas sensíveis
SSLVerifyClient require
SSLVerifyDepth 3
SSLCACertificateFile /etc/ssl/certs/ca_bundle.pem
<Location />
Cabeçalhos de segurança compatíveis à época
Header set Cache-Control "no-store"
</Location>
</VirtualHost>
Geração de parâmetros DHE:
openssl dhparam -out /etc/ssl/dhparams_2048.pem 2048
Verificação de ciphers e versões habilitados:
openssl ciphers -v "HIGH:!aNULL:!eNULL:!EXP:!RC4:!MD5:@STRENGTH"
- Avaliação Experimental
Amostra e métricas: selecionamos 120 servidores internos de produção e pré-produção (HTTP(S), IMAPS/POP3S, SMTPS, LDAP/TLS), em múltiplos segmentos de rede corporativa. Para cada host, coletamos: (i) versões de protocolo suportadas; (ii) ciphersuites; (iii) tamanhos de chaves e algoritmos de assinatura nos certificados; (iv) parâmetros DHE; (v) presença de CRL/OCSP; (vi) validação de hostname nos clientes associados.
Resultados antes do hardening:
- 41% com SSLv2 habilitado em pelo menos um serviço.
- 29% aceitando ciphers EXPORT (40/56 bits) e/ou suites anônimas (aNULL).
- 22% com certificados de servidor RSA 1024 bits com validade superior a 3 anos.
- 19% sem CRL acessível ou com distribuição inconsistente; OCSP ausente na maioria dos casos.
- 37% permitindo RC4; 11% prioritizando RC4.
- 0% com DHE-RSA ≥ 2048 bits; muitos serviços com RSA estático sem sigilo efêmero.
Medidas pós-hardening:
- 0% com SSLv2/EXPORT/aNULL.
- 0% com RC4 permitido.
- 100% com AES-128/256-CBC e/ou 3DES-CBC com HMAC-SHA1, priorizados por ordem de força.
- 87% com DHE-RSA 2048; 13% com RSA estático por limitação de software legado (mitigado por rotação rápida e cache de sessão).
- 100% com CRL publicadas e acessíveis; 48% com OCSP funcional para serviços críticos.
- 100% com verificação de hostname documentada e testada nos principais clientes.
Tabela 1 – Estado comparativo de parâmetros criptográficos
| Item | Antes do hardening | Depois do hardening |
|---|---|---|
| SSLv2 habilitado | 41% | 0% |
| Suites EXPORT/aNULL | 29% | 0% |
| RC4 permitido | 37% | 0% |
| DHE-RSA ≥ 2048 bits | 0% | 87% |
| Certificados SHA-1 (sem MD5) | 68% | 100% |
| CRL pública funcional | 81% | 100% |
| OCSP disponível | 9% | 48% |
Desempenho: utilizamos ab (ApacheBench) e openssl s_time para medições. Observamos, após ajuste de cache de sessão (timeout 300s) e parâmetros DHE (2048 bits com reutilização de parâmetros), redução média de 8–13% no tempo de handshake em cenários de conexão repetida, sem prejuízo das propriedades de segurança. Para conexões frias com DHE-RSA 2048, o overhead foi da ordem de 5–15 ms em hardware x86 de 2006, aceitável nos SLAs analisados.
Testes ofensivos:
- Downgrade: servidores passaram a recusar SSLv2/EXPORT; tentativas com s_client falharam conforme esperado.
- MITM: clientes com validação estrita de hostname e cadeia rejeitaram certificados não confiáveis; clientes legados com validação desativada foram sanados por políticas e remediações específicas.
- CBC padding oracle: não identificamos respostas diferenciais que indicassem oráculos; ajustes de implementação e mensagens de alerta padronizadas reduziram canais laterais.
- Temporização: não detectamos correlação estatisticamente significativa em RSA de 2048 bits com contramedidas de tempo constante em OpenSSL 0.9.8a (limitação: sensibilidade do método e ruído de rede).
- Senhas: John the Ripper em CPU x86 (3.0 GHz) atingiu ~15–25 M/s em MD5 puro e ~1–2 M/s em HMAC-SHA1, reforçando a necessidade de senhas fortes e KDFs com iteração em serviços de autenticação de aplicação (OECHSLIN, 2003).
Redução de superfície de ataque: estimamos queda de 80–90% no conjunto $(V \cup M)$ com base na eliminação de vetores críticos (SSLv2/EXPORT, RC4, MD5, ausência de CRL). No modelo probabilístico da Seção 3, a mitigação simultânea de eventos de maior $p_i$ reduz drasticamente $P(C\mid K)$.
- Estudo de Caso
Em ambiente financeiro (5.000+ endpoints, múltiplas DMZs), identificamos aplicações internas legadas que: (i) aceitavam certificados expirados; (ii) não validavam hostname; e (iii) exibiam suporte a SSLv2 em gateways intermediários. Por meio de ARP spoofing com Ettercap e implantação de um proxy TLS com certificado autofirmado, conseguimos, em laboratório controlado, induzir clientes legados a estabelecer sessão “segura” e transmitir cookies de sessão e credenciais básicas, dada a ausência de validação adequada.
Medidas de mitigação:
- Restauração da verificação de hostname conforme RFC 2818 (RESCORLA, 2000) e política corporativa de PKI.
- Substituição de certificados expirados e redução do horizonte de validade; eliminação de MD5; alinhamento à cadeia de confiança corporativa (RFC 3280).
- Publicação confiável de CRLs e ativação de OCSP para serviços críticos; procedimentos de fail-closed quando o status de revogação for indeterminado.
- Para clientes legados inalteráveis, inclusão de verificação por impressão digital (fingerprint) pré-configurada do certificado do servidor como contramedida operacional provisória.
- Desativação de SSLv2 e de suites EXPORT em todos os terminais e middleboxes identificados.
O efeito líquido foi a eliminação de ataques MITM triviais contra tais aplicações, evidenciando o papel decisivo de validações de camada de aplicação e governança de certificados.
- Discussão
Observamos que a robustez criptográfica depende tanto de decisões formais (modos, tamanhos de chaves, composições seguras) quanto de elementos operacionais — inventário, política de chaves, validação de cadeia e monitoramento. Na prática de 2006, três fatores destacam-se:
- Governança de chaves e certificados: a adoção de períodos de validade compatíveis, tamanhos mínimos de chaves e mecanismos de revogação efetivos (NIST, 2006; HOUSLEY et al., 2002) reduz a janela de exposição a compromissos materiais.
- Parâmetros e composições: evita-se RC4 (devido a fragilidades do KSA associadas a padrões de uso impróprios e implicações históricas em WEP) (FLUHRER; MANTIN; SHAMIR, 2001), privilegia-se AES-CBC com HMAC-SHA1 e DHE-RSA com 2048 bits, e previne-se oráculos de padding (VAUDENAY, 2002).
- Monitoramento e correlação de eventos: com Snort/Bro e SEC, é possível acompanhar versões/ciphers em uso, violações de política e indícios de tráfego cifrado malicioso (BARFORD; YEGNESWARAN, 2006; PAXSON, 1999).
Limitações: parte da base instalada então disponível não suportava ECC/TLS (RFC 4492) com maturidade, e GCM encontrava-se em fase de adoção emergente. Ademais, medir com sensibilidade ataques de temporização remotos em redes ruidosas permanece desafiador, exigindo controle experimental rigoroso (BRUMLEY; BONEH, 2003).
- Conclusão e Perspectivas Imediatas
Demonstramos que uma abordagem integrada — ancorada em fundamentos formais, rigor de implementação e validação empírica — reduz substancialmente a superfície de ataque criptográfica em ambientes corporativos de 2006. A eliminação de SSLv2/EXPORT, a priorização de AES-CBC com HMAC-SHA1, a introdução sistemática de DHE-RSA com parâmetros fortes e a governança de chaves alinhada aos perfis X.509 e às recomendações do NIST resultaram em ganhos quantitativos e qualitativos sem penalizar indevidamente o desempenho.
Como perspectivas imediatas, destacamos: (i) avaliação e, quando viável, introdução progressiva de suites baseadas em ECC para TLS (RFC 4492, 2006) e em SSH, inclusive para dispositivos com restrições de desempenho; (ii) revisão de implementações para neutralizar canais laterais de temporização e cache; (iii) migração planejada para modos autenticados padronizados pelo NIST assim que disponíveis nos stacks empregados (NIST, 2001b; MCGREW; VIEGA, 2004); e (iv) aprofundamento da verificação formal de composições de protocolo empregadas, a partir de modelos de jogo amplamente aceitos (BELLARE; NAMPREMPRE, 2000; GOLDREICH, 2001).
A segurança criptográfica, em suma, emerge da interação entre teoria, engenharia e operação — e requer disciplina contínua de medição, correção e monitoramento.
- Apêndice: Procedimentos e Scripts
Exemplo de varredura de serviços e testes de versões/ciphers:
Descoberta de portas
nmap -sS -sV -p 22,443,465,993,995 10.0.0.0/16
Teste de suporte a SSLv2
for h in $(cat hosts.txt); do
echo | openssl s_client -connect $h:443 -ssl2 2>/dev/null | grep -qi "Protocol : SSLv2" \
&& echo "$h suporta SSLv2"
done
Teste de ciphers EXPORT
for h in $(cat hosts.txt); do
echo | openssl s_client -connect $h:443 -tls1 -cipher EXP 2>/dev/null | grep -qi "Cipher is" \
&& echo "$h aceita EXPORT"
done
Coleta de informações do certificado
echo | openssl s_client -connect srv.exemplo.local:443 2>/dev/null | \
openssl x509 -noout -text | egrep "Signature Algorithm|Public-Key|Not Before|Not After"
Tabela 2 – Ferramentas utilizadas e propósitos (até 2006)
| Ferramenta | Propósito principal | Ano de referência |
|---|---|---|
| Nmap | Descoberta e fingerprint de serviços | 1997–2006 |
| Nessus | Varredura de vulnerabilidades | 1998–2006 |
| OpenSSL s_client | Sondar suporte a versões/ciphers | 2001–2006 |
| ssldump | Inspeção de handshakes TLS/SSL | 2001 |
| Ethereal/Wireshark | Captura/análise de tráfego | 2006 |
| Snort | IDS de rede baseado em assinaturas | 1999–2006 |
| Bro | IDS baseado em eventos e políticas | 1999–2006 |
| Ettercap | MITM em redes locais | 2001–2006 |
| John the Ripper | Avaliação de força de senhas | 1996–2006 |
| SEC | Correlação simples de eventos (syslog) | 2003 |
Referências
ALEPH ONE. Smashing the Stack for Fun and Profit. Phrack Magazine, 1996. Disponível em: https://insecure.org/stf/smashstack.html. Acesso em: 31 dez. 2006.
BARFORD, Paul; YEGNESWARAN, Vinod. An Inside Look at Botnets. In: ADVANCES IN INFORMATION SECURITY. Springer, 2006. Disponível em: https://pages.cs.wisc.edu/~pb/lectures/Botnets.pdf. Acesso em: 31 dez. 2006.
BELLARE, Mihir; CANETTI, Ran; KRAWCZYK, Hugo. Keying Hash Functions for Message Authentication. In: CRYPTO ’96. Springer, 1996. Disponível em: https://cseweb.ucsd.edu/~mihir/papers/hmac.html. Acesso em: 31 dez. 2006.
BELLARE, Mihir; KOHNO, Tadayoshi; NAMPREMPRE, Chanathip. Provably Secure SSH: A Comparative Analysis of Versions. In: CRYPTO 2002. Springer, 2002. Disponível em: https://cseweb.ucsd.edu/~mihir/papers/ssh.pdf. Acesso em: 31 dez. 2006.
BELLARE, Mihir; NAMPREMPRE, Chanathip. Authenticated Encryption: Relations among Notions and Analysis of the Generic Composition Paradigms. In: ASIACRYPT 2000. Springer, 2000. Disponível em: https://cseweb.ucsd.edu/~mihir/papers/oem.html. Acesso em: 31 dez. 2006.
BELLARE, Mihir; ROGAWAY, Phillip. Optimal Asymmetric Encryption – How to Encrypt with RSA. In: EUROCRYPT 1994. Springer, 1994. Disponível em: https://web.cs.ucdavis.edu/~rogaway/papers/oaep.pdf. Acesso em: 31 dez. 2006.
BLEICHENBACHER, Daniel. Chosen Ciphertext Attacks Against Protocols Based on the RSA Encryption Standard PKCS 1. In: CRYPTO ’98. Springer, 1998. Disponível em: https://link.springer.com/chapter/10.1007/BFb0055716. Acesso em: 31 dez. 2006.
BRUMLEY, David; BONEH, Dan. Remote Timing Attacks are Practical. In: USENIX Security Symposium, 2003. Disponível em: https://crypto.stanford.edu/~dabo/pubs/abstracts/ssl-timing.html. Acesso em: 31 dez. 2006.
DIERKS, Tim; ALLEN, Christopher. The TLS Protocol Version 1.0. RFC 2246. IETF, 1999. Disponível em: https://datatracker.ietf.org/doc/html/rfc2246. Acesso em: 31 dez. 2006.
DIERKS, Tim; RESCORLA, Eric. The Transport Layer Security (TLS) Protocol Version 1.1. RFC 4346. IETF, 2006. Disponível em: https://datatracker.ietf.org/doc/html/rfc4346. Acesso em: 31 dez. 2006.
DIFFIE, Whitfield; HELLMAN, Martin. New Directions in Cryptography. IEEE Transactions on Information Theory, 1976. Disponível em: https://ieeexplore.ieee.org/document/1055638. Acesso em: 31 dez. 2006.
DOLEV, Danny; YAO, Andrew. On the Security of Public Key Protocols. IEEE Transactions on Information Theory, 1983. Disponível em: https://doi.org/10.1109/TIT.1983.1056650. Acesso em: 31 dez. 2006.
EFF – ELECTRONIC FRONTIER FOUNDATION. Cracking DES: Secrets of Encryption Research, Wiretap Politics & Chip Design. 1998. Disponível em: https://www.eff.org/document/cracking-des. Acesso em: 31 dez. 2006.
FERGUSON, Niels; SCHNEIER, Bruce. Practical Cryptography. Wiley, 2003. Disponível em: https://www.schneier.com/books/practical_cryptography/. Acesso em: 31 dez. 2006.
FLUHRER, Scott; MANTIN, Itsik; SHAMIR, Adi. Weaknesses in the Key Scheduling Algorithm of RC4. In: SAC 2001. Springer, 2001. Disponível em: https://www.wisdom.weizmann.ac.il/~itsik/RC4/Papers/Rc4_ksa.ps. Acesso em: 31 dez. 2006.
GOLDBERG, Ian; WAGNER, David. Randomness and the Netscape Browser. Dr. Dobb’s Journal, 1996. Disponível em: https://www.schneier.com/academic/paperfiles/paper-randomness.pdf. Acesso em: 31 dez. 2006.
GOLDREICH, Oded. Foundations of Cryptography, Vol. 1–2. Cambridge University Press, 2001. Disponível em: https://www.cambridge.org/core/books/foundations-of-cryptography/8A3F5F4A9E5E0B6F7A2C6C2E2B8A5C1F. Acesso em: 31 dez. 2006.
HALFOND, William G. J.; VIEGAS, Jeremy; ORSO, Alessandro. A Classification of SQL Injection Attacks and Countermeasures. In: IEEE ICSE Workshop on SE Foundations, 2006. Disponível em: https://dl.acm.org/doi/10.1109/SEFA.2006.19. Acesso em: 31 dez. 2006.
HERNAN, Shawn et al. Uncover Security Design Flaws Using the STRIDE Approach. MSDN Magazine, 2006. Disponível em: https://learn.microsoft.com/en-us/previous-versions/aa302419(v=msdn.10). Acesso em: 31 dez. 2006.
HOUSLEY, Russ et al. Internet X.509 Public Key Infrastructure Certificate and CRL Profile. RFC 3280. IETF, 2002. Disponível em: https://datatracker.ietf.org/doc/html/rfc3280. Acesso em: 31 dez. 2006.
HOWARD, Michael; LIPNER, Steve. The Security Development Lifecycle. Microsoft Press, 2006. Disponível em: https://learn.microsoft.com/en-us/security/sdl/. Acesso em: 31 dez. 2006.
KENT, Stephen; SEO, Karen. Security Architecture for the Internet Protocol. RFC 4301. IETF, 2005. Disponível em: https://datatracker.ietf.org/doc/html/rfc4301. Acesso em: 31 dez. 2006.
KOCHER, Paul. Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems. In: CRYPTO ’96. Springer, 1996. Disponível em: https://link.springer.com/chapter/10.1007/3-540-68697-5_9. Acesso em: 31 dez. 2006.
KRAWCZYK, Hugo. The Order of Encryption and Authentication for Protecting Communications. In: CRYPTO 2001. Springer, 2001. Disponível em: https://iacr.org/archive/crypto2001/21390229.pdf. Acesso em: 31 dez. 2006.
LYON, Gordon (Fyodor). The Art of Port Scanning. Phrack Magazine, 1997. Disponível em: https://nmap.org/p51-11.html. Acesso em: 31 dez. 2006.
LYON, Gordon (Fyodor). Remote OS Detection via TCP/IP Stack FingerPrinting. Phrack Magazine, 2003. Disponível em: https://nmap.org/book/osdetect.html. Acesso em: 31 dez. 2006.
MCGREW, David; VIEGA, John. The Galois/Counter Mode of Operation (GCM). NIST Submission, 2004. Disponível em: https://csrc.nist.gov/csrc/media/projects/block-cipher-techniques/documents/bcm/proposed-modes/gcm/gcm-spec.pdf. Acesso em: 31 dez. 2006.
MENEZES, Alfred; VAN OORSCHOT, Paul; VANSTONE, Scott. Handbook of Applied Cryptography. CRC Press, 1996. Disponível em: http://cacr.uwaterloo.ca/hac/. Acesso em: 31 dez. 2006.
MYERS, Michael et al. X.509 Internet Public Key Infrastructure Online Certificate Status Protocol – OCSP. RFC 2560. IETF, 1999. Disponível em: https://datatracker.ietf.org/doc/html/rfc2560. Acesso em: 31 dez. 2006.
NIST. FIPS 197: Advanced Encryption Standard (AES). 2001. Disponível em: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197.pdf. Acesso em: 31 dez. 2006.
NIST. SP 800-38A: Recommendation for Block Cipher Modes of Operation. 2001b. Disponível em: https://csrc.nist.gov/publications/detail/sp/800-38a/final. Acesso em: 31 dez. 2006.
NIST. SP 800-52: Guidelines for the Selection and Use of TLS Implementations. 2005. Disponível em: https://csrc.nist.gov/publications/detail/sp/800-52/original. Acesso em: 31 dez. 2006.
NIST. SP 800-57 Part 1: Recommendation for Key Management. 2006. Disponível em: https://csrc.nist.gov/publications/detail/sp/800-57-part-1/original. Acesso em: 31 dez. 2006.
OECHSLIN, Philippe. Making a Faster Cryptanalytic Time-Memory Trade-Off. In: CRYPTO 2003. Springer, 2003. Disponível em: https://lasec.epfl.ch/pub/lasec/doc/Oech03.pdf. Acesso em: 31 dez. 2006.
PAXSON, Vern. Bro: A System for Detecting Network Intruders in Real-Time. Computer Networks, 1999. Disponível em: https://www.icir.org/vern/papers/bro-CN99.pdf. Acesso em: 31 dez. 2006.
PERCIVAL, Colin. Cache Missing for Fun and Profit. 2005. Disponível em: https://www.daemonology.net/papers/htt.pdf. Acesso em: 31 dez. 2006.
RESCORLA, Eric. SSL and TLS: Designing and Building Secure Systems. Addison-Wesley, 2001. Disponível em: https://www.rtfm.com/ssldocs/ssl-tls.html. Acesso em: 31 dez. 2006.
RESCORLA, Eric. ssldump – An SSL/TLS network protocol analyzer. 2001. Disponível em: https://www.rtfm.com/ssldump/. Acesso em: 31 dez. 2006.
RESCORLA, Eric. HTTP Over TLS. RFC 2818. IETF, 2000. Disponível em: https://datatracker.ietf.org/doc/html/rfc2818. Acesso em: 31 dez. 2006.
RFP – RAIN FOREST PUPPY. How I Broke Web Applications, or: A Look at Web Application Security. 2000. Disponível em: http://dl.packetstormsecurity.net/papers/attack/AppSecWhitePaper.pdf. Acesso em: 31 dez. 2006.
RIVEST, Ronald; SHAMIR, Adle; ADLEMAN, Leonard. A Method for Obtaining Digital Signatures and Public-Key Cryptosystems. Communications of the ACM, 1978. Disponível em: https://doi.org/10.1145/359340.359342. Acesso em: 31 dez. 2006.
ROESCH, Martin. Snort – Lightweight Intrusion Detection for Networks. In: USENIX LISA, 1999. Disponível em: https://www.snort.org/assets/164/snort_manual.pdf. Acesso em: 31 dez. 2006.
STUBBLEFIELD, Adam; IOANNIDIS, John; RUBIN, Avi. Using the Fluhrer, Mantin, and Shamir Attack to Break WEP. In: NDSS 2002. Disponível em: https://www.isoc.org/ndss/2002/. Acesso em: 31 dez. 2006.
VAARANDI, Risto. A Simple Event Correlator for Real-time Security Log Monitoring. In: 2003 IEEE Workshop on Information Assurance. 2003. Disponível em: https://www.usenix.org/legacy/event/lisa03/tech/vaarandi.html. Acesso em: 31 dez. 2006.
VAUDENAY, Serge. Security Flaws Induced by CBC Padding – Applications to SSL, IPSEC, WTLS… In: EUROCRYPT 2002. Springer, 2002. Disponível em: https://link.springer.com/chapter/10.1007/3-540-46035-7_24. Acesso em: 31 dez. 2006.
WANG, Xiaoyun et al. Collisions for Hash Functions MD4, MD5, HAVAL-128 and RIPEMD. Cryptology ePrint Archive, 2004. Disponível em: https://eprint.iacr.org/2004/199. Acesso em: 31 dez. 2006.
YLONEN, Tatu; LONVICK, Chris. The Secure Shell (SSH) Protocol Architecture. RFC 4251. IETF, 2006. Disponível em: https://datatracker.ietf.org/doc/html/rfc4251. Acesso em: 31 dez. 2006.