|  Download WebAuthn Login por Digitalhttps://youtu.be/KpuxzaQEKZc Visão GeralEste repositório contém uma aplicação baseada no WebAuthn, um padrão moderno para autenticação na web sem o uso de senhas. O WebAuthn é parte das especificações da FIDO Alliance e oferece uma solução mais segura para autenticação de usuários por meio de chaves criptográficas geradas no dispositivo do usuário. Nesta aplicação, foi implementado o login por digital, utilizando a biblioteca WebAuthn em PHP. Este recurso permite que os usuários se autentiquem por meio de dispositivos compatíveis, como leitores de digitais ou chaves de segurança USB/NFC, em vez de usar credenciais tradicionais, como nome de usuário e senha. Recursos Principais
Registro de Credenciais: Os usuários podem registrar uma credencial biométrica (como impressão digital) ou dispositivos de autenticação suportados.
Autenticação Segura: A autenticação ocorre sem que o servidor precise armazenar dados sensíveis, como senhas. Em vez disso, utiliza chaves criptográficas.
Compatibilidade com Múltiplos Dispositivos: Suporte a dispositivos como USB, NFC, BLE e leitores internos (smartphones ou notebooks).
Segurança Avançada: Proteção contra ataques como phishing e reutilização de credenciais, com suporte a criptografia de ponta a ponta.
 Tecnologias Utilizadas
PHP: Linguagem de back-end para manipular solicitações WebAuthn e interagir com a base de dados.
Biblioteca WebAuthn: Biblioteca utilizada para gerenciar as credenciais e interagir com o protocolo WebAuthn.
JavaScript: Para a interação com o navegador e APIs do WebAuthn.
Banco de Dados: Armazenamento das credenciais criptográficas no backend.
 Como Funciona o WebAuthn?1. Registro de Usuário
Solicitação de Registro: O cliente (navegador) faz uma solicitação ao servidor para registrar uma nova credencial.
Criação de Credenciais: O navegador usa o dispositivo de autenticação do usuário (como um leitor de digitais) para criar uma chave pública única.
Armazenamento Seguro: A chave pública gerada é enviada ao servidor e armazenada junto com informações do usuário.
 2. Autenticação de Usuário
Desafio Criptográfico: O servidor envia um desafio ao cliente.
Assinatura Digital: O dispositivo do usuário usa a chave privada correspondente para assinar o desafio.
Verificação no Servidor: O servidor verifica a assinatura usando a chave pública previamente armazenada. Se for válida, o login é concluído.
 Segurança
Os dados biométricos (como impressões digitais) nunca deixam o dispositivo do usuário.
O servidor só armazena a chave pública, que é inútil sem a chave privada armazenada no dispositivo do usuário.
As chaves criptográficas são únicas por site, impedindo ataques de reutilização.
 Arquitetura da Aplicação
Frontend (JavaScript):
 -   Usa a API `navigator.credentials` para interagir com o dispositivo do usuário.
-   Envia e recebe desafios criptográficos do servidor.
Backend (PHP):
 -   Gera desafios e argumentos para registro e autenticação.
-   Processa as respostas do cliente e verifica a autenticidade das credenciais.
 Fluxo de Comunicação           REGISTRO DE USUÁRIO
    Cliente (Navegador)          |         Servidor (PHP)
--------------------------------|--------------------------------
   Solicita argumentos          |    Gera argumentos para registro      para registro          |    e os envia ao cliente
 --------------------------------------------|--------------------------------
   Cria credenciais                                  |    Processa e armazena as credenciais
   e as envia ao servidor       |    criptográficas do usuário
--------------------------------|--------------------------------
   Login concluído              |    Retorna sucesso ou falha Termos de PrivacidadeDados Coletados
Chaves públicas associadas ao usuário (armazenadas no banco de dados).
Informações de hardware do dispositivo de autenticação.
 Uso de Dados
As informações coletadas são utilizadas exclusivamente para autenticação.
Nenhuma informação biométrica (como impressões digitais) é enviada ou armazenada no servidor.
 Segurança
Os dados armazenados são protegidos por criptografia e seguem as melhores práticas de segurança.
Em caso de comprometimento do servidor, as informações armazenadas não podem ser usadas para comprometer as credenciais do usuário.
 Requisitos para Uso
Navegador Compatível: Google Chrome, Firefox ou qualquer navegador que suporte WebAuthn.
Servidor PHP: Versão 7.4 ou superior.
Banco de Dados: MySQL ou SQLite.
 Configuração
Clone o repositório e inicie o PHP:
git clone https://github.com/faustinopsy/digital/.git
cd digital
php -S localhost:8000
 para testar:
https://digital.ceuvago.com |