demoiselle / signer

Repositório que contém os componentes para facilitar a implementação de assinatura digital nos padrões da ICP-BRASIL
https://www.frameworkdemoiselle.gov.br/v3/signer/
GNU Lesser General Public License v3.0
144 stars 72 forks source link

A ordem dos RDNs no campo IssuerSerial está incorreta #271

Open henriquesalvan opened 4 years ago

henriquesalvan commented 4 years ago

Bom dia pessoal,

Faço uso da ferramenta de vocês para assinatura digital de documentos no formato pades e cades, nos dois formatos estou recebendo um aviso de que: IdAaSigningCertificateV2 | Aprovado . Alerta: A ordem dos RDNs no campo IssuerSerial está incorreta

Caso vocês possam me ajudar ficaria muito grato, não sei se estou fazendo algo errado, esse é o código que estou usando para fazer a assinatura:

`

    // certificado A1 instalado na máquina
    KeyStore keyStore = KeyStoreLoaderFactory.factoryKeyStoreLoader().getKeyStore();

    String certificateAlias = keyStore.aliases().nextElement();
    PrivateKey privateKey = (PrivateKey) keyStore.getKey(certificateAlias, null);
    Certificate[] certificateChain = keyStore.getCertificateChain(certificateAlias);

    // somente implementação que retorna os bytes
    byte[] content = Main.toBytes();

    PKCS7Signer signer = PKCS7Factory.getInstance().factoryDefault();
    signer.setCertificates(certificateChain);
    signer.setPrivateKey(privateKey);
    byte[] signature = signer.doAttachedSign(content);

    try (OutputStream stream = new FileOutputStream("assinatura.p7s")) {
        stream.write(signature);
    } catch (IOException e) {
        e.printStackTrace();
    }

`

Para fazer a validação da assinatura, envio o arquivo (usado para gerar os bytes) + a assinatura gerada no https://verificador.iti.gov.br

O verificado diz que a assinatura é valida, mas com esse alerta no atributo: IdAaSigningCertificateV2

alvaromateus commented 3 years ago

Também estou com o mesmo problema. Inclusive o validador do sistema do TJPR Projudi está retornando erro, que talvez tenha relação com este alerta.

ebastian commented 3 years ago

Boa tarde, mesmo problema ocorrendo aqui. Estou utilizando o validador https://verificador.iti.gov.br/verifier-2.6.1

Retorno:

IdAaSigningCertificateV2: Aprovado. Alerta: A ordem dos RDNs no campo IssuerSerial está incorreta
esaito commented 3 years ago

Já estamos em contato com o ITI para essa questão, apesar de ser apenas um aviso essa ordem estava diferente somente em versões mais antigas do Signer, hoje a ordem é a mesma que está nos outros atributos.

israelaece commented 3 years ago

@esaito poderia compartilhar aqui o motivo que isso ocorre? Tenho um P7S que foi assinado por dez pessoas, e somente duas delas apresentam esta mensagem.

Tem a ver com a forma como a informações é persistida no atributo SigningCertificateV2 ou isso como foi emitido o certificado pela AC?

esaito commented 3 years ago

É como grava na estrutura asn.1, mas está na ordem, só o validador que não está reconhecendo. Se puder anexar esse p7s, poderia verificar o que está ficando diferente.

okdamian commented 3 years ago

@esaito : Tenho o mesmo problema quando passo o pdf pelo validador do ITI. Tem algumas assinaturas com certificado digital que estão tendo esse alerta no SigningCertificateV2. Então é um problema do verificador do ITI mesmo?

israelaece commented 3 years ago

@esaito como trata-se de um arquivo real de um contrato, não posso postar aqui. De qualquer forma, te encaminhei o P7S + o relatório do ITI por e-mail. Depois podemos postar aqui o diagnóstico.

RafaelSouzaFATE commented 1 year ago

Boa tarde @israelaece @esaito @henriquesalvan Estou recebendo esse problema atualmente, vocês tiveram alguma solução para esse caso?

esaito commented 1 year ago

Boa tarde @israelaece @esaito @henriquesalvan Estou recebendo esse problema atualmente, vocês tiveram alguma solução para esse caso?

Não é um problema no Signer, pois essa ordem está de acordo com a cadeia do certificado do Assinante. O Verificador do ITI trata como um aviso, mas que não faz muito sentido, pois a ordem que aparece na assinatura está correta.

RafaelSouzaFATE commented 1 year ago

Boa tarde @israelaece @esaito @henriquesalvan Estou recebendo esse problema atualmente, vocês tiveram alguma solução para esse caso?

Não é um problema no Signer, pois essa ordem está de acordo com a cadeia do certificado do Assinante. O Verificador do ITI trata como um aviso, mas que não faz muito sentido, pois a ordem que aparece na assinatura está correta.

Obrigado @esaito Como informação adicional, apresenta essa mensagem de erro junto com a validação, isso quer dizer alguma coisa diferente?

image

esaito commented 1 year ago

Nas assinaturas que geramos usando a ultima versão do Signer não recebemos essa mensagem na validação. Temos o Assinador SERPRO que você pode usar para comparar os resultados.