Cuando empecé a escribir en SecurityByDefault, trabajaba como preventa técnico para un fabricante de Cortafuegos de Aplicaciones Web (o WAF), y de ahí que haya mencionado en varios posts este tipo de protección ante ataques de nivel 7 a las aplicaciones web.
Desde la semana pasada, y espero que por muchos años, he cambiado la protección web, los SQLi, XSS, RFIs y demás,… por otra empresa dedicada a la protección de accesos remotos mediante mecanismos de autenticación fuerte,... bastante curiosos.
Esta claro que los accesos usuario/contraseña únicamente, pueden llegar a ser bastante inseguros. Los riesgos: fuerza bruta, diccionario, robo de credenciales, troyanos, contraseñas almacenadas en claro, etc,… Además de que, como hemos contado varias veces también, la gente utiliza contraseñas débiles por longitud, y baja complejidad, así como fácilmente adivinables.
Para determinadas conexiones, en las que con una autenticación se da acceso a toda una organización (por ejemplo mediante un acceso VPN), puede ser realmente peligroso dejarlo en manos de un único mecanismo por usuario/contraseña que no siempre cumple características de gran complejidad, que puede estar escrita en un post-it en el monitor o de fondo de pantalla del escritorio, que puede ser vox populi porque hubo que decírsela a alguien una vez para que pudiera hacer determinada operación o que simplemente ha sido robada por Shoulder Surfing al escribirla en el teclado varias veces. El principal peligro de una autenticación por usuario/contraseña es que éstas últimas, sean como sean, son estáticas.
Así pues, para otorgar un mayor nivel de seguridad para estos accesos, es por lo que se utiliza lo que se llama un 2FA o una autenticación de doble factor. En general, la autenticación fuerte por 2FA viene dado por la composición de una doble autenticación en base a tres tipos de factores: algo que se sabe (la contraseña), algo que se tiene (generalmente un token que genera un código OTP) y algo que se es (autenticación biométrica).
Para la autenticación biométrica, es necesario contar con dispositivos que sean capaces de "reconocer" una característica de los usuarios (la voz, el iris, la retina, las huellas dactilares, la disposición de las venas…). Esto, estando en la playa, por ejemplo ahora que empiezan los meses de vacaciones de verano, no resulta muy cómodo.
En menor medida, para poder acceder remotamente a una organización, no siempre es agradable tener que estar cargando en todo momento con el típico llavero rojo y azul que genera numeros aleatorios válidos durante un tiempo finito. Si olvidamos el token en el coche, en casa, en otra chaqueta, etc,… estaremos todo un día sin podernos autenticar y por ello, en algunas ocasiones, hasta trabajar. Por experiencia, si me dejo el móvil en casa, lo utilice o no como soft-token, vuelvo a por él.
Os quiero contar como es, a muy grandes rasgos, la solución de Swivel Secure, no porque trabaje para esa compañía desde este mes (que también :D), sino porque me ha parecido muy original, seguro y cómodo. PinSafe permite generar un One-Time-Code sin necesidad de llevar llaveros, tarjetas empresariales, tarjetas de coordenadas, chips, ni demás "amuletos". Lo único que hay que saberse es un PIN, además de tu usuario/contraseña. Pero ojo, el PIN que te sabes, no hay que ponerlo en ningún sitio, sino no valdría para nada al ser siempre el mismo. El dispositivo de autenticación presentará al usuario lo que se llama una "security string": básicamente una cadena de caracteres aleatorios que puede ser presentado en formato imagen de TURing, o enviado por SMS, email, a través de una aplicación de un dispositivo móvil (iPhone, Android, applet Java, Windows Mobile, etc,…) Los números del PIN que nos sabemos, marcará las posiciones de los caracteres de la security string que se nos presenta.
El OTC (One Time Code) que deberemos introducir será diferente en cada autenticación, pudiendo forzar las características del PIN (longitud, complejidad, nivel de repetición, etc,…). Incluso se puede hacer que las imágenes de TURing aparezcan animadas para evitar troyanos que monitorizan la pantalla de un usuario infectado. Muchos diréis, oye pero si estás en un entorno con posibilidad de MiTM, se podrá averiguar el PIN también en base a analizar el TURing y los caracteres enviados. La respuesta es sí, pero siempre puedes hacer que el security string le llegue al usuario por un canal diferente (SMS, aplicación para móvil, etc,..), entonces será necesario tener troyanizada tu vida entera para que averigüen tu PIN.
Si queréis ver la presentación que hizo mi compañero Alex Rocha en el Asegur@IT 9, os dejo el video con la misma, bajo estas líneas.
Desde la semana pasada, y espero que por muchos años, he cambiado la protección web, los SQLi, XSS, RFIs y demás,… por otra empresa dedicada a la protección de accesos remotos mediante mecanismos de autenticación fuerte,... bastante curiosos.
Esta claro que los accesos usuario/contraseña únicamente, pueden llegar a ser bastante inseguros. Los riesgos: fuerza bruta, diccionario, robo de credenciales, troyanos, contraseñas almacenadas en claro, etc,… Además de que, como hemos contado varias veces también, la gente utiliza contraseñas débiles por longitud, y baja complejidad, así como fácilmente adivinables.
Para determinadas conexiones, en las que con una autenticación se da acceso a toda una organización (por ejemplo mediante un acceso VPN), puede ser realmente peligroso dejarlo en manos de un único mecanismo por usuario/contraseña que no siempre cumple características de gran complejidad, que puede estar escrita en un post-it en el monitor o de fondo de pantalla del escritorio, que puede ser vox populi porque hubo que decírsela a alguien una vez para que pudiera hacer determinada operación o que simplemente ha sido robada por Shoulder Surfing al escribirla en el teclado varias veces. El principal peligro de una autenticación por usuario/contraseña es que éstas últimas, sean como sean, son estáticas.
Así pues, para otorgar un mayor nivel de seguridad para estos accesos, es por lo que se utiliza lo que se llama un 2FA o una autenticación de doble factor. En general, la autenticación fuerte por 2FA viene dado por la composición de una doble autenticación en base a tres tipos de factores: algo que se sabe (la contraseña), algo que se tiene (generalmente un token que genera un código OTP) y algo que se es (autenticación biométrica).
Para la autenticación biométrica, es necesario contar con dispositivos que sean capaces de "reconocer" una característica de los usuarios (la voz, el iris, la retina, las huellas dactilares, la disposición de las venas…). Esto, estando en la playa, por ejemplo ahora que empiezan los meses de vacaciones de verano, no resulta muy cómodo.
En menor medida, para poder acceder remotamente a una organización, no siempre es agradable tener que estar cargando en todo momento con el típico llavero rojo y azul que genera numeros aleatorios válidos durante un tiempo finito. Si olvidamos el token en el coche, en casa, en otra chaqueta, etc,… estaremos todo un día sin podernos autenticar y por ello, en algunas ocasiones, hasta trabajar. Por experiencia, si me dejo el móvil en casa, lo utilice o no como soft-token, vuelvo a por él.
Os quiero contar como es, a muy grandes rasgos, la solución de Swivel Secure, no porque trabaje para esa compañía desde este mes (que también :D), sino porque me ha parecido muy original, seguro y cómodo. PinSafe permite generar un One-Time-Code sin necesidad de llevar llaveros, tarjetas empresariales, tarjetas de coordenadas, chips, ni demás "amuletos". Lo único que hay que saberse es un PIN, además de tu usuario/contraseña. Pero ojo, el PIN que te sabes, no hay que ponerlo en ningún sitio, sino no valdría para nada al ser siempre el mismo. El dispositivo de autenticación presentará al usuario lo que se llama una "security string": básicamente una cadena de caracteres aleatorios que puede ser presentado en formato imagen de TURing, o enviado por SMS, email, a través de una aplicación de un dispositivo móvil (iPhone, Android, applet Java, Windows Mobile, etc,…) Los números del PIN que nos sabemos, marcará las posiciones de los caracteres de la security string que se nos presenta.
El OTC (One Time Code) que deberemos introducir será diferente en cada autenticación, pudiendo forzar las características del PIN (longitud, complejidad, nivel de repetición, etc,…). Incluso se puede hacer que las imágenes de TURing aparezcan animadas para evitar troyanos que monitorizan la pantalla de un usuario infectado. Muchos diréis, oye pero si estás en un entorno con posibilidad de MiTM, se podrá averiguar el PIN también en base a analizar el TURing y los caracteres enviados. La respuesta es sí, pero siempre puedes hacer que el security string le llegue al usuario por un canal diferente (SMS, aplicación para móvil, etc,..), entonces será necesario tener troyanizada tu vida entera para que averigüen tu PIN.
Si queréis ver la presentación que hizo mi compañero Alex Rocha en el Asegur@IT 9, os dejo el video con la misma, bajo estas líneas.