Certificados Digitais


Natanael Fonseca
Arquiteto de Software
Ementa

•   Tipos de Certificados
•   Formato X509
•   Principais Campos
•   Extensões
•   Validação de Certificados Digitais
Tipos de Certificados
Devido ao conceito de chave assimétrica, existem N
tipos de certificados no mercado, dentre eles:

   – X.509*;
   – PGP;
   – SPDK/SDSI;
   – SET;

   * Padrão utilizado na ICP-Brazil.
X.509

• Em 1988 surgiu a primeira versão: ITU-T X.509(V1)
  ou ISO/IEC 9594-8;
• Em 1993 o padrão X509 foi revisitado e surgiu a
  versão V2 (RFC 1442);
• Em 2002 foi publicada oficialmente a versão V3 sob a
  RFC 3280;
Object Identifier
• Representação única de determinado objeto;
• Muito parecido com a representação de endereços do
  protocolo IP;
• São hierarquicos;
• É uma notação Internacional, nacional ou
  organizacional;
• Exemplos (PKCS#1):
      – RSA, OID = 1.2.840.113549.1.1.1
      – MD5 com RSA, OID = 1.2.840.113549.1.1.4;
      – SHA-1 com DSA, OID=1.2.840.100.40.4.3

Fonte: http://en.wikipedia.org/wiki/Object_identifier
Formato do X.509 V3
Principais Campos
• Version: Indica a versão do formato do
  certificado, podendo ser 1,2 e 3;
• Serial Number: Número inteiro que é o
  identificador único deste certificado;
• Signature: Indica o algorítimo utilizado para
  assinar o certificado;
• Issuer: É o distinguished name(DN) da AC que
  emitiu o certificado e deve sempre estar
  presente.
Principais Campos
• Validity: Identifica a Janela de tempo em que o
  certificado deve ser considerado válido, a menos que
  ele seja revogado*;
• Subject: Indica o DN do dono do certificado;
• Subject Public Key Indo: Contém a chave pública e a
  identificação do algoritimo do proprietário do
  certificado e deve sempre estar presente.
• Issuer Unique ID: Campo opcional (V2 e V3) e contém
  o identificador único de quem emitiu o certificado;
• Digital signature: Identificador do algoritimo utilizado
  e a assinatura digital da AC que emitiu o certificado;
Extensões
• Possibilita que uma AC inclua informação
  adicional não presente no conteúdo básico;
• Qualquer organização pode definir extensões;
• Possuem três componentes: identificador,
  sinalizador de criticidade e um valor;
• Quando o sinalizador está ligado, significa que
  essa informação é essencial para o uso do
  certificado;
Campos de Extensão
• Subject Key Identifier: Identificador único da
  chave da AC, que deve ser utilizado para verificar
  a assinatura digital calculada no certificado. Essa
  extensão é utilizada em certificados auto-
  assinados;
• Authority Key Identifier: Identificador único
  associado com a chave pública contida no
  certificado;
• Key Usage: Contém uma String
   – fsa
Campos de Extensão
•   Subject Key Identifier: Identificador único da chave da AC, que deve ser utilizado
    para verificar a assinatura digital calculada no certificado. Essa extensão é utilizada
    em certificados auto-assinados;
•   Authority Key Identifier: Identificador único associado com a chave pública
    contida no certificado;
•   Key Usage;
•   Extended Key Usage;
•   CRL Distribution Point;
•   Private Key Usage Period;
•   Certificate Policies;
•   Subject Alternative Name;
•   Basic Constraint;
•   Name Constraint;
•   Policy Constraint;
•   Authority Information Access;
•   Subject Information Access;
Validações
Para a utilização correta de certificados digitais, diversas validações são
necessárias sobre os certificados contidos na “Cadeia de Confiança”,
como, por exemplo:

 – Verificar a data de validade (Inicial e Final);
 – Verificar se cada certificado da cadeia de confiança não foi revogado
   ou encontra-se expirado.
Cadeia de Confiança
Um certificado digital é um documento que associa uma chave publica a uma
determinada entidade, este documento é assinado digitalmente pela chave
privada de uma outra entidade, muitas vezes chamada de Autoridade
Certificadora (AC). Dessa forma garante-se atraves do conceito de “Cadeia de
confiança” a autenticidade das informações.
Revogação de Certificados
Revogar significa tornar sem efeito, ou seja, o certificado digital deverá ser
revogado, sempre que ocorrer um dos seguintes eventos:

 – Houver mudança em qualquer informação contida no Certificado Digital;
 – Em caso de suspeita ou evidência de comprometimento de chaves privadas ou das
   senhas, ou da mídia de armazenamento;
 – A pedido formal do Titular do Certificado Digital, quando não houver mais interesse
   na utilização do Certificado Digital, conforme procedimentos e prazos constantes
   nos itens 4.4.3 e 4.4.4 das Políticas de Certificados Digitais.
Validação de Revogação

• Online Certificate Status Protocol (OCSP)

    – Validação acontece de forma online, através de um serviço disponibilizado pela
      Autoridade Certificadora, cabe ao sistema apenas a criação da requisição OCSP
      perguntando pelo status do certificado.

• Certificate Revocation List

    – Validação acontece de forma Off-Line com base em um arquivo que é baixado da
      Autoridade Certificadora, cabe ao sistema verificar se o certificado em questão
      encontra-se neste arquivo.
O que é LCR ?
È Uma estrutura de dados assinada por uma AC contendo a lista
de certificados que não devem ser considerados válidos.
Normalmente o endereço onde este arquivo pode ser baixado,
pode ser encontrado no próprio certificado.




      Pontos de distribuição.
OCSP
• Este protocolo é uma alternativa rápida e leve para CRLs tradicionais, o
  qual permite que os aplicativos cliente façam consultas em busca do
  status do certificado diretamente a um “Responder OCSP”.
ACs que suportam o protocolo OCSP
•   AC JUS
    http://www.acjus.gov.br/acjus/dpcacjus.pdf (Vide item 4.4.3.2 - d)
•   CERTSIGN MULTIPLA
    http://icp-brasil.certisign.com.br/repositorio/dpc/AC_Certisign_Multipla/DPC_AC_Certisign_Multipla_v3.0.pdf
    (Vide item 4.4.3.2 - d )
•   AC PETROBRAS
    http://icp-brasil.certisign.com.br/repositorio/dpc/AC_PETROBRAS/DPC_AC_PETROBRAS_v5.0.pdf (Vide item 4.4.11)
•   CERTSIGN
    http://icp-brasil.certisign.com.br/repositorio/dpc/AC_Certisign_RFB/DPC_AC_Certisign_RFB_v4.0.pdf (Vide item
    2.8.4.1)
