Les clés privées RSA peuvent se voir attribuer une "phrase secrète" qui - si je comprends bien - est destinée à fournir une certaine sécurité secondaire au cas où quelqu'un s'en tirerait avec le fichier de clé privée.
Comment la couche de sécurité de phrase secrète est-elle implémentée?
ssh-keygen utilise OpenSSL pour générer des clés RSA et les stocker au format PEM. Le cryptage dont vous parlez est spécifique à PEM. Si vous regardez votre fichier clé,
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,5B01E932988DC66B
EPESt4ZVIrxnQXxxWWVa7cCR+vgNZ/4vTu4mdq6pjaW7jMZoB8HV+mA745mQkQw7
i+YtdVs/JqOeyGiw/3McxYYKZTlhyh7MvfIr1n8ZdZmcjQz+oFqMxChFU3r8BGgA
L'en-tête "DEK-Info" contient toutes les informations dont vous avez besoin pour déchiffrer la clé tant que vous connaissez la phrase secrète. "DES-EDE3-CBC" signifie Triple DES (en mode EDE). CBC est le mode de chaînage. Le nombre hexadécimal est le vecteur initial nécessaire pour CBC.
PEM est un format très ancien, il ne prend donc en charge que DES/TripleDES. AES et Blowfish ont été ajoutés plus tard, mais ne sont pas pris en charge par toutes les implémentations. Mon ssh (OpenSSH 5.2) ne prend en charge que DES et TripleDES.
La phrase secrète est juste une clé utilisée pour chiffrer le fichier qui contient la clé RSA, en utilisant un chiffrement symétrique (généralement DES ou 3DES). Pour utiliser la clé pour le chiffrement à clé publique, vous vous devez d'abord déchiffrer son fichier à l'aide de la clé de déchiffrement. ssh le fait automatiquement en vous demandant la phrase secrète.
Si quelqu'un a mis la main sur le fichier de la clé, il ne pourrait pas l'utiliser à moins de connaître la phrase secrète utilisée pour crypter le fichier.
Les clés privées stockées sur des systèmes de fichiers à usage général (par opposition aux jetons matériels inviolables à usage spécial) peuvent être facilement volées si elles ne sont pas protégées. Les autorisations du système de fichiers peuvent sembler suffisantes, mais elles peuvent souvent être contournées, surtout si un attaquant a un accès physique à la machine.
Un chiffrement symétrique puissant, associé à un bon mot de passe, permet d'éviter cela. Une bonne clé privée RSA est trop longue à retenir (pour moi, en tout cas), mais des clés symétriques beaucoup plus petites peuvent fournir le même niveau de sécurité. Une clé symétrique relativement courte stockée dans son cerveau est utilisée pour protéger une grande clé privée stockée sur le disque.