Ir para conteúdo
  • Cadastre-se

dev botao

ACBRNFe: Exclusão de certificado A3?


Lucas de Lucca
Ver Solução Respondido por [email protected],
  • Este tópico foi criado há 2437 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

6 minutos atrás, JP_ZANIN disse:

Bom dia.

 

Tive o mesmo problema de exclusão de certificado. Utilizo o componente Acbr.

Cliente usou A3 da Serasa durante todo o período de validade normalmente, após o vencimento trocou pelo A3 da  Certisign e após alguns dias ele foi excluído do cartão. A Certisign vai dar um voucher para compra de um novo, porém com os relatos o medo é ocorrer novamente.

O certificado gravado no cartão é tão frágil quanto o gravado em disco.

Por um momento até pensei que a gravação, o certificado gravado fosse em uma região Read Only do cartão, mas não é.

O Certificado é passível de um ataque de vírus, de um erro de leitura, de um mal funcionamento de um periférico.

Qualquer coisa pode danificar o certificado.

Assim é o que percebi. 

Troquei o computador por um novo com leitora nova e tudo mais.

Mas como você comentou, o "medo" fica, dada a fragilidade da gravação.

 

Uma coisa eu penso ter certeza, o ACBr, seus componentes e até mesmo o ACBrMonitorPlus não consomem com o certificado, não apagam o certificado. O problema está na fragilidade do arquivo.

 

 

 

Editado por jcdatrindade
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois ...

Bom dia!

Acho que vale a informação...temos alguns clientes que tiveram o mesmo problema de exclusão do certificado A3 da Certisign e como sempre o suporte dizia que o problema estava no sistema ERP e nós dizíamos que não e ficava por isso mesmo, até que na semana passada um cliente "parceiro" teve o problema pela terceira vez e ai ele e nós entramos em contato com o suporte e numa discussão "boa" a Certisign acabou dando outro certificado de graça pro nosso cliente.

Penso que se a Certisign tivesse a certeza que o problema é no sistema ERP jamais daria outro certificado ao cliente e por isso estamos relatando o ocorrido aqui com todos.

Fica ai a dica se alguém ainda passar por isso.

 

Editado por Marcelo - Pontual Sistemas
Link para o comentário
Compartilhar em outros sites

Ressuscitando o tópico só pra informar que esse erro ainda ocorre. Eu mesma já perdi 3 A3 e ontem liguei muito brava na certificadora e eles continuam afirmando que o problema é no software. E eu disse o software é meu, eu que fiz e não tem nenhuma linha que manda comando de exclusão para o cartão. Desisto do A3 também. Vamos ver se eles vão emitir gratuitamente dessa vez.

A paz que procuramos está no silêncio que não fazemos!

Link para o comentário
Compartilhar em outros sites

Olá, jamais eles iram assumir essa falha, veja só o tanto que estão errado, vamos analisar:

Mesmo que qualquer software tentasse excluir\deletar\limpar o cartão, na verdade é para EXISTIR, segurança da parte do cartão

para não permitir. É falha deles sim, sempre oriento exijo que adquira cartão A1, e sempre explico direitinho o porquê. 

Isso ocorrer é pique de energia, o cartão\token, estar inserido na ubs e quando vai usar, tá zerado, sem nenhum informação.

As certificadoras não tem critérios nem humildade para assumir isso, é Brasil...............

 

Link para o comentário
Compartilhar em outros sites

1 hora atrás, claudiadnh disse:

Ressuscitando o tópico só pra informar que esse erro ainda ocorre. Eu mesma já perdi 3 A3 e ontem liguei muito brava na certificadora e eles continuam afirmando que o problema é no software. E eu disse o software é meu, eu que fiz e não tem nenhuma linha que manda comando de exclusão para o cartão. Desisto do A3 também. Vamos ver se eles vão emitir gratuitamente dessa vez.

Bom dia Cláudia.

No seu caso foi com certificado da Certising também?

Link para o comentário
Compartilhar em outros sites

Tive problema em 2 clientes também, sempre com Cartão Certising Cinza com o Gerenciador Criptografico Oberthur.

O cliente usava no Windows XP há uns 8 meses, ao comprar um computador novo com Windows 10, em menos de 15 dias o certificado foi excluído do cartão, em contato com a Certising deram um voucher, veio outro cartão Cinza e não durou nem 10 dias, de novo foi excluído.