•   SINCOR
    http://icp-brasil.acsincor.com.br/repositorio/dpc/AC_SINCOR_RFB/DPC_AC_SINCOR_RFB_v4.0.pdf
    (Vide item 2.8.4)
•   FENACON
    http://icp-
    brasil.acfenacon.com.br/repositorio/dpc/AC_FENACON_CERTISIGN_RFB/DPC_AC_FENACON_CERTISIGN_RFB_v4.0.
    pdf(Vide item 2.8.4)
•   PRODEMGE
    http://icp-brasil.certisign.com.br/repositorio/dpc/AC_PRODEMGE_RFB/DPC_AC_PRODEMGE_RFB_v4.0.pdf (Vide
    item 2.8.4)
•   SERASA
    http://publicacao.certificadodigital.com.br/repositorio/dpc/declaracao-scd.pdf (vide item 4.4.11)
CRL vs OCSP
CARACTERÍSTICAS                            CRL                                                OCSP

                                                                        Não necessita de acesso a cadeia, o servidor
                      Disponível localmente nas listas, sendo um
Cadeia de Confiança                                                     OCSP fica responsável pela atualização da
                      arquivo para cada AC.
                                                                        cadeia de confiança.

                      Necessário acesso a internet para download
                      dos arquivos LCR. Quanto maior a taxa de          Necessário o acesso a internet. Requisições
 Recurso de Rede
                      atualizações, maior a necessidade de banda        request/response com resposta quase imediata.
                      disponível.

                      Necessário espaço em disco disponível para
   Recursos de
                      armazenamento dos arquivos. Tamanho total         Não é necessário armazenamento em disco
Armazenamento em
                      pode variar de acordo com a quantidades de        algum.
   Disco Rígido
                      ACs contempladas.

                      Necessário acesso a todos os registros de
    Recursos                                                            Consumo quase zero de recursos, somente
                      todas as listas da cadeia de confiança.
  computacionais                                                        requisição request/response.
                      Consumo alto de recursos computacionais.

                      Acesso de forma recursiva a cadeia de             Requisição request/response com resposta
Lógica de validação
                      confiança, arquivo por arquivo.                   quase imediata.

                      Necessário atualização constante das listas.
                                                                        ACs responsáveis pela manutenção e
                      Existe a possibilidade de um certificado estar
                                                                        atualização dos servidores OCSP. Muito
   Confiabilidade     revogado, porém a lista não ter sido atualizada
                                                                        improvável ter o serviço estar indisponível ou ter
                      a tempo, botando em risco a confiabilidade da
                                                                        dados desatualizados.
                      assinatura.

 Disponibilidade no   Primeiro modelo de validação, disponível por      Tecnologia mais recente. Depende da AC ter
     mercado          praticamente todas as ACs.                        implementado o serviço.
Referencias

• Public Key Infrastructure – PKI
   – http://novateceditora.com.br/livros/pki/


