Protocolo de status de certificado online (OCSP)

O protocolo de status de certificado online (do inglês Online Certificate Status Protocol - OCSP) é um protocolo de Internet usado para obter o status de revogação de um certificado digital X.509[1]. Ele é descrito no RFC 6960 e está no caminho de padrão de Internet. Ele foi criado como uma alternativa para as listas de revogação de certificado (CRLs), abordando especificamente certos problemas associados ao uso de CRLs em uma infraestrutura de chave pública (PKI)[2]. As mensagens comunicadas via OCSP são codificadas em ASN.1 e geralmente são transmitidas por meio de HTTP. A natureza de "solicitação/resposta" dessas mensagens leva os servidores OCSP a serem denominados respondentes OCSP.

Alguns navegadores usam o OCSP para validar os certificados HTTPS.

Comparação com CRLsEditar

  • Como uma resposta OCSP contém menos dados do que uma típica lista de revogação de certificado (CRL), ela sobrecarrega menos os recursos da rede e do cliente[3].
  • Como uma resposta OCSP tem menos dados para análise, as bibliotecas do lado do cliente que a tratam podem ser menos complexas do que aquelas que tratam CRLs[4].
  • O OCSP revela ao respondente que um determinado host de rede usou um determinado certificado em um determinado momento. O OCSP não exige criptografia, portanto, outras partes podem interceptar essas informações[1].

Implementação de PKI básicaEditar

  1. Alice e Bob têm certificados de chave pública emitidos por Carol, a autoridade de certificação (CA).
  2. Alice deseja realizar uma transação com Bob e envia a ele seu certificado de chave pública.
  3. Bob, preocupado que a chave privada de Alice possa ter sido comprometida, cria uma 'solicitação OCSP' que contém o número de série do certificado de Alice e o envia para Carol.
  4. O respondente OCSP de Carol lê o número de série do certificado da solicitação de Bob. O respondente do OCSP usa o número de série do certificado para pesquisar o status de revogação do certificado de Alice. O respondente do OCSP procura em um banco de dados CA mantido por Carol. Nesse cenário, o banco de dados de CA de Carol é o único local confiável onde um comprometimento do certificado de Alice seria registrado.
  5. O respondente OCSP de Carol confirma que o certificado de Alice ainda está OK e retorna uma 'resposta OCSP' bem-sucedida assinada para Bob.
  6. Bob verifica criptograficamente a resposta assinada de Carol. Bob armazenou a chave pública de Carol algum tempo antes desta transação. Bob usa a chave pública de Carol para verificar a resposta de Carol.
  7. Bob conclui a transação com Alice.

Detalhes do protocoloEditar

Um respondente OCSP (um servidor normalmente executado pelo emissor do certificado) pode retornar uma resposta assinada, significando que o certificado especificado na solicitação é 'bom', 'revogado' ou 'desconhecido'. Se não puder processar a solicitação, ele pode retornar um código de erro.

O formato de solicitação OCSP oferece suporte a extensões adicionais. Isso permite uma ampla personalização para um determinado esquema de PKI.

O OCSP pode ser vulnerável a replay attacks[5], ou seja, uma resposta "boa" assinada pode ser capturada por um intermediário malicioso e reproduzida para o cliente posteriormente (data após o certificado em questão ter sido revogado).

O OCSP permite que um nonce seja incluído na solicitação que pode ser incluída na resposta correspondente. Devido à alta carga, a maioria dos respondentes OCSP não usa a extensão nonce para criar uma resposta diferente para cada solicitação em vez de usar respostas predefinidas com um período de validade de vários dias. Portanto, o ataque de repetição é uma grande ameaça aos sistemas de validação.

O OCSP pode oferecer suporte a mais de um nível de CA. As solicitações OCSP podem ser encadeadas entre respondentes de pares para consultar a CA emissora apropriada para o certificado em questão, com respondentes validando as respostas uns dos outros contra a CA raiz usando suas próprias solicitações OCSP.

