A mensagem “autenticidade do host não pode ser estabelecida” no SSH reflete um risco à segurança?


19

Sempre que eu me conecto a um novo servidor SSH do meu computador, recebo esta mensagem:

The authenticity of host '[censored]:censored ([0.0.0.0]:censored)' can't be established.
RSA key fingerprint is SHA256:censored.
Are you sure you want to continue connecting (yes/no)?

Por que o SSH me pergunta isso?

Tenho algum risco de me conectar a um servidor SSH aleatório?

Ou isso é apenas para garantir que o servidor ao qual você está se conectando não tenha sido invadido?


Você está usando uma senha ou chave para fazer login?
kasperd

1
Existem várias maneiras melhores de distribuir chaves do host do que confiar no primeiro uso; esse é um fluxo de trabalho relativamente inseguro. As chaves do host podem ser distribuídas via LDAP; via entradas DNS assinadas; pode ser assinado com autoridades de certificação SSH; etc. O que você está vendo aqui indica que seu site está configurado "da maneira preguiçosa" (que quase todos são!), o que é menos seguro do que se esforça para fazer as coisas corretamente.
Charles Duffy

Respostas:


29

Ele está perguntando porque nunca foi conectado a esse host antes.

Se você estiver em um ambiente seguro, conhecerá a impressão digital do host remoto e a comparará na primeira conexão - se a impressão digital corresponder ao que você sabe que deve ser, então será ótimo. Se você estiver em um ambiente menos seguro, poderá aceitá-lo na primeira conexão.

Depois que você disser " Sim, eu confio nessa chave do host e quero que ela seja associada a esse nome de host / IP ", o cliente SSH lembrará disso para você ... Se por qualquer motivo (reinstalar / novas chaves do host / novo machine / man no meio) a chave não corresponde em uma conexão subsequente, você verá um aviso como abaixo:

$ ssh baloo
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:Su0uy/4BcRcpmyLfxO9ndlcda52F8uct6yWNp7Sa92M.
Please contact your system administrator.
Add correct host key in /home/attie/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/attie/.ssh/known_hosts:65
  remove with:
  ssh-keygen -f "/home/attie/.ssh/known_hosts" -R baloo
ECDSA host key for baloo has changed and you have requested strict checking.
Host key verification failed.

Nessa situação, se você souber que o host remoto foi realmente alterado, poderá prosseguir ... possivelmente verificando se a impressão digital está correta.

Se você não tiver certeza ou souber que o host remoto não deveria ter sido alterado, ele indicará um possível ataque.


4
Este é o princípio TOFU: Confiança na primeira utilização
Patrick Mevzek

2
Concordado, o TOFU não é uma ótima idéia - especialmente se você precisa ter certeza ... Sua opinião e abordagem dependerão (devem) do seu modelo de encadeamento.
Attie

1
No entanto, para a eficácia disso, consulte cs.auckland.ac.nz/~pgut001/pubs/defending.pdf , páginas 45-48.
Joker_vD

Lâminas interessantes, obrigado por compartilhar @Joker_vD
Attie

1
@PatrickMevzek O problema é que todo o nosso modelo de "confiança" de computador está fundamentalmente na granularidade de um booleano, enquanto no mundo real um modelo prático de confiança (como o que usamos intuitivamente nas relações inter-humanas) é mais como um probabilidade condicional: dada uma reivindicação de uma entidade, temos algum grau de confiança de que a entidade a seguirá e limitamos nossa exposição ao risco na mesma proporção.
Mtraceur

9

Quando você recebe essa mensagem, o SSH está simplesmente dizendo "Eu nunca vi esse computador antes, então não posso ter certeza de que é quem diz ser. Você confia nele?" Nesse ponto, você pode dizer que confia nele e, no futuro, seu computador lembrará e não perguntará novamente.

Idealmente, para confiar nela, você deve comparar manualmente a chave fornecida com a chave no servidor (como confiaria em uma chave GPG, verificando se a pessoa a quem você acredita que pertence realmente pode gerar a chave pública). Embora, na realidade, as pessoas não se incomodem com isso (pelo menos pelo meu conhecimento).

O benefício real vem de cada vez que você se conecta ao servidor. Se o SSH reclamar que o servidor em que você já confiou não é o mesmo servidor, é possível que você seja vítima de um ataque MiTM.

No geral, se você estiver em uma rede em que está confiante de que não há nenhum ataque do tipo Man in The Middle e esta é a primeira vez que você está se conectando ao computador, você deve estar seguro para aceitar a chave. (embora se você estiver trabalhando em alguma missão secreta do governo, peça ao administrador do sistema para verificar a impressão digital antes de conectar)

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.