web-dev-qa-db-fra.com

Comment puis-je confirmer que cet avertissement SSH n'est pas un homme authentique à l'attaque moyenne? "AVERTISSEMENT: L'identification de l'hôte distante a changé!"

Je suis une nouvelle dans ce genre de choses et je veux exclure l'attaque man-in-intermédiaire.

Je me connecte à partir d'un PC Windows 10 à une Raspberry Pi 4 via SSH, dans mon réseau local et je reçois ce message. Je suis l'administrateur SYS, donc il n'y a personne à vérifier.

J'ai trouvé beaucoup de postes sur la manière de résoudre le problème, mais je veux savoir ce que je devrais faire pour exclure (ou confirmer) une attaque avant de la fixer.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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:0xgFiU5j9W2WgyurDOgORf+qeFQoHf0YE6G92KnrduY.
Please contact your system administrator.
Add correct Host key in C:\\Users\\JamesAlesi/.ssh/known_hosts to get rid of this message.
Offending RSA key in C:\\Users\\JamesAlesi/.ssh/known_hosts:2
ECDSA Host key for 192.168.1.123 has changed and you have requested strict checking.
Host key verification failed.
54
user127813

En règle générale, l'approche que vous prenez est toujours la même: vous vérifiez l'empreinte digitale de la clé via un canal que l'attaquant ne peut pas être manipulé .

Par exemple, dans mon ancienne université, vous pouvez vous rendre à la réception du centre de calcul et obtenir un dépliant avec une liste d'empreintes digitales de toutes les clés et certificats importants. Si c'est un serveur d'un ami que vous connaissez personnellement, vous pouvez les appeler et leur demander de lire l'empreinte digitale. Si c'est un serveur géré hébergé, certains des fournisseurs d'hébergements plus de sécurité peuvent offrir de vous envoyer des empreintes digitales.

Le gist est: IFF Vous avez des raisons de croire que votre connexion réseau est compromise, essayez d'obtenir l'empreinte digitale sans utiliser le réseau.

Pour votre PI de framboise, il existe plusieurs options très simples:

  • Il suffit de connecter un câble réseau de votre ordinateur directement au PI de framboise. BOOM: Il n'y a plus de "milieu" où quelqu'un pourrait monter une attaque homme-midi.
  • Connectez-vous à la console série du PI de votre PC et connectez-vous directement à la console. BOOM: Il n'y a même plus d'un réseau.
  • Branchez un clavier USB et moniteur HDMI dans votre PI et connectez-vous directement à la console.
  • Sortez la carte SD (ou un bâton USB ou quel que soit votre support de démarrage), montez le système de fichiers ext2 sur votre PC (si vous n'exécutez pas Linux, vous pourriez avoir besoin d'un logiciel supplémentaire pour cela, ou vous pouvez démarrer dans une LIVECD Linux). et vérifiez la clé de /etc/ssh/ssh_Host_ecdsa_key.

Cela répond à la question plus spécifique sur la vérification de la vérification de la clé hôte. Maintenant, à votre question plus générale:

Je suis une nouvelle dans ce genre de choses et je veux exclure l'attaque man-in-intermédiaire.

Afin de monter une attaque homme-intermédiaire de votre réseau local, l'attaquant a besoin d'un accès physique à votre infrastructure LAN. Donc, si vous voulez exclure une attaque homme-intermédiaire, vous pouvez littéralement suivre vos câbles et chercher un "homme au milieu", c'est-à-dire un appareil que vous ne reconnaissez pas. Bien que soyez prudent: de tels dispositifs peuvent être minuscules et bien cachés.

Vous pouvez également rechercher des signes d'une pause sur la serrure de votre porte ou d'autres points d'ingress de votre maison (Windows, etc.)

Maintenant, vous pouvez exécuter une analyse de plausibilité: ce qui est plus probable que quelqu'un a éclaté dans votre maison et installé un appareil dans votre réseau local sans vous remarquer, juste pour voir ce que vous faites avec votre PI de framboise? Ou est-il plus probable que 192.168.1.123 aient été attribués à un périphérique différent avant (ou que vous avez mis à jour ou réinstallé ou ré-configuré votre PI) et que l'ancienne clé était toujours mise en cache sur votre PC?

Si nous parlons d'une connexion Wi-Fi, alors, une attaque MITM a non nécessite un accès physique. Donc, il devient beaucoup plus probable que quelqu'un puisse monter une telle attaque sans vous remarquer. Cependant, la question reste toujours: qu'est-ce que l'attaquant veut avec renifler la connexion entre vous et votre PI?

De même, si un périphérique sur votre réseau local est également connecté à un réseau différent (une connexion WiFi, un réseau de voisinage, Internet), alors cet appareil peut être compromis via Réseau et donc donner un accès à un attaquant à votre réseau local.

Comme mentionné dans un commentaire ci-dessus, un PI de framboise compromis est une chose précieuse, mais tout attaquant compétent saurait le compromettre de manière à ne pas changer la clé hôte.

82
Jörg W Mittag

Lorsque vous vous connectez à n'importe quel hôte pour la première fois, SSH enregistre ses informations d'identification. Si cette identification change à l'avenir, il affiche ce message.

Cela pourrait se produire par exemple après la réinstallation du système cible, le remplaçant par un autre avec le même IP/nom d'hôte que vous utilisez pour vous connecter ou après la régénération des clés SSH de System SSH. Si cela ressemble à quelque chose que vous avez fait récemment, c'est la raison.

Cela pourrait aussi bien être quelqu'un interceptant votre connexion (et envoyant leur identification), mais dans un réseau local, il est peu probable.

19
gronostaj

Connectez-vous à la Raspberry Pi de la machine que vous vous connectez normalement. Notez la clé. Confirmez que l'empreinte digitale est correcte.

Si vous n'ayez jamais configuré de manière sécurisée pour vous connecter à la Raspberry Pi depuis n'importe quel endroit, vous n'en avez pas. La prochaine fois, faites-le quand vous réglez la machine. Par exemple, prenez une photo de la touche empreinte digitale de la console lorsque vous définissez le système d'exploitation.

9
David Schwartz

Avez-vous eu d'autres périphériques sur votre réseau local que vous avez connecté avec SSH à, comme d'autres ordinateurs PI: S ou certains ordinateurs NIX réguliers?

Si vous utilisez DHCP, une adresse IP attribuée (limitée de temps, sous forme de "bail" DHCP) à un périphérique peut être réutilisée pour un autre appareil plus tard. Si vous avez connecté avec SSH à un périphérique, SSH se souvient de la clé hôte de cette adresse IP. Lorsqu'un nouveau périphérique obtient la même adresse IP attribuée et que vous essayez de vous connecter avec SSH, vous obtenez l'erreur ci-dessus.

De nombreux serveurs DHCP tentent d'attribuer des adresses "quasi-permanentes" basées sur Mac (l'adresse du matériel Ethernet) du périphérique demandant une adresse IP, mais ce n'est pas parfait - par exemple si chaque adresse IP de la gamme disponible pour DHCP est déjà utilisée pour DHCP. Certains doivent être réutilisés. Ou si le routeur/serveur de domicile/quel que soit le périphérique que vous utilisez pour DHCP est réinitialisé ou remplacé.

4
pereric

Vous n'êtes pas piraté.

Pourquoi quelqu'un voudrait-il avoir un accès "homme-in-the-middle" à un PI de framboise sur un réseau local personnel de toute façon?

"... Je veux savoir ce que je devrais faire pour exclure réellement (ou confirmer) une attaque avant de la fixer."

Les chances de quelqu'un "Man-in-the-Middle" vous attaquent dans votre réseau local via un PI de framboise sont minces à néant. Quel est le bénéfice de ceux-ci si elles ont enfreint votre réseau local et vous avez de belles machines Windows, elles peuvent entrer?

La principale raison que quiconque fait "homme in-the-oliding" consiste à capturer des données, telles que des informations d'identification et telles -, puis de la nature. Ils obtiennent des références pour un PI de framboise et qui conduit à quoi? Sauf si votre Raspberry Pi est d'une manière ou d'une autre, des transactions financières et telles que, mais j'en doute.

Le scénario le plus probable est que vous avez réinstallé le système d'exploitation sur la Raspberry PI, ce qui modifierait la signature d'identification et retrouvez-vous dans un scénario tel que vous gérez. Parce que c'est généralement pourquoi une inadéquation d'identification comme celle-ci se produit; quelque chose a changé l'identification.

Dans le monde non-Raspberry PI, cela peut arriver si vous échangez un disque système d'une machine à une autre, par exemple dans une mise à niveau matérielle et telle - et cela se produit même plus souvent avec des ordinateurs virtuels et tels que l'installation/la soufflage des systèmes est très facile. .

