Business Case: Implementación de un Sistema de Autenticación
Multi-Factor (MFA) para Aplicaciones Fintech
Descripción del Proyecto:
n Creze, la seguridad de la información y la protección de los datos de nuestros clientes son de
E
máxima prioridad. Para este desafío técnico, te invitamosadesarrollarunmódulodeautenticación
multi-factor (MFA) que se integre en una aplicación web existente construida con Django en el
backend y React en el frontend. Este proyecto, aunque acotado en alcance, requiere de una alta
complejidad técnica y permitirá evaluar tus habilidades en seguridad, integración de sistemas y
mejores prácticas de desarrollo.
Objetivos del Caso:
● D esarrollar un sistema de autenticación multi-factor que añada una capa adicional de
seguridad al proceso de inicio de sesión.
● Integrar este sistema tanto en el backend (Django) como en el frontend (React) de manera
transparente y eficiente.
● Implementar soluciones de seguridad avanzadas siguiendo las mejores prácticas de la
industria.
Requerimientos Específicos:
● Autenticación Básica:
○ Configurar un sistema de autenticación de usuarios utilizando Django's built-in
authentication system.
○ Implementar funciones de registro, inicio de sesión y cierre de sesión.
● Autenticación Multi-Factor (MFA):
○ AñadirunsegundofactordeautenticaciónutilizandoTime-BasedOne-TimePasswords
(TOTP), compatible con aplicaciones como Google Authenticator o Authy.
○ Generar y mostrar códigosQRenelfrontendparaquelosusuariospuedanescaneary
configurar el MFA en sus dispositivos móviles.
○ Almacenar de forma segura las claves secretas asociadas a cada usuario en labasede
datos.
● Integración Frontend (React):
○ Crear componentes de React para manejar el flujo de MFA durante el inicio de sesión.
○ Asegurar una experiencia de usuario fluida y validaciones en tiempo real.
● Seguridad Avanzada:
○ Implementar medidas contra ataques comunes como CSRF, XSS, y brute force attacks.
○ Utilizar HTTPS para todas las comunicaciones (puede ser simulado en entorno local).
○ Seguir las mejores prácticas para el almacenamiento de contraseñas y datos sensibles.
● Testing y Validación:
○ Escribir pruebas unitarias y de integración paraasegurarlafuncionalidadyseguridad
del sistema.
○ Incluir pruebas quesimulenintentosdeaccesonoautorizadosyverifiquenlarobustez
del sistema.
● Documentación:
○ Documentar detalladamente el proceso de configuración y funcionamiento del MFA.
Incluir instrucciones sobre cómo agregar o remover el MFA para usuarios existentes.
○
Desplegar la aplicación utilizando los servicios gratuitos de AWS:
●
○ AWS Elastic Beanstalk o AWS EC2 Free Tier, o Lambdas para el backend.
○ AWS Amplify o Amazon S3 para el hosting del frontend.
○ AWS RDS para la base de datos (opcional si se ajusta a la capa gratuita).
○ Configurar variables de entorno y secretos de manera segurautilizandoAWSSystems
Manager Parameter Store o AWS Secrets Manager (en su capa gratuita si es posible).
Criterios de Evaluación:
C
● alidad del Código: Estructura clara, código limpio y comentarios cuando sean necesarios.
● Seguridad: Implementación efectiva de medidas de seguridad y manejo adecuado de datos
sensibles.
● Complejidad Técnica: Uso de tecnologías y soluciones avanzadas apropiadas para el problema.
● Funcionalidad Completa: El sistema MFA debe funcionar correctamente y ser integrado de
manera transparente en la aplicación.
● Documentación y Pruebas: Incluir documentación detallada y un conjunto completo de
pruebas automatizadas.
● Toma de Decisiones: Justificación de las herramientas y métodos utilizados, mostrando
pensamiento crítico y experiencia.
Instrucciones para la Entrega:
● R epositorio de Código: Subir el código fuente aunrepositorioprivadoenGitHuboGitLaby
compartir el acceso con nosotros.
● Guía de Implementación: Incluir un archivo README con instrucciones claras sobre cómo
ejecutar y probar la aplicación localmente.
● Demostración en Vivo: Proporcionar, si es posible, una URL donde podamos probar la
aplicación desplegada en AWS.
● Plazo de Entrega: 1 semana a partir de la recepción del desafío.
● Dirección de envío y dudas:jobtech+developer@[Link]
Notas Adicionales:
● E nfoqueenlaSeguridad:Dadalanaturalezasensibledelosdatosfinancieros,esperamosque
la solución refleje una comprensión profunda de las prácticas de seguridad en aplicaciones
web.
● TecnologíasAdicionales:Siconsiderasqueotrasherramientasobibliotecaspuedenmejorartu
solución, siéntete libre de utilizarlas y justificar su uso.
● Simplicidad y Eficiencia: Aunque el proyecto es pequeño, buscamos soluciones elegantes y
eficientes que demuestren tu capacidad para manejar desafíos complejos de manera efectiva.