Blog de Amazon Web Services (AWS)

Prueba de vida para mejorar la prevención del fraude en instituciones financieras con Amazon Rekognition

Por Rafael Werneck, arquitecto de soluciones de I+D AWS Brasil,
Por Henrique Fugita, arquitecto de soluciones de I+D en AWS Brasil
Por João Paulo Aragão, arquitecto de soluciones de AWS LATAM.

 

 

 

El reconocimiento facial es una de las formas más comunes de biometría empleadas en diversos sectores para la prevención del fraude. Fundamentalmente, el reconocimiento facial utiliza algoritmos para distinguir las características únicas de un individuo de aquellas caras que pueden ser similares en una «galería». La biometría facial es cada vez más popular entre las instituciones financieras que están tratando de hacer un equilibrio entre una mejor prevención del fraude y una experiencia de usuario de alta calidad.

En una publicación anterior del blog, describimos una arquitectura de referencia para mejorar la prevención del fraude, registrar nuevos clientes y autorizar pagos. La arquitectura se centra en la detección de vida, que utiliza tecnología antifalsificación para validar si un usuario es una persona viva, y puede usarse tanto en aplicaciones móviles como web.

Esta publicación describe, paso a paso, cómo las instituciones financieras pueden crear una solución de detección de vidas para mejorar la prevención del fraude en los sistemas de autorización de pagos. También incluye código de implementación para facilitar la implementación.

El enfoque central de la arquitectura requiere que los usuarios afronten un desafío. Por ejemplo, los usuarios deben mover su nariz a una posición objetivo definida aleatoriamente que se muestra en pantalla. Esto desencadena una serie de procesos de verificación que validan si:

  1. Existe la imagen de una – y sólo una – cara capturada;
  2. Un usuario mantuvo su cara en el centro de la imagen y a una distancia adecuada;
  3. Un usuario movió su nariz a la posición objetivo;
  4. Un usuario realizó un movimiento de rotación de la cabeza, imitando un sistema tridimensional.

 

 

Beneficios

Esta versión de la arquitectura de detección de vida permite a las instituciones financieras aprovechar las siguientes características:

  • Verificación de proximidad facial;
  • Una nueva API para cargar imágenes directamente del usuario (frames) en lugar de subirlas primero a un repositorio de Amazon S3;
  • Verificación del JSON Web Token(JWT) a través del desafío firmado con un secreto almacenado en AWS Secrets Manager;
  • Definición aleatoria de la posición objetivo de la nariz, siendo fácil de alcanzar;
  • Uso de distancia euclidiana y rotación de la cabeza para verificar el desafío;
  • El cliente sube los frames en segundo plano (aplicación API) durante el desafío (para optimización);
  • Seguimiento de caras que comprueba la posición dentro del cuadro delimitador.

 

 

Arquitectura

Utilizamos Amazon Rekognition para detectar detalles faciales que verifican el desafío. La arquitectura es serverless y está compuesta de los siguientes servicios: Amazon API Gateway, AWS Lambda, Amazon DynamoDB, Amazon Simple Storage Service (S3), y AWS Secrets Manager.

La comprobación final del desafío se ejecuta en la nube. La arquitectura también le permite ejecutar el desafío localmente, en el lado del cliente, para que pueda proporcionar comentarios en tiempo real a sus usuarios finales mientras interactúan con la cámara del dispositivo.

Este es el diagrama de arquitectura con la descripción de sus componentes:

 

 

  • ClienteLa aplicación API designada captura imágenes de usuario (frames), ejecuta el desafío localmente e invoca Amazon API Gateway para verificar el desafío en la nube;
  • Gateway de API de Amazon: REST HTTP API invocada por el cliente;
  • AWS Lambda: Función, invocada por Amazon API Gateway, que implementa la verificación de desafíos en la nube;
  • Amazon DynamoDB: Base de datos que almacena datos de desafío
  • Amazon S3: Almacena imágenes de usuario;
  • Amazon Rekognition: Servicio de reconocimiento de imágenes basado en Deep-learning, el cuál analiza las imágenes de los usuarios;
  • AWS Secrets Manager: Servicio que almacena el secreto utilizado para firmar tokens.

 

 

Flujo de trabajo Desafío

Aquí hay detalles adicionales del flujo de trabajo del desafío:

 

Comenzar un nuevo desafío

