certificados digitais x509
TRANSCRIPT
Certificados Digitais
Natanael FonsecaArquiteto 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çõesPara 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 PETROBRAShttp://icp-brasil.certisign.com.br/repositorio/dpc/AC_PETROBRAS/DPC_AC_PETROBRAS_v5.0.pdf (Vide item 4.4.11)
• CERTSIGNhttp://icp-brasil.certisign.com.br/repositorio/dpc/AC_Certisign_RFB/DPC_AC_Certisign_RFB_v4.0.pdf (Vide item 2.8.4.1)
• SINCORhttp://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)
• PRODEMGEhttp://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 OCSPCARACTERÍSTICAS CRL OCSP
Cadeia de ConfiançaDisponível localmente nas listas, sendo um arquivo para cada AC.
Não necessita de acesso a cadeia, o servidor OCSP fica responsável pela atualização da cadeia de confiança.
Recurso de Rede
Necessário acesso a internet para download dos arquivos LCR. Quanto maior a taxa de atualizações, maior a necessidade de banda disponível.
Necessário o acesso a internet. Requisições request/response com resposta quase imediata.
Recursos de Armazenamento em
Disco Rígido
Necessário espaço em disco disponível para armazenamento dos arquivos. Tamanho total pode variar de acordo com a quantidades de ACs contempladas.
Não é necessário armazenamento em disco algum.
Recursos computacionais
Necessário acesso a todos os registros de todas as listas da cadeia de confiança. Consumo alto de recursos computacionais.
Consumo quase zero de recursos, somente requisição request/response.
Lógica de validaçãoAcesso de forma recursiva a cadeia de confiança, arquivo por arquivo.
Requisição request/response com resposta quase imediata.
Confiabilidade
Necessário atualização constante das listas. Existe a possibilidade de um certificado estar revogado, porém a lista não ter sido atualizada a tempo, botando em risco a confiabilidade da assinatura.
ACs responsáveis pela manutenção e atualização dos servidores OCSP. Muito improvável ter o serviço estar indisponível ou ter dados desatualizados.
Disponibilidade no mercado
Primeiro modelo de validação, disponível por praticamente todas as ACs.
Tecnologia mais recente. Depende da AC ter 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