Llegamos a ustedes gracias a:



Reportajes y análisis

¿Son seguros los captchas y teclados virtuales?

[04/09/2012] Los llamados captchas se han convertido en la forma cotidiana de demostrar nuestra identidad ante un sistema. Ellos verifican que el que se identifica es realmente una persona y no un software que intenta acceder a datos o servicios restringidos. De manera similar, los teclados virtuales se han transformado en la herramienta que muchas instituciones financieras utilizan para verificar la identidad de sus clientes en el mundo de las transacciones en línea.
Pero ¿qué tan seguras son estas herramientas? Ricardo Supo, CTO de LimaSoft, empresa dedicada al análisis de seguridad, realizó una presentación en la que expuso algunos de los elementos que se deben de tomar en cuenta para hacer más seguras estas herramientas. Su presentación la realizó durante el pasado Cyber Security Government 2012, un evento del cual aún hay temas por desarrollar. Pero, en esta oportunidad, veremos los que nos dejó en cuanto a captchas y teclados virtuales.
Primero Supo se encargó de mostrar los elementos esenciales de seguridad de los teclados virtuales.
Ricardo Supo, CTO de LimaSoft, explica las vulnerabilidades que existen detrás de los captchas y los teclados virtuales.
Los teclados virtuales aparecieron por el tema de los key loggers, ese fue el motivo inicial de colocar un teclado virtual, para que no se pueda capturar las teclas digitadas físicamente. Estos teclados los vemos ahora en los accesos a banca virtual pero muchas veces también es utilizado para la afiliación a un servicio, para generar claves, sostuvo Supo.
Hay muchas características de los teclados que han ido cambiando con el tiempo, de acuerdo a Supo. Inicialmente éstos eran fijos, pero con el tiempo se lanzaron teclados con movimiento, que incluso rotan, para que no se puedan capturar las imágenes y, por tanto, la información que ingresa el usuario.
A pesar de que esto pueda parecer muy seguro, Supo sostuvo que a nivel de diseño puede ser, en realidad, inseguro. Lo más importante en el teclado es observar qué es lo que se envía, resaltó.
Normalmente, cuando uno teclea una clave en un teclado virtual se tiende a pensar que el sistema está enviando esta información para ser validada, pero ese no es necesariamente el caso. Al usar un teclado virtual, lo que en realidad puede estar enviando el sistema son las posiciones que se han tocado, no los números.
Esta diferencia, de acuerdo al expositor, es muy importante, ya que la segunda opción es más segura que la primera.
Cualquier persona que capture los datos que se envían podría obtener esa información y como es una información fija se podría obtener la clave de la persona, señaló Supo.
Y si las acciones son fijas se pueden automatizar. Y si ya se ha encontrado la lógica de la automatización, se puede emular una persona que esté digitando la clave, sin necesidad de que haya una persona.
Supo también sostuvo que además de esta falta de seguridad originada por la forma en que está estructurado el envío de información del teclado virtual, es igualmente necesario tomar en cuenta que estas herramientas se encuentran expuestas a las técnicas de fuerza bruta.
La fuerza bruta consiste en probar contraseñas alternativas, una a una, hasta encontrar la correcta. En el caso de una clave bancaria que generalmente consta de cuatro cifras se puede iniciar el intento en el 0001 y concluir en el 9999, encontrándose entre estos dos números la contraseña que corresponde a una cierta tarjeta.
Esta es la fuerza bruta directa y contra ella se opta por permitir que el supuesto usuario solo pueda ingresar su contraseña hasta en tres ocasiones, luego de las cuales la tarjeta se bloquea.
Contra ella se puede utilizar la fuerza bruta inversa.
Si la primera tomaba una tarjeta y se probaba con ella diferentes contraseñas, la segunda toma una contraseña y prueba con ella diferentes tarjetas. Dado que los números de las tarjetas tienen una estructura que se puede determinar y que existen más tarjetas que contraseñas -hay millones de clientes y tarjetas pero una cantidad mucho menor de combinaciones de cuatro cifras- es muy probable que con fuerza bruta inversa se pueda encontrar incluso más de una tarjeta para una determinada contraseña.
En realidad, la vulneración de estas medidas de seguridad es cuestión de usar la imaginación, señaló Supo.
Algo similar ocurre con los captchas.
Existen peligros que provienen de la propia estructura lógica con el que han sido creados.
Se supone que yo primero verifico el captcha, y si coincide con el valor que he establecido -la imagen con el texto- recién realizo la acción. Pero en muchos casos se hace lo contrario. Se realiza la acción y si el captcha no coincide recién se redirecciona al usuario a otra página. Pero si yo desactivo el JavaScript puedo ver la información del mensaje en el que se indica si el password es correcto o no, sostuvo Supo.
Lo descrito por Supo es una forma de vulnerar el captcha. Si se captura la información sobre la validez del captcha  sin ver el captcha, se vulnera lo que supuestamente lo hacía seguro: que un software no puede leer una imagen.
Pero incluso el propio captcha puede ser visto por un software.
Generalmente, los captchas son imágenes que muestran letras o números, o ambos, que el usuario debe luego escribir en una casilla para demostrar que es una persona y no un software el que desea realizar una determinada acción. Su seguridad se basa en que el software no puede verlo pero, obviamente, hay formas en que un software puede leer una imagen: los programas OCR (Reconocimiento Óptico de Caracteres).
Ante ello, los captchas han adquirido formas que dificultan su lectura, incluso para las personas. Así lo que usualmente se hace es cambiar colores o incluso la forma de las letras. Parece seguro, pero la tecnología puede resolver también estos inconvenientes.
Entonces, lo primero es usar una técnica de limpieza de imágenes; es decir, se determina en qué rango de colores se encuentra el texto y en que rango se encuentra el fondo. Lo que se hace es una conversión para transformarlo todo a blanco y negro, entonces ya la imagen se encuentra limpia para pasarlo por un OCR, sostuvo el expositor.
A pesar de que se utilicen colores y combinaciones de colores muy confusas, siempre se podrá reducir todo a blanco y negro, y pasarlo por un OCR.
Incluso si las letras se modifican alterando su forma, Supo afirmó que se pueden usar librerías de imágenes para comparar cada signo contra un conjunto de imágenes de una letra deformada de diversas maneras. Se podrá así encontrar qué imagen se parece a la que se encuentra en el captcha y determinar así de qué letra se trata.
Supo sostuvo que la mayoría de los captchas son vulnerables, basta usar la imaginación y la creatividad. Y por el lado de las organizaciones que los usan, junto con los teclados virtuales, para identificar a usuarios, es necesario tomar en cuenta todos estos elementos para mejorar la seguridad.
Jose Antonio Trujillo, CIO Perú