¿Qué longitud debe tener la contraseña de mi sistema?

En las primeras versiones de Mac OS X, solo se usaban los primeros 8 caracteres de cualquier contraseña. Más tarde Apple aumentó ese número.

Un sistema de contraseñas adecuado almacena un hash, no la contraseña real. En ese caso, una contraseña/frase de contraseña más larga generalmente es mejor para aumentar la posibilidad de generar un valor hash que no haya sido calculado previamente. Supongo que Apple está utilizando esta técnica hash para autenticar a los usuarios que inician sesión en el sistema.

Mavericks, ¿cuál es el número máximo de caracteres en una frase de contraseña utilizada por el inicio de sesión de la cuenta de usuario de Apple?

Respuestas (3)

Probé contraseñas de hasta 480 caracteres (en OS X versión 10.8.5) y las usó todas; alrededor de 480, el passwdcomando tuvo algunos problemas para establecer contraseñas, pero era un poco inconsistente, por lo que no estoy seguro de si ese es un límite real. No probé con la interfaz de Preferencias del sistema, porque no permite pegar contraseñas, y no hay forma de que esté escribiendo algo tan largo (¡dos veces!). Básicamente, utilizará todo lo que pueda soportar para escribir.

Confirmaré lo anterior para 10.9.1
El campo de contraseña de Preferencias del sistema solo aceptará 64 caracteres (lo probé usando TextExpander)

El hash (salado y estirado) de la contraseña de inicio de sesión se almacena en /var/db/dslocal/nodes/Default/users/username.plist10.7 y versiones posteriores. Si le preocupa que alguien pueda leer el hash (por ejemplo, iniciando en modo de usuario único) y luego use una herramienta de craqueo como DaveGrohl para averiguar la contraseña, OS X ha usado PBKDF2 desde 10.8, lo que limita las herramientas de craqueo a aproximadamente diez conjeturas por segundo por núcleo.

Me llevó unos diez minutos adivinar una contraseña aleatoria de tres caracteres en mi iMac:

$ sudo dave -u $USER
-- Loaded PBKDF2 (Salted SHA512) hash...
-- Starting attack

-- Found password : 'y8d'
-- (incremental attack)

Finished in 879.274 seconds / 31,385 guesses...
35 guesses per second.

A menos que realice un ataque distribuido, actualmente no es práctico descifrar ni siquiera una contraseña aleatoria de ocho caracteres que consiste en letras ASCII minúsculas y números ASCII. A 40 conjeturas por segundo, se necesitarían alrededor de 36^8/40/(86400*365) ≈ 2000 años para probar todas las opciones.

En realidad, almacenar hashes es una forma TERRIBLE de almacenar contraseñas de forma "segura". Por naturaleza, los hashes son imposibles de "revertir", pero eso no impide que uno genere una tabla grande (llamada tabla arcoíris ) que almacena pares de hash de texto sin formato. Con esta tabla, es posible buscar un hash y ver sus contraseñas de texto sin formato asociadas.

La forma aceptada de almacenar contraseñas es el método hash y salt. Un salt es una cadena grande y aleatoria que se combina con la contraseña antes de calcular un hash. Esto hace que la entrada del hash sea demasiado grande para ser precalculada de manera factible en una tabla de arco iris. Al final, lo único que se almacena en una base de datos de contraseñas adecuada son hashes y salts (los salts se pueden almacenar en texto sin formato, ya que no son útiles para revertir los hashes).

Básicamente, no necesita tener una contraseña larga para protegerse de los ataques de la tabla del arco iris, ya que las sales lo hacen por usted.

Computerphile hizo un excelente video de YouTube sobre el almacenamiento de contraseñas.

En lo que respecta a crear una contraseña segura, uno de los mejores enfoques es usar de 4 a 6 palabras REALES, no relacionadas y de longitud media (sin la necesidad de símbolos/números). Esto garantiza una contraseña lo suficientemente larga, que no se adivina fácilmente y, lo que es más importante, se puede recordar (para que nunca se sienta tentado a escribirla en una nota adhesiva).

TL;RD: Seguridad de la contraseña XKCD

Esa es una buena información. Pero mi pregunta es con respecto a la cantidad máxima de caracteres a los que Mac OS X (Mavericks) presta atención en su contraseña. Como dije en mi pregunta, originalmente en Mac OS X podías escribir una contraseña muy larga pero estabas perdiendo el tiempo. Solo usaron las primeras 8 letras. Me pregunto si todavía hay algún tipo de límite. No tiene sentido tener una contraseña de 60 letras si Apple solo usa 12 (o algún número similar).
OS X ha utilizado hash de contraseñas con sal desde la versión 10.4; en 10.8, agregaron estiramiento de teclas (Computerphile no menciona esto, pero es muy recomendable) mediante el uso de PBKDF2 para iterar la función hash SHA512. Básicamente, lo están haciendo bien en este punto.
En realidad, debería matizar eso. Las versiones recientes de OS X también almacenan la contraseña en formato compatible con Kerberos; Estoy menos familiarizado con cómo funciona esto, pero entiendo que también está basado en hash, pero no es tan seguro como el hash SALTED-SHA512-PBKDF2. Si habilita el uso compartido de archivos SMB y la compatibilidad de contraseñas para eso, agrega un hash compatible con NTLM, que también es mucho más débil.