¿Es una buena idea usar caracteres no latinos de Unicode en una contraseña?

12

He escuchado muchas sugerencias sobre qué hace que una buena contraseña (difícil de adivinar, no una palabra del diccionario o su permutación, al menos una cierta longitud, etc.) para que no se pueda descifrar en un tiempo realista . Sin embargo, por lo que entiendo, las técnicas y el software para descifrar contraseñas intentarán usar caracteres latinos, dígitos y caracteres especiales que normalmente se encuentran en un teclado de los Estados Unidos. Por lo tanto, ¿sería una buena idea incluir algunos caracteres no latinos en una contraseña?

Por ejemplo, "passw 密码 rd".

    
pregunta user1475412 10.04.2015 - 03:45
fuente

3 respuestas

6

Probablemente no: encontrará muchos problemas de compatibilidad en función de los juegos de caracteres compatibles de dispositivos de los que necesite ingresar su contraseña.

Hay dos formas de asegurarte de tener una contraseña segura:

  1. Usa una fuente de entropía de la que el atacante no esté informado.
  2. Use suficiente entropía para que la fuerza bruta sea inviable.

El enfoque que toma su método propuesto es el primero. Por lo general, hay menos desventajas de este último enfoque. Si usa una contraseña con al menos 128 bits de entropía, no podrá adivinarla en un tiempo razonable. En promedio, si el atacante tiene mucha suerte, pueden adivinarlo por primera vez, pero lo mismo ocurre con todas las contraseñas.

Entonces, para obtener 128 bits de entropía, necesita una contraseña con al menos 20 caracteres completamente aleatorios (con mayúsculas y minúsculas, números y símbolos ASCII) o necesita 10 seleccionados al azar dicewords .

En mi opinión, esto ya es un problema resuelto. Use un generador de contraseñas seguro para crear una contraseña aleatoria de 20 caracteres si no necesita recordarla, o use Diceware si lo hace.

    
respondido por el SilverlightFox 10.04.2015 - 10:13
fuente
5

En general, sí. Es posible que algunos sistemas no admitan o permitan caracteres no latinos. En el backend, la base de datos y otros sistemas deben configurarse correctamente para manejar caracteres no latinos o pueden suceder cosas inesperadas. Por ejemplo, un carácter Unicode de varios bytes se puede interpretar como múltiples caracteres de un solo byte (o cualquiera que sea el tamaño esperado en la codificación que se está utilizando).

Si el sistema acepta su entrada, y en todas partes donde ingresará la contraseña le permite cambiar de idioma, debería estar bien. El único problema que se me viene a la mente es si hay un número máximo de caracteres permitido y porque está utilizando caracteres de varios bytes que termina de superar el límite o si realiza algún tipo de truncamiento. También puede haber algún tipo de filtros de seguridad integrados asumiendo que solo se permiten los caracteres latinos, y su entrada podría estar marcada o desinfectada. Todas estas condiciones dependerán del sistema específico y de lo que admita.

Es posible que necesite probar y ver si hay problemas de compatibilidad; sin embargo, puede obtener puntos de bonificación si toma sus caracteres individuales y los considera 2 o más, lo que le otorga una contraseña más larga sin que tenga que recordar más piezas. Si el sistema acepta su entrada y funciona muy bien. Si alguna vez encuentras problemas extraños, entonces con suerte podrás reiniciar y usar un conjunto latino simple.

Para referencia, simplemente haga un texto básico a conversión binaria:

passw密码rd = 01110000 01100001 01110011 01110011 01110111 11100101 10101111 10000110 11100111 10100000 10000001 01110010 01100100  
(9 "characters", 13 bytes) 


password   = 01110000 01100001 01110011 01110011 01110111 01101111 01110010 01100100 
(8 "characters", 8 bytes) 

En cierto modo, esto es lo que la computadora realmente ve. Por lo tanto, si el sistema no es consciente de Unicode, puede volverse loco o puede interpretar passw密码rd como passwå¯ç rd , passw密码rd , etc. de una manera y las funciones que comparan tarde el hash pueden hacerlo de otra manera.

    
respondido por el Eric G 10.04.2015 - 03:58
fuente
3

Sí, sería una buena idea usar esos caracteres.

passw密码rd probablemente no sería el mejor ejemplo, ya que está a dos caracteres de la contraseña, pero ciertamente sería más seguro que password11 , p4ssw0rd o permutaciones similares.

Dado que estas letras no son tan convenientes en los teclados promedio, la mayoría de los usuarios probablemente no utilicen estos caracteres, ya que requieren un esfuerzo adicional durante el proceso de inicio de sesión. Los piratas informáticos lo saben y probablemente no intentarán con estos personajes tan a menudo. Eso no significa que el uso de estos caracteres sea una clave que lo protegerá de la fuerza bruta, pero sería una protección significativamente mejor. El número de personajes posibles aumenta enormemente cuando se usan tales caracteres Unicode, lo que aumenta el tiempo para un posible ataque de fuerza bruta. Debido a esto, es probable que los piratas informáticos decidan apuntar a la "fruta de bajo rendimiento", ya que son personas que utilizan un conjunto de caracteres más pequeño que permite menos posibilidades.

    
respondido por el Anonymous 10.04.2015 - 03:59
fuente

Lea otras preguntas en las etiquetas