O Mecanismo de Segurança SSH Mais Subestimado: Por Que known_hosts Não É Apenas um Cache

O Mecanismo de Segurança SSH Mais Subestimado: Por Que known_hosts Não É Apenas um Cache

O arquivo known_hosts do SSH, frequentemente descartado como um cache temporário, é na verdade uma base de identidades de servidores confiáveis. Este artigo explora sua importância e a falta de ferramentas para gerenciá-lo.

MundiX News·07 de julho de 2026·6 min de leitura·👁 1 views

Todo aquele que já se conectou a um novo servidor via SSH está familiarizado com o ritual interativo:

A autenticidade do host 'exemplo.com' não pode ser estabelecida. O fingerprint da chave ED25519 é SHA256:... Tem certeza de que deseja continuar a conexão (sim/não)? E quase todos respondem mecanicamente com o mesmo comando:

yes

Este modelo é conhecido como TOFU (Trust On First Use) – Confiança no Primeiro Uso. Meses ou até anos depois, uma mensagem completamente diferente pode surgir no mesmo endereço:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ AVISO: IDENTIFICAÇÃO DO HOST REMOTO FOI ALTERADA! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

E, na maioria dos casos, o cenário a seguir é igualmente simples e ineficaz:

ssh-keygen -R exemplo.com ssh exemplo.com

yes

Pronto, o problema está resolvido e você pode voltar a não se preocupar. Ou será que não?

Até recentemente, eu tratava o arquivo known_hosts de forma semelhante. Apenas um cache de serviço do SSH. Se algo desse errado, eu removia a entrada, me conectava novamente e seguia em frente. No entanto, um dia, me deparei com um pensamento simples e óbvio: known_hosts não é um cache. É uma base de identidades de servidores confiáveis. Quando o SSH pergunta: "Você tem certeza de que deseja confiar neste servidor?", ele salva sua resposta exatamente no known_hosts. E, por anos, utiliza este arquivo como a única fonte de verdade para determinar se você está falando com o mesmo servidor ou com alguém completamente diferente. Isso cria uma situação peculiar: um dos mecanismos de segurança mais importantes do SSH reside em um arquivo de texto simples, com pouquíssimas ferramentas ao seu redor.

Onde o OpenSSH Termina Vamos analisar o que o OpenSSH é capaz de fazer com sua própria base de confiança. Ele pode adicionar automaticamente uma nova entrada na primeira conexão, remover uma entrada (ssh-keygen -R), encontrar uma entrada (ssh-keygen -F) e hashear o arquivo (ssh-keygen -H). E, em grande parte, suas atribuições terminam aí. Ao gerenciar dezenas ou centenas de servidores, o known_hosts acumula centenas de entradas ao longo do tempo. E, de repente, percebe-se que o OpenSSH oferece pouca ajuda para responder a perguntas comuns: Quais servidores não existem mais? Quais chaves foram alteradas? Existem duplicatas? Quais entradas utilizam algoritmos obsoletos? Em quem eu confio neste exato momento? Geralmente, a resposta envolve grep, awk, sed ou uma série de scripts shell. Isso me surpreendeu profundamente. O SSH existe há mais de trinta anos e é um dos protocolos de rede mais difundidos no mundo. No entanto, seu modelo de confiança praticamente se encerra após o primeiro "yes". Criar confiança é fácil; mantê-la, já é outra história.

Como o SSH Obtém a Chave do Host? Fiquei curioso sobre como o cliente obtém a chave pública do servidor. Sempre pensei que isso exigiria o estabelecimento de uma sessão SSH completa, negociação de criptografia, autenticação e, só então, a obtenção da informação necessária. Acontece que o processo é muito mais direto. Durante a conexão, a sequência é aproximadamente a seguinte:

ClienteServidor
TCP connect->
<- Version banner
Version banner ->
<- SSH_MSG_KEXINIT
SSH_MSG_KEXINIT ->
SSH_MSG_KEX_ECDH_INIT ->
<- SSH_MSG_KEX_ECDH_REPLY

Inicialmente, as partes trocam banners de versão, como "SSH-2.0-OpenSSH_10.0". Em seguida, negociam os algoritmos suportados. Finalmente, o cliente envia SSH_MSG_KEX_ECDH_INIT. O mais interessante ocorre na mensagem de resposta: SSH_MSG_KEX_ECDH_REPLY contém a chave do host do servidor, uma chave pública temporária do servidor e uma assinatura criptográfica. É aqui que o cliente calcula o fingerprint, compara-o com o known_hosts e decide se continua a conexão ou não. O que mais me surpreendeu é que tudo isso acontece antes da autenticação do usuário. Sem senhas, sem chaves privadas, sem shell, sem uma sessão SSH aberta. E isso é totalmente lógico. A chave do host existe precisamente para que o cliente possa verificar com quem está falando antes de enviar quaisquer segredos. Portanto, se o objetivo é apenas verificar a identidade do servidor, a conexão pode ser encerrada imediatamente após o recebimento de SSH_MSG_KEX_ECDH_REPLY. Tudo o que é necessário já foi obtido.

