X.509

X.509 é um padrão ITU-T para uma infraestrutura de chave pública para a criação de certificados digitais . O padrão foi atualizado pela última vez como ISO / IEC 9594-8 em maio de 2017. O padrão especifica os seguintes tipos de dados: certificado de chave pública , certificado de atributo , Lista de Revogação de Certificado (CRL) e Lista de Revogação de Certificado de Atributo (ACRL). Na comunicação eletrônica, os certificados X.509 são usados ​​com as versões TLS de vários protocolos de transmissão, como B. ao acessar páginas da web com o protocolo HTTPS , ou para assinar e criptografar e-mails de acordo com o padrão S / MIME .

história

O X.509 foi lançado pela primeira vez em 1988. O desenvolvimento do X.509 começou em conexão com o padrão X.500 , que nunca foi totalmente implementado. O X.509 usa um sistema hierárquico estrito de autoridades de certificação confiáveis ( autoridade de certificação inglesa , CA ) antes que os certificados sejam emitidos. Este princípio está em contraste com o modelo Web-of-Trust , que representa um gráfico e não apenas uma árvore e onde todos podem "assinar" um certificado e, assim, certificar sua autenticidade (ver, por exemplo, OpenPGP ).

A versão 3 de X.509 (X.509v3) inclui a flexibilidade de ser expandida com perfis. O IETF desenvolveu o perfil mais importante, Certificado PKIX e Perfil CRL , ou “PKIX” para breve, como parte do RFC 3280 , atualmente RFC 5280 . O termo “certificado X.509” refere-se principalmente a ele.

Certificados

Um certificado digital emitido por uma autoridade de certificação está sempre vinculado a um "Nome distinto" ou um "Nome alternativo", como um endereço de e-mail ou uma entrada DNS no sistema X.509 .

Quase todos os navegadores da web contêm uma lista pré-configurada de autoridades de certificação confiáveis ​​em cujos certificados X.509 o navegador confia. Certificados SSL são freqüentemente usados ​​coloquialmente .

X.509 também contém um padrão por meio do qual os certificados podem ser invalidados novamente pela autoridade de certificação se sua segurança não for mais fornecida (por exemplo, após a chave privada para assinatura de e-mails se tornar publicamente conhecida ). A CA pode levar a certificados inválidos em CRL ( lista de revogação de certificados , apenas CRL ). No entanto, a verificação automática se um certificado agora faz parte de uma lista de revogação não é ativada por padrão em todos os programas que aceitam certificados X.509.

Estrutura de um certificado X.509 v3

  • certificado
    • versão
    • número de série
    • ID do algoritmo
    • Expositores
    • validade
      • de
      • para
    • Portador de certificado
    • Informações da chave do detentor do certificado
      • Algoritmo de chave pública
      • Chave pública do titular do certificado
    • ID exclusivo do emissor (opcional)
    • ID exclusivo do proprietário (opcional)
    • Extensões
      • ...
  • Algoritmo de assinatura de certificado
  • Assinatura do certificado

O emissor e o detentor do certificado são caracterizados por uma série de atributos:

  • Nome comum ( CN)
  • Organização ( O)
  • Unidade organizacional ( OU)
  • País / Região ( C)
  • Estado ( ST)
  • Local ( L)

O emissor e o ID do proprietário foram introduzidos na versão 2 e as extensões na versão 3.

Extensões

As extensões se tornaram uma parte muito importante de um certificado. As extensões têm a seguinte subestrutura:

  • ID de extensão
  • Sinalizar (crítico / não crítico)
  • valor

Cada ramal possui um ID específico. Os sinalizadores são usados ​​para introduzir gradualmente uma nova extensão. Novas extensões são marcadas como acríticas no início. Uma implementação que encontra uma extensão não crítica desconhecida pode ignorá-la. No entanto, se uma extensão for definida como crítica ao longo do tempo após testes suficientes, um certificado com uma extensão crítica desconhecida deve ser considerado inválido. Exemplos de extensões são

  • KeyUsage: indica o aplicativo para o qual este certificado foi emitido. Um certificado CA deve ter sido inserido aqui, por exemplo, keyCertSign e CRLsign .
  • BasicConstraints: A confiança de transitividade é impossível sem essa extensão. As restrições básicas são:
    • CA: indica se o certificado pertence a uma autoridade de certificação. Em uma cadeia de certificados, todos os certificados, exceto o da última instância (o usuário / servidor), devem ser marcados como CA.
    • PathLen: especifica o comprimento máximo da cadeia de certificação.

Extensões de nome de arquivo para certificados

