Confusión: ¿Por qué no se autentica una clave SSH cifrada con frase de paso no?

12

Estoy tratando de descubrir las mejores prácticas para acceder a mi devbox desde una terminal pública.

La mayoría de las fuentes que he encontrado recomiendan proteger la casilla con algún tipo de autenticación de dos factores, como agregar un prefijo "command=" a la clave_de_ autorizada que obliga a ingresar algún tipo de contraseña de un solo uso.

Mi pregunta es, ¿por qué es necesario? Digamos que tengo una clave ssh cifrada de contraseña que se encuentra en la unidad de disco USB. Inserto la unidad, ingrese mi paráfrasis y conecto: para ingresar a mi sistema, debe tener el archivo de clave y la contraseña.

Supongamos que hay un keylogger en el cuadro público. Ahora un intruso tiene mi frase de contraseña, pero mi clave nunca fue copiada al sistema local.

Ahora, por supuesto, una vez que mi unidad USB esté conectada, es posible que la clave se copie, pero ¿es realmente probable? ¿Cuántos keyloggers también sorben las claves SSH de las unidades USB? ¿Cuántos tipos maliciosos están viendo a sus honeypots 24/7 en espera de una actividad que parece una conexión ssh?

Para mí, parece que una clave cifrada de contraseña es dos factores. ¿Alguien puede explicar cómo no es?

    
pregunta Tammer Ibrahim 21.08.2012 - 17:19
fuente

5 respuestas

24

Una clave cifrada por contraseña proporciona autenticación de dos factores, pero solo si se usa correctamente. Es fácil para el usuario hacer un mal uso de la clave, proporcionando solo un factor, y el servidor no puede detectar un uso incorrecto. Por lo tanto, una clave cifrada por contraseña no puede considerarse de dos factores sin supuestos adicionales. Desde el punto de vista del sistema en su conjunto, la clave cifrada por contraseña proporciona dos factores, pero desde el punto de vista del servidor, solo hay un factor, que es la clave privada.

La contraseña es lo que sabes. Sin embargo, la contraseña no es visible para el servidor. El servidor no sabe si usó una contraseña débil o ninguna contraseña. En cualquier caso, escribir una contraseña en una máquina que puede estar ejecutando un keylogger no es un uso válido de una contraseña para la autenticación.

El archivo de claves es lo que tienes, pero solo si no lo copia de ninguna manera. Estrictamente hablando, es la memoria USB donde se almacena el archivo de clave que es un factor de autenticación de algo que tienes. El archivo clave deja de ser un factor de autenticación una vez que permites que se copie de forma automática.

En el escenario que describe, donde copia la clave en una máquina que no controla, no es un uso válido. Transforma lo que tienes en lo que también tiene el atacante. Si el atacante puede instalar un keylogger en esa máquina, también puede instalar un programa que haga una copia del contenido de cada medio extraíble que está insertado en él. Lo que tienes debe estar vinculado a un objeto físico real que no sea accesible para el atacante. Una clave almacenada en su propia computadora portátil o teléfono inteligente está bien. Una tarjeta inteligente insertada en una ranura para tarjeta inteligente está bien (para el uso normal de tarjetas inteligentes, donde los secretos no dejan la tarjeta). Una memoria USB insertada en una máquina pública no proporciona un factor de autenticación.

Y sí, hay un programa malicioso comercial que captura el contenido de los medios extraíbles. Dependiendo de dónde se conecte, puede ser más o menos común que los keyloggers (aunque espero que los dos vayan juntos). El atacante que instala una imagen de disco extraíble puede estar después de los datos de autenticación, o posiblemente después de otros documentos confidenciales. Existe un mercado de reventa de secretos corporativos (documentos confidenciales, listas de contactos, etc.) que fomenta este tipo de malware, y obtener datos de autenticación es un beneficio adicional fácil.

Con un usuario que puede insertar su dispositivo USB en una máquina pública y escribir su contraseña allí, la clave cifrada con contraseña no proporciona ningún factor de autenticación.

    
respondido por el Gilles 21.08.2012 - 19:05
fuente
22

La Asunción general de seguridad (*) es:

  

El atacante es más inteligente que tú, tiene una computadora más grande, conoce tu propio software mejor que tú y te persigue, específicamente.

