Authenticode e a possível lentidão para instalar produtos

Quem já não teve a experiência de ter que instalar um produto em um ambiente Windows sem acesso a Internet e achar que demorou mais que o normal? Recentemente descobri que essa demora não é apenas uma percepção. Ela ocorre porque o Windows está tentando validar a assinatura digital de um pacote ou driver e a operação só continua após um timeout desta operação.

Authenticode é um tecnologia Microsoft para assinatura de código. Em resumo, quem publica um driver ou um pacote de software (.cat) pode assinar os mesmos com um certificado digital para que se possa verificar a integridade do código ou driver.

Em algumas instalações de produtos a tentativa de ser verificar o CRL da assinatura digital do Authenticode pode causar mais lentidão, e desabilitando algumas opções no IE pode acelerar a instalação em um ambiente que não tem acesso às URL publicadas no certificado. São eles Check for Publishers’s certificate revocation e Check for server certificate revocation.

A próxima pergunta seria qual o impacto de desabilitar essas opções?

Quando um certificado é emitido por uma autoridade certificadora (CA), para um site, por exemplo, esse certificado contém informações que permitem que o cliente valide se o certificado emitido não foi revogado pela autoridade certificadora. Por diversos motivos um certificado pode ser revogado. A periodicidade e obrigatoriedade de acesso a essa lista depende da aplicação que usa o certificado.

Existem dois mecanismos para que um cliente valide se um certificado foi revogado:

Certificate Revocation List - CRL : Neste método o cliente baixa um arquivo de uma URL fornecida no certificado que contém os certificados revogados. Dependendo da autoridade certificadora esse arquivo pode alcançar algumas centenas de bytes. O arquivo CRL pode ficar em cache por alguns dias ou mais e é assinado pela CA para evitar fraudes.

Online Certificate Status Protocol – OCSP : O cliente consome um web service, em uma URL pré-determinada, perguntando se um certificado específico foi revogado. A resposta também é assinada pela CA para evitar fraudes. A resposta é bem menor que baixar o arquivo CRL por completo. Se a requisição OCSP não completar em menos de 15 segundos, ocorre um timeout e a operação falha. Existe ainda uma variante chamada OCSP Stapling.

 

A opção Check for publisher’s certificate revocation habilita a verificação de certificados revogados para assinaturas de Authenticode ou quando se faz um download de um componente ActiveX.

A opção Check for server certificate revocation controla a verificação de certificados revogados em uma conexão HTTPS.

Eu recomendo que após a instalação do produto se retorne a habilitar as opções, para que não cause impacto em futuros serviços que utilizem uma CA interna e que requeiram validar os certificados revogados.

Maiores detalhes sobre CRL no artigo How Certificate Revocation Works