Cuando el usuario inicia una nueva acción que requiere un desafío, este desafío es iniciado por la aplicación cliente. El cliente invoca la API pasando el ID de usuario y las dimensiones de la imagen de la cámara del dispositivo. A continuación, la API devuelve los parámetros de desafío, de modo que el cliente puede pedir al usuario instrucciones sobre cómo realizar el desafío. Vea los detalles a continuación:

 

 

  1. El usuario inicia el desafío en el cliente;
  2. El cliente emite una solicitud HTTP POST al endpoint de la API /start, pasando el ID de usuario y las dimensiones de la imagen de la cámara del dispositivo. API Gateway reenvía la solicitud a la función de desafío;
  3. La función de desafío recibe la solicitud y genera coordenadas para el área de la cara y la posición aleatoria objetivo de la nariz y analiza las dimensiones de la imagen. También genera un ID de desafío y un token de seguridad, firmado con un secreto almacenado en AWS Secrets Manager. La función de desafío almacena los parámetros del desafío en la tabla de desafíos (Amazon DynamoDB) y los devuelve al cliente.
  4. El cliente recibe los parámetros de desafío y muestra la previsualización en la cámara del dispositivo al usuario, junto con instrucciones sobre cómo realizar el desafío.

 

Realización del Desafío

 A medida que los usuarios interactúan con la cámara del dispositivo, el cliente ejecuta el desafío localmente cargando frames, uno por uno, limitados por una velocidad configurable. Vea los detalles a continuación:

 

 

  1. El usuario interactúa con la cámara del dispositivo, ya que captura imágenes;
  2. El cliente realiza una solicitud HTTP PUT al endpoint de la API /{challengeID} /frames, pasando la imagen y el token. API Gateway reenvía la solicitud a la función de desafío;
  3. La función de desafío valida el token. Si es válido, almacena la imagen en el repositorio de frames (Amazon S3). También actualiza el registro de desafíos en la tabla de desafíos (Amazon DynamoDB) con la URL de la imagen.

 

Estos pasos se repiten para las otras imágenes hasta que el desafío finalice localmente (el usuario mueve la nariz al área de destino o el tiempo de desafío caduca).

 

 

Comprobación del desafío

 Después de que los usuarios completen correctamente los desafíos localmente, el cliente llama a la API para la verificación final en la nube. Vea los detalles a continuación:

 

 

  1. El usuario sigue las instrucciones y completa el desafío (es decir, el usuario mueve la nariz al área de destino). Sin embargo, en este punto, el desafío se completa solo en el cliente.
  2. El cliente emite una solicitud HTTP POST al endpoint de la API /{challengeID} /verify, pasando el token, para comenzar la verificación de desafío en la nube. API Gateway reenvía la solicitud a la función de desafío.
  3. La función de desafío valida el token. Si es válido, busca los datos de desafío en la tabla de desafíos (Amazon DynamoDB) e invoca Amazon Rekognition para analizar las imágenes almacenadas en el repositorio de frames (Amazon S3). A continuación, la función de desafío comprueba el desafío. El resultado final (éxito o error) se devuelve al cliente.
  4. El cliente muestra el resultado final al usuario.

Durante el análisis final, la función de desafío llama para cada frame, la operación de DetectFaces de Amazon Rekognition. Por cada cara detectada, la operación devuelve los detalles faciales. De todos los detalles capturados en la operación DetectFaces, utilizamos las coordenadas del cuadro que delimita su rostro, las marcas faciales (coordenadas de la nariz) y la pose (rotación del rostro).

La función de desafío necesita estos detalles para detectar algunos intentos de suplantación, como fotos, máscaras 2D y vídeos, siguiendo el flujo de trabajo que se describe a continuación. Las instituciones financieras también pueden verificar utilizando otros detalles capturados, como expresiones emocionales, atributos generales (por ejemplo, sonrisas, ojos abiertos), calidad de imagen y datos demográficos. Esta arquitectura de referencia para la detección de vida aún no puede detectar máscaras 3D ni identificar textura.

 

 

Aquí hay algunas capturas de pantalla de un usuario que realiza el desafío:

 

 