En ce qui concerne en quelque sorte vous donner une sorte de liste de façons que vous pouvez confirmer par vous-même, honnêtement au-delà de l'évaluation du sens commun que je décris qui n'est pas vraiment possible.

4
Giacomo1968

la plupart du temps, en particulier lorsqu'il s'agit de dispositifs relativement éphémères comme des PI de framboise, ce message est bénin; Peut-être que vous mettez une carte SD différente dans ou réinstallée le système d'exploitation ou attribuée la même adresse IP à un autre périphérique, ou l'une des propos d'une douzaine d'actions pouvant entraîner une nouvelle empreinte d'hôte. Cependant, je vous suggère de ne pas vous contenter de "la plupart du temps" lorsqu'il s'agit d'organiser des empreintes digitales, car ils sont si faciles à vérifier.

Comme d'autres les ont déjà signalés correctement, vous devez vérifier l'empreinte digitale de la clé hôte via un canal de confiance. En d'autres termes, non seulement SSH au PI et exécutez les commandes ci-dessous, comme cela serait vulnérable à la même attaque de MITM (potentiel) que vous essayez d'exclure. Dans ce cas, je vous suggérerais d'utiliser la connexion HDMI de PI, ou série ou une autre connexion fiduciée, afin de vérifier l'empreinte digitale de l'hôte.

Maintenant, pour vérifier réellement l'empreinte digitale, vous aurez besoin d'une coquille sur le PI de framboise. Taper ssh-keygen -l (petite lettre 'l') et appuyez sur [ENTER]. Cela vous incitera au nom de fichier de la clé. La clé que vous voulez devrait être dans /etc/ssh (le chemin par défaut suggère-t-il non contient les touches hôtes du système; ignorer ceux-ci, ici). Recherchez la clé ECDSA, car c'est ce que votre client SSH a déclaré être connecté avec. Vous obtiendrez le même résultat si vous utilisez la clé publique (.pub Extension) ou la clé privée (aucune extension), mais à moins que vous ne soyez connecté en tant que root, vous ne pourrez lire que la clé publique.

ssh-keygen -l suivi en saisissant le nom de fichier de la clé privée correcte produira l'empreinte de cette clé. Ça devrait ressembler a quelque chose comme ca:

pi@raspberrypi:~$ ssh-keygen -l
Enter file in which the key is (/root/.ssh/id_rsa): /etc/ssh/ssh_Host_ecdsa_key.pub
256 SHA256:0xg...[redacted]...rduY. root@pi (ECDSA)

(Ce nom de fichier peut être correct ou non pour votre PI de framboise. Vérifiez avec ls -l /etc/ssh première.)

Vous comparez ensuite soigneusement l'empreinte digitale à vos sorties système avec celle obtenue de ssh plus tôt. S'ils correspondent, la connexion est vérifiée, et vous pouvez mettre à jour en toute sécurité votre local ~/.ssh/known_hosts par conséquent. S'ils ne correspondent pas, quelque chose de bizarre se passe-t-il nécessiterait une enquête plus approfondie.

3
type_outcast

Je veux savoir ce que je devrais faire pour exclure réellement (ou confirmer) une attaque avant de la fixer.

Vous devez utiliser un canal de confiance à 100% pour recevoir ces informations.

La meilleure approche consiste à se connecter directement au système - c'est-à-dire: branchez un clavier et moniteur ou utilisez une console de série, le cas échéant.

Une fois que vous vous êtes connecté, lancez l'une des commandes suivantes:

ssh-keygen -l -f <( ssh-keyscan 127.0.0.1 )

ou alors:

for k in /etc/ssh/ssh_Host_*_key.pub; do ssh-keygen -l -f "${k}"; done

