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
- Tecnologia da informação X.509 - Interconexão de sistemas abertos - O diretório: estruturas de chave pública e certificado de atributo
- Patrick Huber: Estrutura e função das infraestruturas de chave pública. GRIN Verlag, Munich 2018, ISBN 978-3-668-80088-5 .
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
- ↑ 14: 00-17: 00: ISO / IEC 9594-8: 2017. Recuperado em 3 de julho de 2019 .