Um respondente do OCSP pode ser consultado para informações de revogação por servidores de validação de caminho delegado (DPV). O OCSP não realiza, por si só, qualquer DPV dos certificados fornecidos.

A chave que assina uma resposta não precisa ser a mesma que assinou o certificado. O emissor do certificado pode delegar outra autoridade para ser o respondente do OCSP. Neste caso, o certificado do respondente (aquele que é usado para assinar a resposta) deve ser emitido pelo emissor do certificado em questão e deve incluir uma determinada extensão que o marca como uma autoridade de assinatura OCSP (mais precisamente, uma extensão de uso de chave estendida com o OID {iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) keyPurpose(3) ocspSigning(9)})

Preocupações com a privacidadeEditar

A verificação OCSP cria uma preocupação com a privacidade para alguns usuários, uma vez que exige que o cliente entre em contato com um terceiro (embora seja uma parte de confiança do fornecedor do software cliente) para confirmar a validade do certificado. O grampeamento é uma forma de verificar a validade sem revelar o comportamento de navegação à CA[1].

CríticasEditar

A revogação baseada em OCSP não é uma técnica eficaz para mitigar o comprometimento da chave privada de um servidor HTTPS. Um invasor que comprometeu a chave privada de um servidor normalmente precisa estar em uma posição man-in-the-middle na rede para abusar dessa chave privada e se passar por um servidor. Um invasor em tal posição também pode interferir nas consultas OCSP do cliente. Como a maioria dos clientes ignora silenciosamente o OCSP se a consulta atingir o tempo limite, o OCSP não é um meio confiável de mitigar o comprometimento da chave do servidor HTTPS[6].

A extensão MustStaple TLS em um certificado pode exigir que o certificado seja verificado por uma resposta OCSP grampeada, atenuando esse problema[3]. O OCSP também permanece uma defesa válida contra situações em que o invasor não é um "intermediário" (assinatura de código ou certificados emitidos por engano).

O protocolo OCSP assume que o solicitante tem acesso à rede para se conectar a um respondente OCSP apropriado. Alguns solicitantes podem não conseguir se conectar porque sua rede local proíbe o acesso direto à Internet (uma prática comum para nós internos em um data center). Forçar os servidores internos a se conectarem à internet para usar OCSP contribui para a tendência de Desperimetrização. O protocolo de grampeamento OCSP é uma alternativa que permite que os servidores armazenem em cache as respostas do OCSP, o que elimina a necessidade de o solicitante entrar em contato diretamente com o respondente do OCSP.

Suporte de navegadorEditar

Há amplo suporte para OCSP entre a maioria dos navegadores principais:

No entanto, o Google Chrome é um ponto fora da curva. O Google desativou as verificações OCSP por padrão em 2012, citando latência e problemas de privacidade [13] e, em vez disso, usa seu próprio mecanismo de atualização para enviar certificados revogados ao navegador[14].

ImplementaçõesEditar

Existem várias implementações OCSP de código aberto e proprietário, incluindo servidor e bibliotecas para construir aplicativos personalizados. O suporte à cliente OCSP está integrado em muitos sistemas operacionais, navegadores web e outros  softwares de redes devido à popularidade do HTTPS e a World Wide Web.

ServidorEditar

Código abertoEditar

ProprietárioEditar

BibliotecasEditar

Código abertoEditar

ClienteEditar

Veja tambémEditar

