Llegar a este artículo es una historia demasiado larga, pero lo voy a resumir: prácticamente desde el comienzo de la estandarización de los 2FA he sido escéptico con su adopción, tanto porque existen formas de evitarle o aprovechar una vulnerabilidad x qué explicaré más adelante. Además, nos ha faltado tiempo para que todas las plataformas conocidas hicieran su adopción real, cuestión que en su momento únicamente podía ser aplicado a tres o cuatro servicios, entre ellos los de Google con su alternativa propia qué no es tan buena (otro tema a tocar) ¿Y entonces? Actualmente, muchos de esos “obstáculos” ya no lo son y por ello hago este artículo.

¿Qué es la autenticación de dos factores (2FA)?

“La autenticación de dos factores (A2F), también usada la sigla inglesa 2FA (de two-factor authentication), es un método que confirma que un usuario es quien dice ser combinando dos componentes diferentes de entre: 1) algo que saben; 2) algo que tienen; y 3) algo que son.

La autenticación en dos pasos o verificación en dos pasos es un método de confirmar la identidad de un usuario utilizando algo que conocen (contraseña) y un segundo factor distinto a lo que sean o posean. Un ejemplo de un segundo paso es que el usuario tenga que introducir algo que le sea enviado a través de un medio alternativo, o que tenga que introducir una serie de dígitos generados por una aplicación conocida por el usuario y el sistema de autenticación”.

Partiendo de lo anteriormente mencionado, debemos conocer qué un factor de autenticación múltiple puede constar de un medio físico en posesión del usuario (llave, USB, tarjeta), algún secreto conocido (contraseña, pin) o características biométricas del usuario (huellas dactilares, iris, voz u otro patrón definido).

Antes de continuar, he de aclarar que el método de doble autenticación que utilizo es por medio de una aplicación móvil, solucionando así todas las vulnerabilidades conocidas frente al 2FA tradicional, en donde algunas de ellas son:

  • Pueden ser interceptados (SMS inseguros).
  • Tienes que tener señal todo el tiempo para que pueda llegar el pin.
  • Proporcionar el número móvil a quién presta el servicio (nula privacidad).
  • Demora en la entrega del pin (retraso en el sistema de envío o en la latencia).

Esas son algunas de las más conocidas vulnerabilidades del 2FA tradicional, de cómo se comenzó y que en la actualidad algunos servicios, incluyendo a Google lo aplican, en este debes confirmar el ingreso por medio de un PIN que hacen llegar a tu móvil por medio de SMS.

Ahora bien, la autenticación móvil de dos factores fue creada para proporcionar un método alternativo que evitara los problemas derivados de usar un token físico. Esta aproximación utiliza dispositivos móviles como teléfonos móviles para servir como algo que el usuario posea. Si los usuarios se quieren autenticar, pueden emplear su licencia de acceso personal —por ejemplo, algo que solo el usuario individual sabe— más una contraseña de un solo uso y no reutilizable constituida por varios dígitos. El código puede ser enviado a su dispositivo móvil por SMS o a través de una aplicación especial; esta última siendo la más ideal, aunque no deja de ser vulnerable a fallas por parte del usuario, sea qué se apague el móvil, sea que te lo roben u otro daño físico que te impida acceder a él para posteriormente bloquear tu acceso a x plataforma.

Se dice que dicho método será de suma obligación en las plataformas digitales a partir de 2023, al menos en Github lo confirmaron, en Google lo hicieron en algunas cuentas desde el 2021 y también existe legislación que obliga al público general a usarla en determinados ámbitos, como la Directiva de Servicios de Pago de la Unión Europea de 2015; estos hechos confirman así que será un protocolo que veremos de forma más cotidiana en diferentes hábitos que requiera pasos extra de seguridad.

¿Es seguro 2FA? ¿Deberíamos habilitarlo?

En anteriores líneas les he explicado los métodos más conocidos para vulnerar el 2FA y todos ellos en su mayoría son basándonos en el tradicional 2FA que no todos utilizan, qué es por medio de SMS, en donde dependes de la seguridad de la operadora, el servidor y otras cuestiones en ese transcurso de llegada “seguro” que claramente no lo es. Además de reducir drásticamente la privacidad porque dicho empleador que proporciona dicho servicio debe conocer si o si tu número al que debe llegar el PIN.

En realidad, el problema en sí no es el 2FA, sino la versión extraña y restringida de esta función de seguridad proporcionada por algunas grandes plataformas, y con ello me refiero a cuando la plataforma NO proporciona el 2FA de manera sólida, sino más bien que proporciona otros métodos de autenticación en caso de que se falle este, siendo este prácticamente vulnerado por el propio sistema, ejemplo:

