En este artículo de nuestra guía sobre Banking as a Service en 🇲🇽, vamos a explorar los requisitos técnicos para implementar los mecanismos de autenticación entre usuarios, comisionistas y bancos conforme a las nuevas disposiciones que regulan el Comisionista de Base Tecnológica.
Exploraremos el porqué es importante para la CNBV asegurar que se implementen protocolos seguros de autenticación. Describiremos cómo implementarlos para garantizar la seguridad de información y cumplimiento normativo. Además, para que puedas entender como se miraría un flujo que cumple con las disposiciones, desarrollamos una wallet para clientes de Airbnb, asumiendo que Airbnb es comisionista digital de una institucion financiera llamada Neobank.
Experiencia Fintech en Airbnb
Empresas de producto como Airbnb siempre se han destacado por deleitar a sus usuarios en cada interacción con su aplicación, gracias a su enfoque en el diseño. Su app cuenta con una interfaz amigable, clara y fácil de entender. Si has utilizado Airbnb, sabrás que ofrece una experiencia simplemente superior.
Para empresas como Airbnb, al lanzar productos en nuevas verticales de negocio, como sería la vertical fintech, es crucial que la experiencia del usuario mantenga el mismo nivel de excelencia que ofrece el negocio core.
Si las entidades bancarias (como Neobank en nuestro ejemplo), quieren establecer alianzas con empresas tecnológicas enfocadas en producto, deben contar con herramientas modernas, customizables y que ofrezcan un user experience al nivel esperado por los Airbnbs del mercado.
Desde Valari, hemos diseñado una propuesta de experiencia Fintech en Airbnb:
Este es un ejemplo de cómo podría ser el flujo de un nuevo wallet lanzado por Airbnb, equilibrando el cumplimiento normativo con la exigente experiencia de usuario que caracteriza a la empresa.
La experiencia para el cliente se divide en 4 pasos:
Entry Point (Call to Action): En el app del comisionista (Airbnb) el usuario visualiza el call to action para abrir su cuenta bancaria con Neobank.
Explicación de Redireccionamiento: El comisionista le explica al usuario que será redirigido al widget o interfaz de Neobank, en donde tendrá que ingresar su método de contacto (email o celular) y crear una contraseña que será utilizada como su factor de autenticación.
Factores de Autenticación: Una vez en Neobank, el usuario registra y confirma su correo o celular, y digita una contraseña. Después es redirigido a Neobank.
Acceso en Airbnb: Finalmente el usuario puede visualizar los datos y movimientos de su cuenta, dentro del app de Airbnb.
Aquí puedes ver un prototipo del flujo completo, donde el usuario crea su perfil en Neobank y accede a su cuenta desde la app de Airbnb.
En el video mostramos que el flujo para el usuario consiste en una serie de redireccionamientos entre el app de Airbnb, al widget de Neobank, y de regreso a Airbnb.
Esta redirección consiste en “sacar” al usuario momentáneamente del ambiente de Airbnb y llevarlo a la infraestructura tecnológica de la entidad financiera. En esta interfaz, el usuario podrá registrar y confirmar su identificador y contraseña de banca online.
Una vez el usuario ingrese sus credenciales de banca online, es redireccionado al ambiente de Airbnb, desde donde ya podrá realizar operaciones financieras.
¿Por qué es importante el redireccionamiento en el proceso de autenticación?
Si eres una persona de producto, sin duda te va a hacer ruido que el usuario tenga que ser redirigido del app de Airbnb al widget de Neobank para empezar con su proceso de registro. Aunque puede no parecer la experiencia más fluida, esta medida es requerida por el regulador para proteger los factores de autenticación y por ende los recursos del usuario.
Desde el punta de vista de un usuario, acceder a sus operaciones bancarias desde Airbnb le permite gestionar mejor su negocio. Sin embargo, lo más importante para todos los participantes siempre va a ser garantizar la seguridad y confianza.
En el caso que el usuario pueda ingresar a su cuenta bancaria en Airbnb sin ninguna autenticación adicional, podemos ver tres posibles vectores de riesgo.
Sesiones Extendidas: En la mayoría de aplicaciones, los usuarios mantienen una sesión de autenticación por periodos largos de tiempo (semanas, meses). Esto quiere decir que si alguien abre su celular, e ingresa al app de Airbnb, podría ingresar directamente a su cuenta bancaria. Por el contrario, las aplicaciones bancarias restringen las sesiones a algunos minutos, y en ocaciones piden dos factores de autenticación.
Interoperabilidad: Si fuera Airbnb el encargado de resguardar y validar los factores de autenticación (contraseñas, OTPs, etc) , el usuario estaría limitado a solamente acceder a su cuenta desde el app de Airbnb. Esto presenta un riesgo para los usuarios, ya que estarían obligados a mantener su relación comercial con Airbnb para acceder a sus recursos.
Ciberataques y Riesgo Tecnológico: Ninguna empresa de tecnología es ajena al riesgo de ciberataques. Sin embargo, la infraestructura tecnológica de los bancos y sus proveedores está en constante auditoría y revisiones por reguladores, auditores internos y externos para salvaguardar los recursos del banco y sus clientes.
Este tipo de experiencias que incluyen redireccionamiento de un app a otra interfaz externa, no es algo nuevo para los usuarios.
¿Recuerdas la última vez que creaste un perfil de usuario digitando tu correo y una nueva contraseña en lugar de seleccionar “Ingresar con Google”?
Si has ingresado a una app con tu perfil de Google o Facebook, ya sabes exactamente lo que ocurre en el proceso de redireccionamiento para autenticar usuarios. Este proceso regularmente está implementado con el protocolo Oauth 2.0 , el cual explicaremos a detalle más adelante.
Este proceso permite al usuario generar confianza que sus factores de autenticación estarán protegidos por la entidad financiera. Al final del día, el banco es el único responsable de gestionar la cuenta del cliente y custodiar sus fondos.
¿Qué requisitos y restricciones impone la regulación a cada participante?
En el flujo que vimos anteriormente, sólo visualizamos lo que puede ver el usuario final. Sin embargo, por detrás ocurren más operaciones para implementar el proceso tal cual lo piden las disposiciones. A continuación te mostramos un resumen (un poco largo) de los requisitos y restricciones más importantes que tienen los bancos y comisionistas. Esperamos que te sirva como un checklist para verificar que tu integración cumple con todo lo que requiere la comisión.
Requisitos Entidad Financiera (Neobank)
Informar al usuario que fue redirigido a los medios electrónicos de la entidad financiera antes de iniciar su proceso de contratación o autenticación.
Informar al usuario que la contratación de sus productos financieros es directamente con la entidad financiera.
Recabar el método de contacto (correo o teléfono) que será utilizado como Identificador de Usuario.
Confirmar el método de contacto (correo o teléfono) mediante un código de verificación de un solo uso (one-time-passcode / OTP).
Respaldar el Identificador de Usuario y asociarlo a sus Factores de Autenticación (contraseña).
Poner a disposición del comisionista una interfaz de usuario (front-end) al cual el usuario será redirigido y donde pueda interactuar con la entidad financiera para completar su autenticación.
Verificar la identidad del comisionista en cada transmisión de datos, mediante criptografía asimétrica con la llave pública generada por el comisionista.
Generar un par de llaves pública y privada para cifrar sus mensajes de datos, compartiendo la llave pública al comisionista.
Permitir al cliente modificar su contraseña, después de confirmar su identidad.
Permitir el acceso al usuario a su cuenta mediante sus propios servicios de Banca por Internet o Servicios Móviles.
Requisitos Entidad Financiera (Neobank)
- Abstenerse de compartir los Factores de Autenticación (contraseña) de los clientes con el comisionista, bajo ningún motivo.
Requisitos Comisionista Digital (Airbnb)
Agregar un punto de entrada en su app (botón, link o card) para que el usuario pueda iniciar su proceso de registro.
Informar al usuario la razón por la cual será redirigido a Neobank, y los datos que se le van a pedir allí.
Redirigir al usuario al widget o sitio de Neobank
Utilizar el token temporal de autenticación emitido por Neobank para autenticar operaciones a nombre del cliente.
Salvaguardar el token de autenticación cifrado y protegido durante el periodo de vida de la sesión.
Enviar notificaciones al cliente a través de correo electrónico un registro de todas las operaciones realizadas en su app.
Generar un par de llaves pública y privada para cifrar sus mensajes de datos, compartiendo la llave pública al comisionista.
Agregar un punto de entrada en su app para (botón, link o card) para que el usuario pueda ingresar su proceso de recuperación o cambio de contraseña en Neobank.
Restricciones Comisionista Digital (Airbnb)
Guardar, respaldar o transmitir los datos de factores de autenticación del usuario en su infraestructura tecnológica.
Compartir o vender la información agregada o desagregada de los clientes en la institución financiera.
Son varios los requisitos que dictamina la nueva norma, y sintetizarlos en una experiencia de usuario simple, amigable y fácil de usar es un desafío.
Nosotros en Valari ofrecemos APIs y SDKs que permiten a los bancos cumplir con todos los requisitos legales para sus comisionistas. Nuestro Identity Service, que incluye un Auth SDK, es la solución white-label perfecta para lograrlo. Al final del artículo, te explicamos cómo esta herramienta puede ayudarte a cumplir con la normativa vigente.
¿Cómo deberías implementar la autenticación de usuarios y comisionistas?
Para implementar el mecanismo de autenticación siguiendo lo que requieren las disposiciones, como Valari pensamos que el protocolo Oauth 2.0, que ha sido implementado y probado por varios años en la industria presenta las mejores garantías de seguridad y experiencia de usuario.
A continuación te mostramos como lo implementa nuestro Identity Service.
Autenticación de Usuarios
Oauth 2.0 + PKCE Flow
Aunque el protocolo Oauth 2.0 sea el estándar de la industria, no es algo simple de implementar. Es crucial entender bien cómo funciona para evitar problemas de seguridad, como la mala gestión de tokens que podría dejar expuestos datos sensibles. También es importante asegurarse de que las credenciales y tokens se manejen con una encriptación fuerte y autenticación multifactor.
Para reforzar aún más la seguridad, optamos por usar OAuth 2.0 con PKCE (Proof Key for Code Exchange), lo que añade una capa adicional de protección contra ataques de interceptación, asegurando que los códigos de autorización solo puedan ser intercambiados por el cliente legítimo. Para evitar brechas de seguridad, necesitas un equipo especializado que se asegure de que todo se implemente de forma segura y eficiente.
En el siguiente diagrama puedes observar el paso a paso de como está implementado este mecanismo de autenticación.
Puedes visualizar como se transmiten los mensajes de datos, y que finalmente solo es la Entidad Financiera, o en su caso su proveedor Valari 😉, la que resguarda y valida los datos de factores de autenticación de los usuarios.
Finalmente, puedes visualizar como se emite el token de autenticación (Access Token), el cual tiene una vigencia de 20 minutos, y le permite al aplicativo de Airbnb interactuar con el API de Neobank a nombre del cliente.
Autenticación de Comisionistas
API Tokens
Para la entidad financiera no solo es importante autenticar al cliente, también es muy importante autenticar al comisionista. De esta manera puede garantizar que las peticiones que recibe vienen del comisionista, y no está ocurriendo un ataque de suplantación de identidad.
Este tipo de autenticación se conoce como machine-to-machine authentication y se puede implementar de la siguiente manera. El servidor de autenticación emite un client_id
y client_secret
que debe ser resguardado en un repositorio seguro por parte del comisionista.
Utilizando esta pareja de credenciales llama al endpoint /oauth/token
una vez autenticada y autorizada, el servidor de autorización responde con un access token, que está en formato JWT (JSON Web Token). Este token contiene información sobre los permisos concedidos y tiene una firma digital que permite su posterior verificación.
El comisionista puede verificar la autenticidad del token utilizando la llave pública que compartió la entidad financiera antes de comenzar operaciones.
Una vez que el comisionista cuente con el access token , lo podrá agregar al header de todas sus peticiones como una firma digital. El comisionista debe generar un hash asimétrico utilizando su llave privada y el access token. De esta manera la entidad financiera podrá validar dicha firma digital con la llave pública que compartió el comisionista.
Valari acelera tu time-to-market
Si eres un banco que busca crecer su negocio mediante comisionistas digitales, seguramente te estarás preguntando cuánto tiempo y recursos toma construir la tecnología necesaria para poder ofrecer tus productos con comisionista como Airbnb.
En Valari hemos desarrollado una plataforma que brinda soluciones completas para bancos y comisionistas. Uno de los componentes más poderosos de nuestro plataforma es el Identity Service. Con este componente no solo puedes configurar tus requisitos de autenticación, sino también ofrecer a tus comisionistas APIs y SDKs nativos para que los integren rápidamente a sus aplicaciones.
Para empresas como Airbnb, es muy importante que puedan realizar una integración rápida, fácil de entender y utilizando componentes nativos de tecnologías móviles como Flutter, React, React Native, Web (Javascript) iOS o Android.
Si eres una entidad financiera y quieres ahorrar tiempo, dinero, y garantizar la seguridad de la implementación de este protocolo, contáctanos para que puedas ver un demo de como puedes implementar finanzas embebidas en horas.