Saturday, September 03, 2005

Biométrica: no es lo que escribes sino cómo lo escribes

Hace un semestre, aproximadamente, encontré en Internet una serie de artículos que hablaban de proteger las contraseñas (password), incorporando medidas biométricas, es decir, del cuerpo humano. Por ejemplo, es claro que cada uno de nosotros escribe de manera diferente en el teclado. ¿Qué tal entonces incorporar a nuestra contraseña esta información (sobre la forma de escribir), para así hacer más personal un password. De esta manera, no importaría que alguien más supiese mi contraseña, por ejemplo, de mi correo. Si no la escribe como yo, entonces el sistema sigue sin dar acceso.

Aproveché entonces para escribir un "paper" con todo elaasunto. Me di entonces a la tarea de trabajar sobre esta idea, midiendo los tiempos entre tecla y tecla cuando uno da una contraseña. Analizando el asunto, encontré un método, sin duda no infalible, pero bastante certero, que incorpora esta información a la contraseña, haciendo más privada la cuestión de las claves/passwords. rigor científico y un software que demostrara la bondad de dicha idea.

He aquí un pequeño artículo sobre el tema (aparecido en Proceso):

Computación...
Manuel López Michelone

No es lo que escribes, sino cómo lo escribes...


Imagine que alguien con aviesos fines encuentra su contraseña para entrar a su computadora y/o a su sistema de correos. Si eso pasa las consecuencias pueden ser graves. Dicho maloso podría mandar correos groseros a sus amigos, o incluir virus en ellos. Quizás, una vez que tuviese acceso a su sistema, podría el maleante hacerse de su información valiosa. Nadie podría detenerlo entonces. Ahora imaginen que ese malvado se hace de su contraseña pero cuando la alimenta al sistema, éste no lo reconoce y por ende, no puede ingresar al sistema. Sin embargo, cuando usted usa su contraseña, el sistema sí lo reconoce. ¿Magia? De ninguna manera: biometría del teclado.

La biométrica es la medida de las características físicas y de comportamiento que nos hace a cada ser humano único. A diferencia de los nombres/contraseñas de los sistemas de cómputo, ciertas medidas biométricas no se pierden, no pueden ser duplicadas o robadas. Pertenecen a cada ser humano en particular. Esto da la posibilidad de sistemas que sean imposibles de ser violados por terceros de manera ilegal, puesto que la información biométrica de los usuarios es única e irrepetible. Las características fisiológicas como pueden ser las huellas digitales, son buenas candidatas para la identificación de personas, ya que son únicas para cada ser humano, incluso si se trata de gemelos idénticos. Más aún, son difíciles de copiar sin causar daño severo a la persona. De esta forma, la biométrica está ganando popularidad, porque cuando es usada en conjunto con métodos como contraseñas o incluso tarjetas de identificación electrónicas, proveen un nivel extra de seguridad. Algunos de los sistemas biométricos usados para identificación humana se basan en la geometría de las manos, patrones térmicos en el rostro, las venas en la retina, voz y firmas manuscritas. Algunos esquemas son muy invasivos (lectura de la imagen del iris, por ejemplo), mientras que otros no lo son (dinámica del teclado).

La manera en como los seres humanos escribimos en un teclado de computadora tiene un ritmo específico para cada persona. Es en cierta forma una medición biométrica, pues depende de los rasgos del comportamiento particular de cada usuario. Si podemos medir el tiempo que un usuario tarda en registrar su contraseña en el sistema de cómputo, podremos crear un “perfil” digital que describa este ritmo en su manera de teclear, de manera tal que pueda añadirse como una medida extra a la seguridad de los sistemas.

Así, se me ocurrió que era una buena idea investigar esta posibilidad. En poco tiempo entendí cómo medir el tiempo al oprimir una tecla y la que sigue. Una vez escrita esta parte del software, y debido a que eso me enseñaron en la Facultad de Ciencias (¡bendita UNAM!), grafiqué los datos para ver si había un perfil que se repitiese. Para mi sorpresa, hallé que –efectivamente– este perfil se repite, no estrictamente con una precisión única, pero sí en promedio. De alguna manera se parece a la firma que estampamos en un cheque. Es claro que la firma no siempre nos sale estrictamente igual, pero el cajero, al ver nuestro cheque, hace una comparación visual de la firma contra la que tiene en sus registros y decide si paga un cheque o lo rechaza.

De la misma manera, el perfil digital de un usuario al escribir su contraseña puede ser usado para dar acceso a un sistema de cómputo o bien, para rechazarlo del mismo. La pregunta en este caso era ¿cómo hacer para comparar el perfil digital contra la contraseña escrita? Existen multitud de ideas de cómo analizar esta información, desde estadística descriptiva hasta el uso de redes neuronales. Mi enfoque fue el de intentar hacer una comparación “visual” entre el perfil de una contraseña y el perfil capturado al alimentar la contraseña para dar acceso al sistema.

Evidentemente la computadora no tiene ojos, así que la alternativa es utilizar los conceptos de cálculo elemental, y así resolver el problema, por lo menos en una primera aproximación. Para mantener simple el problema, se me ocurrió usar el concepto de pendiente. Un perfil esta formado por puntos que se conectan (el primero con el segundo, el segundo con el tercero, etc.). Cuando el usuario escribe su contraseña, encontramos que la conexión de estos puntos nos da gráficas de “dientes de sierra”, ya que el brinco de un carácter a otro es discreto (lo contrario de la continuidad). Así, lo que tenemos son dientes de sierra que no necesariamente son todos de la misma distancia. Ésta dependerá del tiempo que se tarde el usuario en oprimir una tecla en particular. De esta manera podemos medir la pendiente, es decir, el grado de inclinación de cada recta que forma el perfil digital.

De la misma manera, podemos medir el perfil de la contraseña, (alimentada previamente), para así poderla comparar con la que escribió el usuario para tener acceso al sistema. De acuerdo a la cantidad de datos similares, podemos dar acceso o rechazar al usuario. Obviamente, considerando que esta medida es similar a la firma manuscrita, entonces debemos tener un factor de tolerancia en la similaridad de las curvas. De acuerdo a esto, podemos tener un criterio más o menos flexible, dependiendo del nivel de seguridad que deseemos imponer en nuestros sistemas.

La_Morsa Software Co. (es decir yo mero), pone a disposición de quien le interese, el sistema de demostración de la dinámica del teclado. Pídame el demo a mi cuenta de correo (morsa@la-morsa.com) y se lo mandaré de manera gratuita.

3 comments:

ruben_wiener said...

hola trome porfa necesito tu ayuda m pudes enviar el demo de la aplicion en biometria lo necesito urgente al correo rubenmp86@yahoo.es o a ruben_mp_86@hotmail.com te estare agradecido ....a esta interesantetu blogs...bye

Alan said...

Hola Morza la verdad que he estado busque y busque y naaa...
te agradeceria bastante si me lo enviaras....a mi correo porfavor

maniasam_86@hotmail.com

Alan

Manuel Saavedra Lindo said...

De antemano super tu publicacion, que gran aporte, por otro lado justamente he stado buscando algo parecido para empezar con un proyecto mas grande, me podes enviar tu demo, y disculpa la confianza, pero mas o menos parte del codigo, o algoritmos, porque estado buscando y no encuentro, por favor, me harias un gran favor saavedralindo@gmail.com