ReferênciasEditar

  1. a b c A., Jesin (June 12, 2014). «How To Configure OCSP Stapling on Apache and Nginx». Community Tutorials. Digital Ocean, Inc. Consultado em March 2, 2015  Verifique data em: |acessodata=, |data= (ajuda)
  2. «OCSP Stapling». GlobalSign Support. GMO GlobalSign Inc. August 1, 2014. Consultado em March 2, 2015  Verifique data em: |acessodata=, |data= (ajuda)
  3. a b Gibson, Steve. «Security Certificate Revocation Awareness: The case for "OCSP Must-Staple"». Gibson Research Corporation. Consultado em March 2, 2015  Verifique data em: |acessodata= (ajuda)
  4. Keeler, David (July 29, 2013). «OCSP Stapling in Firefox». Mozilla Security Blog. Mozilla Foundation. Consultado em March 2, 2015  Verifique data em: |acessodata=, |data= (ajuda)
  5. RFC 6960, section 5, Security Considerations
  6. «No, Don't Enable Revocation Checking». 19 April 2014. Consultado em 24 April 2014  Verifique data em: |acessodata=, |data= (ajuda)
  7. «Windows XP Certificate Status and Revocation Checking». Microsoft. Consultado em 9 May 2016  Verifique data em: |acessodata= (ajuda)
  8. «What's New in Certificate Revocation in Windows Vista and Windows Server 2008». Microsoft. Consultado em 9 May 2016  Verifique data em: |acessodata= (ajuda)
  9. «Mozilla Bug 110161 – Enable OCSP by Default». Mozilla. 1 October 2007. Consultado em 18 July 2010  Verifique data em: |acessodata=, |data= (ajuda)
  10. Wisniewski, Chester (26 March 2011). «Apple users left to defend themselves against certificate attacks». Sophos. Consultado em 26 March 2011  Verifique data em: |acessodata=, |data= (ajuda)
  11. Pettersen, Yngve Nysæter (November 9, 2006). «Introducing Extended Validation Certificates». Opera Software. Consultado em 8 January 2010. Cópia arquivada em 10 February 2010  Parâmetro desconhecido |url-status= ignorado (ajuda); Verifique data em: |acessodata=, |arquivodata=, |data= (ajuda)
  12. Pettersen, Yngve Nysæter (3 July 2008). «Rootstore newsletter». Opera Software. Consultado em 8 January 2010  Verifique data em: |acessodata=, |data= (ajuda)
  13. Langley, Adam (5 Feb 2012). «Revocation checking and Chrome's CRL». Consultado em 30 de janeiro de 2015. Cópia arquivada em 12 de fevereiro de 2012  Parâmetro desconhecido |url-status= ignorado (ajuda); Verifique data em: |data= (ajuda)
  14. "Chrome does certificate revocation better", April 21, 2014, Larry Seltzer, ZDNet
  15. «Boulder – an ACME CA». GitHub. 16 March 2018. Consultado em 17 March 2018  Verifique data em: |acessodata=, |data= (ajuda)
  16. «Dogtag Certificate System». Consultado em 12 Aug 2019  Verifique data em: |acessodata= (ajuda)
  17. «EJBCA – Open Source PKI Certificate Authority». PrimeKey. 2 February 2018. Consultado em 17 March 2018  Verifique data em: |acessodata=, |data= (ajuda)
  18. «OpenXPKI project documentation^ CRL and OCSP extensions». Consultado em 12 Aug 2019  Verifique data em: |acessodata= (ajuda)
  19. «XiPKI». GitHub. 13 March 2018. Consultado em 17 March 2018  Verifique data em: |acessodata=, |data= (ajuda)
  20. «Certificate Services (Windows)». Windows Dev Center. Microsoft. 2018. Consultado em 17 March 2018  Verifique data em: |acessodata= (ajuda)
  21. «Package ocsp». cfssl GoDoc. 25 February 2018. Consultado em 17 March 2018  Verifique data em: |acessodata=, |data= (ajuda)
  22. «OCSP_response_status». master manpages. OpenSSL. 2017. Consultado em 17 March 2018  Verifique data em: |acessodata= (ajuda)
  23. «OCSP in wolfSSL Embedded SSL – wolfSSL» (em inglês). 27 de janeiro de 2014. Consultado em 25 de janeiro de 2019 

Ligações externasEditar