miércoles, 26 de febrero de 2003

La seguridad de las tarjetas de crédito en entredicho

Se ha presentado un estudio que demuestra la vulnerabilidad de los
sistemas de seguridad utilizados por los cajeros automáticos para la
validación de los PIN asociados a las tarjetas de crédito. Este estudio
se ha visto empañado por los intentos que está realizando Citibank para
ocultar esta información.

En un estudio titulado "Decimalisation table attacks for PIN cracking",
dos investigadores de la universidad de Cambridge (Reino Unido)
presentan un estudio de las debilidades existentes en los dispositivos
hardware para el almacenamiento seguro y la validación de los PIN
asociados a las tarjetas de crédito comúnmente utilizado por las
instituciones financieras.

Las tarjetas de crédito son un clásico ejemplo de un sistema de
autenticación de doble factor, ya que se combina un elemento físico que
es necesario poseer (la tarjeta de plástico con su banda magnética) con
un elemento que teóricamente sólo conoce el titular de la tarjeta de
crédito (el PIN, un código numérico habitualmente de cuatro caracteres)
que físicamente no reside en ningún sitio. Para poder utilizar la
tarjeta de crédito en un cajero automático es necesario disponer de
estos dos elementos al mismo tiempo.

Obtener el plástico tarjeta de crédito es una tarea relativamente
simple. Son un elemento de libre distribución y comercialización.
Falsificar la banda magnética también es una operación no demasiado
complicada, como hemos leído infinidad de veces en las noticias sobre
estafas que, periódicamente, publican los medios de comunicación.

Lo que, en teoría, ya no es tan fácil obtener o identificar es el PIN
que el usuario ha seleccionado para la tarjeta de crédito. En teoría, la
única forma de identificar este PIN es o bien obligando al titular de la
tarjeta a que lo revele o utilizando técnicas de fuerza bruta para su
identificación.

En el caso de la fuerza bruta, la teoría conocida hasta la fecha es que
para identificar el PIN asociado a la tarjeta son necesarios, de
promedio, unos 5.000 intentos.

El estudio publicado este mes muestra que en realidad, una persona con
los conocimientos adecuados de los mecanismos de seguridad utilizados y
acceso a los sistemas criptográficos que se utilizan en los bancos,
únicamente necesita un máximo de 15 intentos para identificar cualquier
código PIN de cualquier tarjeta de crédito.

La vulnerabilidad utilizada se encuentra en los dispositivos hardware
utilizados para la realización de las operaciones criptográficas. Se
trata de unos procesadores especialmente diseñados para esta acción,
capaces de realizar un gran número de operaciones por segundo.

Una vez más, la teoría indica que estos equipos están especialmente
protegidos para la realización de cualquier ataque. No sólo disponen de
protecciones especiales para evitar su manipulación, sino que las
funciones que ofrecen a los programas están diseñadas para devolver un
valor booleano (verdadero o falso) a cualquier petición, para evitar la
divulgación de información que sirva para confeccionar ataques basados
en el estudio estadístico de los errores reportados.

Estos sistemas criptográficos realizan la validación del PIN realizando
un cifrado de los dígitos introducidos, utilizando una clave secreta.
Del resultado de la operación de cifrado se extraen una serie de
dígitos, expresados en base hexadecimal. Como el PIN de la tarjeta
utiliza únicamente números de base decimal, se hace necesaria la
conversión.

La conversión de hexadecimal a decimal no se realiza de forma
matemática, sino que se aplica una tabla de conversión, donde se expresa
la conversión a realizar para cada dígito hexadecimal. Por ejemplo, una
tabla de conversión puede ser

0123456789ABCDEF
9876543210987654

Utilizando esta tabla, el valor hexadecimal 67F4 se convertiría en el
valor decimal 3245. Este seria, en definitiva el PIN que debería
cotejarse para determinar si la operación debe realizarse o no.

Es en este punto donde se encuentra la vulnerabilidad del protocolo.
Estas tablas de conversión no son un valor sensible, sino que es posible
facilitar una tabla de conversión arbitraria, conjuntamente con el
número de cuenta y el PIN, en el momento de solicitar al sistema
criptográfico la validación de la información.

Por tanto, un empleado del banco con acceso al sistema dispone de la
capacidad de manipular las tablas de conversión para determinar los
dígitos que forman el PIN. Por ejemplo, utilizando esta tabla de
conversión

0123456789ABCDEF
0000000100000000

con el código PIN 0000 es posible identificar si el PIN contiene el
número 7.

Por tanto, básicamente lo que demuestra el estudio, una vez más, es que
utilizar como medida de seguridad el desconocimiento ("security by
obscurity") no es efectivo, especialmente cuando se hace referencia a
cuestiones relacionadas con la criptografía.


El lado oscuro de esta historia

Un problema de este tipo, que requiere una situación muy específica para
poder ser utilizado, probablemente hubiera pasado más o menos
desapercibido fuera de los círculos de interés sobre criptografía y
seguridad informática. De hecho, como se deduce de lo publicado
anteriormente, las únicas personas que podrían aprovecharse de esta
vulnerabilidad para obtener los PIN de las tarjetas de crédito son
algunos empleados de los bancos que disponen del acceso necesario a los
sistemas criptográficos.

Ahora bien, se ha producido un elemento, muy grave, que ha dado un matiz
totalmente diferente a esta historia. Y es que Citibank, una de las
mayores corporaciones bancarias del mundo, ha utilizado las armas
legales a su alcance para intentar ocultar este estudio y censurar la
publicación de esta información.

Tal como recogemos en el apartado de "Más información", Citibank ha
solicitado al Tribunal Supremo del Reino Unido la retirada del estudio
al que hemos hecho referencia.

En el momento de redactar este boletín, una de las páginas web donde
estaba disponible esta investigación (también publicada por la revista
que edita Microsoft Research) no permite el acceso a la información, con
un código de error HTPP 403 (acceso prohibido). No podemos afirmar que
sea debido a la actuación de Citibank, pero así lo parece indicar.


Xavier Caballé
xavi@hispasec.com