J'ai été étonné de constater que l'un des clients SSH les plus populaires PuTTY stocke les informations d'identification en texte clair dans le registre Windows:
HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\
Les mots de passe, ou même les chemins d'accès à la clé ssh sont divulgués, ce qui facilite non seulement pour les logiciels malveillants, mais même un fichier bat simple pour voler les informations d'identification.
Quelle est l'approche la plus sûre pour stocker les informations d'identification? Je sais que tout (cryptage, etc ...) peut être rétroconçu, mais au moins, rend la tentative un peu plus difficile, donc, cela pourrait signifier un peu plus de sécurité (par rapport à rien).
Je suis passé à Kitty avec le mode portable (donc, il ne stocke que les informations dans le répertoire portable, et à moins que les logiciels malveillants ne trouvent ce dossier directement, les mots de passe semblent un peu plus sûr ... Mais cela ne s'avère pas beaucoup plus sûr, car les logiciels malveillants peuvent également analyser le disque dur. Mais à mon humble avis, toujours un peu "sécurisé" par rapport à PuTTY, même si vous avez ce répertoire sur USB enfichable).
Dans le contexte de ssh, les "informations d'identification" peuvent avoir deux significations.
Il est vrai que l'enregistrement d'un mot de passe en texte clair en texte clair, c'est-à-dire sans aucun cryptage, est au moins une mauvaise pratique du point de vue de la sécurité. Cependant, leur cryptage correctement est tout simplement impossible: PuTTY doit en quelque sorte y accéder lors de l'authentification avec le serveur distant. Pour ce faire, il devrait le déchiffrer. Peu importe, comment cela serait-il fait, la même chose pourrait être faite également par un attaquant potentiel. Le cryptage du mot de passe serait la sécurité par l'obscurité , donc il n'aurait pas beaucoup de sécurité.
Bien qu'utiliser le même cryptage, ou utiliser un protocole ssh amélioré qui le contourne, serait évidemment mieux, la différence n'est pas si énorme, comme cela semble au premier abord.
La clé publique peut être envoyée n'importe où, la clé privée doit être gardée secrète. Pour la clé privée, le cas est le même dans ce contexte, comme pour le mot de passe: si quelqu'un peut lire la clé privée, il peut aussi manipuler le processus PuTTY pour l'extraire pour lui.
La chose la plus importante à savoir: pour obtenir les informations d'identification, nécessite l'accès à la machine cliente (soit en tant que compte administrateur, soit en tant que compte utilisateur). Avec cet accès, même un mot de passe crypté peut être échappé, par exemple en utilisant un enregistreur de frappe ou en piratant binaire votre processus PuTTY.
Il s'agit d'une faiblesse de sécurité inhérente à tous les systèmes d'authentification par mot de passe ou par clé. La seule solution pour cela, si l'authentification se fait sur un canal différent, par un système différent, à partir duquel la connexion a été initiée. Il existe plusieurs solutions pour cela, authentification multifacteur ou Kerberos . La plupart des logiciels ssh (y compris PuTTY et le serveur openssh) prennent en charge le second, bien qu'il soit rarement utilisé dans la pratique quotidienne.
La pratique quotidienne consiste à ne permettre à personne l'accès physique à votre machine client. S'ils y ont accès, ils peuvent accéder à bien plus que vos clés/mots de passe ssh.
Il en va de même pour Kitty. Il peut ne pas conserver de mot de passe ou de clés en texte clair dans le registre, mais il doit tout de même avoir accès à vos mots de passe/clés. Même s'il stocke sur une voie publique moindre, ce que Kitty fait pour les décrypter/y accéder, un logiciel malveillant peut également le faire (ou un binaire Kitty modifié peut le faire). Ainsi, Kitty n'augmente que légèrement la sécurité de votre système. Mais cela pourrait donner un faux sentiment de sécurité, ce qui pourrait même être dangereux.
Quelle que soit la méthode de cryptage que vous utilisez pour masquer vos informations d'identification (que ce soit une clé privée, un mot de passe ou autre) sur votre machine, le logiciel en a besoin en texte clair à un moment donné pour faire son travail. Le cryptage d'une clé privée avec un mot de passe est raisonnable, mais le cryptage d'un mot de passe avec un mot de passe est inutile - vous devrez toujours entrer un mot de passe afin que vous puissiez également ne pas enregistrer le mot de passe d'origine en premier lieu.
Si votre ordinateur n'est pas suffisamment sécurisé pour enregistrer un certain mot de passe, il n'est généralement pas suffisamment sécurisé pour saisir le mot de passe. Une personne ayant accès à votre ordinateur sur un fichier peut également installer un enregistreur de frappe.