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.

Guilherme Vieira
fonte
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).

grawity
fonte
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.

w.pasman
fonte
3
É capaz de falsificar os certificados com impressões digitais idênticas como os originais?
grawity