Recibir una clave privada del administrador del servidor: ¿está bien o no?

20

Tengo que acceder a un servidor SFTP remoto. El administrador ha creado un usuario para mí y ha generado un par de claves pública / privada para mí. Luego me envió de forma segura el archivo de clave privada, que uso para la autenticación. Creo que esto no es bueno, debería ser yo quien genere el par de claves y darle la clave pública. Pero no puedo pensar en ninguna buena razón por la que esto sea malo, si uso esta clave solo para iniciar sesión en ese servidor, no en otros servidores. ¿Hay alguna de esas razones?

matthiash
fuente
17
Mala higiene de seguridad, para uno. El administrador del servidor debe saber mejor y no debe "entrenar" a los usuarios para que esperen obtener claves privadas de fuentes externas.
wmorrell
1
¿A quién más se lo está dando? Siempre piensa, ¿qué es lo peor que podría pasar?
mckenzm
1
En realidad no creo que sea tan malo. Una analogía a continuación (Eric Towers) con dar al usuario una "contraseña inicial" que luego debe cambiarse de inmediato es buena. Hablando por experiencia personal, explicar qué claves son por centésima vez para los usuarios puede ser un poco tedioso: el administrador sigue siendo humano. Darle la clave privada es vago, sí, pero nada puede impedir que lo reemplace usted mismo. En esencia, después de que él / ella te lo haya enviado, no necesitas molestar al administrador del sistema nuevamente (a menos que elijan desactivar los permisos de escritura en el archivo ... entonces, solo molestarlos).
Ray
@matthiash, esta pregunta se ajusta a este sitio, pero, al igual que para su información, hay un sitio de seguridad de la información para otras preguntas de seguridad.
topher
También me gustaría señalar que así es como AWS también lo hace. Cuando crea una instancia, no carga su clave pública, se genera un par de claves para usted y descarga la clave privada.
GnP

Respuestas:

23

Es exactamente como usted dice: todo el concepto de autenticación de clave pública es que la clave privada solo debe ser conocida por el propietario, mientras que la clave pública correspondiente se puede difundir ampliamente. La seguridad de su autenticación depende de la seguridad de la clave privada, no de la seguridad de la clave pública.

El hecho de que alguien más le proporcione una clave privada automáticamente lo compromete. (No sabe si ese otro administrador todavía tiene una copia que puede usarse para hacerse pasar por usted).

HBruijn
fuente
44
Supongamos lo mejor del administrador del servidor y supongamos que él cree que generar un nuevo par de claves es mejor, ya que no confiaría en que el usuario no tenga una clave privada compormentada. Tal vez el administrador del servidor piense que la clave privada de los usuarios es muy antigua y tal vez se vio comprometida con los años. Es lo mismo con U2F, donde el consorcio o los proveedores no confían en los usuarios para generar claves, ¡es por eso que los dispositivos U2F vienen con claves creadas previamente!
cornelinux
8
El administrador debe ayudar al usuario a generar y asegurar una clave privada.
Alex
1
Tienes toda la razón. Pero a menudo los administradores son mejores con las computadoras que con los humanos, -)
cornelinux
77
El administrador puede suplantarlo de todos modos.
user253751
2
Creo que está confundiendo las prácticas teóricas de un ejemplo estrecho con la realidad y el panorama general. Debe confiar en el administrador de todos modos porque él tiene el control del sistema y puede evitar tener que usar la clave por completo. La entrega de claves privadas ocurre en el mundo real porque los usuarios finales no entienden cómo hacer una, o cómo hacerla de forma segura.
JamesRyan
10

Para esa clave, la organización no tiene no repudio . Es decir, si alguien hace algo abusivo o destructivo a ese sistema utilizando 'su' clave, el administrador no puede culparlo por ser el único responsable de ello. Ya que la persona que te lo dio también tenía la llave. Probablemente no sea tan malo para usted, ya que le brinda una defensa, pero es horrible para la organización que controla el servidor, si alguna vez sucede algo malo.

Es posible que pueda usar los privilegios de escritura que tiene de las claves proporcionadas, para actualizar sus claves autorizadas y agregar su clave y eliminar la clave proporcionada.

Zoredache
fuente
3
De hecho, el administrador puede esperar que el usuario cambie su clave durante su primer uso, al igual que con las primeras contraseñas generadas administrativamente.
Eric Towers
77
Como un gran hombre dijo una vez , "espera". El cambio de primer uso a menudo es necesario para las contraseñas, pero nunca es necesario para la criptografía de clave pública, ese es el punto.
womble
@EricTowers ¿Es eso posible requerir implementaciones contemporáneas de SFTP (o incluso SSH, a menos que esté dispuesto a improvisar algo)?
un CVn
Esta respuesta da la impresión de que las acciones sobre sftp están firmadas en un registro en algún lugar y de principio a fin aseguradas por esa clave. Esto simplemente no es el caso, un administrador puede alterar las acciones o los registros sin siquiera usar la clave.
JamesRyan
1
@marcelm: Hay una razón por la que dije "a menudo necesario", no "siempre absolutamente obligatorio en todas las circunstancias, sin excepciones". Como alguien que, de hecho, solicita (y acepta) hashes de contraseña y claves públicas con regularidad, sé que es una barrera mucho más alta hacer que alguien proporcione una contraseña hash (con una sal segura y todo) que una clave pública. Si tiene un cliente SSH, tiene una herramienta de generación de claves. No se puede decir lo mismo de algo capaz de llamar crypt(2) en sus muchas formas entretenidas.
womble