web-dev-qa-db-fra.com

Créez un certificat sans clé privée ou en utilisant USB eToken

Considérant ce fil:

Créez un certificat sans clé privée avec openssl

J'ai une situation très similaire. J'ai une clé USB 5110 JC (Aladdin) qui a une clé privée inaccessible, car c'est l'objectif principal. Je peux utiliser pkcs11-tool --module /lib/libeToken.so.9 -l --pin -s -i et ça marche bien. Le libétank.so.9 est fourni par le pilote SAC 9.1 (outil d'authentification SafeNet). Jusqu'ici tout va bien.

Mon problème est: J'ai besoin de générer des certificats et de les signaler avec cet étanchéité. J'ai essayé d'utiliser le moteur PKCS11 avec OpenSSL sans succès. Peut-être qu'une mauvaise configuration (j'ai essayé https://github.com/opensc/libp11 comment, mais j'ai beaucoup d'erreurs, et j'ai abandonné)

J'ai essayé d'utiliser GPG mais j'ai des erreurs lors de l'apprentissage de la carte.

Depuis que je peux facilement exporter des certificats et des clés publiques du jeton USB, la pointe de la Valentin Bossi sonne bien, car je pourrais courir openssl x509 -force_pubkey. Est-ce correct jusqu'à présent?

Quel sera le problème de faire cela? Je sais que la signature est un processus de génération d'un hachage de certaines données et de la chiffrer avec une clé privée. Lorsque certaines données sont envoyées à une personne avec sa signature, le destinataire vérifiera quel était l'algorithme de hachage, puis générera un hachage des données avec le même algorithme et comparer aux données de hachage déchiffrés avec la clé publique de l'expéditeur, ai-je raison?

Donc, lors de la génération d'un certificat, peu importe si les données provenaient d'une CSR ou de STDIN, la signature faite via une clé publique n'assure pas la signature numérique, car tout le monde pouvait obtenir cette clé publique et générer des certificats pour le compte du propriétaire édoken.

Alors, qu'est-ce que maintenant? Qu'est-ce que je me suis trompé?

Les données cryptées avec une clé privée peuvent être déchiffrées avec sa clé publique et vice versa. Mais je ne savais pas qu'il est possible de chiffrer et de déchiffrer en utilisant la même clé (puisque les clés sont asymétriques).

Je pense que vous confondez des choses. Dans la question que vous vous référez à un problème différent est adressée: ne pas pouvoir signer la RSE avec la clé privée appropriée, mais la création d'un certificat basé sur cette RSE. Cela est possible car la signature de la CSR n'est utilisée que pour vérifier que le créateur de la CSR a réellement accès à la clé privée, mais la clé privée n'est pas réellement nécessaire pour créer le certificat.

Vous demandez plutôt de signer le certificat - qui est différent de et sert un objectif différent puis signant un RSE. Étant donné que la signature sur le certificat est essentielle pour vérifier la validité du certificat que vous ne pouvez pas la sauter ni le faux (en utilisant une clé privée différente). Ainsi, il n'ya aucun moyen de signer correctement un certificat sans avoir accès à la clé privée, c'est-à-dire en ayant la clé privée elle-même ou en disposant d'un dispositif contenant la clé qui peut être utilisé pour la signature.

2
Steffen Ullrich