En la práctica, cuando se usan buenas políticas de contraseña, ¿cuánto se gana con las claves SSH? [duplicar]

4

Antecedentes: estoy ejecutando mis propios servidores para uso personal, tengo un control completo sobre todas las contraseñas utilizadas y, para el futuro previsible, las cosas permanecerán de esta manera.

Entiendo los argumentos por los cuales las claves SSH son una opción más fuerte, específicamente que la entropía es mucho mayor y que el uso de fuerza bruta es efectivamente imposible. Obviamente, incluso con una buena contraseña, la entropía será menor.

Mi pregunta es la siguiente: si se usa una buena contraseña y todas las demás prácticas de seguridad son iguales, ¿un servidor administrado por una sola persona gana mucho prácticamente al cambiar a las claves SSH? es decir, ¿el aumento en la entropía afectaría la probabilidad de un ataque exitoso de alguna manera significativa? ¿Hay factores que no he considerado aquí que ofrezcan una preferencia por un método en comparación con el otro?

Para aclarar, estoy preguntando en términos de amenazas comunes que un servidor web relativamente pequeño sin información financiera o personal interesante podría enfrentar, menos que un ataque motivado y dirigido.

    
pregunta Davis 23.06.2017 - 21:26
fuente

3 respuestas

4

Puede ayudar a pensar en la autenticación a SSH en etapas y capas.

La primera etapa (construir la primera capa) implica establecer un canal de cifrado simétrico. Esto se hace mediante el uso de algo llamado Diffie-Hellman ( explicación aquí .) Una vez que se configura el canal cifrado, la autenticación comienza.

Autenticación de contraseña

En un ejemplo de contraseña tradicional, la contraseña se pasa al servidor a través de este canal cifrado.

El riesgo aquí es que la contraseña es reversible si tiene conocimiento de la clave simétrica que se negoció. Además, la contraseña debe existir en algún estado en ambos sistemas.

autenticación de clave

En el modelo de clave, es más complicado, pero en el núcleo utiliza las propiedades criptográficas asimétricas: el servidor cifra un nonce con el componente de clave pública, y como el cliente debe tener la clave privada, puede descifrar el nonce y enviarlo de vuelta El md5hash en el servidor para verificar su identidad. ( Digital Ocean tiene una buena explicación .)

Tl; DR: en el caso de la contraseña, ambas partes deben tener conocimiento de la contraseña. Esto hace que se abra un ataque de estilo de fuga / reutilización en la contraseña.

En el caso clave, solo se requiere la clave pública para verificar al usuario. La clave privada permanece privada y solo debe existir en el lado del cliente. Puede compartir la clave pública con tantos servicios como desee y no cambiar el riesgo asociado con el uso del par de llaves.

    
respondido por el Ori 23.06.2017 - 21:56
fuente
1
  

Mi pregunta es la siguiente: si se usa una buena contraseña y todas las demás prácticas de seguridad se mantienen iguales, ¿gana un servidor administrado por una sola persona prácticamente al cambiar a claves SSH?

El problema con esta pregunta es que se basa en la premisa de que las personas usan buenas contraseñas, algo que las personas, en la práctica real, no hacen. Nos está pidiendo que saquemos una conclusión "práctica" a partir de una premisa teórica que no se sostiene en la práctica.

En ambos casos, creo que el mayor riesgo es que un atacante pueda obtener el secreto de un usuario y usarlo para autenticarse como ese usuario. Con la autenticación basada en contraseña podrían:

  • Dirígete a tus usuarios con un ataque de phishing. Como lo ha demostrado 2016, esto puede ser muy exitoso.
  • Roba tu base de datos de contraseñas y agrieta las entradas para encontrar contraseñas débiles.
  • Diríjase a sus usuarios para robar sus contraseñas en los servicios de otros , con la esperanza de que algunos de ellos reutilicen esas contraseñas en su sistema.

Con la autenticación basada en clave (como se practica habitualmente, con las claves almacenadas en las PC de los usuarios con una contraseña débil o sin contraseña), la forma en que un atacante puede obtener las claves de sus usuarios es mediante la piratería en su computadora que almacena la clave privada . Esto podría lograrse apuntando a sus usuarios con malware, que es otro ataque realista.

Si realmente se preocupa por la seguridad de la autenticación SSH, debe considerar no solo el uso de claves privadas, sino también la forma de almacenarlas de manera segura para que los atacantes no puedan robarlas fácilmente. tus usuarios Las tarjetas inteligentes son la solución clásica aquí; un dispositivo de hardware dedicado que genera internamente un par de llaves y promete nunca revelar la clave privada; el cliente SSH debe reenviar la solicitud de autenticación para que la tarjeta inteligente firme.

Una variante más reciente es usar una aplicación de teléfono inteligente para generar y almacenar las claves SSH en el teléfono, y un cliente SSH que reenvía las solicitudes de autenticación al teléfono, para que pueda autenticar al usuario sin revelar la clave privada. No tengo conexión con la empresa, pero he estado usando la edición gratuita de Kryptonite recientemente y, aunque es una herramienta joven, se está perfilando bastante bien. .

    
respondido por el Luis Casillas 23.06.2017 - 23:52
fuente
1

Las claves son inmunes al hombre en los ataques medios ya que la clave privada nunca se transmite.

Las contraseñas no son realistas, no importa lo buenas que sean. Si usa una contraseña, existen métodos mucho más fáciles de descifrar que el forzamiento brutal, por lo que la calidad de la contraseña probablemente no tenga sentido.

también vea ¿Es más seguro para los clientes SSH usar una clave privada (RSA-2048) o una contraseña aleatoria larga (256 bits de entropía)?

    
respondido por el camelccc 24.06.2017 - 03:14
fuente

Lea otras preguntas en las etiquetas