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
- Utilização do login único(Gov.Br) como assinaturas básicas
- Integração da API de assinatura para assinaturas avançadas
- Integração da API de assinatura para assinaturas qualificadas
- 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
- A aplicação deve estar integrada ao Login Único do Gov.Br
- A aplicação em homologação deve estar liberada pela equipe do Ministério da Economia
Fluxo de integração da API de assinatura
- 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.
- Com o Authorization Code em mão, será possível capturar o Access Token do usuário.
- 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.
- 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.
- 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.
- 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
- 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.
- 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
- 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.
- 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.
- 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
- Utilização de um recurso seguro como Two Factor Authentication
- Pode ser utilizado como controle biométrico para alterações de dados sensíveis
Contras
- Caso utilizado no processo de login, pode tornar o processo lento.
- Necessidade de manter cadastro biométrico no TSE regularmente atualizado.
Não utilização da API de prova de vida
Prós
- Não há necessidade de implementar o login único nas aplicações propostas(Sauron e Portal do Servidor)
- Não altera o fluxo atual de atualização cadastral
- Não altera o fluxo atual de autenticação e validação do usuário pelo e-mail.
Contras
- 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.
- Não conseguimos atender a necessidade do Iperon para validação da prova de vida dos aposentados.
- 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.