Guía de buenas prácticas de seguridad
Orientación para producción sobre autenticación facial segura, inicio de sesión con reconocimiento facial, verificaciones de vivacidad, protección mediante PIN, restricciones de dominio y flujos de cuenta respaldados por webhooks con FACEIO.
Abre el Application Manager para configurar la validación del PIN Code, la vivacidad, los dominios permitidos, la validación de encabezados y la entrega de webhooks.
Diseña una autenticación facial segura desde el inicio
Configura el FACEIO Widget, fio.js y los controles de tu backend antes de habilitar la autenticación facial para usuarios en producción.
Protege el flujo de autenticación completo
La autenticación facial forma parte del límite de acceso a tu cuenta. Trata la configuración de FACEIO, la integración de fio.js, la vivacidad, las reglas del PIN Code, las restricciones de dominio, la validación de webhooks y la recuperación de cuenta como un solo modelo de seguridad para producción.
Estas prácticas abordan el uso no autorizado del Widget, los PIN débiles, los ataques de presentación, los registros repetidos y la sincronización del backend. Configura las opciones descritas en esta guía desde el Application Manager de FACEIO Console ↗.
Comienza con la guía de primeros pasos y la guía de integración de fio.js. Después, usa esta página como lista de comprobación de seguridad para producción antes de activar el inicio de sesión con reconocimiento facial para usuarios reales. Para preguntas de implementación, usa el foro de la comunidad ↗ o abre una solicitud privada de soporte desde FACEIO Console ↗.
Lista de comprobación de seguridad para producción
Antes de lanzar la autenticación facial de FACEIO en producción, verifica que tu aplicación tenga un flujo completo de seguridad de cuenta alrededor del widget, no solo una integración funcional del lado del cliente.
- Restringe los orígenes: activa las restricciones de dominio y rechaza los encabezados Origin o Referer ausentes antes de exponer tu Public ID.
- Mantén activa la vivacidad: usa protección contra spoofing facial en flujos sensibles de inicio de sesión, incorporación, recuperación de cuenta y verificación reforzada.
- Define el comportamiento del PIN: decide cuándo será obligatoria la confirmación del PIN, cómo se gestionarán los intentos fallidos y cómo funcionará la recuperación de cuenta.
- Conecta los eventos del backend: usa webhooks de FACEIO para eventos de registro, autenticación y eliminación de Facial ID que afectan el estado de la cuenta.
- Protege a los usuarios registrados: documenta cómo tu producto gestiona Facial ID, la eliminación, la desvinculación de cuentas y los intentos de autenticación sospechosos.
- Revisa los controles de privacidad: consulta esta página junto con la guía de buenas prácticas de privacidad antes de habilitar el registro para usuarios finales.
Configuración de seguridad de la aplicación FACEIO
Revisa cada configuración de seguridad de FACEIO según el inicio de sesión, la recuperación y las reglas de autorización del backend de tu sitio o aplicación web. Configura estas opciones en FACEIO Application Manager ↗.
Rechazar códigos PIN débiles durante el registro
Durante el registro, cada usuario define un PIN Code que FACEIO puede solicitar durante la autenticación. Rechazar PIN Code débiles evita que valores comunes debiliten este paso de validación adicional.
- Rechaza patrones comunes como
0000,1111y1234. - Mantén el PIN separado de contraseñas, números de teléfono, fechas de nacimiento y otros datos del perfil.
- Usa la confirmación del PIN como una señal controlada de autenticación adicional, no como sustituto de la recuperación de cuenta ni de la autorización del servidor.
Si se activa el rechazo de PIN débiles, los usuarios deben elegir un código más seguro antes de continuar el registro. Combina esta configuración con la política de confirmación del PIN que aparece abajo para aplicaciones sensibles.
Evitar registros repetidos en la misma aplicación
Cuando está activa, esta opción comprueba si la persona parece estar registrada en la misma aplicación FACEIO. Si se detecta un duplicado, el registro se cancela y el código de error fioErrCode.FACE_DUPLICATION se devuelve a tu aplicación. La detección de duplicados es un resultado de reconocimiento, no una garantía de que se identifiquen todos los registros repetidos. Mantén esta
opción activa cuando una persona deba corresponder a una cuenta o a un Facial ID en tu aplicación.
Vivacidad y protección contra spoofing facial
Configuración de vivacidad: activa esta protección cuando tu flujo de autenticación requiera detección de ataques de presentación.
Cuando está activa, esta función ayuda a contrarrestar ataques de presentación con fotos, imágenes impresas, videos reproducidos, pantallas de teléfonos, máscaras e intentos de spoofing similares. Ninguna capa de detección debe considerarse una garantía independiente, por lo que tu aplicación debe decidir cómo gestionar sesiones sospechosas. Si se detecta un ataque de presentación, FACEIO genera
el código de error fioErrCode.PAD_ATTACK para que tu backend pueda denegar el acceso, permitir un nuevo intento o enviar la sesión a revisión.
En la autenticación biométrica para sitios y aplicaciones móviles, la detección de vivacidad debe formar parte del recorrido del usuario y de la decisión de riesgo del backend. No trates un resultado anti-spoofing fallido como un error normal de inicio de sesión.
- Registra el evento en el servidor cuando afecte el acceso a la cuenta o la evaluación de fraude.
- Evita dar a los atacantes detalles sobre qué señal anti-spoofing falló.
- Usa webhooks y la supervisión de la aplicación para correlacionar fallos repetidos con actividad sospechosa de la cuenta.
Combina el anti-spoofing con restricciones de dominio, políticas de PIN, límites de solicitudes y una alternativa clara para los usuarios legítimos cuyas condiciones de cámara, iluminación o dispositivo requieran otro intento.
Aplicar una edad mínima durante el registro
Cuando está activa, esta opción aplica el resultado de estimación de edad de FACEIO durante el registro y devuelve fioErrCode.MINORS_NOT_ALLOWED cuando el resultado queda por debajo del mínimo configurado. La estimación de edad es probabilística y no debe tratarse como una edad exacta ni como garantía de elegibilidad legal.
Activa esta configuración desde FACEIO Console ↗ solo cuando una estimación de edad sea una señal adecuada durante el registro. Los propietarios de la aplicación siguen siendo responsables de los avisos, el consentimiento, la revisión legal y cualquier comprobación separada de edad o elegibilidad.
Solicitar siempre el código PIN durante la autenticación
Recomendado para aplicaciones sensibles: Mantén esta opción activa para banca, fintech, portales de administración, recuperación de cuenta, pagos y otros flujos sensibles.
Durante la autenticación, FACEIO puede pedir al usuario que confirme su PIN después de la verificación facial. Si esta opción está desactivada y la comparación facial es suficientemente clara según tu política configurada, la sesión puede continuar sin una solicitud adicional de PIN.
Si esta opción está activa, el usuario debe confirmar su PIN antes de que FACEIO complete la autenticación. Después de varios intentos inválidos, FACEIO cancela el flujo y devuelve el código de error correspondiente. Tu backend sigue siendo responsable del acceso, los límites de frecuencia y la recuperación de cuenta.
Exigir unicidad del código PIN entre usuarios
Durante el registro, cada usuario puede definir un PIN de al menos 4 y no más de 16 dígitos. Si se activa la unicidad del PIN, FACEIO rechaza un PIN que ya use otro usuario registrado en la misma aplicación. Esto reduce el riesgo de que un valor alternativo compartido se convierta en un punto débil del flujo de autenticación facial.
Ignorar rostros ocultos o parcialmente cubiertos
De forma predeterminada, los rostros ocultos, las capturas con poca iluminación y los rostros parcialmente cubiertos se descartan del proceso de reconocimiento. FACEIO solicita otro cuadro hasta detectar un rostro claramente visible. Mantén este comportamiento estricto en la autenticación biométrica de producción, salvo que tu aplicación tenga un motivo específico de accesibilidad u operación para flexibilizarlo.
Rechazar encabezados HTTP Origin/Referer ausentes o vacíos
Cuando está activa, esta opción impide instanciar fio.js si la solicitud del navegador no incluye un encabezado Origin ↗ o
Referer ↗. Trátalo como un control básico contra solicitudes falsificadas o anómalas y usa restricciones de dominio para limitar dónde puede usarse el Public ID de tu aplicación.
Restringir la instanciación del widget a dominios autorizados
Cuando está activa, esta opción limita la instanciación de fio.js a los nombres de dominio que autorices. Otros dominios no podrán usar el Public ID de tu aplicación para iniciar registros o autenticaciones de FACEIO. Configura la lista de dominios permitidos desde
Application Manager ↗ antes del lanzamiento en producción.
Restringir la instanciación del widget a países autorizados
Cuando está activa, esta opción limita la instanciación de fio.js a los países que definas. Úsala cuando tu servicio tenga límites geográficos o requisitos regionales. Configura los países permitidos con códigos ISO 3166-1 desde
Application Manager ↗.
Activar webhooks
Los webhooks permiten que tu backend reciba eventos del FACEIO Widget para mantener sincronizados tus registros con nuevos registros, autenticaciones faciales correctas y eliminaciones de Facial ID.
Detalles de los eventos de webhook
Cuando ocurre un evento, FACEIO envía una solicitud HTTP POST a la URL de webhook configurada. Según el evento, el payload puede incluir:
- El Facial ID único del usuario en cuestión
- Género y edad (en caso de un nuevo registro)
- Marcas de tiempo, tipo de evento e información de IP
- El payload vinculado, cuando está disponible
Más información sobre webhooks
Configura tu endpoint de webhook en FACEIO Application Manager y valida los eventos del webhook en el servidor antes de cambiar el estado de la cuenta.
Configura los controles de seguridad de FACEIO
Antes de pasar a producción, crea una aplicación, restringe sus dominios permitidos, configura la vivacidad y la validación del código PIN, y verifica los controles del backend que usa tu flujo.