Ir para o conteúdo principal

Integração da API de assinatura digital do Gov.Br

Objetivo

Entender e avaliar a viabilidade de se utilizar o recurso do Gov.Br de assinatura digital como complemento ou substituição, ao serviço já em produção Assine Aqui, tendo em vista que a aplicabilidade pode ser interessando ao Estado e ainda implementar novidades que ainda não temos.

Justificativa

Com a assinatura do termo de parceria do Governo do Estado com o Ministério da Economia, obtivemos a oportunidade de utilizar os recursos oferecidos pelo GOV BR, como login único, assinatura digital e prova de vida. 

Propostas avaliadas

  1. Utilização do login único(Gov.Br) como assinaturas básicas
  2. Integração da API de assinatura para assinaturas avançadas
  3. Integração da API de assinatura para assinaturas qualificadas
  4. Não utilização da API de assinatura

Envolvidos

  • DIEGO DA SILVA OLIVEIRA (Back-End Developer/Tech Leader)
  • KARINE NOGUEIRA DOS SANTOS (Gerente de Projetos)

Premissas

  1. A aplicação deve estar integrada ao Login Único do Gov.Br
  2. A aplicação em homologação deve estar liberada pela equipe do Ministério da Economia

Fluxo de integração da API de assinatura

  1. Redirecionar o usuário para o consentimento da utilização do seu certificado para realizar a assinatura, Requisitando o Endpoint de autenticação codificando a informação CLIENT_ID, CLIENT_SECRET e REDIRECT_URI passando como parâmetro no body da requisição, neste mesmo processo, em ambiente de produção, será enviado um código via SMS para o usuário, para que o mesmo possa confirmar na tela, com isso será possível capturar o Authorization Code.

  2. Com o Authorization Code em mão, será possível capturar o Access Token do usuário.

  3. Após isso, é necessário consultar o certificado público do usuário, utilizanto o Access Token do usuário, chamando o endpoint específico para obtenção do certificado, que será retornado em formato PEM.
  4. Realizar a assinatura avançada utilizando o modelo PKCS#7, passando um HASH SHA-256 utilizando a chave privada do usuário. Será retornado um arquivo contendo o pacote PKCS#7 com a assinatura digital do HASH SHA256-RSA e com o certificado público do usuário.

  5. Validar a assinatura realizada enviando uma requisição ao https://verificador.staging.iti.br/inicio para garantir que a assinatura gerada é de fato uma assinatura válida. 
  6. O processo pode ser visto detalhadamente em https://manual-integracao-assinatura-eletronica.servicos.gov.br/en/latest/iniciarintegracao.html#solicitacao-de-configuracao .

Avaliações das propostas

Integração da API de prova de vida como recursos da atualização cadastral
Prós
  1. Utilização de tecnologia mais avançada para realização de Prova de Vida, com uma base de dados de imagens sólidas capturada e mantidas pelo Tribunal Superior Eleitoral, com dados biométricos de mais de 96% dos eleitores do Estado de Rondônia, de acordo com levantamento do mesmo.

  2. Substituição de um fluxo totalmente defasado e passivo de erros ao qual a prova de vida atual, requer a verificação manual da "selfie" do servidor por um agente do estado, ao qual esse toma a decisão de aprovar ou recusar a imagem.
Contras
  1. Não garantia da execução da verificação da prova de vida no momento do pedido, precisando ser tratado e verificado pela aplicação se, e quando, a verificação de fato ocorrer.

  2. Requerer do usuário com perfil de acesso ao Gov.Br com selos prata ou acima, para poder utilizar o recurso da prova de vida pelo app.

  3. Ter o dado biométrico atualizado no Tribunal Superior Eleitoral, para que a acurácia da verificação da prova de vida seja realizada de maneira consistente.
Integração da API de prova de vida como recursos de autenticação
Prós
  1. Utilização de um recurso seguro como Two Factor Authentication

  2. Pode ser utilizado como controle biométrico para alterações de dados sensíveis
Contras
  1. Caso utilizado no processo de login, pode tornar o processo lento.

  2. Necessidade de manter cadastro biométrico no TSE regularmente atualizado.
Não utilização da API de prova de vida
Prós
  1. Não há necessidade de implementar o login único nas aplicações propostas(Sauron e Portal do Servidor)

  2. Não altera o fluxo atual de atualização cadastral

  3. Não altera o fluxo atual de autenticação e validação do usuário pelo e-mail.
Contras
  1. Continuamos utilizando um fluxo de prova de vida, que não é exatamente uma prova de vida, com validação manual por um agente do governo.

  2. Não conseguimos atender a necessidade do Iperon para validação da prova de vida dos aposentados.

  3. Caso haja a necessidade de implementar um recurso de prova de vida, precisaríamos de uma base de imagem sólida, com estudo para corrente atualização e implementação de recurso de análise de imagem trabalhando em concorrência com as aplicações.

Resultado esperado 

Após análise das avaliações propostas e das observações prós e contras a integração da API de prova de vida , é reconhecido as vantagens a adesão a este serviço, contudo com objetivo de integração ao serviço de atualização cadastral, para tornar o processo mais eficiente e tecnológico. Com base na implementação ao Serviço de autenticação (Sauron), não há vantagens em implementa-lo, tendo em vista que a habilitação de Two Factor Authentication pode ser realizada por N meios ao usuário, e com uma eficiência até mais rentável que a prova de vida do Gov.Br.

Outro ponto positivo para a opinião favorável, é a facilidade na integração com o recurso, permitindo uma flexibilidade da implementação da regra de negócio que envolve a realização da prova de vida, e a parceria que poderemos realizar com o IPERON.