2010-10-31 23 views
7

tengo un par de claves pgp público/privado (RSA) en el que confían mis amigos. Tengo un servidor web en ejecución y me gustaría generar un certificado SSL cuya clave pública coincida con mi clave pública pgp.¿es posible crear un certificado ssl a partir de una clave pública/privada pgp?

¿Tiene sentido? es eso posible ? es eso seguro?

+0

¿Por qué lo necesitas? Físicamente, será la misma clave, pero no usarás eso. –

+0

Aunque ambos son una forma de criptografía de clave pública, son diferentes. Ver 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

Sí, entendió que sirven para diferentes propósitos (embalaje y uso previsto). La pregunta, sin embargo, es si puede usar la misma clave pública para ambos casos. –

Respuesta

7

Si el formato de clave de su clave PGP también es compatible con el formato X.509, es posible. RSA es uno de ellos.

Aquí es una Java implementation que convierte un certificado de PGP en un certificado X.509 autofirmado, utilizando BouncyCastle (Tendrá que cargar el proveedor de seguridad BouncyCastle antes de cargarlo).

Tenga en cuenta que lo que la mayoría de la gente llama una clave pública PGP es, de hecho, un certificado PGP. La clave pública en sí misma es la clave RSA (u otro formato) que está contenida dentro de esos certificados. Por lo tanto, es posible tomar el material clave y usarlo en el otro. Sin embargo, al hacerlo, pierde la información que hace que el certificado PGP sea un certificado: el enlace de la clave a una identidad y las firmas agregadas por otros (siguiendo el modelo PGP).

Posiblemente, podría poner la información adicional del certificado PGP en su propia extensión en el certificado X.509.

Si tiene sentido hacerlo, probablemente dependa de lo que desee lograr. Volver a utilizar el mismo material clave implica más o menos que "usted" (ID detrás del certificado PGP) y su servidor web se vuelven uno y lo mismo, ya que si una clave privada está comprometida, también lo está el otro (Apache Httpd, por ejemplo, requiere que la clave privada no esté protegida por contraseña cuando se almacenan en el servidor, aunque a menudo solo puede acceder el usuario raíz). Además, esto probablemente no ayudará mucho a los visitantes que visitarán el sitio web, a menos que quieran excavar dentro del cuadro de advertencia "certificado desconocido" para verificar que la clave pública coincida con la suya (que tal vez conozcan).

+0

esa fue la respuesta que estaba buscando bruno! valida lo que tenía en mente y saca a relucir la diferencia entre certificados e identidad. ¡Gracias! –

+0

Si crea una clave RSA que su servidor utiliza como su certificado X.509, y usa su clave PGP personal para firmar la clave del servidor, demostrando que confía en su propio servidor, entonces ¿no debería la red de confianza dejar que sus amigos confía en tu servidor?Creo que es más o menos como funciona la monosfera (mencionada por http://stackoverflow.com/a/7629599/69663). – unhammer

+1

@unhammer, necesitas una forma de presentarlo. Los navegadores solo usan certificados X.509. (Existe una especificación para usar certificados OpenPGP con TLS directamente, pero hay muy pocas implementaciones). Nunca es solo la clave que se firma, sino el enlace entre la identidad y la clave. No tendría sentido firmar la clave independientemente de la identidad del servidor y otros atributos, que efectivamente serían un certificado distinto. Desafortunadamente, hay otros problemas con el modelo WoT: los modelos pueden volverse muy complejos rápidamente. – Bruno

Cuestiones relacionadas