Certificação digital
O processo de emissão e recebimento de documentos fiscais exige a utilização de certificados digitais e arquivos assinados digitalmente, para garantir a autenticidade, integridade e confidencialidade das informações. Este tópico tem como objetivo explicar de forma sucinta conceitos sobre essa tecnologia, como esta tecnologia é utilizada nos sistemas ERP e eDocs e de que forma ocorre a comunicação com a SEFAZ ou Prefeitura.
Observações
- Existem Prefeituras que não exigem certificado digital para emissão de NFS-e;
- Os fluxos e explicações presentes neste tópico estão focados em demonstrar a infraestrutura do cliente, no entanto, todas as informações presentes neste tópico são válidas tanto para clientes que possuem infraestrutura própria, quanto para clientes que possuem os sistemas disponibilizados no Cloud Senior;
- O sistema eDocs permite apenas a configuração de certificados do tipo A1, que são os arquivos com extensão no formato .PFX.
A Certificação Digital é um tipo de tecnologia de identificação que possibilita que informações trocadas entre duas entidades sejam realizadas com garantia de autenticidade, integridade e confidencialidade das informações, evitando que as informações possam ser manipuladas de alguma forma durante o tráfego das mesmas entre o remetente e o destinatário.
A certificação digital se baseia na utilização de assinaturas digitais, um certificado digital e chaves criptográficas.
Dicas
Informações detalhadas sobre os conceitos de certificação digital, certificado digital, autoridades certificadoras, autoridades registradoras e assinatura digital podem ser encontrados facilmente na Internet.
Indica-se a leitura de informações sobre o ICP-Brasil – Infraestrutura de Chaves Públicas Brasileira presentes no site do Instituto Nacional de Tecnologia de Informação (ITI).
O certificado digital é um documento existente no meio eletrônico que é gerado e assinado digitalmente por uma autoridade certificadora (Exemplo: CertiSign, Serasa, Caixa). A geração do certificado digital faz com que uma entidade (empresa, pessoa física) seja associada a um par de chaves criptográficas: chave privada e chave pública. Estas chaves serão utilizadas para comunicação com a SEFAZ ou Prefeituras (informações detalhadas sobre este processo podem ser verificadas ao longo desta documentação).
O certificado digital sempre possuirá uma cadeia de certificação (caminho de certificação). Esta cadeia de certificação envolverá o certificado digital em si, o certificado digital das Autoridades Certificadoras (ACs) e o certificado digital a AC Raíz Brasileira. Por este motivo, é importante que um arquivo de certificado digital sempre possua a cadeia completa de certificação.
Na imagem abaixo é possível visualizar a cadeia de certificação de um certificado digital A1 (padrão utilizado pelo eDocs). A visualização das propriedades do certificado digital é possível através do Console de Gerenciamento Microsoft (mmc.exe).
Importante
As cadeias de certificação podem ser exportadas juntamente com um arquivo de certificado digital .PFX. Para isso, no sistema operacional Microsoft Windows, ao solicitar a exportação do certificado digital, deve-se definir a exportação da chave privada do certificado e, posteriormente, a exportação das propriedades estendidas e inclusão dos caminhos de certificação.
O eDocs possibilita o arquivamento do certificado digital diretamente no banco de dados do sistema, não sendo necessária a instalação do certificado digital no sistema operacional Windows. Este processo de arquivamento é realizado automaticamente quando o certificado for configurado na empresa/filial através do Monitor.
Regularmente as cadeias de certificação são alteradas. Com isso, o contribuinte que faz acesso aos web services necessita efetuar a instalação destas novas cadeias de certificação em seu ambiente, inclusive no servidor onde o serviço Senior Documentos Eletrônicos está instalado.
O fornecimento destas novas cadeias é uma responsabilidade do órgão autorizador do documento. Elas geralmente são disponibilizadas na internet, juntamente com um procedimento para que as mesmas sejam instaladas (quando existe alguma particularidade a ser atendida).
A instalação destas cadeias é uma questão estritamente de ambiente, não cabendo ao eDocs efetuar este procedimento. Caso haja necessidade de apoio da Senior para este procedimento, deverá ser efetuado contato com a área de Serviços da Senior, para que seja alocado um consultor de TI para auxiliar.
Importante
A atualização da cadeia de certificação não é a atualização do certificado digital utilizado pelo eDocs para conexão. Os procedimentos são distintos.
A não utilização da cadeia de certificação no ambiente do contribuinte poderá gerar as seguintes mensagens de erro no log:
Inglês: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. The remote certificate is invalid according to the validation procedure."
Português: A conexão subjacente estava fechada: Não foi possível estabelecer relação de confiança para o canal seguro de SSL/TLS. ---> O certificado remoto é inválido, de acordo com o procedimento de validação
Dependendo da funcionalidade a ser ativada pelo eDocs, a mensagem pode ser um pouco diferente. Abaixo segue exemplo do erro ocorrendo na funcionalidade de consulta de NF-e.
Erro ao consultar situação de NF-e de recebimento, número sequêncial: 2 System.Net.WebException: A conexão subjacente estava fechada: Não foi possível estabelecer relação de confiança para o canal seguro de SSL/TLS. ---> O certificado remoto é inválido, de acordo com o procedimento de validação.
Por este problema, ao receber um documento eletrônico (NF-e - Nota Fiscal Eletrônica / CT-e - Conhecimento de Transporte Eletrônico), o documento pode ficar no status de Recebido Fornecedor e não ser consultado na SEFAZ para ter seu status atualizado para Autorizado o Uso. Da mesma forma, no envio de documentos eletrônicos, os documentos ficam apenas Validados ou ficam marcados como Falha indicando o erro de conectividade com a SEFAZ/Prefeitura.
Importante
Não há um calendário definido para a alteração de cadeias de certificação. Desta forma, é de responsabilidade do contribuinte que efetua a utilização destes serviços o monitoramento da necessidade da instalação de novas cadeias em seu ambiente. Eventualmente, informativos são disponibilizados aos contribuintes na internet. Caso não haja informações nestes sites (com as cadeias para download e procedimentos de instalação), o contribuinte deverá verificar a questão diretamente com a unidade certificadora, abrindo protocolo de atendimento junto a estes órgãos.
Eventualmente, para identificar se a cadeia de certificação está válida, poderá ser efetuado o download e instalação dos arquivos disponibilizados e posteriormente verificar a validade através do Console de Gerenciamento do Windows (mmc.exe).
A assinatura digital é um mecanismo eletrônico que faz uso de criptografia para garantir que um documento, depois de assinado, não sofreu alterações em nenhum momento (aqui é garantida a integridade). A assinatura digital também permite identificar quem foi a entidade que gerou o documento, já que informações do certificado digital do gerador do documento trafegam junto com o documento assinado (aqui é garantida a autenticidade).
A SEFAZ e algumas prefeituras exigem que os arquivos XML enviados sejam assinados digitalmente. Esta assinatura é gerada pelo eDocs no momento em que o arquivo XML é encaminhado para SEFAZ ou Prefeitura, utilizando o certificado digital armazenado na base de dados do sistema para a empresa/filial emitente do documento.
Existem diversos padrões de assinatura digital que podem ser utilizados, dependendo do processo.
Importante
O ERP possibilita gerar a assinatura digital de um arquivo XML de um documento eletrônico, no entanto, no momento em que o eDocs encaminha o arquivo XML para a SEFAZ é gerada uma nova assinatura digital para este documento. Isso ocorre pois, em algumas ocasiões específicas, o eDocs gera informações adicionais no arquivo XML (Exemplo: informação da data, hora e justificativa de entrada em contingência).
A assinatura digital gerada pelo eDocs é sempre baseada no certificado digital parametrizado para a filial ou empresa emitente do documento.
Abaixo segue um fluxo que demonstra de forma simples como funciona o processo de assinatura digital do documento eletrônico na integração ERP/Gestão de Lojas com o eDocs.
Além de permitir a geração de uma assinatura digital em um documento, a utilização de certificados digitais permite estabelecer comunicações seguras baseadas em protocolo SSL ou TLS (com este tipo de conexão é garantida a confidencialidade das informações, onde é utilizado um canal seguro de comunicação e permite a identificação do servidor que receberá a requisição e do solicitante da requisição).
A SEFAZ e a maioria das prefeituras utilizam padrão de comunicação SSL ou TLS, desta forma, é imprescindível que o certificado digital armazenado no banco de dados do eDocs possua todas as cadeias de certificação disponibilizadas, desta forma permitindo ao sistema operacional Windows estabelecer a comunicação segura com o servidor.
Importante
Apesar do certificado digital ser armazenado no banco de dados do eDocs, ele não é responsável por estabelecer a comunicação segura com o servidor da SEFAZ. Esta responsabilidade é do sistema operacional Windows (onde o serviço e o Monitor estão instalados).
O eDocs tem apenas a responsabilidade de assinar digitalmente, quando necessário, os arquivos XMLs que são enviados para a SEFAZ ou Prefeitura e encaminhar ao .Net (plataforma tecnológica onde o sistema é executado) a solicitação de conexão com o servidor da SEFAZ/Prefeitura repassando o XML a ser utilizado na requisição. O .Net será responsável com o sistema operacional Windows, que por sua vez irá estabelecer a comunicação com o servidor da SEFAZ/Prefeitura.
Para entendimento de como funciona a utilização do certificado digital no momento em que a comunicação entre o cliente e a SEFAZ/Prefeitura, bem como entender de qual componente é a responsabilidade de estabelecer a conexão segura, verifique o fluxo demonstrado abaixo.
Através do fluxo definido acima, é possível concluir que o eDocs apenas armazena em seu banco de dados o certificado digital da filial e empresa e, no momento em que é solicitada a comunicação com a SEFAZ, encaminha este certificado digital para o componente .Net, que por sua vez solicita ao sistema operacional Windows o estabelecimento da comunicação. Desta forma, é o sistema operacional Windows o responsável por garantir a comunicação segura com a SEFAZ/Prefeitura utilizando o certificado digital disponibilizado pelo eDocs.
Conforme explicado no tópico Conexão, a responsabilidade por estabelecer a comunicação segura com a SEFAZ/Prefeitura é do sistema operacional Windows do servidor onde o sistema está instalado. No entanto, em algumas ocasiões existem dúvidas de como um aplicativo instalado no servidor consegue efetuar conexão com a SEFAZ/Prefeitura e o eDocs não consegue efetuar esta mesma conexão.
Abaixo segue um fluxo explicativo e comparativo, demonstrando como é o processo de comunicação do servidor do cliente com a SEFAZ tanto quando a comunicação é solicitada pelo eDocs(que utiliza sessões de serviços do Windows), como quando a comunicação é solicitada por um aplicativo instalado no servidor (que utiliza sessões de usuários do Windows).
De acordo com o fluxo acima, é possível perceber que aplicativos instalados como aplicação no servidor (e não como serviços) utilizam permissões do Windows diferente de aplicativos que são executados como serviço. Desta forma, dependendo das permissões definidas no ambiente do cliente, um aplicativo poderá terá a conexão segura com a SEFAZ/Prefeitura estabelecida através do Windows, enquanto um outro aplicativo executado como serviço (que é o caso do eDocs), poderá ter problemas de comunicação, já que o Windows não conseguirá estabelecer a conexão segura.
Um problema comum no processo de configuração de um certificado digital no eDocs e que acarreta em problemas de comunicação do servidor do cliente com a SEFAZ/Prefeitura, é a utilização de um arquivo de certificado digital que não possui a chave privada ou não possui as propriedades estendidas (cadeias de certificação). Como o eDocs apenas encaminha o certificado digital ao .Net, e esse por sua vez encaminha ao Windows, a ausência destas informações faz com que o Windows não consiga estabelecer a comunicação segura com o servidor da SEFAZ/Prefeitura.
A chave privada deverá ser disponibilizada juntamente com o arquivo .PFX originalmente disponibilizado pela Autoridade Certificadora (AC) que disponibilizar o certificado digital ao cliente. Não há uma forma de coletar a chave privada, caso ela não seja disponibilizada no arquivo .PFX original. Caso o cliente não possua mais o arquivo do certificado digital que contenha a chave privada, é necessário contato com a Autoridade Certificadora (AC) responsável por gerar o certificado digital para que seja disponibilizado um novo arquivo que contenha a chave privada do certificado.
As propriedades estendidas (cadeias de certificação) podem ser obtidas pelo sistema operacional Windows automaticamente no momento em que o certificado digital é utilizado ou importado pelo Windows. No entanto, este processo de obtenção das cadeias de certificação pode não ser executado, dependendo das permissões de acesso à Internet definidas no ambiente onde o processo está sendo realizado. Abaixo indicaremos um processo que poderá ser realizado para que um arquivo .PFX que não contenha as cadeias de certificação embutidas venha a ser gerado novamente com estas propriedades.
Importante
Os procedimentos indicados abaixo são procedimentos considerados avançados. Portanto, devem ser executados por usuários ou profissionais que tenham domínio em ferramentas avançadas disponibilizadas pelo sistema operacional Windows.
- Acesse um ambiente que não tenha restrições de acesso à Internet;
O Windows pode obter as propriedades estendidas de um certificado quando estiver conectado à Internet em um ambiente que não tenha nenhuma restrição de acesso. Desta forma, para efetuar todo o processo é necessário executar os procedimentos a partir de um ambiente que não tenha nenhum tipo de restrição (assim é garantido que o Windows tenha acesso a todos os endereços necessários para coletar as cadeias de certificação).
Observação
Caso haja necessidade de identificar exatamente quais são os endereços que o Windows utiliza para obter as propriedades estendidas de um certificado, deve-se verificar a informação com um profissional de TI especializado em ambiente Windows e em certificação digital.
- Faça a instalação do certificado digital (arquivo .PFX) no ambiente que não possui restrições de acesso.
No ambiente que não possua restrições de acesso à Internet, faça a instalação do certificado digital (arquivo .PFX). A instalação pode ser efetuada a partir do Console de Gerenciamento do Windows (mmc.exe) ou executando o arquivo .PFX para abrir o Assistente de Importação para Certificados.
O processo de instalação pode variar dependendo da versão do sistema operacional Windows utilizada, no entanto, as opções Marcar esta chave como exportável e Incluir todas as propriedades estendidas devem ser marcadas durante o processo de importação (a descrição das opções pode variar de acordo com a versão do Windows). Abaixo segue uma imagem exemplificando as opções a serem marcadas (imagem coletada do sistema operacional Windows 10).
Após a sequência do processo de importação, é exibida uma mensagem indicando que a importação foi executada com sucesso.
Importante
Durante o processo de importação o Windows solicita o local onde o certificado digital será armazenado. É importante anotar este local selecionado, pois ele será necessário para acessar o certificado digital durante o processo de exportação do certificado.
- Faça a exportação do certificado digital através do Console de Gerenciamento do Windows (mmc.exe).
Ao executar o Console de Gerenciamento do Windows (mmc.exe), acesse o menu Arquivo > Adicionar/remover snap-in (CTRL + M). Na tela que é exibida, selecione o Snap-in Certificados e adicione-o aos snaps-in selecionados. Em seguida, é solicitado a seleção de qual local o certificado digital foi instalado. Selecione o local que foi definido durante a instalação do certificado executada no passo 2. Após confirmar a adição do snap-in selecionado, é exibida a tela para selecionar o local onde o certificado digital está instalado.
Abaixo segue uma imagem que exemplifica a opção que deverá ser acessada. Neste exemplo o certificado foi instalado no repositório do Usuário atual.
Após acessar o menu Raiz do Console > Certificados > Pessoal > Certificados, selecione o certificado digital instalado no passo 2, clicando com o botão direito do mouse. No menu que será exibido selecione a opção Todas as tarefas > Exportar.... Será aberto o Assistentes para Exportação de Certificados.
Durante a exportação do certificado através do assistente, é obrigatória a seleção da opção Exportar chave privada, conforme exemplificado na imagem abaixo:
Na sequência do processo, selecione a opção para exportação do certificado em formato .PFX, selecionando também as opções para inclusão de todos os certificados no caminho de certificação e exportação das propriedades estendidas, conforme exemplificado na imagem abaixo:
Na sequência do processo, defina uma senha para a chave privada que será exportada junto ao certificado e um local onde o arquivo .PFX será gerado.
- Utilização do novo arquivo do certificado digital que foi gerado.
Ao término do processo de exportação do certificado digital (passo 3), é possível utilizar o novo arquivo .PFX gerado para efetuar a configuração do certificado no Monitor. Se o processo de importação/exportação tiver sido executado em um ambiente que não possua restrições de acesso à Internet, o novo arquivo deverá possuir agora a chave privada e as cadeias de certificação, com isso, caso algum problema estiver ocorrendo devido à falta das cadeias de certificação, o mesmo deverá ser sanado.
Importante
Os procedimentos acima indicados não garantem que eventuais problemas de comunicação do servidor do cliente com a SEFAZ/Prefeitura serão resolvidos. As informações podem ser utilizadas como um ponto de verificação a ser realizado, caso a comunicação segura não esteja sendo realizada de forma adequada.
Problemas de comunicação do servidor do cliente com a SEFAZ/Prefeitura são questões relativas ao ambiente do cliente e não ao eDocs em si. Desta forma, caso haja necessidade de apoio na verificação de problemas de comunicação, deve-se verificar apoio com um profissional de TI que tenha conhecimento em processos de comunicação segura e certificação digital.