Cette volonté:

  • ssh-keyscan - Connectez-vous au serveur SSH du système local et demandez aux touches hôtes [.____]
    • Vous pouvez échanger 127.0.0.1 Pour un hôte distant aussi si vous avez besoin ... bien que cette opération nécessite à distance une confiance absolue que la télécommande est celle qui, selon laquelle il est dit, et que tout entre vous et la télécommande puisse faire confiance.
    • En utilisant 127.0.0.1 Airez la connexion via l'interface de bouclage et communiquera directement avec le système local. (ignorer le potentiel iptables règles de réacheminer le trafic)
    • Dans le cas d'une attaque, l'utilisation de localhost peut réellement vous rediriger vers un autre hôte (en utilisant /etc/hosts), évitez donc d'utiliser.
  • ssh-keygen - montrer les empreintes digitales (-l) des clés dans le fichier fourni (-f ${file})
    • En utilisant avec ssh-keyscan 127.0.0.1 (i.e: l'option 1) se connectera au démon d'exécution et interrogera les clés comme tout autre client
    • En utilisant avec des fichiers dans le système de fichiers local (c.-à-d. L'option 2) peut être considéré comme le légèrement " plus sécurisé " approche, mais cela ne considère pas mal- Ou une configuration mal-configuration du serveur, avec des clés situées ailleurs ... Vous devrez passer à creuser les touches correctes.

Ensuite, une fois que vous avez les empreintes digitales, comparez-les soigneusement avec la clé offerte par le système distant que vous essayez de vous connecter (c'est-à-dire: SHA256:0xgFiU5j9W2WgyurDOgORf+qeFQoHf0YE6G92KnrduY Dans votre exemple).

Si l'empreinte digitale ( ne correspond pas , vous avez confirmé qu'une attaque est en cours et que vous ne parlez pas à la système que vous pensez être.

Si l'empreinte digitale correspond, alors super! Résoudre le problème en utilisant ssh-keygen -R ${hostname}, et continuer sur votre chemin.

Remarques:

  • La mise en garde standard que si un système est comprimé, vous devrez peut-être envisager la touche hôte comprise aussi ... auquel cas vous n'aurez aucun moyen de savoir.
  • Il pourrait être possible de provoquer une collision de hachage et de présenter la même empreinte digitale pour deux clés différentes ... auquel cas vous n'aurez aucun moyen de savoir.
  • Tout trafic basé sur le réseau peut être modifié ou redirigé à l'aide de iptables... Si vous soupçonnez qu'un système est composé, il peut être judicieux de vérifier là aussi.

Il est impossible de le faire sans avoir un canal de communication de 100% de confiance. Dans votre cas, vous pouvez vous connecter à PI et récupérer les clés directement. Dans d'autres situations, vous pourriez avoir besoin de " prendre la parole d'un collègue " ... Faites attention à votre confiance.


Je suis une nouvelle dans ce genre de choses et je veux exclure l'attaque man-in-intermédiaire.

Sur un petit réseau local, c'est très susceptible de parler au système que vous pensez être.

Si l'adresse IP distante est dans votre sous-réseau et que vous n'êtes pas d'autres périphériques inconnus ou suspects présents dans votre réseau, il sera difficile de construire une attaque MITM. Pour plus de certitude, essayez de supprimer tous les autres appareils, ou même à créer un lien point à point entre votre ordinateur et l'ordinateur distant (bien que l'adressage et le DHCP puisse devenir problématique dans cette situation).

Si vous soupçonnez que votre routeur n'est pas digne de confiance, gardez-vous à l'esprit que cela peut annoncer des itinéraires et des noms (DNS/MDNS/WINS) à votre système, que votre système doit généralement faire confiance à implicitement. Si Internet peut être retiré de l'équation, ces astuces de routage/de redirection ne peuvent pas être jouées à moins qu'elles soient facilitées en interne.

... " confiance en informatique " Est un très gros sujet, et il y a tellement d'avenues que nous pourrions vous envoyer ici ... j'encourage Vous demander/lire/lire/etc ... c'est la meilleure façon d'apprendre.


Comme cela a déjà été discuté dans d'autres réponses ... La situation la plus probable que vous trouvez ici est soit:

  1. Vous avez réinstallé le système d'exploitation sur votre Raspberry Pi
  2. Votre serveur DHCP a distribué un bail précédemment donné à un autre hôte que vous avez utilisé ssh avec, et qui a été récemment donné à votre Raspberry Pi

Généralement, les gens accepteront l'empreinte digitale affichée sur la première connexion et se contenteront de cela dans le futur.

Sur des systèmes particulièrement sensibles, vous voudrez confirmer que l'empreinte digitale est exactement correcte sur la première connexion.

Si l'empreinte digitale change, alors quelque chose à propos de l'hôte a changé - par exemple un imputilisateur ou une réinstallation.

2
Attie

Le message signifie fondamentalement que vous vous connectez à un ordinateur différent à une adresse IP/adresse spécifique avant.

Pourquoi cela peut-il arriver à part Mitm? Éventuellement l'ordinateur a été réinstallé. Peut-être que vous mettez un ordinateur différent sur l'adresse IP et attendez-vous totalement du message.

Dans le contexte d'une connexion acheminée entièrement via votre réseau local, les chances d'une attaque réelle au lieu d'une raison bénigne sont très faible.

0
trognanders