Bonjour,
Je viens ici ouvrir un topic car je n'arrive pas à trouver les réponses à mes questions, notamment concernant les attaques MITM (Man In The Middle) sur une connexion SSH.
Pour situer le contexte, j'ai actuellement installé/configuré un mini serveur domestique avec Ubuntu Server 16.04 LTS, mon but étant de pouvoir y accéder depuis n'importe où à travers internet. Je l'ai bien sur sécurisé mais avant de le rendre accessible depuis internet, je voudrais pouvoir comprendre entièrement les mécanismes de SSH.
Pour ce qui est des bases (génération et authentification par clés, utilisation d'un agent, etc..) je pense les maîtriser.
Questions :
- A quoi servent les clés privées/publiques générées dans /etc/ssh/ à l'installation de OpenSSH ? Car si on suit chaque tutos, on recrée une paire de clés. Je voudrais être certain de bien avoir compris, si on génère une paire clés RSA en 4096 bits sur le client et que l'on met la clé publique sur le serveur, la connexion sera chiffrée/déchiffrée de bout en bout à l'aide des clés 4096 bits et non avec les clés dans /etc/ssh/ ? Je pose cette question car je ne comprends pas bien pourquoi les clés privées présentes dans /etc/ssh/ sont spécifiées dans le fichier de configuration du serveur ssh (sshd_config).
- Quand on initie une connexion ssh par clés, la cryptographie asymétrique rentre en jeu. Peut-on faire on sorte d'utiliser une cryptographie mixte (cryptographie asymétrique pour la négociation de la clé de chiffrement puis cryptographie symétrique) ?
- L'attaque MITM (source :
http://www.hsc.fr/ressources/presentations/mitm/index) est-elle un réel risque pour une personne qui comme moi passe par internet pour initier une connexion ssh sur un serveur distant ?
- Pour s'en prémunir, j'ai lu quelques informations sans réellement les comprendre et c'est justement ça mon problème 😃. Il serait question de vérifier l'empreinte (fingerprint) lorsque l'on se connecte et/ou de mettre en place un certificat.
Pour la première proposition, j'ai lu (source :
https://fr.wikibooks.org/wiki/Le_syst%C3%A8me_d'exploitation_GNU-Linux/Le_serveur_de_shell_distant_SSH) qu'il fallait utiliser la commande sudo ssh-keygen -l -v -f /etc/ssh/ssh_host_rsa_key sur le serveur, mais pourquoi la clé privée du serveur rentre en ligne de compte ? Et aussi petit problème annexe, il semblerait que mon empreinte soit hashé, comment la voir en claire ?
Pour la seconde proposition, j'ai réussi à trouver un tuto pas très clair (source :
https://blog.geoffroy.gramaize.eu/2012/03/09/authentifier-ses-serveurs-ssh-a-laide-de-certificats/) sauf que moi je veux utiliser Putty pour me connecter à mon serveur ssh et je n'ai pas réussi à trouver un endroit prévu pour y installer un certificat.
Merci par avance pour vos réponses et éclaircissements 🙂