Seguridad de la Información y Protección de Datos
 |
|
| |
 |
|
|
El password, herramienta
clave en la protección de su información
En nuestra edición
anterior, revisamos la importancia de la definición de un “buen password”,
y cómo la contraseña constituye un elemento para la protección y
resguardo de la información.
Asimismo,
veíamos algunas ventajas y consecuencias de que los usuarios crearan sus
propios password pero, ¿qué hay más allá de la creación tradicional
de un password?
Password generado por computadoras
Tal como
su título lo indica, las contraseñas generadas por computadoras son
creadas para hacerlas lo menos predecibles. El primer beneficio que
resulta de usar el computador, ante el password generado por el usuario,
es que los peores passwords, son en gran parte removidos del sistema. La
manera como usualmente estos password trabajan, es proporcionándole al
usuario un número de passwords a ser seleccionados por él. El usuario
decide cuál es la contraseña más apropiada y será generalmente
reconocida esta decisión para entrar al sistema. Este programa es
invocado periódicamente (quizás cada dos o tres meses), así que el
robo de password servirá por un periodo determinado. La
automatización de esta invocación periódica es frecuentemente requerida
como un password nuevamente. El siguiente, es un ejemplo del día cuando
alguna contraseña ha expirado, y el sistema obliga al usuario (“mroman”)
a cambiarla:

Nótese que
no son palabras del diccionario, atributos personales o patrones del
teclado. En suma, si diferentes generadores son usados por diferentes
sistemas, entonces los usuarios no tendrán los mismos password para
múltiples máquinas o sistemas. Sin embargo, esto ciertamente genera
como resultado, que las contraseñas no son fáciles de recordar. No es
difícil imaginar que el usuario, mientras se lo aprende y durante las
primeras veces que haga uso de éste, tendrá que escribir el password en
algún lugar. Mientras algunos programas tratan de evitar la construcción
de estos passwords, haciéndolos al menos pronunciables, se tenderá a
perder el aspecto mnemónico.
Un atacante entonces puede buscar en un escritorio, estación de trabajo,
una tarjeta, etc., una extraña secuencia de caracteres escritos y éstos
son usualmente el password que estaba buscando.
Recientes y diversos estudios confirman la existencia de dificultades
con las contraseñas nemónicas generadas por computadoras. Estos
estudios han sido concluyentes en demostrar que los usuarios están lejos
de preferir los passwords generados por computadoras y la primera razón,
es la memorización de los mismos.
Cifrado
(criptografía) de passwords
Debe
existir una protección para las contraseñas para evitar que un atacante
pueda simplemente localizarlos, hurtarlos y almacenarlos. Una de las
técnicas de protección es llamada “cifrado” (técnicas criptográficas) e
involucra un completo trabajo sobre el password, para que éste no pueda
ser fácilmente descifrado por un intruso. Los passwords son almacenados
generalmente en archivos, los cuales contienen (como mínimo) una lista
de los códigos de usuarios y sus passwords. Para asegurar que los
usuarios no puedan leer estos archivos y obtener algún password, los
sistemas de seguridad frecuentemente cuentan con funciones de
criptografía, que toman el password en una forma llamada texto original
(“clear text”) y producen passwords en una forma llamada texto cifrado
(“ciphertext”), que no puede ser descifrado fácilmente (o por lo menos
eso se espera!!).
Los algoritmos de cifrado hoy en día ejecutan operaciones
complejas, que no son fáciles de determinar por un usuario malicioso,
transformando el texto original del password a una opción poco deseable
para el intruso. Es importante destacar que la acción de cifrar por si
sola, no representa una protección completa contra el atacante. Un tipo
famoso de ataque consiste en la comparación del password con un
diccionario electrónico, e incluso por fuerza bruta (“brute force”), el
cual consiste en ir descifrando progresivamente cada carácter cifrado
que compone la contraseña. El cifrado no previene este tipo de ataques.
Password “salt"
Esto es una técnica para la protección del password. Involucra en
el sistema computacional, un ajuste al password del usuario, por medio
de la adición de un pequeño cambio llamado “salt". Este cambio puede ser
transparente al usuario y la idea es que con esa pequeña variación, el
password se transforme en una palabra que no aparezca en un diccionario
electrónico, reduciendo así la posibilidad de adivinarlo. Como un
ejemplo, suponga una palabra que aparece en el diccionario. Al sistema
podría almacenar este password con salt, que podría no ser conocido por
el atacante. Así, el ataque utilizando el diccionario, podría no serle
fácil obtener este password, porque el “cipher text “que resulta del
cifrado de la contraseña original, podría no coincidir con el “cipher
text” almacenado en el archivo password.
Un problema adicional que es derivado por el esquema del password
salt, es que cuando dos usuarios diferentes, por casualidad
seleccionan el mismo password en el mismo sistema y uno de ellos nota
por casualidad que los valores cifrados de esos dos usuarios es el
mismo, entonces pueden deducir que sus passwords son iguales. Así,
el ingreso en la cuenta de un usuario adivinando o derivando el password,
puede llegar a ser es trivial.
En algunos sistemas operativos, cuando se almacena o cambia el password,
el sistema selecciona un salt basado en la hora del día. Este es
convertido en dos cadenas de caracteres y almacenado en el archivo,
acompañado con el password cifrado. De esta manera, cuando un usuario
introduce el password luego del login, el password es cifrado y luego es
añadido el salt al inicio, como los dos primeros caracteres, así como se
muestra en la siguiente tabla:

