Generación de claves SSH y GnuPG en un servidor remoto. Mejores prácticas de gestión clave

Generación de claves SSH y GnuPG en un servidor remoto. Mejores prácticas de gestión clave

Estoy preguntando sobre las mejores prácticas relacionadas con la generación, el uso y la administración de claves.

En algunas ocasiones, y por diversas razones, creé claves SSH y GnuPG mientras estaba conectado a través de SSH en un servidor multiusuario remoto en el trabajo (y en mi máquina de escritorio en el trabajo, desde casa).

Mientras ingresaba las frases de contraseña de mis claves recién generadas, me di cuenta de que no tengo control sobre la máquina en la que inicié sesión ni sobre el enlace intermedio. Confío en los administradores de sistemas en el trabajo y SSH es seguro, pero aun así... me pareció extraño enviar mis nuevas contraseñas a través del enlace de esa manera.

¿Qué opinas? ¿Es más prudente generar las claves (SSH, GnuPG u otras) localmente y luego transferir las claves privadas a través de SSH, o simplemente estoy paranoico con todo el asunto?

Además, si tengo razón al ser al menos un poco paranoico, ¿qué opinas sobre dónde almacenar las claves privadas? ¿Deberían estar todos en un solo lugar físico? ¿Debo hacer un uso intensivo de gpg-agenty ssh-agentsiempre?

Estoy trabajando desde dos máquinas separadas, iniciando sesión en algunos servidores multiusuario separados usando SSH para trabajar. Firmo confirmaciones de Git con GnuPG desde aproximadamente cuatro ubicaciones (local y remota).

Estoy trabajando en una combinación de máquinas Mac OS X (con MacPorts) y Linux (con Pkgsrc), pero siempre en la línea de comandos.

Respuesta1

¿Qué opinas? ¿Es más prudente generar las claves (SSH, GnuPG u otras) localmente y luego transferir las claves privadas a través de SSH, o simplemente estoy paranoico con todo el asunto?

Esto realmente no hace una diferencia, al menos si los administradores del sistema no alteraron la pila de software (pero ¿por qué deberían hacerlo, obteniendo las claves privadas de todos modos?).

Mientras la clave privada esté en la máquina remota, no hayninguna diferenciacómo llegó allí. Los administradores del sistema pueden tener acceso a él. Una frase de contraseña también agregará un esfuerzo adicional para obtener las claves, ya que también podrían obtener acceso a su entrada.

Además, si tengo razón al ser al menos un poco paranoico, ¿qué opinas sobre dónde almacenar las claves privadas? ¿Deberían estar todos en un solo lugar físico? ¿Debo hacer siempre un uso intensivo de gpg-agent y ssh-agent?

Esto depende de sus requisitos, nivel de paranoididad, confianza en los administradores del sistema y finalmente el uso de la clave.

Si necesitas un privadoSSHclave en la máquina para acceder a algunos servicios (digamos, GitHub), simplemente genere una nueva que solo se use en esta máquina y solo se acepte para la autenticación en los servicios/máquinas necesarios.

Acerca deAbiertoPGP/GnuPG, todo depende de tus necesidades. Parece que desea firmar software y tengo la sensación de que esto le sucede a su empresa. Si la clave está directamente vinculada a la empresa y solo se creó para este fin, no veo ningún inconveniente en no tenerla en sus máquinas.

Si necesita utilizar su propia clave por algún motivo, cree una subclave que pueda al menos limitarse a firmar y revocar en cualquier momento sin problemas. ¡Usar subclaves es una buena práctica de todos modos! Muchos usuarios avanzados de OpenPGP en realidad almacenan sus claves primarias privadas fuera de línea y solo las usan para la administración de claves.

El socket de reenvío gpg-agentparece ser posible, y por supuesto reducirá el acceso del administrador del sistema a la clave (ya no tienen acceso a la clave completa, pero solo pueden usarla, al menos a partir de GnuPG 2.1 que eliminótodooperaciones de clave privada al agente).

información relacionada