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

Ativado por padrão: Não

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, 1111 e 1234.
  • 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

Ativado por padrão: Sim

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

Ativado por padrão: Não

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

Ativado por padrão: Não

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

Ativado por padrão: Sim

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

Ativado por padrão: Não

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

Ativado por padrão: Sim

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

Ativado por padrão: Sim

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

Ativado por padrão: Não

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

Ativado por padrão: Não

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

Ativado por padrão: Não

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.

Configurações de vivacidade
Validação do código PIN
Domínios permitidos