Da Pesquisa à Ferramenta Quando percebi isso, outra coisa ficou clara: para verificar a chave do host de um servidor, como mencionado anteriormente, não é necessário um cliente SSH completo. Não é preciso um shell, nem autenticação, nem a maior parte do SSH. Apenas um pequeno pedaço do protocolo é suficiente. Foi a partir dessa observação que gradualmente nasceu um pequeno projeto CLI que chamei de khm (known hosts manager). Inicialmente, foi escrito para uso pessoal. Eu queria ter a capacidade de responder rapidamente às perguntas que o OpenSSH, por algum motivo, não respondia. Por exemplo: As chaves de servidores já conhecidos foram alteradas? Há lixo ou duplicatas no known_hosts? Qual a diferença entre dois arquivos após a migração da infraestrutura ou rotação de chaves? O que eu realmente tenho hoje? Gradualmente, tornou-se evidente que o problema era muito mais amplo do que parecia inicialmente. Surpreendentemente, muitas pessoas veem o known_hosts como um arquivo temporário que pode ser excluído ao primeiro erro, quando, na verdade, é ele quem determina em quais servidores seu computador confia no momento. Por exemplo, esta é a saída que sempre senti falta no OpenSSH:

$ khm verify --all

OK github.com OK gitlab.com CHANGED old.example.com UNREACHABLE backup.example.com

4 hosts • 2 OK • 1 changed • 1 unreachable

Não é uma lista de chaves, nem uma saída grep burra e suscetível a erros humanos, mas uma resposta simples a uma pergunta simples: "Ainda corresponde ao que eu confiava antes?"

Em Conclusão Enquanto trabalhava neste projeto, a descoberta mais inesperada não foi o protocolo SSH em si. Fiquei surpreso com a atitude em relação ao known_hosts. Incluindo a minha. Acostumamo-nos a considerá-lo um cache temporário, que pode ser excluído sem remorso ao primeiro aviso do SSH. Mas, se olharmos mais de perto, é a única base local de identidades de servidores confiáveis utilizada pelo OpenSSH. E, assim que começamos a vê-lo dessa forma, torna-se surpreendente o quão poucas ferramentas existem ao seu redor. É por isso que o khm surgiu. Não como mais um cliente SSH, nem como substituto do OpenSSH. Mas como uma tentativa de tornar um pouco mais conveniente uma parte pequena, mas, a meu ver, injustamente esquecida, de seu modelo de confiança. O código-fonte do projeto, compilações binárias e documentação estão disponíveis no repositório: https://github.com/casablanque-code/khm

🛡️⚡

Pare de pesquisar. Comece a hackear.

O MundiX é seu copiloto de pentest com IA: comandos exatos, análise de outputs e próximo passo na kill chain — em segundos.

Testar grátis por 7 dias →

Sem cartão para começar · Planos a partir de R$49/mês

📤 Compartilhar & Baixar

🧰 Ferramentas recomendadas

Divulgação: alguns links são patrocinados. Podemos receber comissão se você comprar — sem custo extra para você. Só indicamos o que faz sentido para a comunidade.

Aprendendo Kali Linux: Teste de segurança, pentest e hacking ético

Aprendendo Kali Linux: Teste de segurança, pentest e hacking ético

Com centenas de ferramentas pré-instaladas, a distribuição Kali Linux facilita o trabalho de os profissionais de segurança começarem a fazer testes de segurança rapidamente. No entanto, com mais de 600 ferramentas em seu arsenal, o Kali Linux também pode ser desafiador. A nova edição deste prático livro abrange as atualizações nas ferramentas e inclui uma melhor abordagem da análise forense e da engenharia reversa. Ric Messier, autor, não fica apenas no teste de segurança, mas também faz uma abordagem sobre a execução de análise forense, incluindo a análise em disco e na memória, assim como alguma análise básica de malware. • Explore as diversas ferramentas disponíveis no Kali Linux • Entenda o valor do teste de segurança e examine os tipos de teste disponíveis • Aprenda os aspectos básicos do pentest em todo o ciclo de vida do ataque • Instale o Kali Linux em vários sistemas, tanto físicos quanto virtuais • Descubra como usar diferentes ferramentas destinadas à segurança • Estruture um teste de segurança baseado nas ferramentas do Kali Linux • Estenda as ferramentas do Kali para criar técnicas de ataque avançadas • Use o Kali Linux para ajudar a criar relatórios quando o teste terminar “A abordagem concisa, clara e baseada na experiência adotada por Ric Messier para a introdução do Kali Linux e dos testes de cibersegurança é incomparável. Este livro é uma leitura excelente e acessível para iniciantes e um recurso valioso para qualquer pessoa.” —Alexander Arlt, Consultor sênior de segurança, Google

