La autentificación es básica para garantizar la confianza de tus usuarios mediante tu APP o servicios. Para cumplir con este objetivo existen diversos métodos de autentificación que puedes implementar en tus desarrollos APP, que deberás seleccionar y adaptar en relación con la sensibilidad de los datos.

Para entender bien cómo gestionar la seguridad, primero se debe entender qué es la autentificación y qué es la autorización. Tal como hicimos hace unas semanas: ¿Cuál es el mejor método de autentificación en un API REST?.

¿Qué diferencia hay entre autentificación y autorización?

Es muy importante entender la diferencia entre autentificación y autorización.

Empecemos definiendo los términos:

  • autentificación (authentication): La autentificación es el proceso o acción de verificar la identidad de un usuario o proceso.
  • autorización (authorization): La autorización es una función que especifica los privilegios de acceso del usuario a los recursos de tu servicio.

La autentificación se basa en proporcionar un conjunto de credenciales para que el servidor o aplicación pueda verificar que eres quien dices ser y que la información que se proporciona es válida.

La autorización parte del proceso de autentificación y este garantiza que una vez que se determine que las credenciales de usuario son correctas, se aplicará el control de acceso para determinar a qué recursos se puede acceder en el sistema. En dispositivos móviles, este método de autorización se realiza en muchos casos mediante hardware especializado como CPU, TPM (Chip de cifrado), Bionic (Chip de reconocimiento facial), Secure Enclave (chip de reconocimiento de huella), etc.

Los sistemas operativos móviles como iOS, Android o Windows, disponen de acceso a estos sistemas de autorización que puedes integrar a tus desarrollos APP con frameworks como Flutter o React Native.

Evaluemos qué métodos de autentificación APP tenemos a nuestro alcance.

Métodos de autentificación APP

Código PIN / Patrón

Investigadores de seguridad de la Academia Naval de EE.UU. y la Universidad de Maryland afirman que los patrones son menos seguros que el código PIN o contraseñas en público. Una de sus explicaciones sería que el cerebro humano puede recordar patrones mejor que dígitos y que un patrón puede ser reconstruido con una grabación en video, en una distancia de hasta 2.5 metros.

Si comparamos un patrón con un código PIN, Microsoft informó recientemente que su código PIN en chip TPM (CPU de cifrado) puede ser incluso mejor que una contraseña implementada en Windows 10. Su punto principal es que dicho PIN está codificado para un dispositivo en particular, mientras que una contraseña se transmite a un servidor y, por lo tanto, puede verse comprometida en el transcurso de una comunicación. Sin embargo, el problema de la seguridad del PIN sigue siendo cuestionable ya que no está respaldado con otro factor de autenticación (MFA).

Referencias según sistema:

Contraseña

Nos hemos acostumbrado al hecho de que un PIN de cuatro dígitos es menos seguro que una contraseña segura. Sin embargo, la longitud y la complejidad de una contraseña no pueden proporcionarte el máximo nivel de seguridad. Por ejemplo, una contraseña alfanumérica de 14 caracteres puede ser descifrada aproximadamente en 160 segundos mediante el uso de Rainbow table.

La necesidad de fortalecer la protección con contraseña creó diferentes factores de autenticación, como 2FA, 3FA, 4FA, y autentificación multifactor.

Referencias según sistema:

Autentificación multifactorial (MFA)

La autentificación multifactor es un método de confirmación que permite que un usuario acceda a una aplicación solo después de ejecutar con éxito de 2 a 3 factores (evidencias) que confirman con éxito la identidad. Por ejemplo, el reconocimiento facial sumado a un PIN.

Los sistemas altamente seguros pueden utilizar autentificación MFA y OTP (contraseña de un solo uso) en un protocolo Kerberos para establecer un canal de comunicación y verificación confiable entre un cliente y un servidor.

La naturaleza de los métodos de autentificación puede ser diferente, pero el objetivo principal de cada uno de ellos es verificar la identidad de un usuario. Podemos dividirlos en tres categorías:

  • Métodos de conocimiento: es la verificación del conocimiento del usuario que sabe, por ejemplo, una contraseña, una frase secreta o una respuesta a la pregunta previamente acordada, etc.
  • Método de posesión: es la verificación que garantiza que, lógicamente o físicamente, se autentifica el usuario. Por ejemplo, un token basado en una contraseña de un solo uso (OTP), una clave o certificado cifrado en el teléfono móvil, una tarjeta SIM, tarjeta de identificación como el DNI, etc.
  • Factor de inherencia: Es la verificación física del usuario, más conocida como biometría. Por ejemplo, huellas digitales, reconocimiento facial, reconocimiento de voz, escaneo de retina o iris, etc.

La implementación de un factor de inherencia en las aplicaciones móviles aumenta en gran medida la seguridad de los inicios de sesión y contraseñas.

Touch ID / huellas digitales

Es un hecho bien conocido que cualquier persona posee huellas digitales únicas utilizadas principalmente por la dactilografía. Sin embargo, con la llegada de nuevas tecnologías, la autentificación biométrica se ha convertido en un método convencional para salvaguardar la integridad de los datos a través de una verificación segura.

El conocido sensor de huellas dactilares del iPhone 5S fue el primero en resolver algunos problemas de autentificación importantes; por ejemplo, desbloqueando el dispositivo con PIN mediante fuerza bruta, probando diversas posibilidades.

En 2017, la popularidad de los iPhone entre los consumidores alcanzó los 216 millones de unidades vendidas en todo el mundo. Aunque es difícil referir estas cifras únicamente a Touch ID, el interés de los usuarios por la biometría de huellas digitales ha abierto camino a otros fabricantes como Samsung, Google, LG, Sony, HTC, Huawei, etc, a implementar este método de autentificación en sus modelos como, por ejemplo, el Samsung Galaxy S8.

Referencias según sistema:

Face ID / Reconocimiento Facial

La tecnología de reconocimiento facial está habilitada por la cámara frontal, el mapa facial 3D y la imagen infrarroja. Un buen ejemplo para demostrar cómo funciona es ver la función de desbloqueo de Face ID del reconocido iPhone X. Su cámara frontal proyecta 30,000 puntos en la cara de la persona para crear un patrón único y preciso basado en la geometría. La cámara infrarroja que también capta una imagen para identificar a una persona con cualquier iluminación y adaptarse a los cambios diarios en la apariencia de la persona (maquillaje, anteojos, sombrero, barba, etc.) lee el patrón y lo envía a una CPU Biónica. Luego, las imágenes se transforman en una representación matemática para verificar con el patrón facial inicial del usuario.

Aunque la tecnología avanzada detrás de Face ID permite ser reconocida desde cualquier ángulo y en la oscuridad total, aún requiere refinamiento.

Referencias según sistema:

Conclusión

La elección del método de autentificación debe realizarse de acuerdo a la sensibilidad de la información. Es por ello que existen varios métodos de autentificación de acceso a APPs.

Aunque la recomendación es la utilización multifactorial (MFA), ya que demuestra robustez frente al resto de métodos de implementar por sí solos. MFA permite, gracias a la suma de factores, hacer casi infalible la identificación de un usuario. Todos los métodos de autentificación biométricos, a pesar de sus perspectivas prometedoras, aún requieren mejoras y pruebas adicionales para poder reemplazar completamente el mecanismo de MFA. Por lo tanto, actualmente, la biometría puede complementarse a MFA como suma de factores de autenticación.

¿Qué métodos de autentificación implementas en tu APP? ¿Utilizas reconocimiento facial o lector de huellas dactilar en tu dispositivo móvil?


Foto: Apple TrueDepth sensors will project 30,000 IR dots on your face

Referencias: