Guia de boas práticas de segurança
Orientações de produção para proteger a autenticação facial, o login com reconhecimento facial, as verificações de vivacidade, a proteção por PIN, as restrições de domínio e os fluxos de conta apoiados por webhooks com FACEIO.
Abra o Application Manager para configurar validação de PIN Code, vivacidade, domínios permitidos, validação de cabeçalhos e entrega de webhooks.
Projete uma autenticação facial segura desde o início
Configure o FACEIO Widget, fio.js e os controles do backend antes de habilitar a autenticação facial para usuários em produção.
Proteja todo o fluxo de autenticação
A autenticação facial faz parte do limite de acesso à conta. Trate a configuração da FACEIO, a integração do fio.js, a vivacidade, as regras de PIN Code, as restrições de domínio, a validação de webhooks e a recuperação de conta como um único modelo de segurança para produção.
Estas práticas abordam uso não autorizado do Widget, PINs fracos, ataques de apresentação, cadastros repetidos e sincronização do backend. Configure as opções descritas neste guia pelo Application Manager no FACEIO Console ↗.
Comece pelo guia de primeiros passos e Guia de integração do fio.js, depois use esta página como seu checklist de segurança de produção antes de ativar o login com reconhecimento facial para usuários reais. Para dúvidas de implementação, use o fórum da comunidade ↗ ou abra uma solicitação privada de suporte pelo Console ↗.
Checklist de segurança para produção
Antes de lançar a autenticação facial da FACEIO em produção, confirme que sua aplicação tem um fluxo completo de segurança de conta ao redor do widget, não apenas uma integração funcional no cliente.
- Restrinja as origens: ative as restrições de domínio e rejeite cabeçalhos Origin ou Referer ausentes antes de expor seu Public ID.
- Mantenha a vivacidade ativa: use a proteção contra spoofing facial em fluxos sensíveis de login, onboarding, recuperação de conta e verificação adicional.
- Defina o comportamento do PIN: decida quando a confirmação do PIN será obrigatória, como tratar tentativas malsucedidas e como funcionará a recuperação de conta.
- Conecte os eventos ao backend: use webhooks da FACEIO para eventos de cadastro, autenticação e exclusão de Facial ID que afetam o estado da conta.
- Proteja os usuários cadastrados: documente como seu produto trata Facial ID, exclusão, desvinculação de contas e tentativas de autenticação suspeitas.
- Revise os controles de privacidade: consulte esta página junto com o guia de boas práticas de privacidade antes de habilitar o cadastro para usuários finais.
Configurações de segurança do aplicativo FACEIO
Revise cada configuração de segurança da FACEIO conforme o login, a recuperação e as regras de autorização do backend do seu site ou aplicativo web. Configure essas opções no FACEIO Application Manager ↗.
Rejeitar códigos PIN fracos durante o cadastro
Durante o cadastro, cada usuário define um PIN Code que a FACEIO pode solicitar durante a autenticação. Rejeitar PIN Codes fracos evita que valores comuns enfraqueçam essa etapa adicional de validação.
- Rejeite padrões comuns, como
0000,1111e1234. - Mantenha o PIN separado de senhas, números de telefone, datas de nascimento e outros dados do perfil.
- Use a confirmação do PIN como um sinal controlado de autenticação adicional, não como substituto da recuperação de conta e da autorização no servidor.
Se a rejeição de PINs fracos estiver ativada, os usuários deverão escolher um código mais forte antes de continuar o cadastro. Combine esta configuração com a política de confirmação do PIN abaixo para aplicativos sensíveis.
Impedir cadastros repetidos na mesma aplicação
Quando ativada, esta opção verifica se a pessoa parece já estar cadastrada no mesmo aplicativo FACEIO. Se uma duplicação for detectada, o cadastro será interrompido e o fioErrCode.FACE_DUPLICATION código de erro será retornado à sua aplicação host. A detecção de duplicados é um resultado de reconhecimento, não uma garantia de que todos os cadastros repetidos serão identificados.
Mantenha esta opção ativada quando uma pessoa deva corresponder a uma conta ou a um Facial ID na sua aplicação.
Vivacidade e proteção contra spoofing facial
Configuração de vivacidade: ative esta proteção quando o fluxo de autenticação exigir detecção de ataques de apresentação.
Quando ativado, este recurso ajuda a combater ataques de apresentação usando fotos, imagens impressas, vídeos reproduzidos, telas de celulares, máscaras e tentativas de spoofing semelhantes. Nenhuma camada de detecção deve ser tratada como garantia isolada; sua aplicação deve definir como lidar com sessões suspeitas. Se um ataque de apresentação for detectado, a FACEIO retorna
o código de erro fioErrCode.PAD_ATTACK para que seu backend possa negar o acesso, permitir uma nova tentativa ou encaminhar a sessão para análise.
Na autenticação biométrica em sites e aplicativos móveis, a detecção de vivacidade deve fazer parte da jornada do usuário e da decisão de risco do backend. Não trate um resultado anti-spoofing malsucedido como um erro comum de login.
- Registre o evento no servidor quando ele afetar o acesso à conta ou a pontuação de fraude.
- Evite fornecer aos invasores detalhes sobre qual sinal anti-spoofing falhou.
- Use webhooks e o monitoramento da aplicação para correlacionar falhas repetidas com atividade suspeita na conta.
Combine o anti-spoofing com restrições de domínio, políticas de PIN, limitação de requisições e um caminho alternativo claro para usuários legítimos cujas condições de câmera, iluminação ou dispositivo exijam outra tentativa.
Aplicar uma idade mínima durante o cadastro
Quando ativada, esta opção aplica o resultado da estimativa de idade da FACEIO durante o cadastro e retorna fioErrCode.MINORS_NOT_ALLOWED quando o resultado fica abaixo do mínimo configurado. A estimativa de idade é probabilística e não deve ser tratada como idade exata nem como garantia de elegibilidade legal.
Ative esta configuração no FACEIO Console ↗ somente quando uma estimativa de idade for um sinal adequado durante o cadastro. Os proprietários da aplicação continuam responsáveis por avisos, consentimento, revisão jurídica e qualquer verificação separada de idade ou elegibilidade.
Sempre solicitar o código PIN durante a autenticação
Recomendado para aplicativos sensíveis: Mantenha esta opção ativada para bancos, fintechs, portais administrativos, recuperação de conta, pagamentos e outros fluxos sensíveis.
Durante a autenticação, a FACEIO poderá solicitar que o usuário confirme seu PIN após a verificação facial. Se esta opção estiver desativada e a comparação facial for suficientemente clara para sua política configurada, a sessão poderá continuar sem uma solicitação adicional de PIN.
Se esta opção estiver ativada, o usuário deverá confirmar o PIN antes que a FACEIO conclua a autenticação. Após várias tentativas inválidas, a FACEIO interrompe o fluxo e retorna o código de erro correspondente. Seu backend continua responsável pelas decisões de acesso, limitação de requisições e recuperação de conta.
Exigir exclusividade do código PIN entre os usuários
Durante o cadastro, cada usuário pode definir um PIN de pelo menos 4 e no máximo 16 dígitos. Se a exclusividade do PIN estiver ativada, a FACEIO rejeitará um PIN já usado por outro usuário cadastrado no mesmo aplicativo. Isso reduz o risco de que um valor alternativo compartilhado se torne um ponto fraco no seu fluxo de autenticação facial.
Ignorar rostos ocultos ou parcialmente cobertos
Por padrão, rostos ocultos, capturas com pouca iluminação e rostos parcialmente cobertos são descartados do processo de reconhecimento. A FACEIO solicita outro quadro até detectar um rosto claramente visível. Mantenha esse comportamento rigoroso na autenticação biométrica de produção, a menos que sua aplicação tenha um motivo específico de acessibilidade ou operação para flexibilizá-lo.
Rejeitar cabeçalhos HTTP Origin/Referer ausentes ou vazios
Quando ativada, esta opção rejeita a instanciação do fio.js quando a requisição do navegador não contém um cabeçalho Origin ↗ ou
Referer ↗. Trate isso como um controle básico contra requisições falsificadas ou anormais e use as restrições de domínio para limitar onde o Public ID da sua aplicação pode ser usado.
Restringir a instanciação do widget a domínios autorizados
Quando ativada, esta opção limita a instanciação do fio.js aos nomes de domínio que você autorizar. Outros domínios não poderão usar o Public ID da sua aplicação para iniciar cadastro ou autenticação FACEIO. Configure a lista de domínios permitidos no
Application Manager ↗ antes do lançamento em produção.
Restringir a instanciação do widget a países autorizados
Quando ativada, esta opção limita a instanciação do fio.js aos países definidos por você. Use-a quando seu serviço tiver limites geográficos ou requisitos regionais. Configure os países permitidos com códigos ISO 3166-1 no
Application Manager ↗.
Ativar webhooks
Os webhooks permitem que o backend receba eventos do FACEIO Widget para manter os registros sincronizados com novos cadastros, autenticações faciais bem-sucedidas e exclusões de Facial ID.
Detalhes dos eventos de webhook
Quando um evento ocorre, a FACEIO envia uma requisição HTTP POST para a URL de webhook configurada. Dependendo do evento, o payload pode incluir:
- O Facial ID exclusivo do usuário em questão
- Gênero e idade (no caso de um novo cadastro)
- Marcas de tempo, tipo de evento e informações de IP
- O payload vinculado, quando disponível
Saiba mais sobre webhooks
Configure seu endpoint de webhook no FACEIO Application Manager e valide os eventos do webhook no servidor antes de alterar o estado da conta.
Configure os controles de segurança da FACEIO
Antes da produção, crie um aplicativo, restrinja os domínios permitidos, configure a vivacidade e a validação do código PIN e verifique os controles de backend usados pelo seu fluxo.