• Beginning Cryptography with Java
   – http://www.wrox.com/WileyCDA/WroxTitle/Beginning-Cryptography-
     with-Java.productCd-0764596330.html


• Resoluções da ICP-Brasil em vigor
   – http://www.iti.gov.br/twiki/bin/view/Certificacao/DocIcp

Certificados Digitais x509

  • 1.
  • 2.
    Ementa • Tipos de Certificados • Formato X509 • Principais Campos • Extensões • Validação de Certificados Digitais
  • 3.
    Tipos de Certificados Devidoao conceito de chave assimétrica, existem N tipos de certificados no mercado, dentre eles: – X.509*; – PGP; – SPDK/SDSI; – SET; * Padrão utilizado na ICP-Brazil.
  • 4.
    X.509 • Em 1988surgiu a primeira versão: ITU-T X.509(V1) ou ISO/IEC 9594-8; • Em 1993 o padrão X509 foi revisitado e surgiu a versão V2 (RFC 1442); • Em 2002 foi publicada oficialmente a versão V3 sob a RFC 3280;
  • 5.
    Object Identifier • Representaçãoúnica de determinado objeto; • Muito parecido com a representação de endereços do protocolo IP; • São hierarquicos; • É uma notação Internacional, nacional ou organizacional; • Exemplos (PKCS#1): – RSA, OID = 1.2.840.113549.1.1.1 – MD5 com RSA, OID = 1.2.840.113549.1.1.4; – SHA-1 com DSA, OID=1.2.840.100.40.4.3 Fonte: http://en.wikipedia.org/wiki/Object_identifier
  • 6.
  • 7.
    Principais Campos • Version:Indica a versão do formato do certificado, podendo ser 1,2 e 3; • Serial Number: Número inteiro que é o identificador único deste certificado; • Signature: Indica o algorítimo utilizado para assinar o certificado; • Issuer: É o distinguished name(DN) da AC que emitiu o certificado e deve sempre estar presente.
  • 8.
    Principais Campos • Validity:Identifica a Janela de tempo em que o certificado deve ser considerado válido, a menos que ele seja revogado*; • Subject: Indica o DN do dono do certificado; • Subject Public Key Indo: Contém a chave pública e a identificação do algoritimo do proprietário do certificado e deve sempre estar presente. • Issuer Unique ID: Campo opcional (V2 e V3) e contém o identificador único de quem emitiu o certificado; • Digital signature: Identificador do algoritimo utilizado e a assinatura digital da AC que emitiu o certificado;
  • 9.
    Extensões • Possibilita queuma AC inclua informação adicional não presente no conteúdo básico; • Qualquer organização pode definir extensões; • Possuem três componentes: identificador, sinalizador de criticidade e um valor; • Quando o sinalizador está ligado, significa que essa informação é essencial para o uso do certificado;
  • 10.
    Campos de Extensão •Subject Key Identifier: Identificador único da chave da AC, que deve ser utilizado para verificar a assinatura digital calculada no certificado. Essa extensão é utilizada em certificados auto- assinados; • Authority Key Identifier: Identificador único associado com a chave pública contida no certificado; • Key Usage: Contém uma String – fsa
  • 11.
    Campos de Extensão • Subject Key Identifier: Identificador único da chave da AC, que deve ser utilizado para verificar a assinatura digital calculada no certificado. Essa extensão é utilizada em certificados auto-assinados; • Authority Key Identifier: Identificador único associado com a chave pública contida no certificado; • Key Usage; • Extended Key Usage; • CRL Distribution Point; • Private Key Usage Period; • Certificate Policies; • Subject Alternative Name; • Basic Constraint; • Name Constraint; • Policy Constraint; • Authority Information Access; • Subject Information Access;
  • 12.
    Validações Para a utilizaçãocorreta de certificados digitais, diversas validações são necessárias sobre os certificados contidos na “Cadeia de Confiança”, como, por exemplo: – Verificar a data de validade (Inicial e Final); – Verificar se cada certificado da cadeia de confiança não foi revogado ou encontra-se expirado.
  • 13.
    Cadeia de Confiança Umcertificado digital é um documento que associa uma chave publica a uma determinada entidade, este documento é assinado digitalmente pela chave privada de uma outra entidade, muitas vezes chamada de Autoridade Certificadora (AC). Dessa forma garante-se atraves do conceito de “Cadeia de confiança” a autenticidade das informações.
  • 14.
    Revogação de Certificados Revogarsignifica tornar sem efeito, ou seja, o certificado digital deverá ser revogado, sempre que ocorrer um dos seguintes eventos: – Houver mudança em qualquer informação contida no Certificado Digital; – Em caso de suspeita ou evidência de comprometimento de chaves privadas ou das senhas, ou da mídia de armazenamento; – A pedido formal do Titular do Certificado Digital, quando não houver mais interesse na utilização do Certificado Digital, conforme procedimentos e prazos constantes nos itens 4.4.3 e 4.4.4 das Políticas de Certificados Digitais.
  • 15.
    Validação de Revogação •Online Certificate Status Protocol (OCSP) – Validação acontece de forma online, através de um serviço disponibilizado pela Autoridade Certificadora, cabe ao sistema apenas a criação da requisição OCSP perguntando pelo status do certificado. • Certificate Revocation List – Validação acontece de forma Off-Line com base em um arquivo que é baixado da Autoridade Certificadora, cabe ao sistema verificar se o certificado em questão encontra-se neste arquivo.
  • 16.
    O que éLCR ? È Uma estrutura de dados assinada por uma AC contendo a lista de certificados que não devem ser considerados válidos. Normalmente o endereço onde este arquivo pode ser baixado, pode ser encontrado no próprio certificado. Pontos de distribuição.
  • 17.
    OCSP • Este protocoloé uma alternativa rápida e leve para CRLs tradicionais, o qual permite que os aplicativos cliente façam consultas em busca do status do certificado diretamente a um “Responder OCSP”.
  • 18.
    ACs que suportamo protocolo OCSP • AC JUS http://www.acjus.gov.br/acjus/dpcacjus.pdf (Vide item 4.4.3.2 - d) • CERTSIGN MULTIPLA http://icp-brasil.certisign.com.br/repositorio/dpc/AC_Certisign_Multipla/DPC_AC_Certisign_Multipla_v3.0.pdf (Vide item 4.4.3.2 - d ) • AC PETROBRAS http://icp-brasil.certisign.com.br/repositorio/dpc/AC_PETROBRAS/DPC_AC_PETROBRAS_v5.0.pdf (Vide item 4.4.11) • CERTSIGN http://icp-brasil.certisign.com.br/repositorio/dpc/AC_Certisign_RFB/DPC_AC_Certisign_RFB_v4.0.pdf (Vide item 2.8.4.1) • SINCOR http://icp-brasil.acsincor.com.br/repositorio/dpc/AC_SINCOR_RFB/DPC_AC_SINCOR_RFB_v4.0.pdf (Vide item 2.8.4) • FENACON http://icp- brasil.acfenacon.com.br/repositorio/dpc/AC_FENACON_CERTISIGN_RFB/DPC_AC_FENACON_CERTISIGN_RFB_v4.0. pdf(Vide item 2.8.4) • PRODEMGE http://icp-brasil.certisign.com.br/repositorio/dpc/AC_PRODEMGE_RFB/DPC_AC_PRODEMGE_RFB_v4.0.pdf (Vide item 2.8.4) • SERASA http://publicacao.certificadodigital.com.br/repositorio/dpc/declaracao-scd.pdf (vide item 4.4.11)
  • 19.
    CRL vs OCSP CARACTERÍSTICAS CRL OCSP Não necessita de acesso a cadeia, o servidor Disponível localmente nas listas, sendo um Cadeia de Confiança OCSP fica responsável pela atualização da arquivo para cada AC. cadeia de confiança. Necessário acesso a internet para download dos arquivos LCR. Quanto maior a taxa de Necessário o acesso a internet. Requisições Recurso de Rede atualizações, maior a necessidade de banda request/response com resposta quase imediata. disponível. Necessário espaço em disco disponível para Recursos de armazenamento dos arquivos. Tamanho total Não é necessário armazenamento em disco Armazenamento em pode variar de acordo com a quantidades de algum. Disco Rígido ACs contempladas. Necessário acesso a todos os registros de Recursos Consumo quase zero de recursos, somente todas as listas da cadeia de confiança. computacionais requisição request/response. Consumo alto de recursos computacionais. Acesso de forma recursiva a cadeia de Requisição request/response com resposta Lógica de validação confiança, arquivo por arquivo. quase imediata. Necessário atualização constante das listas. ACs responsáveis pela manutenção e Existe a possibilidade de um certificado estar atualização dos servidores OCSP. Muito Confiabilidade revogado, porém a lista não ter sido atualizada improvável ter o serviço estar indisponível ou ter a tempo, botando em risco a confiabilidade da dados desatualizados. assinatura. Disponibilidade no Primeiro modelo de validação, disponível por Tecnologia mais recente. Depende da AC ter mercado praticamente todas as ACs. implementado o serviço.
  • 20.
    Referencias • Public KeyInfrastructure – PKI – http://novateceditora.com.br/livros/pki/ • Beginning Cryptography with Java – http://www.wrox.com/WileyCDA/WroxTitle/Beginning-Cryptography- with-Java.productCd-0764596330.html • Resoluções da ICP-Brasil em vigor – http://www.iti.gov.br/twiki/bin/view/Certificacao/DocIcp