>Un atacante intenta ingresar a tu cuenta de Google que tienes previamente asegurada con 2FA, pero falla en el intento de ingreso con esta, posteriormente el sistema le proporciona otros métodos de verificación, no contando con que el atacante previamente tenía secuestrado el correo electrónico, pudiendo utilizar este como un método de autenticación y así obtener TODO el resto de servicios sin ningún problema.

Lo anterior fue un ejemplo que puede aplicar a cualquier servicio que sirva varios métodos de autenticación.

Por ahora, no existe manera de eludirlo. Es posible cambiar el software y los servicios o, en un enfoque menos radical, usar un dispositivo que este 100% dedicado para 2FA. Sin embargo, parece demasiado restrictivo y dudo seriamente que logre convertirse en una tendencia.

Frente a la última pregunta de si deberíamos habitarlo: definitivamente si, aunque teniendo en cuenta el tema de la SEGURIDAD por encima de la USABILIDAD, de ahora en adelante siempre tendremos que verificarnos en nuestras cuentas cómo si fuéramos extraños, son pasos extras que nos pueden hacer tardar, aunque nos proporciona la seguridad de que seremos los únicos que ingresemos.

Para finalizar el tema de “vulnerabilidades” voy a enlazar un excelente artículo por parte del servidor Hackwise el cual menciona 6 técnicas en las que podrían atacar dicho protocolo, ten en cuenta que el artículo fue escrito en 2020 y muchos de esos errores fueron corregidos/evitados o sólo aplica para un caso de 2FA en concreto (sea el de SMS, el físico u otro).

¿Qué software utilizar? Aegis es el mejor

Llevo usando Aegis desde que comencé a usar los 2FA y de verdad que NO me ha fallado en ninguno de los casos, es lo mejor que he encontrado en dicho sector y mejor aún, es software libre.

Ahora sí, debo de profundizar en dicho proyecto para que sea más extendido:

Aegis Authenticator es una aplicación 2FA gratuita, segura y de código abierto para Android. Su objetivo es proporcionar un autenticador seguro para sus servicios en línea, mientras que también incluidas algunas funciones que faltan en las aplicaciones de autenticación existentes, como cifrado y copias de seguridad. Aegis es compatible con HOTP y TOTP, lo que lo hace compatible con miles de servicios.

Características a destacar:

Es Software Libre bajo la licencia GPL-3.0

-Cifrado: Todas sus contraseñas de un solo uso se almacenan en una bóveda. Si tú elija establecer una contraseña (muy recomendable), la bóveda cifrarse mediante criptografía fuerte. Si alguien con la intención maliciosa se apodera del archivo de la bóveda, es imposible para ellos recuperar los contenidos sin saber la contraseña. Introduciendo tu contraseña cada vez que necesites acceder a una contraseña de un solo uso puede ser engorroso. Afortunadamente, puedes también habilité el desbloqueo biométrico si su dispositivo tiene datos biométricos sensor (es decir, huella digital o desbloqueo facial).

-Organización: Con el tiempo, probablemente acumulará decenas de entradas en su bóveda. Aegis Authenticator tiene muchas opciones de organización para hacer que encontrar el que necesita en un momento particular sea más fácil. Establezca un icono personalizado para una entrada para que sea más fácil de encontrar. Busque por nombre de cuenta o nombre de servicio. ¿Tener un montón de una sola vez contraseñas? Agréguelos a grupos personalizados para facilitar el acceso. Personal, Trabajo y Social pueden tener cada uno su propio grupo.

-Copias de seguridad: Para asegurarse de que nunca perderá el acceso a su cuenta en línea cuentas, Aegis Authenticator puede crear copias de seguridad automáticas de la bóveda a una ubicación de su elección. Si tu nube El proveedor es compatible con Storage Access Framework de Android (como lo hace Nextcloud), incluso puede crear copias de seguridad automáticas para la nube. La creación de exportaciones manuales de la bóveda también es soportado.

Fuente oficial del proyecto: acá y el repositorio de Github.

Dejad de usar el maldito Google Authenticator y acá les enlazo un vídeo de un experto del tema que trata el cómo dicha aplicación es lo más insegura dentro del apartado del 2FA, para ahorrarles el ver el vídeo: relata cómo no tiene cifrado dicha bóveda, si tienes el móvil puedes acceder sin problemas. Además de que Google registra todo y otras cuestiones.

Gracias por leerme, les deseo una Feliz Navidad por si no alcanzo a desearselas a tiempo.