2010-10-31 28 views
7

J'ai une paire de clés publique/privée (RSA) pgp que mes amis font confiance. J'ai un serveur web en cours d'exécution et je voudrais générer un certificat ssl dont la clé publique correspond à ma clé publique pgp.est-il possible de créer un certificat ssl sur une clé publique/privée pgp?

cela a-t-il un sens? est-ce possible ? est-ce sécuritaire?

+0

Pour quoi avez-vous besoin de cela? Physiquement, ce sera la même clé, mais vous n'en ferez aucun usage. –

+0

Bien que les deux sont une forme de cryptographie à clé publique, ils sont différents. Voir http://forums.comodo.com/digital-certificates-encryption-and-digital-signing/what-is-the-difference-between-ssl-public-key-and-pgp-public-key-t21909.0 .html – Eugene

+0

Oui, compris qu'ils servent à des fins différentes (emballage et usage prévu). La question, cependant, est de savoir si vous pouvez utiliser la même clé publique dans les deux cas. –

Répondre

7

Si le format de clé de votre clé PGP est également pris en charge au format X.509, c'est possible. RSA est l'un d'entre eux.

Voici un Java implementation qui transforme un certificat PGP en un certificat X.509 auto-signé, en utilisant BouncyCastle (Vous devez charger le fournisseur de sécurité BouncyCastle avant de le charger).

Notez que ce que la plupart des gens appellent un PGP clé publique est en fait un certificat PGP . La clé publique elle-même est la clé RSA (ou un autre format) qui est contenue dans ces certificats. Il est donc possible de prendre le matériel clé et de l'utiliser dans l'autre. Cependant, ce faisant, vous perdez les informations qui font du certificat PGP un certificat: la liaison de la clé à une identité et les signatures ajoutées par d'autres (suivant le modèle PGP).

Vous pourriez éventuellement mettre les informations supplémentaires du certificat PGP dans votre propre extension dans le certificat X.509.

Si cela est logique, cela dépend probablement de ce que vous voulez réaliser. Réutiliser plus ou moins le même matériel de clé implique que "vous" (ID derrière le certificat PGP) et votre serveur web deviennent une seule et même chose, puisque si une clé privée est compromise, l'autre est également (Apache Httpd, par exemple, exige que la clé privée ne soit pas protégée par un mot de passe lorsqu'elle est stockée sur le serveur, bien qu'elle ne soit souvent accessible que par l'utilisateur root). De plus, cela n'aidera probablement pas beaucoup vos visiteurs qui vont visiter le site, à moins qu'ils ne veuillent creuser dans la boîte d'avertissement «certificat inconnu» pour vérifier que la clé publique correspond à la vôtre (qu'ils peuvent savoir).

+0

qui était la réponse que je cherchais pour bruno! il valide ce que j'avais en tête et fait ressortir la différence entre les certificats et l'identité. Merci! –

+0

Si vous créez une clé RSA que votre serveur utilise comme certificat X.509 et que vous utilisez votre clé PGP personnelle pour signer votre clé de serveur, indiquant que vous faites confiance à votre propre serveur, le réseau de confiance ne devrait-il pas laisser vos amis faire confiance à votre serveur?Je crois que c'est plus ou moins comment fonctionne monkeysphere (mentionné par http://stackoverflow.com/a/7629599/69663). – unhammer

+1

@unhammer, vous avez besoin d'un moyen de le présenter. Les navigateurs utilisent uniquement des certificats X.509. (Il existe une spécification pour l'utilisation directe des certificats OpenPGP avec TLS, mais il y a très peu d'implémentations.) Ce n'est jamais seulement la clé que vous signez, mais la liaison entre l'identité et la clé. Il ne serait pas logique de signer la clé indépendamment de l'identité du serveur et d'autres attributs, ce qui serait effectivement un certificat distinct. Il y a malheureusement d'autres problèmes avec le modèle WoT: les modèles peuvent rapidement devenir très complexes. – Bruno