O outro cliente, usava Windows 10 e não durou 3 dias.

Estes clientes trocaram por A1 e não tiveram mais problema.

Ao menos comigo, a conclusão que Cheguei foi a combinação:

  • Cartão Cinza da Certising
  • Windows 10
  • Oberthur
  • AcbrNFe    (Nao uso o monitor)
Editado por jaidomini
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Pessoal alguém ja tem a solução para a exclusão de certificado A3 do cartão, a empresa de certificado culpa o software e já estou com 5 clientes com o mesmo problema, simplesmente a chave pública é deletada. Uma coisa em comum que tenho percebido é o Windows ter atualizado no dia dá exclusão.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

A solução apontada neste tópico mesmo foi:

-Utilizar o Certificado A1. Pois aí não acontece mais....

 

-Outra coisa: os amados colegas poderiam dizer quais as marcas com as quais aconteceu ?

Comigo foi só com CERTISIGN.

 

SERASA e CEF estão isentos disso. E também o CERTISIGN foi só com o tal OberThur .... (os cartões novos)...

Link para o comentário
Compartilhar em outros sites

Bom dia, estimados parceiros

Comigo aconteceu somente com CERTISIGN. E para ajudar a empresa que representa eles aqui sempre fala que é o sistema, mais o melhor ainda é que ela mesmo fornece sistema para emissão de NFe em nuvem e pasmem, ela vende depois um A1 para o cliente.

Mais até agora já contabilizo um total aproximado de 15 clientes nos últimos 2 anos.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Solução é simples, é só usar certificado modelo A1 e manter um bom backup, comigo todos os A3 com problemas foram da CERTISIGN foram uns 8 certificados A3 perdidos.

Eu e o amigo @Alexandre Faustinoni sofremos com a mesma base da Certisign, como temos sistemas em conjunto (2 softwarehouse) mas os clientes usam ambos sistemas nossos, eles culpam sempre as softwarehouse, pois não é culpa do cliente, mas sim o que eles escutam da certificadora, e vem com 2 pedras nas mãos para cima de nós.

Hoje eu não recomendo A3 nem para meus inimigos.

Um forte abraço a todos.

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link para o comentário
Compartilhar em outros sites

  • Fundadores

É sempre bom lembrar, que os fontes do ACBr, apenas abrem o Certificado como "ReadOnly".. Veja o código abaixo, de ACBrDFeWinCrypt.pas

  FpStore := CertOpenStore(
      StoreProvider, 0, 0,
      StoreFlag or CERT_STORE_READONLY_FLAG,
      LPCTSTR( FpDFeSSL.StoreName ) );

 

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

Aconteceu hoje com um cliente que renovou o certificado dos correios a alguns dias, imagino que seja possível um vírus estar causando esse transtorno, vejam no código abaixo como é fácil excluir a chave privada de um certificado:

function Remove-PrivateKey {
[CmdletBinding()]
    param(
        [Parameter(Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)]
        [Security.Cryptography.X509Certificates.X509Certificate2[]]$Certificate
    )
    begin {
    # define unmanaged functions to retrieve private key information and delete the key.
$signature = @"
[DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool CryptAcquireContext(
   ref IntPtr phProv,
   string pszContainer,
   string pszProvider,
   uint dwProvType,
   long dwFlags
);
[DllImport("Crypt32.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern bool CryptAcquireCertificatePrivateKey(
    IntPtr pCert,
    uint dwFlags,
    IntPtr pvReserved,
    ref IntPtr phCryptProv,
    ref uint pdwKeySpec,
    ref bool pfCallerFreeProv
);
[DllImport("NCrypt.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern int NCryptDeleteKey(
   IntPtr hKey,
   uint dwFlags
);
[DllImport("Crypt32.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern bool CertGetCertificateContextProperty(
    IntPtr pCertContext,
    uint dwPropId,
    IntPtr pvData,
    ref uint pcbData
);
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
public struct CRYPT_KEY_PROV_INFO {
    [MarshalAs(UnmanagedType.LPWStr)]
    public string pwszContainerName;
    [MarshalAs(UnmanagedType.LPWStr)]
    public string pwszProvName;
    public uint dwProvType;
    public uint dwFlags;
    public uint cProvParam;
    public IntPtr rgProvParam;
    public uint dwKeySpec;
}
"@
        Add-Type -MemberDefinition $signature -Namespace PKI -Name PfxTools
        $CERT_KEY_PROV_INFO_PROP_ID = 0x2
        $CRYPT_DELETEKEYSET = 0x10
        $CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG = 0x40000
    }
    process {
        foreach ($cert in $Certificate) {
            # if the current certificate do not have private key -- skip
            if (!$cert.HasPrivateKey) {return}
            # if we reach this far and PrivateKey is $null -- the key is CNG key.
            if ($cert.PrivateKey -eq $null) {
                $phCryptProv = [IntPtr]::Zero
                $dwFlags = $CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG
                $pdwKeySpec = 0
                $pfCallerFreeProv = $false
                if (![PKI.PfxTools]::CryptAcquireCertificatePrivateKey(
                    $cert.Handle,
                    $dwFlags,
                    0,
                    [ref]$phCryptProv,
                    [ref]$pdwKeySpec,
                    [ref]$pfCallerFreeProv)) {return}
                $hresult = [PKI.PfxTools]::NCryptDeleteKey($phCryptProv,0)
                if ($hresult -ne 0) {
                    $message = "Cert '{0}' failed: {1}" -f $cert.Thumbprint,
                        (New-Object ComponentModel.Win32Exception $hresult).Message
                    Write-Warning $message
                }
            } else {
                # if the key is legacy, then just read the PrivateKey object of the X509Certificate2 object
                $phProv = [IntPtr]::Zero
                if (![PKI.PfxTools]::CryptAcquireContext(
                    [ref]$phProv,
                    $cert.PrivateKey.CspKeyContainerInfo.KeyContainerName,
                    $cert.PrivateKey.CspKeyContainerInfo.ProviderName,
                    $cert.PrivateKey.CspKeyContainerInfo.ProviderType,
                    $CRYPT_DELETEKEYSET))
                {
                        $hresult = [Runtime.InteropServices.Marshal]::GetLastWin32Error()
                        $message = "Cert '{0}' failed: {1}" -f $cert.Thumbprint,
                            (New-Object ComponentModel.Win32Exception $hresult).Message
                        Write-Warning $message
                }
            }           
        }
    }
}

The usage is pretty simple: just pass a certificate object, and the function will delete private key when necessary. The function performs all required checks to properly handle various scenarios. Few considerations should be taken into account prior to using this function:

This function DO NOT delete certificate from the store. The whole purpose of this function is to delete the private key.
If two or more certificates share the same key, all they will stop working.
If the key is stored on a hardware (smart card, HSM), the function call may raise a PIN dialog, where you will have to enter the PIN to access the private key.

O código foi retirado de https://www.sysadmins.lv/blog-en/how-to-properly-delete-certificate-with-private-key-in-powershell.aspx e não testei se funciona com os tokens que usamos, mas a hora que tiver um tempo vou gravar uns certificados fakes em uns cartões que tenho aqui e testar.

Isso prova a facilidade em excluir objetos no token, e qualquer coisa pode ser o culpado, inclusive um vírus.

Só acho inadmissível essa fragilidade nos certificados.

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

No meu caso começou a acontecer de abril pra cá com alta frequência, então o que tenho de informação é o seguinte até agora:

Em conversa com uma certificadora eles relataram que os casos que eles identificaram em softwares diferentes, era quando o programa informa que deve ser conectado o certificado, dai a pessoa conecta o A3, ai o programa vai verificar o certificado que foi conectado, neste momento esta sendo substituída a chave primária invalidando o token ou cartão, segundo eles estão trabalhando para verificar o que esta acontecendo e iriam me dar um retorno.

Outra certificadora se dispôs a fazer testes para identificar o momento que acontece o problema.

Já outra certificadora chegou a me dizer que o problema era o Acbr, bastava procurar na internet para ver que o problema era no componente, ai falei para ele que sei de outras software house que não usam acbr e tmbm estão com o problema, ele me disse que não tinha pessoal qualificado para ajudar a resolver o problema, que eu tinha que ver a programação do meu sistema para corrigir. Ve se pode isso. ¬¬


 

Editado por Daniel Carus

Daniel Carus

 

 

Link para o comentário
Compartilhar em outros sites

Tive esses mesmos problemas, um cliente usava o A1 e trocou pele OberThur , apagou no mês de marco e abril, não teve prejuízo em pagar , mais perdeu tempo pois o faturamento dele parou nesse período, trocou pelo token, ate agora não deu problema. ate agora.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Fundadores
17 horas atrás, intersig disse:

boa noite, tive o mesmo problema e após entrar em contato com a certificadora, a mesma acusou o componente de estar excluindo. 

Mostre isso para eles... o ACBr sempre abre a Store de Certificados em modo "ReadOnly".... Unit ACBrDFeWinCrypt.pas:809

  FpStore := CertOpenStore(
      StoreProvider, 0, 0,
      StoreFlag or CERT_STORE_READONLY_FLAG,
      LPCTSTR( FpDFeSSL.StoreName ) );

 

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

Boa tarde pessoal,

Uso o componente ACBrNFe a anos e nunca tive estes problemas relatados pelos senhores, como o Daniel Simões mencionou, é somente leitura a rotina. As vezes oque pode ocorrer é algum antivírus que possa estar causando este problema, tenho casos que alguns Antivirus gratuitos na sua grande maioria apaga executáveis e dlls.

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...

Boa tarde pessoal, a conclusão que chegamos, foi de que a placa mãe ou a fonte da maquina esta emitindo picos altos de energia através da porta USB, o software jamais apaga essa informação, como já citado acima inúmeras vezes, esse pico de energia acaba danificando o certificado ou a leitora que muitas vezes são genéricos e não trabalham como deveriam.

Editado por kaxofatz
  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Boa tarde,

27 minutos atrás, kaxofatz disse:

conclusão que chegamos, foi de que a placa mãe ou a fonte da maquina esta emitindo picos altos de energia através da porta USB

aproveitando o gancho com a resposta acima, (e embora o @Juliomar Marchetti tenha fechado o tópico) gostaria de deixar apenas mais uma dica sobre esse assunto.

No Mercado Livre está cheio de "Testador de porta USB / Medidor de voltagem e corrente".

Enfim, fica a dica pra quem já teve esse problema, quem sabe usando um testador destes seria possível detectar alguma "anomalia" na USB onde já tenha ocorrido a perda de algum certificado digital A3.

Att

Ricardo

  • Curtir 3
Link para o comentário
Compartilhar em outros sites

Boa noticia pessoal!

Entrei em contato com algumas certificadoras e papo vai papo vem dizendo que é meu o erro e não deles até que cheguei ao contato da Oberthur, empresa Francesa que desenvolve e fornece certificados A3 para as certificadoras brasileiras.
Em conversa com Rafael Alba, contato deles no Brasil, expliquei o problema de exclusão dos certificados e ele se prontificou a ajudar e descobrir o problema, outro nivel né, não ficaram empurrando o problema para agente.
Bom, forneci um sistema com os fontes abertos e o acbr para eles verificarem, conversei com a equipe de desenvolvimento da frança e eles conseguiram causar o problema e trataram a exclusão nos certificados deles.

O Rafael pediu para avisar: "Oberthur resolveu o report e está disposta a ajudar quando for necessário."

Segue abaixo o últimos contatos que tive com ele:

 

Via Skype dia 10/07
Daniel,bom dia!
tudo bem?tentei te ligar, mas vc não estava na sua mesa. Queria te avisar temos um realese do AWP Manager que resolve o exclusão do certificado, está semana devo disponibilizar para o pessoal da Certisign.
Realizei todos os testes e o certificado não foi deletado do cartão.

 

Via E-mail no dia 18/07
Daniel, bom dia!
Estarei disponibilizando o novo realese (5.1.8) para as certificadoras, assim todos os cliente já poderam baixar e utilizar o AWP Manager.Está semana estou trabalhando nisso.

Obrigado pela ajuda, pois graças ao seu suporte e seu ferramenta conseguimos verificar e solucionar.

Rafael Alba
Technical Support | Citizen & Identity
Oberthur TechnologiesAv. Brigadeiro Faria LIma, 1.336 - 01451.001 - São Paulo | Brazil

 

Editado por Daniel Carus
  • Curtir 2
  • Obrigado 4

Daniel Carus

 

 

Link para o comentário
Compartilhar em outros sites

Em 21/07/2017 at 22:23, Daniel Carus disse:

... conversei com a equipe de desenvolvimento da frança e eles conseguiram causar o problema e trataram a exclusão nos certificados deles.

Seria muito interessante se eles pudessem passar em que momento ocorre e oque causa o problema, para que pudéssemos contornar de alguma forma nos outros cartões, pois comigo já aconteceu com cartões diferentes, alguns nem usam o AWP da Oberthur. Já são vários esse ano.

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2437 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.