Вы находитесь на странице: 1из 1

java - Como funciona a autenticação com certificado digital? - Stack O... https://pt.stackoverflow.com/questions/171093/como-funciona-a-auten...

A autenticação com certificado digital funciona da seguinte forma:

O servidor, com um certificado válido, precisa solicitar um certificado válido com base em uma lista de certificados raiz pré-configurada no seu
servidor web. O certificado do cliente então precisa pertencer à essa cadeia certificadora. Esse processo se chama SSL/TLS Handshake.

O TLS handshake acontece (e é concluído) antes de quaisquer solicitações HTTP são enviadas à sua aplicação. E o handshake envolve várias
mensagens entre o cliente e o servidor e vice-versa.

Aqui está uma descrição mais detalhada do handshake SSL/TLS aplicado à uma situação de login.

Portanto, quaisquer solicitações SSL são enviadas somente após a camada SSL / TLS estar pronta.

Devo pegar a public key e serialNumber, salvar em meu banco de produção e verificar se são iguais aos dados locais?

Não, o serial do certificado é unico, porém o certificado tem validade, então só ele não basta. Você precisa proporcionar meios para que o usuário
possa atualizar seu certificado após vencido ou utilizar um certificado oficial de identificação de pessoa como os da ICP Brasil, no caso e-CPF ou
e-CNPJ. Se seu caso for utilizar o e-CPF ou e-CNPJ você pode vincular através do CPF ou CNPJ que pode ser extraído do campo "DN_CN" do
certificado.

Alguns métodos utilizam um applet para criar um servidor web para realizar esse fluxo de handshake na máquina do usuário usando applet, e
transportar os dados públicos do certificado de forma criptografada para a aplicação. É assim que funciona a API da Certisign Login funciona.
Porém sabemos que os navegadores estão eliminando o suporte à essa tecnologia e devemos evitar implementações desse tipo para não limitar
os navegadores suportados pela nossa aplicação.

A pergunta é: "Como fazer a autenticação?".

Você pode implementar de forma similar, um subdomínio configurado para solicitar o certificado, serializar essas informações e por fim
criptografar essa informação, e então realizar uma comunicação com a aplicação principal e então autenticar o usuário.

Esta foi a forma que eu implementei em meu projeto, o objetivo é permitir login(ou outra autorização de ação dentro da conta) ou criar a conta.

editada 17/04 às 20:45 respondida 17/04 às 20:22


LeonanCarvalho
1.936 4 25

1 de 1 28/11/2017 15:32:03

Вам также может понравиться