ssh Impossível negociar: “nenhuma cifra correspondente encontrada”, está rejeitando o cbc

6

Eu estou tentando ssh para máquina remota, a tentativa falha:

$ ssh -vvv [email protected]
OpenSSH_7.7p1, OpenSSL 1.0.2o  27 Mar 2018
.....
debug2: ciphers ctos: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
debug2: ciphers stoc: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
debug2: MACs ctos: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,[email protected]
debug2: compression stoc: none,[email protected]
debug2: languages ctos: 
debug2: languages stoc:
debug2: first_kex_follows 0 
debug2: reserved 0 
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: rsa-sha2-512
Unable to negotiate with 192.168.100.14 port 22: no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

Tanto quanto eu entendi a última cadeia do log, o servidor oferece para usar um dos seguintes 4 algoritmos de codificação: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc . Parece que meu cliente ssh não suporta nenhum deles, portanto, o servidor e o cliente não podem negociar mais.

Mas meu cliente suporta todos os algoritmos sugeridos:

$ ssh -Q cipher
3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
[email protected]
aes128-ctr
... and there are several more.

E se eu especificar explicitamente o algoritmo assim:

ssh -vvv -c aes256-cbc [email protected]

Eu consigo fazer login com sucesso no servidor.

Meu ~/.ssh/config não contém nenhuma diretiva relacionada a criptografia (na verdade, eu o removi completamente, mas o problema continua).

Então, por que cliente e servidor não podem decidir qual código usar sem minhas instruções explícitas? O cliente entende que o servidor suporta aes256-cbc , o cliente entende que ele pode usá-lo sozinho, por que não usá-lo?

Algumas notas adicionais:

ATUALIZAÇÃO: problema resolvido

Como telcoM explicou o problema é com o servidor: ele sugere apenas os algoritmos de cifra obsoletos. Eu tinha certeza de que tanto o cliente quanto o servidor não estão desatualizados. Eu entrei no servidor (a propósito, é Synology, atualizado para a última versão disponível), e examinei o /etc/ssh/sshd_config . A primeira linha (!) Deste arquivo foi:

Ciphers aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

Isso é muito estranho (o fato de que a linha é a primeira no arquivo), tenho certeza de que nunca toquei no arquivo antes. No entanto, mudei a linha para:

Ciphers aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

reiniciou o servidor (não descobriu como reiniciar o serviço sshd ) e, agora, o problema desapareceu: posso ssh para o servidor como de costume.

    
por lesnik 28.07.2018 / 20:15

1 resposta

7

Os algoritmos -cbc se mostraram vulneráveis a um ataque. Como resultado, Versões atualizadas do OpenSSH agora rejeitarão esses algoritmos por padrão: por enquanto, eles ainda estarão disponíveis se você precisar deles, mas como você descobriu, você deve ativá-los explicitamente.

Inicialmente, quando a vulnerabilidade foi descoberta (no final de 2008, quase 10 anos atrás!), esses algoritmos só foram colocados no final da lista de prioridades por questão de compatibilidade, mas agora sua reprovação no SSH atingiu uma fase em que esses algoritmos estão desabilitados por padrão. De acordo com esta pergunta em Cryptography.SE , essa etapa de suspensão de uso já estava acontecendo no ano de 2014.

Por favor considere isto um lembrete gentil para atualizar seu servidor SSH , se possível. (Se for uma implementação baseada em firmware, veja se o firmware atualizado está disponível para o seu hardware.)

    
por 28.07.2018 / 20:37

Tags