¿Es seguro dar mi clave pública SSH para trabajar?


60

Actualmente trabajo de forma remota para varias organizaciones que necesitan que acceda a sus servidores regularmente para mantenimiento y actualizaciones. ¿Es seguro para mí agregar mi clave SSH pública RSA al .ssh/authorized_keysarchivo para permitirme iniciar sesión mucho más rápido / sin tener que buscar contraseñas? Opero bajo la presunción de que sería imposible generar la clave privada a partir de la pública, pero ¿estoy en lo cierto?

Dando un paso más allá, ¿habría algún riesgo de seguridad al publicar el contenido de mi clave pública RSA en Internet? Sé que si se obtiene mi clave privada, tengo muchos problemas, pero aparte de eso, ¿hay alguna amenaza de seguridad real posible?


Respuestas:


77

Sí, es imposible recuperar la clave privada de la clave pública. Si fuera posible, RSA se rompería fundamentalmente, y esto sería una gran noticia (romper RSA no solo rompería mucha seguridad en la comunicación de Internet, sino que también permitiría todo tipo de fraude bancario, entre otros).

Iniciar sesión con una clave pública en lugar de una contraseña, de hecho, tiende a aumentar la seguridad. Si su contraseña no es lo suficientemente segura, puede ser forzada por un atacante con suficiente ancho de banda. Si el atacante no tiene una copia de su archivo de clave privada, la clave RSA no puede ser forzada (una clave de 1024 bits es equivalente a algo así como una contraseña de 160 caracteres hecha de letras y dígitos al azar). . Alguien que vigila por encima de su hombro podría ver su contraseña y su frase clave, pero con una clave también necesitaría obtener la clave.

Las claves privadas no siempre son más seguras que las contraseñas. Si el atacante obtiene una copia de sus archivos de clave privada (por ejemplo, robando su computadora portátil o su medio de copia de seguridad), puede intentar forzar la contraseña con fuerza bruta, y puede hacerlo a alta velocidad ya que no tiene forma de limitar el tasa (a diferencia de las suposiciones de contraseña que deben realizarse en línea). Si su frase de contraseña es lo suficientemente buena y nota el robo de inmediato, aún tendrá tiempo para revocar la clave.

Una clave pública introduce un elemento de exposición a la privacidad: si alguien sabe que ha utilizado la misma clave pública para iniciar sesión en A y para iniciar sesión en B, sabe que la misma persona inició sesión en A y B. El simple hecho de poseer la clave pública hace que usted sospecha que también tiene la clave privada, por lo que pierde algo de anonimato. Pero eso generalmente es menor, especialmente si solo está almacenando la clave ~/.sshdonde solo los administradores del sistema (que también saben desde qué dirección IP inició sesión) pueden verla.

Dejando a un lado estas consideraciones de seguridad, una clave privada tiene muchas ventajas prácticas. No necesita escribir su contraseña con tanta frecuencia, y en particular puede ejecutar scripts automáticos que no le solicitan una vez que haya ingresado su clave en ssh-agent o similares. No es necesario que escriba su contraseña con tanta frecuencia, por lo que puede permitirse el lujo de hacerla de mayor entropía (más larga, más difícil de escribir). No es necesario que escriba su contraseña con tanta frecuencia, por lo que existe menos riesgo de que sea observada por un observador humano o una cámara.


@NaftuliTzviKay En realidad, hay algo que debe considerarse aquí que se pasa por alto. Para utilizar su clave pública, el sistema desde el que está desviando debe tener acceso a su clave privada. Esta bien. Si esa clave privada se almacena en ese sistema, es vulnerable y el sistema remoto se vuelve vulnerable. Dos cosas ayudan con esto, carpetas de inicio encriptadas y una contraseña en su clave. Por lo tanto, para lograr el aumento total de la seguridad que ofrece PKI, perderá algo de eficiencia. Usted o su organización necesitan hacer un análisis de riesgos para determinar dónde trazar la línea.
Xalorous

16

La respuesta de Gilles es generalmente buena, excepto

... especialmente si solo está almacenando la clave en ~ / .ssh donde solo los administradores del sistema (que también saben desde qué dirección IP inició sesión) pueden verla.

Sus claves ssh ~/.sshtambién pueden ser leídas por cualquier software que se ejecute bajo su propia cuenta. Cuál es probablemente la mayor parte del software que ejecuta. Por lo tanto, debe confiar en ese software y en quienes lo escribieron.


2
Siempre debe usar claves SSH cifradas por este motivo
ItalyPaleAle
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.