As extensões de nome de arquivo comuns para certificados X.509 são:

  • .CER- Certificado codificado DER ou Base64
  • .CRT - Certificado codificado DER ou Base64
  • .CSR - Solicitação de certificação codificada em Base64 da chave pública (além de outros metadados do proprietário) para uma CA, entre "----- BEGIN CERTIFICATE REQUEST -----" e "----- END CERTIFICATE REQUEST - --- - "
  • .DER- Certificado com código DER
  • .P12- PKCS # 12, pode conter certificados públicos e chaves privadas (protegidas por senha).
  • .P7B - Por favor, consulte .p7c
  • .P7C - Estrutura de dados assinada PKCS # 7 sem conteúdo de dados, apenas com certificado (s) ou lista (s) de revogação de certificado (s)
  • .PEM- Certificado codificado em Base64 , entre "----- BEGIN CERTIFICATE -----" e "----- END CERTIFICATE -----"
  • .PFX - Por favor, consulte .p12

PKCS # 7 é um padrão para assinatura e criptografia de dados. Uma vez que o certificado é necessário para verificar os dados assinados, ele pode ser colocado na estrutura “SignedData”. Um .p7carquivo é o caso especial de um arquivo que não contém nenhum dado a ser assinado, mas apenas a estrutura "SignedData".

O PKCS # 12 evoluiu do padrão PFX (Personal Information eXchange) e é usado para trocar chaves públicas e privadas em um arquivo comum.

Um -file pode conter certificados e / ou chaves privadas, que são delimitadas pelas linhas BEGIN / END correspondentes. .PEM

Exemplo de um certificado X.509

Representação de texto de um certificado digital baseado em X.509v3 (versão 3). (A estrutura é baseada no ASN.1 .):

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
        Signature Algorithm: md5WithRSAEncryption
        Issuer: C=AT, ST=Steiermark, L=Graz, O=TrustMe Ltd, OU=Certificate Authority, CN=CA/[email protected]
        Validity
            Not Before: Oct 29 17:39:10 2000 GMT
            Not After : Oct 29 17:39:10 2001 GMT
        Subject: C=AT, ST=Vienna, L=Vienna, O=Home, OU=Web Lab, CN=anywhere.com/[email protected]
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (1024 bit)
                Modulus (1024 bit):
                    00:c4:40:4c:6e:14:1b:61:36:84:24:b2:61:c0:b5:
                    d7:e4:7a:a5:4b:94:ef:d9:5e:43:7f:c1:64:80:fd:
                    9f:50:41:6b:70:73:80:48:90:f3:58:bf:f0:4c:b9:
                    90:32:81:59:18:16:3f:19:f4:5f:11:68:36:85:f6:
                    1c:a9:af:fa:a9:a8:7b:44:85:79:b5:f1:20:d3:25:
                    7d:1c:de:68:15:0c:b6:bc:59:46:0a:d8:99:4e:07:
                    50:0a:5d:83:61:d4:db:c9:7d:c3:2e:eb:0a:8f:62:
                    8f:7e:00:e1:37:67:3f:36:d5:04:38:44:44:77:e9:
                    f0:b4:95:f5:f9:34:9f:f8:43
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Alternative Name:
                email:[email protected]
            Netscape Comment:
                mod_ssl generated test server certificate
            Netscape Cert Type:
                SSL Server
    Signature Algorithm: md5WithRSAEncryption
        12:ed:f7:b3:5e:a0:93:3f:a0:1d:60:cb:47:19:7d:15:59:9b:
        3b:2c:a8:a3:6a:03:43:d0:85:d3:86:86:2f:e3:aa:79:39:e7:
        82:20:ed:f4:11:85:a3:41:5e:5c:8d:36:a2:71:b6:6a:08:f9:
        cc:1e:da:c4:78:05:75:8f:9b:10:f0:15:f0:9e:67:a0:4e:a1:
        4d:3f:16:4c:9b:19:56:6a:f2:af:89:54:52:4a:06:34:42:0d:
        d5:40:25:6b:b0:c0:a2:03:18:cd:d1:07:20:b6:e5:c5:1e:21:
        44:e7:c5:09:d2:d5:94:9d:6c:13:07:2f:3b:7c:4c:64:90:bf:
        ff:8e

literatura

Links da web

  • RFC 2459 (certificado de infraestrutura de chave pública da Internet X.509 e perfil CRL, obsoleto por meio de RFC 3280 )
  • RFC 3280 (Internet X.509 Public Key Infrastructure, Certificate and CRL Profile, Update RFC 4325 , Update RFC 4630 , obsoleto through RFC 5280 )
  • RFC 5280 (certificado de infraestrutura de chave pública da Internet X.509 e perfil de lista de revogação de certificado (CRL))

Evidência individual

  1. 14: 00-17: 00: ISO / IEC 9594-8: 2017. Recuperado em 3 de julho de 2019 .