Monday, December 8, 2008

PIN de acceso y las probabilidades de acierto.

Luego de leer esta nota en PC++ ( seguridad debil, un ejemplo ) sobre el error de diseño de una cerradura de automoviles basada en el ingreso de un PIN , voy a intentar explicar ( tal vez algun matematico pueda dar alguna explicacion mejor ) el numero de posibilidades que tenemos para acertar el PIN de una tarjeta de debito/credito o que este basada en este metodo de acceso.

Pero antes un breve resumen del problema en las cerraduras de los vehiculos Ford segun la nota comentada :

Al parecer las teclas están marcadas como 1/2, 3/4, 5/6, 7/8 y 9/0, de modo que en realidad son solo cinco dígitos diferentes (primer problema). Y según comprobaron, si la clave es, por ejemplo 11357 resulta que tecleas un número más largo como 9113579 también se abre (segundo problema) porque el sistema parece que al teclear eso se traga las tres secuencias de cinco dígitos: 91135, 11357 y 1357.

Como sólo hay 55 secuencias de cinco dígitos, eso reduce las secuencias posibles a sólo 3.125. Al parecer un matemático llamado Bruijn calculó cómo podría ser una esas secuencias de longitud mínima que garantice que al teclearla vas a teclear también todas las posibles secuencias de 5 dígitos, por tanto abriendo la puerta



La probabilidad de acertar un PIN

Un PIN es generalmente un numero de cuatro digitos, usualmente compuesto de numeros decimales del 0 al 9.

La razon por lo cual se utiliza este tipo de claves es que en general los terminales solo tienen teclados numericos.
Dependiendo del tipo de tarjeta, ( smart card o cinta magnetica ) luego que el PIN es ingresado , el mismo es comparado con el valor almacenado y concedera el acceso o no.

El ataque mas simple a realizar contra un PIN, ( sin realizar shouldersurfing ) consiste en adivinarlo. La probabilidad de encontrarlo dependera del largo del PIN, los caracteres con los cuales esta compuesto y cuantos intentos son permitidos.

La probabilidad de acertar un PIN de cuatro digitos en tres intentos es 0,03%, la cual no es alta.

Pero esto como veremos mas adelante no siempre es asi, dado que existe un cuarto factor a tener en cuenta el cual es la uniformidad en la distribucion de los PIN generados por una aplicacion.
Es mas facil adivinar un PIN si sabemos que algunos son mas comunes que otros.

Esto ocurrio en el año 1997 : German Hackers Show ATM Security Flaws

El Chaos Computer Club de Alemania logro realizar un algoritmo que reducia a unos pocos cientos de numeros la posibilidad de encontrar el PIN correcto.

Esto fue dado que el algoritmo de generacion de PIN hacia que la posibilidad que uno de cada cuatro codigos comenzara con 1 y la posibilidad de tener un PIN que comenzara con un 0 o un 5 era el doble que cualquier otro numero excepto un 1.

Con esta distribucion no uniforme, ya no es necesario realizar 3333 intentos para encontrar el PIN correcto en una clave de cuatro digitos, alcanzara con solo 150 intentos.

Veamos una tabla con la cantidad de PIN´s segun el numero de elementos y los codigos utilizados.


Photobucket

Por supuesto que para las tarjetas que usamos habitualmente ( VISA por ejemplo ) esto no es tan sencillo. Pero esto merece otro post.

En Agosto de este año se publico esta nota en la cual se habla de que actualmente los algoritmos de encrypcion de los PIN en las tarjetas pueden estar comprometidos .

Did PIN thieves grab hacking's Holy Grail?

No comments: