Login com certificado digital
É possível realizar autenticação de usuários (login) baseada em certificado digital. Esse processo, em linhas gerais, ocorre da seguinte
maneira:2.
Solicita-se ao usuário que realize um algoritmo de assinatura sobre o nonce utilizando sua chave privada
3.
Verifica-se o resultado do algoritmo de assinatura utilizando a chave pública do certificado do usuário
4.
Valida-se o certificado do usuário
5.
Se todas as validações forem bem sucedidas, a aplicação pode assumir que o usuário é realmente o titular do certificado apresentado.
Em seguida, utiliza-se um campo chave do certificado (ex: CPF ou email) para localizar o usuário na base de dados e completa-se o
processo de autenticação.
Isso é apenas uma visão geral. Existem passos adicionais, como validar que o nonce nunca foi utilizado anteriormente, para evitar ataques de replay.
Para implementar esse processo, é preciso realizar operações no frontend e no backend.O algoritmo de assinatura sobre o nonce necessariamente precisa ser feito no frontend pois a chave privada do certificado
do usuário pode estar em um dispositivo criptográfico (certificado A3) que nunca permite a sua exportação. Além disso, mesmo que a
chave seja baseada em software (certificado A1), solicitá-la ao usuário é uma má prática.Já a geração do nonce e todas as validações precisam ser realizadas no backend por motivos óbvios de segurança.A forma recomendada de implementar login com certificado digital é utilizando o Rest PKI em conjunto com o Web PKI.Passo-a-passo#
2.
Escolha uma linguagem de programação
3.
Escolha um dos projetos de exemplos disponíveis
4.
Siga os passos para executar o projeto
5.
Uma vez executando o projeto, clique em Authentication with digital certificate
Embora a solução envolva o Rest PKI em conjunto com o Web PKI (para as operações no backend e frontend respectivamente), concentre-se na documentação do Rest PKI que já mostra o uso dos dois produtos integrados.
Implementações alternativas#
Se você já possui uma biblioteca de terceiros para certificação digital ou deseja implementar o código do backend você mesmo, você pode também utilizar o Web PKI apenas para realizar as operações necessárias no frontend. Modificado em 2024-12-03 14:05:46