web-dev-qa-db-fra.com

Récupérer le mot de passe du fichier .pfx

J'ai une ancienne application Windows SmartClient publiée avec un certificat signé (un fichier .pfx). Nous voulons étendre la date d'expiration à plus d'un an. J'ai utilisé un programme appelé RenewCert pour le faire avec d'autres certificats. Cependant, nous ne connaissons pas le mot de passe de ce certificat, qui est requis par RenewCert. J'ai essayé d'utiliser un programme appelé CertificatePasswordRecovery pour récupérer le mot de passe, mais il n'a pas pu le trouver.

Le seul choix semble maintenant être de générer un nouveau certificat, ce qui nécessitera une désinstallation/réinstallation de l'application sur toutes les machines.

Est-ce correct? ou pouvez-vous penser à d'autres possibilités?

Modifier: plus d'informations:
J'ai vu une autre solution potentielle sur Internet où vous ouvrez le fichier dans le bloc-notes et recherchez le signtool.exe et le mot de passe suivra le commutateur/p. Je n'ai pas réussi, mais je ne sais pas si je l'ai approché correctement. Dans le bloc-notes, je vois juste un tas de symboles chinois. Ensuite, j'ai essayé de regarder le fichier pfx dans Ultraedit, en mode texte et hexadécimal, mais je n'ai rien vu comme "signtool.exe". J'ai cherché un hex ascii de "signe" - 73 69 67 6e - mais je ne l'ai pas trouvé.

5
Al Lelopath

Premièrement, j'ai un problème avec la nomenclature: des articles comme celui que vous avez lié à sortof suggèrent que les termes "paire de clés publique/privée" et "certificat" sont interchangeables. En réalité, un certificat n'est que la partie clé publique de la paire de clés, et un fichier .pfx est un ensemble qui contient à la fois le certificat (partie publique) et la clé privée cryptée [source] .

(Cela fait grincer des dents quand les gens parlent d'un "mot de passe protégeant un certificat" qui n'a aucun sens car un certificat est une information publique! Vous voulez vraiment dire "mot de passe protégeant une clé privée". Mais puisque le format PFX encourage les gens à pensez à tout cela comme un seul paquet, je suppose que c'est pardonnable.)

Sur la base de cet article que vous avez lié, il semble que RenewCert utilise la clé privée associée à ce certificat pour générer un nouveau certificat auto-signé contenant la même clé publique que l'ancien certificat (et obtenant une expiration plus longue date à ce sujet dans le processus). Les certificats auto-signés échoueraient dans HTTPS, mais vos applications SmartClient devraient bien le faire. Les certificats doivent être signés par la clé privée de quelqu'un, donc RenewCert utilise la même paire de clés que vous certifiez pour faire la signature (d'où le "certificat auto-signé").

L'autre façon de renouveler un certificat consiste à soumettre une demande de signature de certificat (csr) à une autorité de certification (CA). Malheureusement, ici aussi, vous devez avoir accès à la clé privée afin de pouvoir prouver à l'autorité de certification que vous possédez cette clé via une preuve de possession [voir RFC 4211 Section 4. et un Déclaration de l'IETF sur les POP dans les CSR ].

La réponse à votre question est donc: sauf si vous pouvez trouver un moyen d'accéder à cette clé privée (en mémorisant le mot de passe sur le fichier .pfx, ou en trouver la clé privée dans une sauvegarde quelque part) votre seule option est de générer une nouvelle paire de clés, de créer un certificat complètement nouveau et de mettre à jour toutes les applications. Aucun moyen de contourner cela ... tout l'intérêt des certificats est de prouver que vous possédez la clé privée correspondante.

8
Mike Ounsworth

Les fichiers PFX sont l'implémentation Windows de certificats au format PKCS # 12. Il est possible de forcer brutalement ces mots de passe de la même manière que de forcer brutalement un fichier .Zip. Il est généralement plus facile de simplement retélécharger le certificat ou d'en obtenir un nouveau.

Je recommande d'utiliser un mot de passe sur un fichier PFX avec une entropie similaire à l'entropie de la clé privée dans le fichier PFX. Je viens généralement de me rendre sur grc.com et d'utiliser le service Perfect Passwords.

2
Craig Carlston