signer icon indicating copy to clipboard operation
signer copied to clipboard

Validação das CAs

Open granella opened this issue 4 years ago • 9 comments

Primeiro gostaria de parabenizar o projeto, muito bom mesmo!

Já utilizo o Signer para assinar documentos PDFs e tudo funciona quando utilizo um certificado que faz parte da cadeia ICP, mas surgiu a necessidade de assinar utilizando certificados emitidos por uma cadeia privada (que não faz parte da ICP).

Não encontrei uma forma de ignorar a validação mas olhei a CAManager o funcionamento do uso dos Providers que contém as AC, para fazer isso seria esse o caminho mesmo (com um ProviderCA) ou existe uma forma de ignorar essa validação da cadeia?

granella avatar Sep 15 '20 20:09 granella

Estou interessado na mesma ideia, neste caso usar os certificados ICPEdu da RNP.

ramonpsilva avatar Jan 05 '21 03:01 ramonpsilva

O objetivo do componente é suportar apenas ICP-Brasil. Mas é possível criar um componente a parte, que não terá validade legal. Como esse que é usado em ambiente de homologação do SERPRO: https://github.com/demoiselle/signer/tree/master/chain-icp-brasil-homolog

esaito avatar Jan 10 '21 06:01 esaito

Olá Emerson, bom dia.

Ramon da UFMG.

A minha intenção é propor um Assinador/Verificador ICPEdu para a UFMG usar internamente.