Ver na Amazon
Gshield 2 em 1 Hub Extensor Conector USB-C + USB-A e Adaptador de Rede Ethernet LAN RJ45 com 3 Entradas USB 3.0 até 5 Gbps em Liga de Alumínio para Computador e Notebook, Cinza

Gshield 2 em 1 Hub Extensor Conector USB-C + USB-A e Adaptador de Rede Ethernet LAN RJ45 com 3 Entradas USB 3.0 até 5 Gbps em Liga de Alumínio para Computador e Notebook, Cinza

Compatível com portas USB-C e USB-A, ideal para ampliar a conectividade de dispositivos como MacBook Pro e outros com portas USB-C. Inclui um adaptador USB-A extra, proporcionando uma conexão Ethernet estável e veloz de até 1 Gbps, perfeita para filmes, jogos online e videoconferências. Oferece três portas USB 3.0 com velocidades de transferência de até 5 Gbps, permitindo conectar mouse, teclado, discos rígidos e outros periféricos. Fabricado em alumínio durável, garantindo longa vida útil e resistência ao uso diário. Design compacto e leve, ideal para viagens de negócios e uso diário, facilitando o transporte e armazenamento. Funciona com Windows 10/8.1/8, Mac OS e Chrome OS, oferecendo versatilidade incomparável para diversas necessidades de conectividade. Assegura uma conectividade estável e rápida, perfeita para tarefas exigentes como transferência de dados, streaming e mais.

Ver na Amazon
Hacking APIs: Breaking Web Application Programming Interfaces

Hacking APIs: Breaking Web Application Programming Interfaces

Hacking APIs is a crash course on web API security testing that will prepare you to penetration-test APIs, reap high rewards on bug bounty programs, and make your own APIs more secure. You'll learn how REST and GraphQL APIs work in the wild and set up a streamlined API testing lab with Burp Suite and Postman. Then you'll master tools useful for reconnaissance, endpoint analysis, and fuzzing, such as Kiterunner and OWASP Amass. Next, you'll learn to perform common attacks, like those targeting an API's authentication mechanisms and the injection vulnerabilities commonly found in web applications. You'll also learn techniques for bypassing protections against these attacks. In the book's nine guided labs, which target intentionally vulnerable APIs, you'll practice: Enumerating APIs users and endpoints using fuzzing techniques Using Postman to discover an excessive data exposure vulnerability Performing a JSON Web Token attack against an API authentication process Combining multiple API attack techniques to perform a NoSQL injection Attacking a GraphQL API to uncover a broken object level authorization vulnerability

Ver oferta
Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition

Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition

Up-to-date strategies for thwarting the latest, most insidious network attacks This fully updated, industry-standard security resource shows, step by step, how to fortify computer networks by learning and applying effective ethical hacking techniques. Based on curricula developed by the authors at major security conferences and colleges, the book features actionable planning and analysis methods as well as practical steps for identifying and combating both targeted and opportunistic attacks. Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition clearly explains the enemy's devious weapons, skills, and tactics and offers field-tested remedies, case studies, and testing labs. You will get complete coverage of Internet of Things, mobile, and Cloud security along with penetration testing, malware analysis, and reverse engineering techniques. State-of-the-art malware, ransomware, and system exploits are thoroughly explained. Fully revised content includes 7 new chapters covering the latest threats Includes proof-of-concept code stored on the GitHub repository Authors train attendees at major security conferences, including RSA, Black Hat, Defcon, and B-Sides

Ver na Amazon
Bloqueador USB de privacidade de porta USB para PC, notebook, bloco de laptop,

Bloqueador USB de privacidade de porta USB para PC, notebook, bloco de laptop,

Proteção de privacidade aprimorada: protege o link de transmissão de dados para evitar roubo de informações, fornecendo proteção de segurança robusta que protege a privacidade do usuário durante transferências de arquivos e garante uma conexão segura para interações de dispositivos sem preocupações em vários ambientes Uso a longo prazo: a camada protetora resistente ao desgaste, combinada com um corpo de metal resistente, oferece gerenciamento de calor confiável e qualidade duradoura durante o uso diário Entrega eficiente de energia: a tecnologia de chip inteligente garante a identificação automática dos requisitos de energia, fornecendo carregamento eficiente alinhando-se com vários protocolos de carregamento rápido para maior conveniência Proteção contra sobrecarga: evitando riscos de sobrecarga, este bloqueador de dados USB protege a vida útil da bateria e garante um desempenho estável, mantendo um fluxo estável de energia para melhorar a longevidade do dispositivo de forma eficaz Prático de transportar: com atenção à portabilidade, este bloqueador de dados USB oferece um design compacto que é leve e fácil de transportar, melhorando a conveniência do usuário e operação eficiente

Ver na Amazon

📩 Newsletter MundiX

Receba novidades de cibersegurança + um checklist de pentest grátis. Sem spam.

Ao assinar você concorda em receber e-mails. Cancele quando quiser.