Pautas para el tamaño del registro de contraseña en dispositivos integrados

3

Estoy trabajando en un proyecto de sistemas integrados para la escuela en el que necesitamos almacenar una contraseña (o clave, lo que sea). La idea es que este diseño eventualmente se pueda reducir a hardware de metal desnudo y se fabrique en una escala extremadamente grande. Por esa razón, cada bit cuenta en términos de costo.

Este sistema también debe ser altamente seguro. Habrá bloqueos de contraseña, retrasos de reintento, etc., pero el tamaño de la contraseña (o clave, no hay razón para esperar que la clave deba ser ingresada por un humano) es de importancia crítica, ya que el proyecto comienza con Factor de autenticación (MFA añadido más adelante).

Pregunta

Simplemente quiero permitirle al usuario final suficiente espacio (bits) para crear una contraseña segura. Por ejemplo: me cuesta 6 centavos por cada 8 bits adicionales de una contraseña. Decido gastar solo los 6 centavos y al usuario se le permite una contraseña de 1 carácter, que puede elegir: malas noticias. De la misma manera, me gustaría evitar comprar 800 bits por $ 6 si hubiera bastado con una contraseña de 400 bits por $ 3. ¿Existen directrices oficiales o SOP sobre el tamaño de la contraseña y la resistencia a los ataques de fuerza bruta?

    
pregunta agentroadkill 09.04.2016 - 01:58
fuente

2 respuestas

1

Recuerde que la entropía es un atributo de una contraseña, pero no es la contraseña en sí. Necesita una forma consistente de transformar una contraseña en esa cantidad de entropía. Normalmente, esto se hace a través de una función hash, como SHA256. (Para un sistema menos seguro que los bits en un chip, donde los bits pueden estar expuestos a través de piratería, como una base de datos en un servidor web, es común usar una función de hashing de contraseña de propósito especial, como PBKDF2).

SHA256, por definición, produce 256 bits de salida. Obviamente, no desea almacenar 256 bits si solo necesita almacenar la entropía de una contraseña segura. Lo que puedes hacer es estimar la capacidad de un atacante creíble y trunca la salida a eso.

Para implementar esto, ejecute la contraseña a través del algoritmo hash y guarde solo los primeros n bits de la salida. Las propiedades de un algoritmo hash moderno incluyen la propiedad de que un solo bit de cambio en la entrada producirá una distribución estadísticamente aleatoria de bits en la salida. Eso significa que si creo que la contraseña es AAAAAA, entonces supongo que AAAAAB, las salidas no están relacionadas. Todo lo que tiene que hacer cuando el usuario ingresa su contraseña es ejecutarlo a través del hash y comparar los primeros n bits con los bits almacenados. Las colisiones son precisamente tan poco probables como la cantidad de bits que almacena.

Algunas personas creen que 80 bits son suficientes para sobrevivir a milenios de ataques de fuerza bruta dada la tecnología actual y futura; esto supone que no se encuentra un ataque de debilitamiento viable en el algoritmo. Otras personas creen que 128 bits es lo suficientemente grande como para soportar cualquier ataque de fuerza bruta. La industria bancaria confía en 3DES para datos de tarjeta de crédito y PIN, y eso tiene 112 bits de entropía. Decidiría el presupuesto en función de lo que están haciendo otros en la industria.

    
respondido por el John Deters 09.04.2016 - 04:41
fuente
-1

Las personas usan reglas básicas y una comprensión de las contraseñas para responder a esta pregunta. Los cálculos de entropía de contraseñas requieren la comprensión del proceso aleatorio utilizado para generar las contraseñas.

Reglas-de-Thumb

La sugerencia en estos días es tener una contraseña de 8 a 10 caracteres con una combinación de mayúsculas, minúsculas y números. Los caracteres deben elegirse al azar y no incluir palabras o las primeras letras de una frase. Si está realmente preocupado por la seguridad, es posible que tenga una contraseña de 20 caracteres. Si la contraseña contiene palabras, es vulnerable a una piratería del diccionario, ya que las palabras aparecen con probabilidades muy diferentes a los caracteres elegidos al azar. Incluso las primeras letras de las palabras en una frase aparecen en patrones más predecibles que las contraseñas realmente aleatorias.

Comprensión de contraseñas

Forzar una contraseña de forma bruta requiere probar repetidamente las combinaciones de caracteres. Como la pregunta usa el término entropía, asumo que este es un concepto familiar. Una contraseña de k caracteres requeriría 62 ^ k intentos de encontrar una contraseña desconocida (donde 56 caracteres son mayúsculas, minúsculas y números). Lo ideal sería que la contraseña fuera una contraseña elegida al azar del total de 62 ^ k de contraseñas posibles donde todos los caracteres aparecen con la misma posibilidad. Sin embargo, muchos generadores de contraseñas generan contraseñas predecibles. No utilice palabras, las primeras letras de las palabras en una frase, o variaciones comunes en temas predecibles.

Entropía de contraseña

Entropy se refiere a la imprevisibilidad de una contraseña. Para poder calcular la entropía, se debe conocer la contraseña y la distribución mediante la cual se generan los caracteres en la contraseña. La entropía es un cálculo directo una vez que se conoce. Le sugiero que utilice un generador de contraseñas que genere caracteres de manera uniforme y aleatoria (es decir, con igual probabilidad) a partir del conjunto de caracteres (los 62 caracteres que incluyen el alfabeto en mayúsculas y minúsculas y los números). Esto te dará la mejor entropía.

Si, por otro lado, desea generar sus contraseñas con una distribución que favorezca la letra minúscula 'a' sobre todos los demás caracteres, entonces su entropía será drásticamente menor que si la contraseña se genera con igual probabilidad. Esto significa que las contraseñas formadas solo por palabras tienen una entropía muy baja y son muy predecibles.

Podría considerar establecer una política de selección de contraseña que requiera que las contraseñas parezcan generadas de forma aleatoria. Esto ayudará a la entropía de su contraseña y le ahorrará bits en su sistema integrado.

    
respondido por el Brent Kirkpatrick 09.04.2016 - 02:42
fuente

Lea otras preguntas en las etiquetas