Por supuesto, mi intención no es entrar en ese debate, pero al menos en lo que se refiere a contraseñas, el tamaño sí importa. Gracias a la asistencia de diferentes programas, podemos crear contraseñas muy largas y complejas, pero la pregunta que nos hacemos en esta ocasión es qué longitud máxima de contraseña permiten algunos de los servicios más importantes de la Web, y qué tan complicada puede ser en su elaboración. No todos los servicios trabajan de la misma manera, por lo que sólo nos queda averiguarlo realizando pruebas sobre una pequeña, pero popular selección.
Hace un par de días atrás decidí cambiar mis contraseñas. En el pasado publiqué un artículo sobre cómo hacer contraseñas más fuertes basadas en el generador de KeePass, y todavía estoy utilizando ese programa. Por lo tanto, es razonable que para llevar a cabo este experimento, primero determinemos cuáles son las limitaciones del programa. A la hora de generar contraseñas con KeePass, verás que existen varios parámetros para establecer la complejidad de la contraseña, además de su tamaño. La columna de la izquierda hace referencia a lo que llamamos caracteres comunes: Mayúsculas, minúsculas, números, el signo menos y el guión bajo. En la columna de la derecha entran en juego otro tipo de caracteres, usualmente rechazados por los sistemas de seguridad. El espacio, los símbolos especiales, símbolos de apertura y cierre (paréntesis, corchetes, etc.), y lo que KeePass identifica como caracteres “Alto ANSI”, que usualmente deben ser ingresados por el usuario a través del mapa de caracteres de Windows (o su equivalente en otros sistemas).
Después de más de una docena de pruebas, llegamos a la conclusión de que KeePass (en su última versión 2.18) puede ofrecer contraseñas de hasta 4,679 caracteres sin inconvenientes. Apenas una letra más, y el programa exhibe un bug en el cual la contraseña generada desaparece, y no se puede seleccionar. La calidad está directamente asociada a los parámetros de complejidad. Escogiendo todos los campos, 4,679 caracteres te darán una calidad que supera los 2,900 bits, algo definitivamente exagerado. Aún así, usaremos ese conteo como techo máximo para nuestra prueba. ¿Por qué los servicios no suelen mencionar abiertamente el máximo de caracteres posibles en una contraseña, y los símbolos compatibles? Lo primero que me viene a la mente es seguridad. En este caso, la ignorancia juega en nuestra defensa. Un usuario con intenciones maliciosas no sabe si debe enfrentarse a ocho caracteres, o 450, por lo que se ve obligado a explorar todas las opciones. Si piensas que una contraseña así necesitaría varios millones de años de procesamiento para ser descubierta, créeme, no estás exagerando.
El primer sujeto en el experimento fue Twitter, y en general, tenemos buenas noticias. Después de recoger información relacionada con el API de Twitter, al parecer la red social no impone un límite máximo en la cantidad de caracteres de una contraseña. La única restricción es que no soporta espacios. Al generar la contraseña, hemos notado que se filtran algunos espacios si escogemos la opción “Alto ANSI” en KeePass, por lo que si quitas esa opción (además de la opción de los espacios), no tendrás mayores problemas en asignar a Twitter una contraseña de pesadilla.
Seguimos con Windows Live Mail, y por extensión, con el resto de los servicios Live asociados a una cuenta única. Diferentes reportes de varios usuarios y sitios alrededor de la Web mencionan que Hotmail solamente tiene en cuenta a los primeros 16 caracteres de una contraseña, ignorando el resto. De hecho, esto es cierto: El cambio de contraseña en Hotmail sólo permite un máximo de 16 caracteres, y no registra el resto. Al mismo tiempo, Hotmail también aplica restricciones sobre el tipo de caracteres que se pueden usar, como espacios y “Alto ANSI”. Con 16 caracteres y esas limitaciones, puedes obtener contraseñas con una calidad que promedia los 100 bits, pero aún así, no es lo mejor del vecindario. ¿Un punto a favor? La opción para asignar a la contraseña una “vida útil” de 72 días.
El número tres en nuestra lista es Tumblr. Con más de 46 millones de usuarios, no es de extrañar que varios de mis amigos hayan comenzado a explorar las fronteras de esta plataforma de micro-blogging. Personalmente no tengo tiempo para un Tumblr propio, pero si es tan popular, estoy convencido de que los usuarios desearán proteger aquello que escriben, cargan y comparten. En primer lugar, Tumblr parece llevarse bien con todo tipo de caracteres, incluyendo los espacios y los caracteres más complejo. Y en segundo lugar, aún no logré encontrar su techo. Pasé de 512 caracteres a 1,024, y de allí al máximo que me permite KeePass antes del error. Ningún problema en absoluto. Envié un correo al soporte de Tumblr para preguntar si existe un límite máximo, pero creo que está en la misma condición que Twitter.
Después saltamos a Steam. Este es un servicio particularmente importante, ya que un usuario puede verse en problemas si no puede acceder a sus juegos. Tengo una buena cantidad de ellos en la plataforma, y no me agradaría en absoluto encontrar que alguien me ha usurpado la cuenta por una falla de seguridad relacionada con una contraseña débil. Desde cualquier punto de vista, cada juego comprado en Steam es una inversión, y como tal, hay que protegerla. Steam permite un máximo de 32 caracteres, con la excepción del grupo “Alto ANSI”. Algo interesante es que, aún estando dentro de Steam, si solicitas un cambio de contraseña (no una recuperación) deberás confirmar esto con el código que Steam te enviará a la casilla de correo asociada. 32 caracteres parecen ser suficientes (170-180 bits de calidad), y la verificación adicional siempre es bienvenida.
La cuenta de Google es la que sigue en nuestro experimento. A principios de 2011, Google elevó el tamaño mínimo de la contraseña para sus cuentas de seis a ocho. También implementó un sistema de “verificación de dos pasos”, a través del cual, además de nombre de usuario y contraseña, deberás ingresar un código que será enviado a tu móvil. También existen contraseñas específicas para aplicaciones externas, de manera tal que si, por ejemplo, deseas entrar a Gmail a través de tu iPhone, lo hagas con una contraseña dedicada para esa función, y no con la contraseña principal. Dejando eso de lado, Google soporta un máximo de cien caracteres en su contraseña. No se lleva bien con el “Alto ANSI”, pero no tiene problemas con los espacios, por lo que podrás obtener una calidad que supera fácilmente los 400 bits.
Para finalizar, nos encontramos con Facebook, y debo confesar que la prueba fue algo accidentada. ¿La razón? Estaba probando diferentes tipos de contraseñas, cuando decidí intentar con una contraseña muy larga, de 2,048 caracteres. Inicialmente, Facebook registró el cambio exitosamente, por lo que salí de la red social, y traté de ingresar nuevamente. El problema es que Facebook nunca reconoció la nueva contraseña, y a pesar de todos mis intentos, la anunciaba como incorrecta. A esto se le sumó el hecho de que el sistema de recuperación de contraseñas no estaba funcionando correctamente. Finalmente, debo decir que no encontré un límite superior para la contraseña de Facebook, dejando de lado espacios y fundamentalmente a los caracteres “Alto ANSI”, a los que considero responsables del tropiezo previo.
¿Cuáles son los inconvenientes de usar contraseñas tan largas? Uno radica en el acceso desde dispositivos móviles. KeePass tiene versiones para Windows, Linux, OS X, iOS, Android, Blackberry, y Java, además de contar con cierta capacidad de conversión hacia PalmOS, por lo que el problema no estaría tanto en la falta de soporte, sino en la comodidad del usuario al lidiar con semejantes contraseñas. Una opción más que válida sería generar las contraseñas en KeePass y guardarlas bajo LastPass, por lo cual las excusas para no usar contraseñas complejas se reducen bastante. En otras palabras, salvo algunas excepciones, lo recomendable es que la tengas muy larga. La contraseña, claro.