Entonces, uno tiene que asumir que el keylogger también supervisará la sesión de SSH y las teclas de arrastre desde las unidades de memoria. O, más apropiadamente, no puede saber cuánto está seguro si la raíz de la seguridad es una declaración como "el atacante nunca pensará en eso", porque dichas declaraciones son intrínsecamente no cuantificables.

La seguridad adicional provista por la contraseña de un solo uso se encuentra, precisamente, en el atributo de una sola vez . Tenga en cuenta que la seguridad se basa aquí en la idea de que el atacante puede sorber y espiar todos sus datos, pero no convertirá eso en un ataque activo en el momento (es decir, secuestrar el una conexión SSH que está haciendo, en lugar de simplemente tomar suficientes datos para volver a conectarse más adelante). Un verdadero seguidor del GAS se negaría a usar un sistema público, punto.

(*) No lo busques con ese nombre, lo acabo de hacer. Sin embargo, el concepto general de paranoia es la línea de base para la seguridad.

    
respondido por el Thomas Pornin 21.08.2012 - 17:40
fuente
5
  

Supongamos que hay un keylogger en el cuadro público. Ahora un intruso tiene mi   frase de contraseña, pero mi clave nunca se copió al sistema local.

Si asume que un atacante ha comprometido un sistema para instalar un registrador clave, también debe asumir que podrían hacer cualquier otra cosa en el sistema. Los archivos de claves aún se consideran "factores de conocimiento" como contraseñas, ya que pueden copiarse infinitamente.

Para ser multifactor, los mecanismos de autenticación deben usar factores de dos categorías diferentes:

  • Factores de conocimiento: contraseñas, archivos de claves, otros datos secretos o información
  • Factores de posesión: fichas físicas, tarjetas inteligentes
  • Factores de herencia - biometría
respondido por el queso 21.08.2012 - 19:14
fuente
4

La primera pregunta que hizo es: ¿cuáles son las mejores prácticas? Las mejores prácticas son, iniciar sesión a través de SSH mediante la autenticación de clave privada. Ponga una contraseña en su clave privada. No lo copie en máquinas en las que no confíe. Configure el SSHD en su servidor para permitir solo el inicio de sesión a través de la autenticación de clave privada (no a través de la autenticación de contraseña). Estas bien. No necesitas nada más sofisticado.

La segunda pregunta que hizo es: ¿es una frase de acceso cifrada con autenticación de clave privada con autenticación de dos factores? Bueno, otros han respondido bien a esa pregunta. Lo único que agregaría es: le advierto sobre la atribución de propiedades mágicas a la autenticación de dos factores. No hay nada mágico en la autenticación de dos factores que hace que la autenticación de dos factores sea segura y la autenticación de un factor sea insegura. Por lo tanto, preguntar si algo cuenta como autenticación de dos factores probablemente no sea la pregunta correcta. La pregunta correcta es: ¿es mi enfoque lo suficientemente seguro para mis requisitos? (También puede preguntar: ¿por qué la autenticación de dos factores generalmente se considera más segura, qué problemas resuelve y cuáles se aplican a mi situación particular?)

La respuesta a estas preguntas es: en la mayoría de los casos, la autenticación de clave privada SSH con una clave privada cifrada con contraseña es suficiente. Si cuenta como factor doble o factor único es, en cierto sentido, irrelevante.

    
respondido por el D.W. 21.08.2012 - 21:24
fuente
3

Hay una confusión terminológica aquí, creo, y es común.

Los sistemas multifactoriales más sólidos se consideran fuertes porque requieren más de un tipo de prueba de identidad (factor), mientras que la frase de contraseña y la clave en su ejemplo pueden clasificarse como "algo que usted sabe" y son del mismo tipo.

Los sistemas multifactoriales comunes usan algo que usted conoce (frase de contraseña o PIN) y algo que tiene (llavero o dispositivo) y hay otras categorías que se usan como 'algo que usted es' (usado en biométrica) y 'en algún lugar donde esté' ubicación geográfica) en sistemas aún más complejos.

Un banco puede requerir un nombre de usuario / contraseña y un PIN para el acceso en línea, pero esto generalmente no se considera un factor doble en términos de resistencia al ataque.

Ref: enlace

    
respondido por el adric 21.08.2012 - 17:35
fuente

Lea otras preguntas en las etiquetas