Se
puede notar que el password “norahs” fue cifrado de dos formas
diferentes, con dos diferentes salts.
Cracking de passwords
De
nuestra experiencia en el desarrollo de estudios de penetración, en los
cuales actuamos como “hackers” identificando brechas de seguridad,
podemos decir que más del 40% de las contraseñas de los usuarios pueden
ser descifradas por medio del uso de diccionarios, por lo que el grado
de dificultad que representa generar aleatoriamente un password mediante
asistentes automático, es un factor muy importante. A continuación, se
presentan ciertos ejemplos donde se muestran los tiempos de
procesamiento para “adivinar” passwords de diferente longitud, usando
una computadora personal. Es importante destacar que los valores
resultantes de la permutación de Pk,n (donde k=longitud del password y
n=número de caracteres del conjunto fuente) fueron divididos entre
55.230 c/seg., siendo éste un número aproximado de comparaciones por
segundo que se efectúan en un computador personal.

Se puede
observar que en la medida que se utilizan passwords de mayor longitud,
seleccionando caracteres provenientes de conjuntos de diversa
naturaleza, será más prolongado el tiempo para el descubrimiento de los
mismos. En otras palabras, si el password es de un carácter tomado de
un conjunto fuente formado por 26 caracteres, entonces el tiempo
de prueba sería de 0.00047 seg.; en cambio, si el conjunto
estuviera formado por 36 caracteres ó 128 caracteres, los tiempos serían
0.00065 seg. Y 0.00231 seg., respectivamente.
Asimismo, el password construido de cuatro caracteres, de un conjunto
fuente formado de 26 caracteres, sería probado en 6,49 seg., mientras
que ese mismo password construido de un conjunto fuente de 128
caracteres (ASCI), requeriría 4.635,74 seg. de tiempo de procesamiento.
Se debe ser cuidadoso, y no considerar que 4.635,74 seg. (77
minutos) es una cantidad irrazonable de tiempo de búsqueda. Un
atacante con buenas herramientas para descifrar contraseñas, una buena
máquina (e incluso más de una), y tiempo libre, puede fácilmente cubrir
las 400 horas de tiempo de procesamiento probando passwords, lo cual le
permitiría adivinar una contraseña de 6 caracteres de longitud. Debemos,
por consiguiente, cuidar el seleccionar el tipo y longitud del password,
así como la combinación conveniente o números de caracteres del conjunto
fuente. Es importante considerar que la mayoría de los programas que
permiten adivinar contraseñas, trabajan con esquemas de generación de
password que reducen el conjunto de pruebas a secuencias lógicas (que se
puedan pronunciar, que utilicen secuencias de numeración prefijas y
postfijas, entre otros).
Fuente: Pc-news
30.03.05
Suplemento
temático: LOPD
Noticias relacionadas:
*
Cómo no
escoger una contraseña (y cómo sí) (15.03.05)
*
Un «hacker»
español vende centenares de contraseñas de correo electrónico en todo el
mundo (02.02.05)
* ¿Están sus
datos expuestos en los motores de búsqueda de Internet? (25.01.05)
*
El FBI deja
de utilizar su polémico programa de espionaje "Carnivore" (18.01.05)
* Comienza
a circular por "e-mail" una encuesta falsa del INE que trata de recabar
datos personales (11.01.05)
*
Nueva técnica de "phishing" (14.12.04)
*
El 'phishing', principal problema de la seguridad en las empresas
(18.11.04)
*
‘Phishing’: páginas web falsas para robar datos
(27.09.04)
*
Los usuarios mexicanos desconfían de la banca
electrónica (15.09.04)
*
Caja Madrid blinda la firma electrónica (02.09.04)
*
Las empresas gallegas apuestan por el uso de la
firma electrónica (05.08.04)
*
La
banca blinda a sus clientes contra los robos por Internet (23.08.04)
*
Seis de cada diez empresas sufrieron delitos
informáticos en el año 2002 (29.07.04)
*
En busca de la mejor contraseña como una
solución al problema de la seguridad informática en Internet (05.04.02)