FAQ Assinatura Digital

  1. O que é assinatura digital?

    A assinatura digital é um processo informático que permite verificar a integridade e a autoria do documento eletrônico, ou seja, é o mecanismo que permite identificar quem é o autor do documento eletrônico e se o mesmo não foi modificado.

  2. Em quais situações devo realizar a Assinatura Digital?

    O Projeto da NF-e é baseado no conceito de Documento Eletrônico. Assim, os seguintes documentos eletrônicos que representam uma manifestação de vontade do emissor devem ser assinados digitalmente:

    1. NF-e;
    2. Pedido de cancelamento de NF-e;
    3. Pedido de inutilização de numeração de NF-e;
    4. Carta de Correção eletrônica de NF-e (ainda não regulamentado);

  3. Como é realizada a assinatura digital?

    O processo de assinatura digital consiste em:

    1. cálculo do resumo da mensagem (Hash Code) do documento eletrônico;
    2. criptografia do resumo da mensagem com a chave privada do certificado digital do autor do documento eletrônico que resulta na assinatura digital.

    O processo de verificação da assinatura digital consiste em:

    1. cálculo do resumo da mensagem (Hash Code) do documento eletrônico;
    2. descriptografia da assinatura digital com a chave pública do certificado digital do autor do documento eletrônico;
    3. se o resumo da mensagem do documento eletrônico for idêntico ao resultado da descriptografia da assinatura digital com a chave pública do autor do documento eletrônico, a integridade e a autoria do documento eletrônica está garantida.

  4. Qual o padrão de assinatura digital adotado pelo Projeto NF-e?

    O Projeto NF-e utiliza um subconjunto do padrão de assinatura digital XML definido pelo http://www.w3.org/TR/xmldsig-core/, com as seguintes características:

    a) Padrão de assinatura: “XML Digital Signature”, utilizando o formato “Enveloped” (http://www.w3.org/TR/xmldsig-core/);
    b) Certificado digital: Emitido por AC credenciada no ICP-Brasil (http://www.w3.org/2000/09/xmldsig#X509Data);
    c) Cadeia de Certificação: EndCertOnly (Incluir na assinatura apenas o certificado do usuário final);
    d) Tipo do certificado: X509v3;
    e) Tamanho da Chave Criptográfica: Compatível com os certificados A1 e A3 (1024 bits);
    f) Função criptográfica assimétrica: RSA (http://www.w3.org/2000/09/xmldsig#rsa-sha1);
    g) Função de “message digest”: SHA-1 (http://www.w3.org/2000/09/xmldsig#sha1);
    h) Codificação: Base64 (http://www.w3.org/2000/09/xmldsig#base64);
    i) Transformações exigidas:
    (1) Enveloped (http://www.w3.org/2000/09/xmldsig#enveloped-signature)
    (2) C14N (http://www.w3.org/TR/2001/REC-xml-c14n-20010315)

  5. Como implemento o processo de assinatura digital XML em meu aplicativo emissor de NF-e?

    A assinatura digital é baseada no uso de certificado digital, sendo imprescindível que o ambiente de desenvolvimento da aplicação ofereça o suporte ao uso de certificados digitais X509 e principalmente o suporte à assinatura digital XML.

    Os desenvolvedores que utilizam linguagens mais tradicionais como COBOL, Delphi 5, 6 e 7, VB 5.0/6.0, C++, etc., baseadas em Win32, terão maior dificuldade de implementar a assinatura digital XML nestas linguagens pela ausência de suporte nativo. Uma solução é o uso de DLL em .NET para suprir esta dificuldade sem necessidade de aquisição de componentes de terceiros ou migração de linguagem.

    O framework .NET 2.0 e o Java oferecem suporte nativo para Assinatura Digital XML, facilitando a vida dos desenvolvedores da plataforma .NET (C#, VC, C++, Delphi, etc.) e da plataforma Java.

  6. Ao tentar aplicar a Assinatura Digital ocorre o erro: “The specified cryptographicservice provider (CSP) does not support this key algorithm” ou “O CSP (provedor de serviços de criptografia) especificado não oferece suporte a este algoritmo de chave.

    O erro pode ser causado pelo uso de versão incompátivel do gerenciador de dispositivos, a atualização do versão do gerenciador de dispositivos pode solucionar o problema.
    Maiores informações pode ser obtido no post Certificado Digital tipo A3 - mal funcionamento (http://nf-eletronica.com/blog/?p=90)