Pesquisando aqui e ali, fiquei a par da Medida Provisória 2200-2 de 24 de agosto de 2001 (link http://www.planalto.gov.br/ccivil_03/MPV/Antigas_2001/2200-2.htm http://www.planalto.gov.br/ccivil_03/MPV/Antigas_2001/2200-2.htm) “Institui a Infra-Estrutura de Chaves Públicas Brasileira - ICP-Brasil, transforma o Instituto Nacional de Tecnologia da Informação em autarquia, e dá outras providências”, assim como o Decreto no 8.543 de 8 de outubro de 2015 (link http://www.planalto.gov.br/ccivil_03/_Ato2015-2018/2015/Decreto/D8539.htm http://www.planalto.gov.br/ccivil_03/_Ato2015-2018/2015/Decreto/D8539.htm) “Dispõe sobre o uso do meio eletrônico para a realização do processo administrativo no âmbito dos órgãos e das entidades da administração pública federal direta, autárquica e fundacional”, a Lei no 14.063 de 23 de setembro de 2020 (link http://www.planalto.gov.br/ccivil_03/_ato2019-2022/2020/lei/L14063.htm http://www.planalto.gov.br/ccivil_03/_ato2019-2022/2020/lei/L14063.htm) “Dispõe sobre o uso de assinaturas eletrônicas em interações com entes públicos, em atos de pessoas jurídicas e em questões de saúde e sobre as licenças de softwares desenvolvidos por entes públicos; e altera a Lei nº 9.096, de 19 de setembro de 1995, a Lei nº 5.991, de 17 de dezembro de 1973, e a Medida Provisória nº 2.200-2, de 24 de agosto de 2001” e, por fim, o Decreto no 10.543 de 13 de novembro de 2020 (link http://www.planalto.gov.br/ccivil_03/_Ato2019-2022/2020/Decreto/D10543.htm http://www.planalto.gov.br/ccivil_03/_Ato2019-2022/2020/Decreto/D10543.htm) “Dispõe sobre o uso de assinaturas eletrônicas na administração pública federal e regulamenta o art. 5º da Lei nº 14.063, de 23 de setembro de 2020, quanto ao nível mínimo exigido para a assinatura eletrônica em interações com o ente público”, este último decreto, no Art. 5^o ,fundamenta o uso de login e senha para assinar documentos no SEI, em muitas instituições.

Eu presumo que a ICP-Brasil ofereça resistência à adoção do certificado ICPEdu, mas o Decreto 14.063 mencionado acima permitiria o uso deste certificado em situações onde as assinaturas classificadas como "assinatura eletrônica simples" e "assinatura eletrônica avançada" são permitidas, i.e., até fora do contexto da CAFe/RNP.

Agradeço a dica e, se o tempo me permitir, tentarei modificar o componente para uso próprio, como prova de conceito.

Com votos de um 2021 suave, saudável e com vacina para todos.

Att, -rps

On Sun, Jan 10, 2021 at 3:20 AM Emerson Sachio Saito < [email protected]> wrote:

O objetivo do componente é suportar apenas ICP-Brasil. Mas é possível criar um componente a parte, que não terá validade legal. Como esse que é usado em ambiente de homologação do SERPRO: https://github.com/demoiselle/signer/tree/master/chain-icp-brasil-homolog

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/demoiselle/signer/issues/268#issuecomment-757424757, or unsubscribe https://github.com/notifications/unsubscribe-auth/AG5JFJCDLJTE2QXJVGVOU2LSZFBKJANCNFSM4RNVMCMA .

ramonpsilva avatar Jan 11 '21 14:01 ramonpsilva

Realmente não há impedimento legal, mas o componente é voltado para ICP-Brasil por possuir um arcabouço legal e padrões bem definidos. Mas tecnicamente nada impede de utilizar os componentes e criar extensões. Um ótimo 2021 para todos nós!

esaito avatar Feb 17 '21 23:02 esaito

@granella @ramonpsilva caso não tenham caminhado com isso, disponibilizei um gist com exemplo de um provider baseado na truststore.

laubstein avatar Aug 04 '21 13:08 laubstein

Olá @laubstein . Muito obrigado por compartilhar o gist. Não sou desenvolver profissional, mas creio que conseguirei fazer um exemplo funcionar.

At.te, -rps

ramonpsilva avatar Aug 05 '21 00:08 ramonpsilva

Lembrando que permitir uso de certificado sem ser ICP-Brasil não é a única funcionalidade a ser implementada no caso. Ao assinar, o componente vai informar na assinatura uma política de assinatura. O componente só está preparado para informar as políticas padronizadas pelo ITI. Neste caso se faz necessário, além de permitir o uso de certificado não-ICP, a remoção da informação de política ou o uso de uma política que adote certificados não-ICP. Esta política é usada na validação da assinatura e, caso utilize uma política ICP-Brasil, qualquer validador vai refutar a assinatura pois não utiliza certificado de uma cadeia ICP-Brasil.

joserenecampa avatar Aug 05 '21 12:08 joserenecampa

O demoiselle-signer é focado nas políticas ICP-Brasil. Mas poderíamos implementar a validação de cadeias apenas baseando-se na política escolhida ao assinar. Caso não tenha escolhido uma política de assinatura, o componente poderia habilitar quaisquer cadeias, mesmo não possuindo truststore compatível. O que acham?

joserenecampa avatar Aug 05 '21 12:08 joserenecampa

o. Ao assinar, o componente vai informar na assinatura uma política de assinatura. O componente só está preparado para informar as políticas padronizadas pelo ITI. Neste caso se faz necessário, além de permitir o uso de certificado não-ICP, a remoção da informação de política ou o uso de uma política que adote certificados nã

Acho interessante, pois aqui tem uma prefeitura da qual tenho de gerar assinatura eles usam desde certificados da SafeWEB como certificados auto assinados, pois no município eles têm uma portaria liberando isso , fora que tenho outro problema que converto o certificado autoassinado pfx em base64 e carrego ele no keystore do java dai ele da um erro short read of der length e até agora não consegui corrigir mas se eu importar o mesmo no sistema de certificados do windows dai só da erro que não conseguiu validar a CA do certificado não sei se já teve esse erro do DER se poderia me ajudar

HelloWar75 avatar May 08 '22 21:05 HelloWar75