Autenticación en máquinas / dispositivos remotos, no tripulados, no conectados

0

¿Qué métodos probados existen para la autenticación de un usuario en máquinas / dispositivos remotos y no conectados donde el establecimiento de credenciales de inicio de sesión únicas para los usuarios no es práctico debido a la cantidad de máquinas / dispositivos?

Tenemos una aplicación donde tenemos una gran cantidad de dispositivos industriales distribuidos en todo el mundo y nos gustaría protegerlos para que solo los técnicos autorizados puedan acceder a ellos y recuperar los datos. Estos no siempre están conectados a la red y, a menudo, se dejan en ubicaciones no tripuladas, por lo que la seguridad física no es algo con lo que se pueda contar y la autenticación con un servidor no es posible.

Estoy seguro de que este tipo de desafío ha existido durante décadas, y aunque he visto muchos intentos muy malos para resolverlo (p. ej., una contraseña única para todos los técnicos), no he encontrado personalmente nada que parezca tan sólido como elegante.

Supongo que un certificado cifrado que requiere una contraseña (aunque sea compartido) sería un paso en la dirección correcta. Este método débil de 2 factores requeriría que el técnico tenga algo (como una llave USB con certificado) y previene la exposición inmediata del certificado si la llave USB se deja caer en un estacionamiento, pero me pregunto si hay algo mejor. / p>

Lo que me asusta de esto es la alta probabilidad de que una persona tonta cree "password.txt" y la coloque junto al certificado ...

Gracias por tus pensamientos.

    
pregunta EnemyBagJones 01.09.2015 - 00:51
fuente

1 respuesta

0

Así que creo que, dada la falta de seguridad física de los dispositivos, lo que hagas será solo el mejor esfuerzo. Simplemente no puede evitar que alguien desmonte el dispositivo, lea los datos, los modifique, etc ... Vamos a tomar eso como un hecho y seguir adelante.

Esta solución utiliza HMACs . Un HMAC toma dos entradas, una cadena y un secreto, y produce una cadena de salida que es criptográficamente difícil / imposible de forjar sin conocer el secreto.

Ponga en todos los dispositivos un secreto compartido (el mismo) que también conocen los administradores de dispositivos (ellos son los que entregan información de autenticación a los técnicos). Como el dispositivo no es físicamente seguro, el almacenamiento del secreto será menos que perfecto, pero ya acordamos que estaríamos de acuerdo con esto.

Un administrador le dará a un usuario un nombre de usuario y una contraseña. La contraseña será el resultado de HMAC(secret, username) (posiblemente truncado a una longitud razonable). Cuando el usuario inicia sesión en un dispositivo, ingresará su nombre de usuario y contraseña. El dispositivo recalculará el HMAC, lo truncará a la longitud adecuada y lo comparará con la contraseña del usuario.

Según sus necesidades, puede realizar algunos cambios en el sistema:

  • En lugar de almacenar el mismo secreto en cada dispositivo, puede almacenar diferentes secretos. Esto, por supuesto, aumentará los costos de administración, pero agregará algo de seguridad. Puede dar a cada dispositivo su propio dispositivo secreto o grupal por ubicación geográfica, fecha de emisión u otros medios.
  • Junto con el nombre de usuario y la contraseña, puede dar a cada usuario una fecha de vencimiento de la contraseña. Luego, ingresarían su nombre de usuario, contraseña y fecha de vencimiento al iniciar sesión. Su contraseña sería HMAC(secret, username + expiration date) . La ventaja de esto es que las contraseñas se agotan naturalmente, por lo que una contraseña expuesta no te perseguirá para siempre. La desventaja es que los usuarios necesitarán obtener continuamente nuevas contraseñas. A diferencia de la caducidad de una contraseña más típica, los usuarios deberán ponerse en contacto con los administradores para obtener su nueva contraseña. Aquí también la falta de seguridad física puede permitir a los atacantes restablecer la fecha en el dispositivo, reactivando una contraseña caducada. Una vez más, acordamos que la seguridad perfecta no será posible sin la seguridad del hardware.
  • Dependiendo de la flexibilidad del dispositivo, es posible que pueda mover las credenciales a una unidad USB, tarjeta SD o algún otro dispositivo que pueda usarse para la autenticación. Una clave USB encriptada como esta le proporcionará una autenticación de dos factores.
  • Si cada usuario tiene un inicio de sesión único, puede implementar algún tipo de auditoría.

Los problemas notables con este sistema incluyen:

  • Incapacidad para deshabilitar una contraseña. Incluso si usa la extensión de fecha, debe esperar a que caduque la contraseña.
  • A menos que use una clave USB segura (o un dispositivo igualmente seguro) para la autenticación, todavía está abierta a los usuarios que crean archivos "passwords.txt".
  • La falta de seguridad del hardware reduce enormemente los esfuerzos de seguridad.
respondido por el Neil Smithline 01.09.2015 - 03:11
fuente

Lea otras preguntas en las etiquetas