1 de octubre de 2010

Entropía del password vs. cambio periódico del mismo.

Es un hecho que una clave de acceso es más segura a medida que su "entropía" es mayor. Al hablar de entropía hacemos mención a un término físico expresado en las leyes de la termodinámica que para efectos de este caso podemos entender como "desorden". Es cierto entonces que una clave de acceso mientras más "desordenada" es, también es más segura. Mientras menos podamos asociarla al concepto de "orden" como por ejemplo a una palabra, a una fecha, a una secuencia numérica o a cualquier otro tipo de cadena de caracteres "ordenada", más segura será. Pero es también un hecho que mientras más entrópica o desordenada sea la clave de acceso, más difícil será de recordar.

Para lograr una clave de acceso entropicamente adecuada, solicitamos a los usuarios claves "fuertes" que contengan al menos ocho caracteres, que dichos caracteres sean números y letras mezclados, que se utilicen mayúsculas y minúsculas combinadas y hasta que se agreguen algunos caracteres especiales o de puntuación en la combinación.

Sin embargo, los usuarios cometen un "error" muy grave: Una vez que descubren y memorizan una clave entrópicamente apropiada, la utilizan en diferentes sitios, por lo que aumentan radicalmente su exposición y por enden reducen sustancialmente su eficiencia. Si uno de los sitios es vulnerado, o el usuario entrega sin darse cuenta sus credenciales a un atacante, podría estar comprometiendo su información en otros sitios, por lo que el mayor nivel de entropía de dicha clave no le ayudaría en nada.

Basados en lo anterior, los desarrolladores y expertos en seguridad someten a los usuarios a cambios periódicos de clave de acceso, y la mezcla de este procedimiento junto con la solicitud de un nivel de entropía mayor lleva sin duda alguna a una gran cantidad de claves olvidadas y procesos de recuperación sin fin.

En algunos casos estos procesos de recuperación son simples, pero en otros como por ejemplo en la banca en línea pueden llegar a ser muy complejos, ya que el usuario debe demostrar de forma más que convincente que en realidad es quien dice ser. Estos procesos pueden significar costos ocultos para las empresas que regentan las aplicaciones en línea y también para sus usuarios.

Por tanto, resolver esta encrucijada es importante, pero no es asunto de una solución mágica. Debemos aplicar ciertos correctivos en nuestra aplicación como por ejemplo:

Proteger la visibilidad del password:
No estamos hablando de los conocidos asteriscos que son por defecto necesarios a la hora de escribir la clave, sino de no solicitarla sin antes validar algún otro factor además del identificador del usuario. Muy populares se están haciendo los sistemas de validación en dos capas, en los que solo si se ha cumplido con dos factores de autentificación (ejemplo: login, e-mail, otros...) se solicitará entonces la clave de acceso en una segunda fase, lo que reduce de forma radical la cantidad de veces que esta es expuesta. Este sistema presenta varias ventajas adicionales que no son parte de este artículo y que mencionaremos en otra oportunidad.

Solicitar renovación de la clave por cantidad de usos:
El tiempo de vida de una clave de acceso es un parámetro muy relativo para medir su fuerza. El usuario puede haberla usado una o dos veces en el lapso de varios meses y se le estaría obligando a cambiarla sin necesidad. Es él quien debe decidir cuantas veces quiere usarla o cuanto tiempo desea que sea válida antes de que se le solicite renovarla. Colocar una selección del tiempo de vida y la cantidad de veces de uso a la hora de renovar la clave, permite al usuario responsabilizarse por su seguridad, y no podrá culpar al aplicativo cuando este le solicite renovación.

Verificar la entropía de la clave en el momento de su creación:
Es necesario que el programador muestre al usuario que tan fuerte es la clave que ha escogido. Existen componentes que pueden mostrar barras con porcentaje y colores a medida que el usuario va insertando caracteres de la clave, lo que combinado con la selección de tiempo de vida y cantidad de usos permite que el usuario configure el proceso de creación y renovación a su medida. Programando un poco más podremos ofrecer un mayor rango de usos y más tiempo de vida para claves más fuertes y lo contrario para claves más débiles.

Estas no son soluciones definitivas, sin embargo han demostrado reducir el problema de la recuperación de las claves de acceso de forma considerable. Si a esto agregamos un manual acerca de como proteger las claves de acceso en el que se indique que hacer y qué no hacer con ellas, además de unas formas creativas de crear claves entrópicamente fuertes pero fáciles de recordar, de seguro tendremos el problema controlado por un largo tiempo.

No hay comentarios.:

Entradas populares