miniaturadeimagen|Formulario de inicio de sesión de MediaWiki en inglés. Una contraseña, clave o código de acceso es una forma de autentificación que utiliza información secreta para controlar el acceso hacia algún recurso. La contraseña debe mantenerse en secreto ante aquellos a quien no se les permite el acceso. A aquellos que desean acceder a la información se les solicita una clave; si conocen o no conocen la contraseña, se concede o se niega el acceso a la información según sea el caso.

El uso de contraseñas se remonta a la antigüedad: los centinelas que vigilaban una posición solicitaban el «santo y seña» al que quisiera pasar a cierta área. Solamente le permiten el acceso a aquella persona que conoce la seña. Igualmente se utilizaba en las rondas nocturnas cuando se encontraba algún miembro del mismo bando y no ser confundido con enemigo. En la era tecnológica, las contraseñas son usadas comúnmente para controlar el acceso a sistemas operativos de computadoras protegidas teléfonos celulares, decodificadores de TV por cable, cajeros automáticos de efectivo, etc. Un típico ordenador puede hacer uso de contraseñas para diferentes propósitos, incluyendo conexiones a cuentas de usuario, accediendo al correo electrónico de los servidores, accediendo a bases de datos, redes, y páginas web, e incluso para leer noticias en los periódicos (diarios) electrónicos.

En la lengua inglesa se tienen dos denominaciones distintivas para las contraseñas: password (palabra de acceso) y pass code (código de acceso), donde la primera no implica necesariamente usar alguna palabra existente (sin embargo, es normal emplear alguna palabra familiar o de fácil memorización por parte del usuario), la primera suele asociarse también al uso de códigos alfanuméricos (también llamado PIT - Personal Identification Text), mientras que la segunda frecuentemente se liga a la utilización de algún código numérico (asimismo llamado PIN - Personal Identification Number). Esto ocurre igualmente en el habla española, ya que en ocasiones clave y contraseña se usan indistintamente

Balance entre seguridad y comodidad Aunque con excepciones, cuanto más cómoda de recordar sea una contraseña implicará una mayor facilidad para un atacante de adivinarla. Es decir, si algún recurso está protegido por una contraseña, entonces la seguridad se incrementa con el consecuente aumento de molestia para los usuarios. El nivel de seguridad es inherente dada una política de contraseñas en particular, que está influida por diversos factores que se mencionarán a continuación. Sin embargo, no existe un método único que sea pues el mejor para definir un balance adecuado entre la seguridad y comodidad de acceso directo ante todo.

Algunos sistemas protegidos por contraseñas plantean pocos o ningún riesgo a los usuarios si estos se revelan, por ejemplo, una contraseña que permita el acceso a la información de un sitio web gratuito. Otros plantean un modesto riesgo económico o de privacidad, por ejemplo, una contraseña utilizada para acceder al correo electrónico, o alguna contraseña para algún teléfono celular. Aun así, en otras situaciones, puede tener consecuencias severas, si la contraseña es revelada. Por ejemplo, como las situaciones para limitar el acceso de expedientes sobre tratamientos del sida o el control de estaciones de energía.

Factores en la seguridad de un sistema de contraseñas La seguridad de un sistema protegido por contraseña depende de varios factores. El sistema debe estar diseñado para sondear la seguridad (Ver seguridad e inseguridad de computadoras). Aquí se presentan algunos problemas sobre la administración de contraseñas que deben ser considerados:

Posibilidad de que algún atacante pueda adivinar o inventar la contraseña La posibilidad de que algún atacante pueda proporcionar una contraseña que adivinó es un factor clave al determinar la seguridad de un sistema. Algunos sistemas imponen un límite de tiempo después de que sucede un pequeño número de intentos fallidos de proporcionar la clave. Al no tener otras vulnerabilidades, estos sistemas pueden estar relativamente seguros con simples contraseñas, mientras estas no sean fácilmente deducibles, al no asignar datos fácilmente conocidos como nombres de familiares o de mascotas, el número de matrícula del automóvil o contraseñas sencillas como "administrador" o "123456".

Otros sistemas almacenan o transmiten una pista a modo de sugerencia de recordatorio de la contraseña, de manera que la propia pista puede ser fundamental para el acceso de algún atacante. Cuando esto ocurre, (y suele ser común), el atacante intentará suministrar contraseñas frecuentemente en una alta proporción, quizás utilizando listas extensamente conocidas de contraseñas comunes. También están sujetas a un alto grado de vulnerabilidad aquellas contraseñas que se usan para generar claves criptográficas, por ejemplo, cifrado de discos, o seguridad wifi, por lo tanto son necesarias contraseñas más inaccesibles en estos casos.

Formas de almacenar contraseñas Algunos sistemas almacenan contraseñas como archivos de texto. Si algún atacante gana acceso al archivo que contienen las contraseñas, entonces todas estas se encontrarán comprometidas. Si algunos usuarios emplean diferentes cuentas, éstas estarán comprometidas de igual manera. Los mejores sistemas almacenan las contraseñas en una forma de protección criptográfica, así, el acceso a la contraseña será más difícil para algún espía que haya ganado el acceso interno al sistema, aunque la validación todavía sigue siendo posible.

Un esquema criptográfico común almacena solamente el texto de la contraseña codificado, conocido como hash. Cuando un usuario teclea la contraseña en este tipo de sistema, se genera a partir de la contraseña y mediante un algoritmo el código hash equivalente para esa contraseña, y si el resultante (hash) coincide con el valor almacenado, se permite el acceso al usuario.

