¿Es posible generar claves GnuPG sin subclaves?

¿Es posible generar claves GnuPG sin subclaves?

He estado usando PGP y luego GnuPG durante más de 20 años, y mi clave más antigua todavía está en el servidor del MIT desde 1996. (RSA 1024 sin subclaves...)

Con el tiempo, las claves se convirtieron en pares de clave principal y subclave. En todos estos añosNo he necesitado ni una sola vez la subclavefunción. Tampoco conozco personalmente a nadie que lo haya utilizado.

Es posible que haya leído todas las "buenas razones" de por qué "deberían" usarse subclaves. Pero ninguna de estas razones se aplica a mí.

Por ejemplo, ¡las subclaves son excelentes cuando la clave de cifrado está comprometida! Pero mis claves de cifrado nunca se han visto comprometidas. Tampoco conozco a nadie que tenga llaves.

O supuestamente es bueno para organizaciones donde una clave principal está asociada con muchas claves de cifrado. No lo he visto. Me pregunto si tal organización existe en algún lugar de este Universo. Por todo lo que he visto, la idea subclave parece ser un caso desobreingenieríasin uso o muy poco común en la vida real. Quizás la idea sea simplemente una racionalización del esquema DSA/elGamal.

En cualquier caso, estoy trabajando en algún software donde no se utilizan subclaves. Además, quiero que mis claves sean compatibles con RetroShare (un chat de mensajería instantánea p2p seguro e intercambio de archivos, que utiliza solo claves individuales sin subclaves).

¿Alguien sabe si existe alguna forma de generar claves sin subclaves? Solo conozco la opción para eliminar subclaves en el menú --edit-key. No sé si se pueden generar claves sin ellas. ¿Hay alguna manera? Muchas gracias por cualquier ayuda para comprender mejor este problema.

Respuesta1

Ventajas de usar subclaves

La mentalidad de utilizar mejor las subclaves puede parecer una ingeniería excesiva, pero tiene algunos argumentos sólidos. La necesidad cuando se utiliza con algoritmos de solo firma como DSA es obvia (y no se debate). La capacidad de desconectar la clave primaria privada (y reducir el riesgo de perderla) y rotar las claves con mayor facilidad puede parecer muy importante cuando no se depende en gran medida de la red de confianza. Pero hay otras razones: separar el uso puede reducir el riesgo al utilizar tanto cifrado como firmas. Por ejemplo, una vez hubo una falla con números aleatorios incorrectos y claves DSA, donde la emisión de un montón de firmas revelaba su clave privada. Si esa clave también se hubiera utilizado para el cifrado, también se habría revelado su comunicación privada. Por supuesto, claves DSAno pudese han utilizado para el cifrado, pero indica que no ocurrirán problemas similares con RSA.

Otro ejemplo: OpenSSH tuvo algunos problemas que posiblemente revelaron sus claves SSH privadas al servidor de claves. Estoy usando subclaves de autenticación de OpenPGP junto con Monkeysphere; en este caso, se habría revelado mi subclave de autenticación, no mi clave principal. Desarrollar la subclave de autenticación me llevó cinco minutos, distribuir claves completamente nuevas me llevaría una hora (o incluso más).

Las subclaves pueden agregar algo de complejidad, pero realmente no se ve y funciona bien. La sobrecarga de cálculo y almacenamiento es insignificante, no hay ningún esfuerzo manual adicional. ¿Por qué no simplemente aprovechar algunos (posibles) beneficios adicionales "gratis"?

No usarlos de todos modos

Bien podría haber razonesnopara utilizar subclaves. Tal vez solo desee confiar en algunas partes de la infraestructura OpenPGP y no preocuparse en absoluto por la gestión de confianza y otras. Si crea software para otros, considere no restringir a sus usuarios: ¿quizás también sería razonable que algunos simplemente proporcionen una subclave, en lugar de crear un par de claves completamente sin relación?

La generación de claves sin subclaves requiere el uso de un algoritmo que admita tanto el cifrado como las firmas, lo cual RSA sí hace (pero DSA no). Para generar una clave primaria de "propósito general" sin subclaves, debe usar el --expertmenú de generación de claves:

gpg --expert --gen-key

Entonces escoge(8) RSA (establezca sus propias capacidades). Podrá seleccionar los posibles usos de la clave, donde Cse requiere (certificación) para una clave primaria, S(firma), E(cifrado) y A(autenticación) se pueden seleccionar arbitrariamente. Termine el resto del asistente y recibirá una clave principal sin subclaves con las capacidades elegidas.

Respuesta2

@ jens-erat Gracias por tu respuesta, estaba buscando lo mismo. Sólo un detalle para que conste:

gpg --expert --gen-key

no funcionó para mí (GPG 2.2.4). Esto funcionó:

gpg --expert --full-generate-key

información relacionada