Bom dia!
criamos com sucesso nosso centro de certificação. Como ele pode ser útil para nossos objetivos?
Com um centro de certificação local, podemos emitir certificados e verificar assinaturas com esses certificados.
Ao emitir um certificado para o usuário, o centro de certificação usa uma solicitação especial de emissão de certificado Pkcs#10, que tem o formato de arquivo '.csr'. Esta solicitação contém uma sequência codificada que o centro de certificação sabe como interpretar corretamente. A solicitação contém tanto a chave pública do usuário quanto os dados para criar o certificado (um array associativo com as informações do usuário).
Como obter a solicitação de emissão de certificado será abordado no próximo artigo, mas nesta quero apresentar os principais comandos do centro de certificação que nos ajudarão a realizar nossa tarefa no lado do backend.
Portanto, primeiro devemos criar o certificado. Para isso, usamos o comando:
openssl ca -batch -in user.csr -out user.crt ca — comando openSSL que se refere ao centro de certificação,
-batch — desativa as solicitações de confirmação ao gerar o certificado.
user.csr — solicitação para criar um certificado (arquivo no formato .csr).
user.crt — certificado (resultado obtido do comando).
Para que este comando funcione, o centro de certificação deve estar configurado exatamente como descrito . Caso contrário, será necessário especificar o local do certificado raiz do centro de certificação.
Comando de verificação do certificado:
openssl cms -verify -in authenticate.cms -inform PEM -CAfile /Users/……/demoCA/ca.crt -out data.filecms — comando openSSL usado para assinar, verificar, criptografar dados e outras operações criptográficas com o openSSL.
-verify — aqui realizamos a verificação do certificado.
authenticate.cms — arquivo que contém os dados assinados pelo certificado que foi emitido pelo comando anterior.
-inform PEM — o formato PEM é utilizado.
-CAfile /Users/……/demoCA/ca.crt — caminho para o certificado raiz. (sem isso meu comando não funcionou, mesmo com os caminhos para ca.crt especificados no arquivo openssl.cfg)
-out data.file — os dados descriptografados são enviados para o arquivo data.file.
O algoritmo de aplicação do centro de certificação no lado do backend é o seguinte:
- Registro de usuário:
- Recebemos uma solicitação para criar um certificado e a salvamos no arquivo user.csr.
- Salvamos o primeiro comando deste artigo em um arquivo com a extensão .bat ou .cmd. Executamos este arquivo a partir do código, após salvar a solicitação para criar o certificado no arquivo user.csr. Obtemos o arquivo com o certificado user.crt.
- Lemos o arquivo user.crt e o enviamos ao cliente.
- Autorização do usuário:
- Recebemos os dados assinados do cliente e os salvamos no arquivo authenticate.cms.
- Salvamos o segundo comando deste artigo em um arquivo com a extensão .bat ou .cmd. Executamos este arquivo a partir do código, após salvar os dados assinados do servidor em authenticate.cms. Recebemos o arquivo com os dados descriptografados data.file.
- Lemos o data.file e verificamos a validade desses dados. O que exatamente verificar está descrito . Se os dados forem válidos, a autorização do usuário é considerada bem-sucedida.
Para implementar esses algoritmos, é possível usar qualquer linguagem de programação que seja utilizada para a criação do backend.
No próximo artigo, vamos explorar como trabalhar com o plug-in Rutoken.
Obrigado pela atenção!
Fonte: habr.com