El texto codificado de la contraseña se crea al aplicar una función criptográfica usando la contraseña y normalmente, otro valor conocido como salt en inglés. El salt previene que los atacantes construyan una lista de valores para contraseñas comunes. Las funciones criptográficas más comunes son la MD5 y SHA1. Una versión modificada de DES fue utilizada en los primeros sistemas Unix.

Si la función que almacena la contraseña está bien diseñada, no es computacionalmente factible revertirla para encontrar el texto directamente. Sin embargo, si algún atacante gana acceso a los valores (y muchos sistemas no los protegen adecuadamente), puede usar gran cantidad de herramientas disponibles para comparar los resultados cifrados de cada palabra dentro de una colección, como un diccionario. Están ampliamente disponibles largas listas de contraseñas posibles en muchos lenguajes y las herramientas intentarán diferentes variaciones uestran con su existencia la relativa fortaleza de las diferentes opciones de contraseña en contra de ataques. El uso derivado de una función para una clave puede reducir este riesgo Desafortunadamente, existe un conflicto fundamental entre el uso de estas funciones y la necesidad de un reto de autenticación; este último requiere que ambas partes se pueden una a otra para conocer el secreto compartido (es decir, la contraseña), y al hacer esto, el servidor necesita ser capaz de obtener el secreto compartido en su forma almacenada. En los sistemas Unix al hacer una autenticación remota, el secreto compartido se convierte en la forma burda de la contraseña, no la contraseña en sí misma; si un atacante puede obtener una copia de la forma burda de la contraseña, entonces será capaz de acceder al sistema remotamente, incluso sin tener que determinar cuál fue la contraseña original.

Método de retransmisión de la contraseña al usuario Las contraseñas pueden ser vulnerables al espionaje mientras son transmitidas a la máquina de autenticación o al usuario. Si la contraseña es llevada como señal eléctrica sobre un cableado no asegurado entre el punto de acceso del usuario y el sistema central que controla la base de datos de la contraseña, está sujeta a espionaje por medio de métodos de conexiones externas en el cableado. Si esta es enviada por medio de Internet, cualquier persona capaz de ver los paquetes de información que contienen la información de acceso puede espiar la contraseña con pocas posibilidades de detección. Los cable módem pueden ser más vulnerables al espionaje que DSL los módems y las conexiones telefónicas, el ethernet puede estar o no sujeto a espionaje, dependiendo particularmente de la opción del hardware de la red y del cableado. Algunas organizaciones han notado un incremento significativo de las cuentas robadas después de que los usuarios se conecten por medio de conexiones por cable.

El riesgo de intercepción de las contraseña mandadas por Internet pueden ser reducidos con una capa de transporte de seguridad (TLS - Transport Layer Security, previamente llamada SSL) que se integra en muchos navegadores de Internet. La mayoría de los navegadores muestran un icono de un candado cerrado cuando el TLS está en uso. Vea criptografía para otras maneras en las que pasar la información puede ser más seguro.

Procedimientos para cambiar las contraseñas Usualmente, un sistema debe proveer una manera de cambiar una contraseña, ya sea porque el usuario sospeche que la contraseña actual ha (o ha sido) descubierto, o como medida de precaución. Si la nueva contraseña es introducida en el sistema de una manera no cifrada, la seguridad puede haberse perdido incluso antes de que la nueva contraseña haya sido instalada en la base de datos. Si la nueva contraseña fue revelada a un empleado de confianza, se gana poco. Algunas páginas web incluyen la opción de recordar la contraseña de un usuario de una manera no cifrada al mandárselo por correo electrónico.

Los Sistemas de Administración de Identidad, se utilizan cada vez más para automatizar la emisión de reemplazos para contraseñas perdidas. La identidad del usuario se verifica al realizar algunas preguntas y compararlas con las que se tienen almacenadas. Preguntas típicas incluyen las siguientes: "¿Dónde naciste?", "¿Cuál es tu película favorita?", "¿Cuál es el nombre de tu mascota?" En muchos casos las respuestas a estas preguntas pueden ser adivinadas, determinadas con un poco de investigación, u obtenidas a través de estafa con ingeniería social. Mientras que muchos usuarios han sido advertidos para que nunca revelen su contraseña, muy pocos consideran el nombre de su película favorita para requerir este tipo de seguridad.

Longevidad de una contraseña El forzar a los usuarios a que cambien su contraseña frecuentemente (ya sea semestralmente, mensualmente o en lapsos más frecuentes) asegura que una contraseña válida en manos equivocadas sea finalmente inútil. Muchos sistemas operativos proveen esta opción, aunque esta no se usa universalmente. Los beneficios de seguridad son limitados debido a que los atacantes frecuentemente sacan provecho de una contraseña tan pronto como esta es revelada. En muchos casos, particularmente con las cuentas de administradores o cuentas "raíz", una vez que un cracker ha ganado acceso, puede realizar alteraciones al sistema operativo que le permitirán accesos futuros incluso si la contraseña inicial ya ha expirado.

Forzar cambios de contraseña frecuentemente hace que los usuarios tiendan a olvidar cual es la contraseña actual, y por esto se da la consecuente tentación de escribir las claves en lugares a la vista o que reutilicen contraseñas anteriores, lo cual niega cualquier beneficio de seguridad. Al implementar este tipo de política se requiere una cuidadosa consideración de los factores humanos.

Número de usuarios por cada contraseña