Truques para realmente garantir conexões SSH


2

Sei que o SSH é seguro, desde que você não esteja sofrendo um ataque MITM, mas quero saber se há uma maneira de tornar o SSH 100% seguro mesmo em tais circunstâncias, descubra que você está sendo inspecionado antes de qualquer informação confidencial ser divulgado, ou pelo menos tornando não impossível, mas "mais difícil" para o atacante realmente ler / escrever dados reais (talvez haja uma maneira de garbling os dados para que não faça sentido ou algo assim?).

Eu acho que você conseguiu o que eu quero.

Por exemplo, se você se recusar a se conectar caso a impressão digital não seja a que você esperava, o MITM ainda funcionará?

Vou tentar atualizar esta questão se ideias surgirem em minha mente.


Você pode derrotar ataques MitM por meio de chaves pré-compartilhadas.
— CarlF

Sim, acho que isso deveria funcionar.
— Guilherme Vieira

Respostas:


5

descubra que você está sendo farejado

Isso é exatamente o que o SSH protege contra. Contanto que você verifique cuidadosamente a chave do host, não importa se alguém está lendo seu tráfego: tudo é criptografado.

desconectar antes que qualquer informação sensível seja divulgada

Novamente, o SSH padrão ficará bem. A verificação da chave do host é uma das primeiras tarefas feitas ao estabelecer uma conexão SSH; Se você cancelá-lo, a conexão será fechada imediatamente sem transmitir nenhum dado de autenticação.

Por exemplo, se você se recusar a se conectar caso a impressão digital não seja a que você esperava, o MITM ainda funcionará?

O invasor não receberá dados SSH "privados", se é isso que você quer dizer. Veja acima - a verificação da chave do host é uma das primeiras coisas feitas. Nada mais é enviado até que o servidor seja verificado.

talvez haja uma maneira de confundir os dados para que não faça sentido ou algo assim?

Ele é chamado de "criptografia" e acontece de ser uma parte essencial do SSH. :) O atacante não poderá ler nada a menos que você aceite seus hostkey em vez do real. Da mesma forma, a criptografia junto com a verificação de integridade (usando o HMAC) torna impossível inserir pacotes.


Eu admito que não sou um criptógrafo nem nada. Mas IMHO, se você verificar cuidadosamente a impressão digital da chave do host, então SSHv2 é tão seguro quanto ele ganha.

  • Se não fosse seguro, teria sido corrigido / substituído / atualizado. Isso aconteceu uma vez: o SSH v1 foi substituído pelo SSH v2.

  • Isso significa que você devo desabilite o SSH v1 no servidor e no cliente.

    A versão 1 do SSH é muito insegura e, embora a maioria dos clientes esteja configurada para usar o SSHv2 primeiro, eles ainda retornariam à v1 se um servidor não oferecer a v2. Isto introduz uma oportunidade para um ataque MITM ... embora eu não me lembre dos detalhes, tem algo a ver com o atacante gerando uma chave v1 com uma impressão digital muito similar.

    Para OpenSSH, coloque Protocol 2 no seu arquivo de configuração.

  • Há uma possibilidade muito pequena de que um dos algoritmos usados ​​pelo SSH seja quebrado. Mas se alguém conseguir quebrar RSA ou DH, o mundo terá problemas maiores para se preocupar do que a segurança do seu servidor ... (Além disso, existem algoritmos alternativos).


A propósito, o OpenSSH v5.8 mudou de DH e DSA para ECDH e ECDSA como seus principais algoritmos (para troca de chaves e chaves de host, respectivamente).


1
Só para esclarecer um pouco da sua resposta, a chave do host é apresentada pelo servidor para o cliente antes você envia qualquer coisa além do aperto de mão inicial - ou seja, sem nome de usuário, sem senha, sem chave, nada foi enviado. Essa parte que você disse, mas o que eu quero esclarecer é o seguinte: A chave do host é impossível forjar sem primeiro adquirir a chave privada do servidor, o que primeiro requer acesso a uma conta privilegiada (ou seja, raiz) no servidor. Não use senhas fracas (melhor ainda, use chaves em vez de senhas) e você deve ficar bem desde que você verifique a chave do host.
— Kromey

@ Kromey: É verdade, mas é possível criar chaves diferentes com impressões digitais de aparência muito semelhante; Vejo Projeto de impressões digitais difusas .
— grawity

1
@grawity Verdade, mas "aparência semelhante" não é "igual", e todo cliente SSH que conheço armazena a chave do host e a compara para um somente correspondência exata mais tarde, reclamando em voz alta ou até se recusando a se conectar, mesmo que um byte esteja desligado. Contanto que você verifique corretamente essa chave na conexão inicial, você é de ouro.
— Kromey

"Correspondência exata" inclui o algoritmo de chave e a versão do protocolo, que também precisam ser verificados com cuidado. Se o cliente tiver a chave RSA armazenada, mas o servidor apresentar apenas o DSA, alguns clientes só exibirão uma caixa de diálogo de confirmação. (Últimas OpenSSH lida com isso muito melhor.)
— grawity

Ok, então se eu receber alguma impressão digital diferente do que eu esperava, não tenho nada a fazer senão não conectar? Se isso pudesse ser feito, seria parte do SSH, certo?
— Guilherme Vieira

-1

O SSH não é bom, é propenso ao ataque man-in-the-middle.

A Microsoft está fazendo um "ataque" em sua conexão se houver um firewall do Forefront TMG entre você e o servidor que você tenta acessar. E isso inclui falsificação de certificados SSH.


3
É capaz de falsificar os certificados com impressões digitais idênticas como os originais?
— grawity
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.