Tenga en cuenta algunas consideraciones para la implementación de este ejemplo:

  • La solución proporcionada aquí no es segura contra todas las falsificaciones. Por lo tanto, antes de implementarlo en producción, pruébelo a fondo para validar que cumple con sus requisitos de seguridad;
  • Puede mejorar la lógica de verificación para que su solución sea más robusta frente a la suplantación de identidad. Por ejemplo, puede verificar si las posiciones de la marca de la nariz cambian continua y linealmente de un frame a otro;
  • La arquitectura no incluye autenticación de usuario porque considera que el usuario ya ha iniciado sesión antes de iniciar el desafío de detección de actividad. Si es necesario, puede agregar autenticación facial al flujo de trabajo de autenticación de usuario mediante Amazon Cognito y Amazon Rekognition. Para obtener más información, por favor revise esta otra entrada de blog;
  • Dependiendo de sus requisitos, puede eliminar el bucket S3 de la arquitectura y, en lugar de almacenar las imágenes del usuario, llame a Amazon Rekognition tan pronto como el cliente suba una imagen. A continuación, puede almacenar el resultado en la tabla de DynamoDB y usarlo durante el paso de verificación. Otra opción es utilizar la operación IndexFaces, de Amazon Rekognition para detectar caras en una imagen y mantener información sobre las características faciales detectadas en una colección.

 

 

Artefactos

Proporcionamos una implementación funcional de la arquitectura de referencia, escrita en Python, junto con una aplicación cliente web JavaScript. Gracias a la naturaleza desacoplada de esta arquitectura, puede aplicar fácilmente la misma lógica para crear otros clientes, incluidas aplicaciones móviles nativas.

Para obtener el código completo, consulte el repositorio de GitHub. Puede clonarlo, cambiarlo, implementarlo y ejecutarlo usted mismo.

 

Requisitos previos

La implementación es proporcionada en forma de una plantilla stack de AWS Serverless Application Model (SAM). Para implementarlo en su cuenta de AWS, debe instalar y configurar la CLI de AWS y la CLI  SAM de AWS. El proceso de construcción de la aplicación también requiere la instalación de Docker y Node.js.

 

 

Limpieza

Si no quieres seguir usando la aplicación, realiza los siguientes pasos para borrar tus recursos y evitar cargos adicionales:

  • Vacíe los depósitos de Amazon S3 creados por la pila eliminando todos los objetos contenidos
  • Elimine el stack SAM en la consola de AWS CloudFormation.

 

Conclusión

En esta entrada de blog (parte 2 de 2), le mostramos una arquitectura de detección de vida con Amazon Rekognition y otros componentes serverless. Las instituciones financieras pueden usarlo para agregar reconocimiento facial a sistemas que requieren una autenticación más fuerte. La arquitectura también se puede ampliar y mejorar mediante la integración de otros servicios de AWS.

Vale la pena destacar algunas recomendaciones y características de esta arquitectura:

  1. 1—2 segundos para el tiempo de respuesta (percepción del cliente);
  2. 5—15 FPS (fotogramas por segundo) capturados es suficiente para detectar la vida útil;
  3. El tamaño de cada frame es de aproximadamente 15-20 KB;
  4. Es posible evitar falsificaciones vinculadas a fotos, fotos móviles, vídeos, identificaciones y máscaras 2D;
  5. Capaz de detectar la vida incluso cuando se usan máscaras médicas y gafas de sol;
  6. Una arquitectura serverless y el procesamiento de cada frame cuesta menos de 0,01 USD.

El punto de partida para la construcción de la solución fue satisfacer una creciente demanda de prevención del fraude por parte de la mayoría de las instituciones financieras en Latinoamerica. Entregamos esta arquitectura a través del trabajo transversal del equipo de I+D e Innovación LATAM de AWS y del arquitecto de soluciones enfocado en servicios financieros (LATAM).

 

Este artículo fue traducido del Blog de AWS en Portugués.

 


Sobre los autores

 

Rafael Werneck es arquitecto de soluciones de I+D en AWS con sede en Brasil. Anteriormente, trabajó como ingeniero de desarrollo de software en Amazon.com.br y Amazon RDS Performance Insights.

 

 

 

 

Henrique Fugita es arquitecto de soluciones de I+D en AWS en Brasil. Ayuda a los clientes a imaginar el arte de lo posible en AWS trabajando con ellos en proyectos innovadores de creación de prototipos. Con más de 15 años de experiencia en desarrollo de software y arquitectura de soluciones, actualmente se centra en la inteligencia artificial y el aprendizaje automático.

 

 

 

João Paulo Aragão Pereira es arquitecto de soluciones de AWS con un enfoque en la industria de servicios financieros para la región de LATAM. Se especializa en prevención y detección de fraudes, banca abierta, modernización de legados y sistemas de pago. Ha trabajado con arquitectura en bancos y aseguradoras durante más de 15 años.