E
rn
a
n
d
es
PKIX Certificate and CRL Profile RFC 5280 Maio de 2008
OBS: A presente tradu¸c˜ao n˜ao oficial da (RFC5280) tem como finalidade facilitar o estudo e o entendimento da Norma.
Network Working Group D. Cooper
Request for Comments: 5280 NIST
Obsoletes: 3280, 4325, 4630 S. Santesson
Category: Standards Track Microsoft
S. Farrell Trinity College Dublin S. Boeyen Entrust R. Housley Vigil Security W. Polk NIST May 2008
Tradu¸c˜ao para o Portuguˆes
Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
E
rn
a
n
d
es
PKIX Certificate and CRL Profile RFC 5280 Maio de 2008
Estado do Documento
Este documento especifica o protocolo padr˜ao Internet a ser seguido para a Comunidade Internet, e solicita discuss˜ao e sugest˜oes para sua melhoria. Consulte a edi¸c˜ao atual do documento “Internet Official Protocol Standards” (STD 1) para obter a situa¸c˜ao de padro-niza¸c˜ao e o estado do presente protocolo. A distribui¸c˜ao deste documento ´e ilimitado. Resumo
Este documento define os perfis para o certificado X.509 v3 e a lista de certificados revo-gados (LCR) X.509.v2 para uso na Internet. A introdu¸c˜ao fornece uma vis˜ao geral dessa abordagem e modelo. O formato do certificado X.509 v3 ´e descrito em detalhes, com in-forma¸c˜oes adicionais sobre seu formato e a semˆantica dos formul´arios de nome Internet. S˜ao descritas as extens˜oes padr˜ao do certificado e duas extens˜oes espec´ıficas da Internet.
´
E especificado o conjunto exigido de extens˜oes. S˜ao descritos detalhes do formato da LCR X.509 v2, juntamente com as extens˜oes padr˜ao e aquelas espec´ıficas da Internet. ´E descrito um algoritmo para valida¸c˜ao do caminho de certifica¸c˜ao X.509. Nos apˆendices s˜ao forneci-dos um m´odulo ASN.1 e exemplos.
E
rn
a
n
d
es
PKIX Certificate and CRL Profile RFC 5280 Maio de 2008
Sum´
ario
1 Introdu¸c˜ao 6
2 Requisitos e Pressupostos 8
2.1 Comunica¸c˜ao e Topologia . . . 8
2.2 Crit´erio de Acessibilidade . . . 8
2.3 Expectativas dos Usu´arios . . . 9
2.4 Expectativas dos Administradores . . . 9
3 Vis˜ao Geral do Modelo 9 3.1 Vers˜ao 3 do Certificado X.509 . . . 10
3.2 Caminhos de certifica¸c˜ao e Confian¸ca . . . 11
3.3 Revoga¸c˜ao . . . 13
3.4 Protocolos Operacionais . . . 14
3.5 Protocolos de Gerenciamento . . . 15
4 Perfil do Certificado e das Extens˜oes do Certificado 16 4.1 Campos B´asicos do Certificado . . . 16
4.1.1 Campos do Certificado . . . 17 4.1.1.1 tbsCertificate . . . 17 4.1.1.2 signatureAlgorithm . . . 17 4.1.1.3 signatureValue . . . 18 4.1.2 TBSCertificate . . . 18 4.1.2.1 Version . . . 18 4.1.2.2 Serial Number . . . 19 4.1.2.3 Signature . . . 19 4.1.2.4 Issuer . . . 19 4.1.2.5 Validity . . . 21 4.1.2.5.1 UTCTime . . . 22 4.1.2.5.2 GeneralizedTime . . . 22 4.1.2.6 Subject . . . 22
4.1.2.7 Subject Public Key Info . . . 24
4.1.2.8 Unique Identifiers . . . 24
4.1.2.9 Extensions . . . 24
4.2 Extens˜oes do Certificado . . . 24
4.2.1 Extens˜oes Padr˜ao . . . 25
4.2.1.1 Authority Key Identifier . . . 25
4.2.1.2 Subject Key Identifier . . . 26
4.2.1.3 Key Usage . . . 27
4.2.1.4 Certificate Policies . . . 29
4.2.1.5 Policy Mappings . . . 32
4.2.1.6 Subject Alternative Name . . . 32
4.2.1.7 Issuer Alternative Name . . . 35
4.2.1.8 Subject Directory Attributes . . . 35
4.2.1.9 Basic Constraints . . . 35
4.2.1.10 Name Constraints . . . 36
4.2.1.11 Policy Constraints . . . 38
4.2.1.12 Extended Key Usage . . . 39
E
rn
a
n
d
es
4.2.1.14 Inhibit anyPolicy . . . 42
4.2.1.15 Freshest CRL (Delta CRL Distribution Point) . . . 43
4.2.2 Extens˜oes Privadas Internet . . . 43
4.2.2.1 Authority Information Access . . . 44
4.2.2.2 Subject Information Access . . . 45
5 Perfil da LCR e das Extens˜oes da LCR 47 5.1 Campos da LCR . . . 49
5.1.1 Campos do CertiticateList . . . 49
5.1.1.1 tbsCertList . . . 49
5.1.1.2 signatureAlgorithm . . . 50
5.1.1.3 signatureValue . . . 50
5.1.2 Certificate List “A Ser Assinado” . . . 50
5.1.2.1 Version . . . 51 5.1.2.2 Signature . . . 51 5.1.2.3 Issuer Name . . . 51 5.1.2.4 This Update . . . 51 5.1.2.5 Next Update . . . 51 5.1.2.6 Revoked Certificates . . . 52 5.1.2.7 Extens˜oes . . . 52 5.2 Extens˜oes da LCR . . . 52
5.2.1 Authority Key Identifier . . . 53
5.2.2 Issuer Alternative Name . . . 53
5.2.3 CRL Number . . . 53
5.2.4 Delta CRL Indicator . . . 54
5.2.5 Issuing Distribution Points . . . 56
5.2.6 Freshest CRL (Ponto de Distribui¸c˜ao de LCR delta) . . . 58
5.2.7 Authority Informatioin Access . . . 58
5.3 Extens˜oes da Entrada da LCR . . . 59
5.3.1 Reason Code . . . 60
5.3.2 Invalidity Date . . . 60
5.3.3 Certificate Issuer . . . 61
6 Valida¸c˜ao de Caminho de Certifica¸c˜ao 61 6.1 Valida¸c˜ao B´asica de Caminho . . . 62
6.1.1 Entradas . . . 64
6.1.2 Inicializa¸c˜ao . . . 66
6.1.3 Processamento B´asico de Certificado . . . 68
6.1.4 Prepara¸c˜ao para o Certificado i+1 . . . 72
6.1.5 Procedimento de Encerramento . . . 74
6.1.6 Sa´ıdas . . . 75
6.2 Uso do Algoritmo de Valida¸c˜ao de Caminho . . . 75
6.3 Valida¸c˜ao de LCR . . . 76
6.3.1 Entradas de Revoga¸c˜ao . . . 76
6.3.2 Processamento de LCR . . . 77
7 Regras de Processamento para Nomes Internacionalizados 79 7.1 Nomes Internacionalizados em Distinguished Names . . . 80
E
rn
a
n
d
es
7.3 Nomes de Dom´ınio Internacionalizados em Distinguished Names . . . 82
7.4 Identificadores de Recurso Internacionalizados . . . 82
7.5 Endere¸cos de Correio Eletrˆonico Internacionalizados . . . 83
8 Considera¸c˜oes de Seguran¸ca 84 9 Considera¸c˜oes IANA 87 10 Agradecimento 87 11 Referˆencias 88 11.1 Referˆencias Normativas . . . 88
11.2 Referˆencias Informativas . . . 89
Apˆendice A. Estruturas e OIDs em Pseudo-ASN.1 91 A.1 M´odulo Explicitamente Rotulado, sintaxe 1988 . . . 91
A.2 M´odulo Implicitamente Rotulado, sintaxe 1988 . . . 105
Apˆendice B. Notas ASN.1 112 Apˆendice C. Exemplos 114 C.1 Certificado “auto-assinado” RSA . . . 115
C.2 Certificado de Entidade Final Usando RSA . . . 118
C.3 Certificado de Entidade Final Usando DSA . . . 121
C.4 Lista de Certificados Revogados . . . 125
Endere¸co dos Autores 127
Declara¸c˜ao Plena de Direitos Autorais 128
E
rn
a
n
d
es
1
Introdu¸c˜
ao
A presente especifica¸c˜ao ´e parte do conjunto de padr˜oes para o X.509 - Infraestrutura de Chaves P´ublicas (ICP) Internet.
A especifica¸c˜ao define perfis do formato e da semˆantica de certificados, e listas de certifi-cados revogados(LCRs) para a ICP Internet. S˜ao descritos procedimentos necess´arios para o processamento dos caminhos de certifica¸c˜ao no ambiente da Internet. Finalmente, nos apˆendices, s˜ao fornecidos m´odulos em ASN.1 para todas as estruturas de dados definidas ou referenciadas.
A se¸c˜ao 2 descreve os requisitos de ICP na Internet e os pressupostos que se relacionam ao escopo deste documento. A Se¸c˜ao 3 apresenta o modelo da arquitetura e descreve sua rela¸c˜ao com a norma IETF anterior, assim como com as normas ISO/IEC/ITU-T. Em particular, ´e descrita a rela¸c˜ao existente entre esta especifica¸c˜ao e aquelas contidas nos documentos PEM IETF e ISO/IEC/ITU-T X.509.
Se¸c˜ao 4 define perfis para o certificado X.509 v3, e sec¸c˜ao 5 define perfis para a LCR X.509 v2. Os perfis incluem a identifica¸c˜ao de extens˜oes ISO/IEC/ITU-T e extens˜oes ANSI que podem ser ´uteis na ICP Internet. Os perfis s˜ao apresentados em Syntax Notation One (ASN.1) de 1988, em vez da sintaxe ASN.1 de 1997, utilizada nas normas mais recentes do ISO/IEC/ITU-T.
Se¸c˜ao 6 inclui procedimentos para valida¸c˜ao do caminho de certifica¸c˜ao. Estes procedimen-tos baseiam-se nas defini¸c˜oes do ISO/IEC/ITU-T. ´E NECESS ´ARIO que as implementa¸c˜oes obtenham os mesmos resultados, embora n˜ao seja requerido que estas utilizem os procedi-mentos especificados.
Os procedimentos para identifica¸c˜ao e codifica¸c˜ao de chave p´ublica e assinaturas s˜ao defi-nidos em [RFC3279], [RFC4055] e [RFC4491]. N˜ao ´e obrigat´orio que as implementa¸c˜oes desta especifica¸c˜ao usem quaisquer algoritmo criptogr´afico. Embora, as implementa¸c˜oes em conformidade com esta especifica¸c˜ao, e que usam os algoritmos identificados em [RFC3279], [RFC4055, e [RFC4491], DEVEM identificar e codificar os materiais de chave p´ublica e as-sinaturas como descrito naquelas especifica¸c˜oes.
Finalmente, s˜ao fornecidos trˆes apˆendices para ajudar nas implementa¸c˜oes. O Apˆendice A cont´em todas as estruturas ASN.1 definidas ou referenciadas nesta especifica¸c˜ao. Como informado acima, o material ´e apresentado na vers˜ao ASN.1 de 1988. O apˆendice B con-t´em notas sobre caracter´ısticas menos conhecidas da nota¸c˜ao ASN.1 utilizadas no presente documento. O Apˆendice C cont´em exemplos de certificados e LCR em conformidade com esta especifica¸c˜ao.
Esta especifica¸c˜ao torna obsoleta a [RFC3280]. As diferen¸cas entre a presente especifica¸c˜ao e aquela contida na [RFC3280] s˜ao listadas abaixo:
∗ Se¸c˜ao 7 especifica o suporte avan¸cado a nomes internacionalizados, com regras para codifica¸c˜ao e satisfazem os Nomes de Dom´ınios Internacionalizados, os Identificadores de Recursos Internacionalizados (IRIs), e nomes distintos. Estas regras est˜ao alinha-das com regras de compara¸c˜ao estabelecialinha-das em RFC atualizaalinha-das, incluindo entre estas, [RFC3490], [RFC3987], e [RFC4518].
E
rn
a
n
d
es
∗ As se¸c˜oes 4.1.2.4 e 4.1.2.6 incorporam as condi¸c˜oes para a continua¸c˜ao de uso do legado dos esquemas de codifica¸c˜ao especificados na [RFC4630]. Quando utilizado por ICP j´a estabelecida, a transi¸c˜ao para UTF8String poderia causar nega¸c˜ao de servi¸co baseado em falhas na cadeia de nomes ou processamento incorreto de restri¸c˜oes de nomes. ∗ A se¸c˜ao 4.2.1.4 da [RFC3280], que especifica a extens˜ao de certificado
privateKeyU-sagePeriod, mas n˜ao incentiva o uso, foi removida. O uso dessa extens˜ao padr˜ao ISO nem ´e incentivada, nem recomendada para ser utilizada em ambientes de ICP Internet.
∗ A se¸c˜ao 4.2.15 recomenda que a extens˜ao policy mappigns seja marcada como cr´ıtica. A [RFC3280] recomendava que esta extens˜ao fosse marcada como n˜ao cr´ıtica.
∗ A se¸c˜ao 4.2.1.11 recomenda a marca¸c˜ao da extens˜ao policy constraints como cr´ıtica. A [RFC3280] permitia que esta extens˜ao fosse marcada como cr´ıtica ou n˜ao cr´ıtica. ∗ A extens˜ao Authority Information Access (AIA) da LCR, como especificada em
[RFC4325], foi adicionada na se¸c˜ao 5.2.7.
∗ A se¸c˜ao 5.2 e 5.3 esclarece as regra para o tratamento de extens˜oes n˜ao reconhedidas da LCR, assim como extens˜oes de entrada da LCR, respectivamente.
∗ A se¸c˜ao 5.3.2 da [RFC3280], que especificava a extens˜ao holdInstructionCode de en-trada de LCR, foi removida.
∗ O algoritmo de valida¸c˜ao de caminho especificado na se¸c˜ao 6, n˜ao controla mais a criticidade das extens˜oes de pol´ıticas de certificado nas cadeias de certificados. Na [RFC3280], esta informa¸c˜ao era retornada para um terceiro confi´avel.
∗ A se¸c˜ao de Considera¸c˜oes de Seguran¸ca trata dos riscos relacionados a dependˆencias circulares causados pelo uso de esquemas https ou similares nos pontos de distri-bui¸c˜ao de LCR, acesso a informa¸c˜ao de autoridade (AIA), ou extens˜oes de acesso a informa¸c˜oes de sujeito (SIA).
∗ A se¸c˜ao de Considera¸c˜oes de Seguran¸ca trata de riscos relacionados a ambiguidade de nomes.
∗ A se¸c˜ao de Considera¸c˜oes de Seguran¸ca referencia a [RFC4210] quanto a procedimen-tos para tratar mudan¸cas de opera¸c˜oes de AC.
Os m´odulos ASN.1 contidos no apˆendice A n˜ao foram modificados, exceto pelo conte´udo de ub-emailaddress-length que foi mudado de 128 para 255, para se alinhar ao PKCS #9 [RFC2985].
As palavras-chave“DEVE”,“N ˜AO DEVE”,“NECESS ´ARIO”,“DEVER ´A”,“N ˜AO DEVER ´A”,
“DEVERIA”, “N ˜AO DEVERIA”, “RECOMENDADO”, “PODE”, e “OPCIONAL”
contan-tes no presente documento (em letras mai´usculas, como mostrado), devem ser interpretados como descritas em [RFC2119].
E
rn
a
n
d
es
2
Requisitos e Pressupostos
O objetivo desta especifica¸c˜ao ´e desenvolver um perfil para facilitar o uso de certificados X.509 dentro de aplica¸c˜oes de Internet para as comunidades que pretendem fazer uso da tecnologia X.509. Tais aplica¸c˜oes podem incluir WWW, correio eletrˆonico, WWW eletrˆo-nica, autentica¸c˜ao de usu´ario, e IPsec. A fim de aliviar alguns dos obst´aculos ao uso de certificados X.509, este documento define um perfil para promover o desenvolvimento de sistemas de gerenciamento de certificado, o desenvolvimento de ferramentas de aplica¸c˜ao e a interoperabilidade determinada pela pol´ıtica.
Algumas comunidades ter˜ao de complementar ou substituir possivelmente, este perfil, a fim de satisfazer as exigˆencias de dom´ınios de aplica¸c˜oes especializadas ou em ambientes com autoriza¸c˜ao adicional, garantia, ou requisitos operacionais. No entanto, para aplica¸c˜oes b´asicas, representa¸c˜oes comuns de atributos usados frequentemente s˜ao definidos para que os desenvolvedores de aplicativos possam obter as informa¸c˜oes necess´arias sem levar em conta o emissor de um certificado especial ou a Lista de Certificados Revogados (LCR). O usu´ario de certificado deveria rever a pol´ıtica de certificado gerado pela Autoridade Cer-tificadora (AC) antes de confiar nos servi¸cos de autentica¸c˜ao ou n˜ao-rep´udio associados com a chave p´ublica contida em determinado certificado. Por isso, esta norma n˜ao prescreve regras juridicamente vinculativas ou deveres.
Com o surgimento de ferramentas adicionais para o tratamento de autoriza¸c˜ao suplemen-tar e gest˜ao de atributos, tais como os certificados de atributos, pode se tornar apropriado limitar o conjunto de atributos de autentica¸c˜ao inclusos no certificado. Essas ferramentas adicionais de gest˜ao podem fornecer m´etodos mais adequados para transmiss˜ao de muitos atributos autenticados.
2.1
Comunica¸c˜
ao e Topologia
Usu´arios de certificados ir˜ao operar em uma ampla gama de ambientes com rela¸c˜ao a sua topologia de comunica¸c˜ao, especialmente os usu´arios de correio eletrˆonico seguro. Este perfil suporta usu´arios sem banda larga, em tempo real, conectividade IP, ou alta disponi-bilidade de conex˜ao. Al´em disso, o perfil permite a presen¸ca de firewall ou qualquer outro tipo de filtragem de comunica¸c˜ao.
Este perfil n˜ao considera a implanta¸c˜ao de um sistema de diret´orio X.500 [X.500] ou de um Lightweight Directory Access Protocol (LDAP) [RFC4510]. O perfil n˜ao pro´ıbe a utiliza¸c˜ao do servi¸co de diret´orio X.500 ou de um diret´orio LDAP; desta forma, qualquer meio de distribui¸c˜ao de certificados e listas de certificados revogados (LCRs) pode ser usado.
2.2
Crit´
erio de Acessibilidade
O objetivo da Infraestrutura de Chaves P´ublica (PKI) ´e atender as necessidades de fun¸c˜oes determin´ısticas de identifica¸c˜ao automatizada, autentica¸c˜ao e controle de acesso, e autori-za¸c˜ao. O suporte para esses servi¸cos determina os atributos contidos no certificado, bem como a informa¸c˜ao de controle auxiliar contidas no certificado, tais como dados de pol´ıticas e restri¸c˜oes quanto ao caminho de certifica¸c˜ao.
E
rn
a
n
d
es
2.3
Expectativas dos Usu´
arios
Os usu´arios da ICP Internet s˜ao pessoas e processos que usam o software cliente e s˜ao os sujeitos nomeados nos certificados. Estes usos incluem destinat´arios e remetentes de correio eletrˆonico, clientes de navegadores WWW, servidores WWW, e o gerenciador de chave para IPsec dentro de um roteador. Este perfil reconhece as limita¸c˜oes das plataformas usadas por esses usu´arios, assim como as limita¸c˜oes em termos de sofistica¸c˜ao e cuidados implementados pelos pr´oprios usu´arios. Isso se manifesta na responsabilidade m´ınima sobre a configura¸c˜ao do usu´ario (por exemplo, chaves confi´aveis de AC, regras), as limita¸c˜oes expl´ıcitas de uso da plataforma dentro do certificado, as restri¸c˜oes quanto ao caminho de certifica¸c˜ao para proteger o usu´ario de a¸c˜oes maliciosas, e aplicativos que automatizam fun¸c˜oes de valida¸c˜ao de forma sensata.
2.4
Expectativas dos Administradores
Tal como acontece com as expectativas dos usu´arios, o perfil para ICP Internet ´e estru-turado de maneira a apoiar os indiv´ıduos que geralmente operam as ACs. Fornecer aos administradores op¸c˜oes ilimitadas aumenta as chances de um erro sutil de um adminis-trador resulte em comprometimento amplo. Al´em disso, as escolhas ilimitadas aumentam muito a complexidade do software que processa e valida os certificados criados pela AC.
3
Vis˜
ao Geral do Modelo
A seguir ´e uma vis˜ao simplificada do modelo de arquitetura assumido pela infra-estrutura de chave p´ublica usando X.509 (PKIX) especifica¸c˜oes.
Os componentes deste modelo s˜ao:
Entidade final: usu´ario de certificados da ICP e/ou sistema usu´ario final, representado no campo sujeito (subject) do certificado;
AC: autoridade certificadora;
AR: autoridade de registro, ou seja, ´e um sistema opcional para o qual a AC delega determinadas fun¸c˜oes de gest˜ao;
Emissor de LCR: sistema que gera e assina LCRs, e
Reposit´orio: sistema ou conjunto de sistemas distribu´ıdos que armazena certificados e LCRs e que serve como meio de distribui¸c˜ao dos certificados e LCRs para as entidades finais.
As ACs s˜ao respons´aveis por indicar o status de revoga¸c˜ao dos certificados que emitem. A informa¸c˜ao sobre o estado de revoga¸c˜ao pode ser fornecida atrav´es do Online Certificate Status Protocol (OCSP) [RFC2560], atrav´es de Listas de Certificados Revogados (LCR), ou algum outro mecanismo. Em geral, quando as informa¸c˜oes de status de revoga¸c˜ao s˜ao fornecida por CRLs, a AC tamb´em ´e o emissor da CRL. No entanto, uma AC pode delegar a responsabilidade pela emiss˜ao das LCRs para uma entidade diferente.
E
rn
a
n
d
es
Note-se que uma Autoridade de Atributos (AA) tamb´em pode optar por delegar a publi-ca¸c˜ao de suas LCRs para um emissor de LCR.
+---+
| R | +---+
| e | <---> | Entidade Final |
| p | Transa¸c~oes +---+
| o | operacionais ^
| s | e transa¸c~oes de | Transa¸c~oes de
| i | gerenciamento | Gerenciamento Usu´arios
| t | v da ICP | ´o | ======================= +--+---+ ====================== | r | ^ ^ entidades de | i | | | gerenciamento da | o | v | ICP | | +---+ | | d | <---| AR |<----+ | | e | Publica certificado +---+ | | | | v v | C | +---+ | e | <---| AC | | r | Publica certificado +---+ | t | Publica LCR ^ ^ | | +---+ | | gerenciamento
| & | <---|Emissor de LCR|<---+ | de transa¸c~oes
| | Publica LCR +---+ v
| L | +---+
| C | | AC |
| R | +---+
+---+
Figura 1: Entidades da ICP
3.1
Vers˜
ao 3 do Certificado X.509
Os usu´arios de uma chave p´ublica necessitam ter confian¸ca de que a chave privada as-sociada ´e de propriedade do sujeito remoto correto (pessoa ou sistema), com a qual um determinado mecanismo de criptografia ou assinatura digital ser´a utilizado. Esta confian¸ca ´e obtido atrav´es da utiliza¸c˜ao de certificados de chave p´ublica, que s˜ao estruturas de dados que relacionam os valores de chave p´ublica a indiv´ıduos. Esta rela¸c˜ao de confian¸ca ocorre a partir da utiliza¸c˜ao de AC confi´avel que assina digitalmente cada certificado. O AC pode basear esta afirma¸c˜ao em meios t´ecnicos (por exemplo, a prova da posse atrav´es de um protocolo de desafia e resposta), apresenta¸c˜ao da chave privada, ou em um afirma¸c˜ao do sujeito. Um certificado tem uma vida ´util v´alida limitada, o que est´a indicado no seu con-te´udo assinado. Pelo fato da assinatura do certificado e o seu per´ıodo de validade poderem ser verificados de maneira independente pelo sistema usu´ario, que faz uso da tecnologia, os certificados podem ser distribu´ıdos atrav´es de meios de comunica¸c˜ao e sistemas de servi-dores n˜ao confi´aveis , e podem ser armazenados, de forma insegura, em cache nos sistemas
E
rn
a
n
d
es
usu´arios.
O ITU-T X.509 (anteriormente CCITT X.509) ou ISO/IEC 9594-8, que foi publicado pela primeira vez em 1988, como parte das recomenda¸c˜oes X.500 para diret´orio, define o for-mato de certificado padr˜ao [X.509]. O forfor-mato do certificado no padr˜ao de 1988 ´e chamado vers˜ao 1 (v1) do formato. O X.500 foi revisto em 1993, quando mais dois campos foram adicionados, resultando na vers˜ao 2 (v2) do formato.
A RFC do Internet Privacy Enhanced Mail (PEM), publicada em 1993, incluiu especi-fica¸c˜oes para uma infraestrutura de chaves p´ublicas baseada em certificados X.509 v1 [RFC1422]. A experiˆencia adquirida na tentativa de implantar RFC 1422 deixou claro que os formatos de certificado v1 e v2 eram deficientes em v´arios aspectos. O mais impor-tante, mais campos foram necess´arios para transportar informa¸c˜oes que o projeto do PEM design e a experiˆencia de implementa¸c˜ao tinham considerado necess´ario. Em resposta a estes novos requisitos, a ISO/IEC, ITU-T, e ANSI X9 desenvolveu o X.509 vers˜ao 3 (v3) do formato do certificado. O formato v3 estende o formato v2 incluindo previs˜oes para campos de extens˜ao adicionais. Tipos de extens˜oes particulares podem vir especificados em normas ou pode ser definido e registrado por qualquer organiza¸c˜ao ou comunidade. Em junho de 1996, a padroniza¸c˜ao do formato v3 b´asica foi conclu´ıda [X.509].
A ISO/IEC, ITU-T, e ANSI X9 tamb´em desenvolveram extens˜oes padr˜ao para uso no campo extens˜oes v3 [X.509] [X9.55]. Estas extens˜oes podem transmitir dados como infor-ma¸c˜oes adicionais para identifica¸c˜ao do sujeito, inforinfor-ma¸c˜oes de atributos-chave, inforinfor-ma¸c˜oes pol´ıticas, e restri¸c˜oes para o caminho de certifica¸c˜ao.
ISO / IEC, ITU-T, e ANSI X9 tamb´em desenvolveram extens˜oes padr˜ao para uso no campo extens˜oes v3 [X.509] [X9.55]. Estas extens˜oes podem transmitir dados como informa¸c˜oes adicionais sujeito identifica¸c˜ao, informa¸c˜oes de atributo-chave, informa¸c˜oes pol´ıticas, e res-tri¸c˜oes de caminho de certifica¸c˜ao.
No entanto, as extens˜oes padr˜aoISO/IEC, ITU-T, e ANSI X9 s˜ao muito amplas em sua aplicabilidade. Para desenvolver implementa¸c˜oes interoper´aveis de sistemas X.509 v3 para uso na Internet, ´e necess´ario especificar um perfil para uso das extens˜oes X.509 v3 sob medida para a Internet. ´E o objectivo deste documento, especificar um perfil para aplica¸c˜oes WWW Internet, correio eletrˆonico, e IPsec. Ambientes com requisitos adicionais podem implementar usando esse perfil ou pode substitu´ı-lo.
3.2
Caminhos de certifica¸c˜
ao e Confian¸ca
Um usu´ario de servi¸co de seguran¸ca que exige conhecimento de uma chave p´ublica geral-mente precisa obter e validar o certificado contendo a chave p´ublica utilizada. Se o usu´ario da chave p´ublica n˜ao ´e titular de uma c´opia segura da chave p´ublica da AC que assinou o certificado, o nome da AC, e as informa¸c˜oes relacionadas (como o per´ıodo de validade ou o nome de restri¸c˜oes), ent˜ao ele pode precisar de um certificado adicional para obter a chave p´ublica. Em geral, uma cadeia de m´ultiplos certificados pode se tornar necess´a-rio, compreendendo o certificado do dono da chave p´ublica (a entidade final) assinado por uma autoridade de certifica¸c˜ao, e zero ou mais certificados adicionais de ACs assinados por outras ACs. Tais cadeias, chamadas de caminhos de certifica¸c˜ao, s˜ao necess´arias porque um usu´ario de chave p´ublica s´o ´e inicializado com um n´umero limitado de chaves p´ublicas garantidas pela AC.
E
rn
a
n
d
es
Existem diferentes formas de configura¸c˜ao de ACs que possibilitam aos usu´arios de chaves p´ublicas encontrarem os caminhos de certifica¸c˜ao. Para o PEM, a RFC 1422 foi definido uma estrutura hier´arquica r´ıgida para ACs. Existem trˆes tipos de autoridade certificadora PEM:
(a) Autoridade de Registro de Pol´ıtica de Internet(ARPI): Esta autoridade, operando sob os ausp´ıcios da Internet Society, atua como a raiz da hierarquia de certifica¸c˜ao PEM no n´ıvel 1. Emite certificados apenas para o pr´oximo n´ıvel de autoridades, APC (Autoridade de Pol´ıtica de Certifica¸c˜ao). Todos os caminhos de certifica¸c˜ao come¸cam na ARPI.
(b) Autoridades de pol´ıticas de Certifica¸c˜ao (APC): As APCs est˜ao no n´ıvel 2 da hierarquia, cada APC a ser certificada pelo ARPI. A APC deve estabelecer e pu-blicar uma declara¸c˜ao da sua pol´ıtica com rela¸c˜ao aos usu´arios de certifica¸c˜ao ou autoridades de certifica¸c˜ao subordinadas. APCs distintas visam satisfazer as neces-sidades de usu´arios diferentes. Por exemplo, uma APC (uma APC organizacional) pode apoiar as necessidades gerais de correio eletrˆonico de organiza¸c˜oes comerciais, e outra APC (uma APC de alta confian¸ca) pode ter uma pol´ıtica mais rigorosa, projetada para satisfazer os requisitos legalmente vinculativos de assinatura digital. (c) Autoridades Certificadoras (ACs): ACs est˜ao no n´ıvel 3 da hierarquia e podem tamb´em estar em n´ıveis mais baixos. As de n´ıvel 3 s˜ao certificadas pela APC. As ACs representam, por exemplo, organiza¸c˜oes particulares, unidades organizacionais particulares (por exemplo, departamentos, grupos, se¸c˜oes), ou ´areas geogr´aficas espec´ıficas.
Al´em disso, a RFC 1422, tem uma regra para subordina¸c˜ao de nome, que exige que a AC s´o possa emitir certificados para entidades cujos nomes s˜ao subordinados (na ´arvore de nomea¸c˜ao X.500) para o nome da pr´opria AC. A confian¸ca associada a um caminho de cer-tifica¸c˜ao PEM est´a impl´ıcito no nome APC. A regra de subordina¸c˜ao de nome garante que ACs abaixo da APC sejam sensivelmente restritas ao conjunto de entidades subordinadas que podem certificar (por exemplo, uma AC para uma organiza¸c˜ao s´o pode certificar enti-dades na ´arvore com o nome da organiza¸c˜ao). Sistemas usu´arios de certificado s˜ao capazes de verificar mecanicamente que a regra de subordina¸c˜ao de nome foi seguida.
A RFC 1422 utiliza o formato X.509 certificado v1. As limita¸c˜oes do X.509 v1 tornam necess´ario a imposi¸c˜ao de v´arias restri¸c˜oes estruturais que associam claramente as infor-ma¸c˜oes sobre a pol´ıtica ou restri¸c˜oes quanto a utiliza¸c˜ao dos certificados. Estas restri¸c˜oes incluem:
(a) uma hierarquia top-down pura, na qual todos os caminhos de certifica¸c˜ao come¸cam na ARPI;
(b) uma regra de subordina¸c˜ao de nomes que restringe os nomes de sujeito de AC; e (c) uso do conceito APC, que requer o conhecimento de APCs individuais para serem
inclu´ıdos para verifica¸c˜ao l´ogica da cadeia de certifica¸c˜ao. O conhedimento de APCs individuais ´e necess´ario para determinar se a cadeia pode ser aceita.
Com o X.509 v3, a maioria dos requisitos abordados na RFC 1422 podem ser resolvidos atrav´es das extens˜oes do certificado, sem a necessidade de restringir as estruturas das ACs
E
rn
a
n
d
es
13
utilizadas. Em particular, as extens˜oes do certificado relacionadas com as pol´ıticas de certifica¸c˜ao evitam a necessidade de uso de APCs e as restri¸c˜oes contidas nas extens˜oes torna desnecess´ario o uso das regra subordina¸c˜ao de nome. Como resultado, esta norma suporta uma arquitetura mais flex´ıvel, incluindo:
(a) Os caminhos de certifica¸c˜ao come¸cam com a chave p´ublica de uma Autoridade Certificadora no pr´oprio dom´ınio do usu´ario, ou com a chave p´ublica da ´arvore superior de uma hierarquia. Come¸car com a chave p´ublica de uma Autoridade de Certificadora no dom´ınio do usu´ario tem certas vantagens. Em certos ambientes, o dom´ınio local ´e o mais confi´avel.
(b) Restri¸c˜oes de nomes podem ser impostas atrav´es da inclus˜ao de uma extens˜ao para restri¸c˜ao expl´ıcita de nomes no certificado, mas isso n˜ao ´e requisito.
(c) Extens˜oes de Pol´ıtica e mapeamentos de pol´ıtica substituem o conceito de APC, permitindo um maior grau de automa¸c˜ao. A aplica¸c˜ao pode determinar se o cami-nho de certifica¸c˜ao ´e aceit´avel com base no conte´udo dos certificados, em vez de um conhecimento a priori da APC. Isto permite a automatiza¸c˜ao do processamento do caminho de certifica¸c˜ao.
O X.509 v3 tamb´em inclui uma extens˜ao que identifica o sujeito de um certificado como sendo uma CA ou uma entidade final, reduzindo a dependˆencia de informa¸c˜ao externa exi-gida pelo PEM.
Esta especifica¸c˜ao abrange duas classes de certificados: certificados de AC e certificados de entidade final. Os certificados de AC podem ser divididos em trˆes classes: certificado cru-zado, certificado auto-emitido e certificado auto-assinado. O certificado cruzado ´e aquele no qual o emissor e o sujeito do certificado s˜ao entidades distintas. A certifica¸c˜ao cruzada des-creve uma rela¸c˜ao de confian¸ca entre duas ACs. O certificado auto-emitido ´e aquele no qual o emissor e o sujeito do certificado s˜ao a mesma entidade. A auto-emiss˜ao de certificados ocorre em suporte a mudan¸cas na pol´ıtica ou nas opera¸c˜oes. Certificados auto-assinados s˜ao aqueles nos quais a assinatura de digital pode ser verificada com a chave p´ublica re-lacionada contida no pr´oprio certificado. Certificados auto-assinados s˜ao utilizados para transmitir uma chave p´ublica para uso como in´ıcio de um caminho de certifica¸c˜ao. Certi-ficados de entidade final s˜ao emitidos para aquelas entidades que n˜ao est˜ao autorizadas a emitir certificados.
3.3
Revoga¸c˜
ao
Quando um certificado ´e emitido, ´e esperado que ele seja utilizado durante todo o seu per´ıodo de validade. No entanto, v´arias circunstˆancias podem causar a invalida¸c˜ao do cer-tificado antes da expira¸c˜ao do seu prazo de validade. Tais circunstˆancias incluem a mudan¸ca de nome, mudan¸ca de associa¸c˜ao entre o sujeito e a AC (por exemplo, quando o empregado termina deixa de prestar servi¸cos a uma organiza¸c˜ao), comprometimento ou suspeita de comprometimento da chave privada correspondente. Sob tais circunstˆancias, o AC tem que revogar o certificado.
O X.509 define um m´etodo para revoga¸c˜ao de certificado. Este m´etodo envolve a emiss˜ao peri´odica de uma estrutura de dados assinada, chamada de lista de certificados revogados (LCR) por cada AC da infraestrutura. A LCR ´e uma lista datada com carimbo de tempo que identifica os certificados revogados, assinada pela AC que o emitiu ou por um emissor
E
rn
a
n
d
es
14
de CRL, e disponibilizada gratuitamente em um reposit´orio p´ublico. Cada certificado re-vogado ´e identificado na LCR pelo n´umero de s´erie do certificado. Quando um sistema que faz uso de certifica¸c˜ao, usa um certificado (por exemplo, para verificar a assinatura digital de um usu´ario remoto), o sistema n˜ao verifica somente a assinatura do certificado e sua validade, mas tamb´em adquire uma LCR adequadamente recente e verifica que o n´umero de s´erie do certificado n˜ao na LCR. O significado de “adequadamente recente” pode variar de acordo com a pol´ıtica local, mas isso normalmente remete a LCR emitida mais recen-temente. A nova lista ´e emitida em base regular e peri´odica (por exemplo, a cada hora, diariamente ou semanalmente). Uma entrada ´e adicionada a LCR como parte da pr´oxima atualiza¸c˜ao ap´os a notifica¸c˜ao de revoga¸c˜ao. Uma entrada n˜ao deve ser removido da LCR, at´e que apare¸ca em LCRs regulares emitidas ap´os o per´ıodo de validade do certificado re-vogado.
Uma vantagem deste m´etodo ´e que as CRLs podem ser distribu´ıdas da mesma forma que os certificados propriamente ditos, ou seja, atrav´es de servidores e meios de comunica¸c˜oes n˜ao seguros.
Uma limita¸c˜ao do m´etodo de revoga¸c˜ao por LCR, usando comunica¸c˜oes e servidores n˜ao confi´aveis, ´e que a granularidade do tempo de revoga¸c˜ao ´e limitada ao prazo de emiss˜ao da LCR. Por exemplo, se a revoga¸c˜ao for relatada agora, a revoga¸c˜ao n˜ao ser´a confi´avel ao sistema que faz uso do certificado at´e que todas as LCRs sejam atualizadas conforme o agendamento de emiss˜ao - o que pode ser de at´e uma hora, um dia ou uma semana, dependendo da frequˆencia de emiss˜ao das LCRs.
Tal como acontece com o formato de certificado X.509 v3, a fim de facilitar a interopera-bilidade nas implementa¸c˜oes de v´arios fornecedores, o formato de LCR X.509 v2 tem que ter um perfil adequado ao uso na Internet. Um dos objetivos do presente documento ´e a especifica¸c˜ao deste perfil. No entanto, o perfil n˜ao define os requisitos para emiss˜ao de LCRs. Os formatos de mensagens e protocolos de suporte on-line para notifica¸c˜ao de re-voga¸c˜ao s˜ao definidos em outras especifica¸c˜oes do PKIX. M´etodos de notifica¸c˜ao on-line de revoga¸c˜ao podem ser aplic´aveis, em alguns ambientes, como alternativa para a LCR X.509. A verifica¸c˜ao de revoga¸c˜ao on-line pode reduzir significativamente a latˆencia entre a gera¸c˜ao do relat´orio de revoga¸c˜ao e a sua distribui¸c˜ao aos terceiros confi´aveis. Uma vez que o AC aceite um relat´orio da revoga¸c˜ao, como autˆentico e confi´avel, qualquer consulta ao servi¸co on-line, refletir´a corretamente os impactos da revoga¸c˜ao na valida¸c˜ao do certificado. No en-tanto, estes m´etodos imp˜oem novos requisitos de seguran¸ca: o validador certificado precisa confiar no servi¸co de valida¸c˜ao on-line, enquanto o reposit´orio n˜ao precisa ser confi´avel.
3.4
Protocolos Operacionais
´
E necess´ario um conjunto de protocolos operacionais para entregar os certificados e CRLs (ou informa¸c˜oes de status) aos sistemas clientes que fazem uso de certificado. Torna-se necess´ario provis˜oes para uma variedade de diferentes meios de certificado e entrega de LCR, incluindo procedimentos de distribui¸c˜ao baseados em LDAP, HTTP, FTP e X.500. Os protocolos operacionais que d˜ao suporte a estas fun¸c˜oes s˜ao definidas em outras especi-fica¸c˜oes do PKIX. Estas especiespeci-fica¸c˜oes podem incluir defini¸c˜oes de formatos de mensagem e procedimentos para suportar todos os ambientes operacionais acima referidos, incluindo defini¸c˜oes ou referˆencias para tipos apropriados de conte´udo MIME.
E
rn
a
n
d
es
15
3.5
Protocolos de Gerenciamento
Os protocolos de gerenciamento s˜ao necess´arios para dar suporte `as intera¸c˜oes entre os usu´arios da ICP e as entidades que realizam o seu gerenciamento. Como exemplo, um protocolo de administra¸c˜ao pode ser utilizado entre a AC e um sistema cliente com o qual um par de chave est´a associada, ou entre duas ACs que implementem certifica¸c˜ao cruzada entre si. O conjunto de fun¸c˜oes que, potencialmente, tˆem de ser suportados por protocolos de gest˜ao incluem:
(a) registro: ´E o processo no qual o usu´ario primeiro se faz conhecido pela AC (di-retamente, ou atrav´es de uma AR), ocorre antes da AC emitir o certificado ou certificados para o usu´ario.
(b) inicializa¸c˜ao: Antes do sistema cliente poder operar de forma segura, ´e necess´aria a instala¸c˜ao de materiais essenciais que tˆem a rela¸c˜ao adequada com as chaves armazenadas em outras partes da infra-estrutura. Por exemplo, o cliente tem de ser inicializado de maneira segura com a chave p´ublica e outras informa¸c˜ao garantidas pela AC(s), que ser˜ao utilizadas na valida¸c˜ao dos caminhos de certifica¸c˜ao. Al´em disso, um cliente normalmente tem de ser inicializado com seu pr´oprio par(es) de chave(s).
(c) certifica¸c˜ao: Este ´e o processo no qual a AC emite o certificado de chave p´ublica para o usu´ario, e retorna esse certificado para o sistema cliente do usu´ario e/ou publica o certificado em um reposit´orio.
(d) recupera¸c˜ao de par de chaves: Como op¸c˜ao, os materiais de chave do usu´ario cliente (por exemplo, a chave privada de um usu´ario utilizado para fins de criptografia) pode ser suportado por uma CA ou um sistema de backup de chave. Se um usu´ario precisa recuperar esses materiais de backup de chave (por exemplo, como resultado de uma senha esquecida ou perda do arquivo da cadeia da chave), um protocolo de troca de mensagem on-line protocolo pode ser necess´arios para das suporte a esta a¸c˜ao.
(e) atualiza¸c˜ao de par de chaves: Todos os pares de chaves precisam ser atualizados regularmente, ou seja, substitu´ıdo por um novo par de chaves, e emiss˜ao de novos certificados
(f) solicita¸c˜ao de revoga¸c˜ao: Uma pessoa autorizada avisa uma AC sobre uma uma situa¸c˜ao anormal e solicita a revoga¸c˜ao do certificado.
(g) certifica¸c˜ao cruzada: Duas ACs trocam informa¸c˜oes utilizadas na cria¸c˜ao de um certificado cruzado. Um certificado cruzado ´e um certificado emitido por uma AC para outra AC que cont´em uma chave de assinatura de AC usada na emiss˜ao de certificados.
Note que os protocolos on-line n˜ao s˜ao a ´unica maneira de implementar as fun¸c˜oes acima. Para todas as fun¸c˜oes, existem m´etodos off-line utilizados para obten¸c˜ao do mesmo resul-tado, esta especifica¸c˜ao n˜ao exige o uso de protocolos on-line. Por exemplo, quando s˜ao utilizados tokens, muitas das fun¸c˜oes podem ser realizadas no pr´oprio token. Al´em disso, algumas das fun¸c˜oes acima descritas podem ser combinados em um protocolo de troca de mensagens. Em particular, dois ou mais registos, inicializa¸c˜ao e fun¸c˜oes de certifica¸c˜ao podem ser combinados em uma troca de mensagens de protocolo.
E
rn
a
n
d
es
16
A s´erie de especifica¸c˜oes PKIX define um conjunto de formatos de mensagens padr˜ao que suportam as fun¸c˜oes acima. Os protocolos para transmitir estas mensagens em diferentes ambientes (por exemplo, a transferˆencia de ficheiros de e-mail, e WWW) encontram-se descritos nessas especifica¸c˜oes.
4
Perfil do Certificado e das Extens˜
oes do Certificado
Esta se¸c˜ao apresenta o perfil para certificados de chaves p´ublicas que promovem a intero-perabilidade e a utiliza¸c˜ao continuada de uma ICP. Esta se¸c˜ao ´e baseada no formato de certificado X.509 v3 e nas extens˜oes de certificado padr˜ao definidas no [X.509]. Os docu-mentos ISO/IEC e ITU-T utiliza a vers˜ao de 1997 do ASN.1, enquanto este documento usa vers˜ao de 1988 da sintaxe ASN.1, o certificado codificado e suas extens˜oes padr˜ao s˜ao equivalentes. Esta se¸c˜ao tamb´em define as extens˜oes privadas necess´arias para suportar uma ICP na comunidade da Internet.
Os certificados podem ser utilizados numa vasta gama de aplica¸c˜oes e ambientes que abran-gem um largo espectro de objetivos de interoperabilidade e um espectro mais amplo ainda de requisitos operacionais e de seguran¸ca. O objetivo deste documento ´e estabelecer uma base comum para aplica¸c˜oes gen´ericas que exigem ampla interoperabilidade e requisitos de prop´ositos especiais limitados. Em particular, a ˆenfase ser´a em apoiar o uso de certificados X.509 v3 para uso no correio eletrˆonico informal da Internet, no IPsec e nas aplica¸c˜oes WWW.
4.1
Campos B´
asicos do Certificado
A sintaxe b´asica do certificado X.509 v3 segue abaixo. Para o c´alculo da assinatura, os dados que ser˜ao assinados ´e codificado usando as regras de codifica¸c˜ao (DER) do ASN.1 [X.690]. A codifica¸c˜ao DER do ASN.1 DER ´e baseada em r´otulo, e um sistema de codifica¸c˜ao desse valor para cada elemento.
Certificate ::= SEQUENCE {
tbsCertificate TBSCertificate,
signatureAlgorithm AlgorithmIdentifier,
signatureValue BIT STRING }
TBSCertificate ::= SEQUENCE {
version [0] EXPLICIT Version DEFAULT v1,
serialNumber CertificateSerialNumber, signature AlgorithmIdentifier, issuer Name, validity Validity, subject Name, subjectPublicKeyInfo SubjectPublicKeyInfo,
issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
-- If present, version MUST be v2 or v3
subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
-- If present, version MUST be v2 or v3
extensions [3] EXPLICIT Extensions OPTIONAL
E
rn
a
n
d
es
17 } Version ::= INTEGER { v1(0), v2(1), v3(2) } CertificateSerialNumber ::= INTEGER Validity ::= SEQUENCE { notBefore Time, notAfter Time } Time ::= CHOICE { utcTime UTCTime, generalTime GeneralizedTime }UniqueIdentifier ::= BIT STRING
SubjectPublicKeyInfo ::= SEQUENCE {
algorithm AlgorithmIdentifier,
subjectPublicKey BIT STRING }
Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
Extension ::= SEQUENCE {
extnID OBJECT IDENTIFIER,
critical BOOLEAN DEFAULT FALSE,
extnValue OCTET STRING
-- contains the DER encoding of an ASN.1 -- value corresponding to the extension -- type identified by extnID
}
Os itens a seguir descrevem os certificados X.509 v3 para uso na Internet.
4.1.1 Campos do Certificado
O certificado ´e uma SEQUˆENCIA de trˆes campos obrigat´orios. Os campos s˜ao detalhada-mente descritos nas subse¸c˜oes abaixo.
4.1.1.1 tbsCertificate
Esse campo cont´em os nomes do sujeito e do emissor, uma chave p´ublica associada ao sujeito, um per´ıodo de validade, e outras informa¸c˜oes relacionadas. Os campos s˜ao descritos em detalhes na se¸c˜ao 4.1.2; o campo tbsCertificate normalmente inclui extens˜oes, que s˜ao descritas na se¸c˜ao 4.2.
4.1.1.2 signatureAlgorithm
O campo signatureAlgorithm cont´em o identificador do algoritmo criptogr´afico usado pela AC para assinar o certificado. [RFC3279], [RFC4055], e [RFC4491] lista os algoritmos de assinatura suportados, mas outros algoritmos tamb´em PODEM ser suportados.
E
rn
a
n
d
es
18
Um identificador de algoritmo ´e definido pela estrutura ASN.1 a seguir:
AlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER,
parameters ANY DEFINED BY algorithm OPTIONAL }
O identificador de algoritmo ´e utilizado para identificar o algoritmo criptogr´afico. O com-ponente OBJECT IDENTIFIER identifica o algoritmo (como o DSA com SHA-1). O conte´udo do do campo parameters variam de acordo com o algoritmo identificado.
Este campo DEVE conter os mesmos identificadores de algoritmo que o campo signature na sequˆencia de campos do tbsCertificate (se¸c˜ao 4.1.2.3).
4.1.1.3 signatureValue
O campo signatureValue cont´em a assinatura digital calculada sobre o campo tbsCertifi-cate codificado em DER do ASN.1. A codifica¸c˜ao do tbsCertifitbsCertifi-cate ´e usada como entrada da fun¸c˜ao de assinatura. Este valor de assinatura ´e codificado como um BIT STRING e inclu´ıdo no campo de assinatura. Os detalhes deste processo s˜ao especificados para cada algoritmo listado em [RFC3279], [RFC4055] e [RFC4491].
Para gerar a assinatura, a AC de certifica da validade da informa¸c˜ao contida no campo tbsCertificate. Em particular, a AC se certifica da rela¸c˜ao existente entre o material da chave p´ublica e o sujeito do certificado.
4.1.2 TBSCertificate
A sequˆencia TBSCertificate cont´em informa¸c˜oes associadas ao sujeito do certificado e a AC que o emitiu. Todo TBSCertificate cont´em o nome do sujeito e o emissor, uma chave p´ublica associada ao sujeito, um per´ıodo de validade, o n´umero da vers˜ao e o n´umero serial; alguns PODEM conter campos opcionais de identificador ´unico. O restante desta se¸c˜ao descreve a sintaxe e a semˆantica dos trˆes campos. O TBSCertificate geralmente inclui extens˜oes. As extens˜oes para ICP na Internet s˜ao descritos na se¸c˜ao 4.2.
4.1.2.1 Version
Este campo descreve a vers˜ao do certificado codificado. Quando s˜ao utilizados extens˜oes, como esperado na defini¸c˜ao do perfil, o valor deste campo deve ser 3 (valor igual a 2). Caso n˜ao ocorra nenhuma extens˜ao, mas o UniqueIdentifier esteja presente, a vers˜ao DEVERIA ser 2 (valor igual a 1); entretanto, a vers˜ao PODE ser 3. Quando apenas os campos b´asicos estiverem presentes, a vers˜ao DEVERIA ser 1 (o valor ´e omitido do certificado, ´e conside-rado o valor padr˜ao); embora a vers˜ao possa ser 2 ou 3.
As implementa¸c˜oes DEVERIAM estar preparadas para aceitar qualquer vers˜ao de certifi-cado. No m´ınimo, as implementa¸c˜oes que est˜ao em conformidade DEVEM reconhecer os certificados de vers˜ao 3.
A gera¸c˜ao de certificados de vers˜ao 2 n˜ao ´e esperado pelas implementa¸c˜oes baseadas no presente perfil.
E
rn
a
n
d
es
19
4.1.2.2 Serial Number
O serial number DEVE ser um n´umero inteiro positivo atribu´ıdo pela AC para cada certifi-cado. Ele DEVE ser ´unico para cada certificado emitido pela respectiva AC (por exemplo, o nome do emissor e o n´umero serial identificam um certificado ´unico) As ACs DEVEM garantir que o serialNumber seja um n´umero inteiro n˜ao negativo.
Dada a unicidade requerida acima, ´e esperado que este campo contenha n´umeros inteiros longos. Os sistemas usu´arios de certificado DEVEM ser capazes de processar n´umeros inteiros de at´e 20 octetos. Quando em conformidade, as ACs N ˜AO DEVEM utilizar serial-Number com valores maiores que 20 octetos.
Nota: ACs que n˜ao se encontram em conformidade PODEM emitir certificados com n´ u-meros negativos ou iguais a zero. Os sistemas usu´arios de certificado DEVERIAM ser preparados para tratar adequadamente tais certificados.
4.1.2.3 Signature
Este campo cont´em o identificador de algoritmo para o algoritmo utilizado pela AC para assinar o certificado.
Este campo DEVE conter o mesmo identificador de algoritmo do campo signatureAlgorithm na sequˆencia de campos do certificado (se¸c˜ao 4.1.1.2). O conte´udo dos parˆametros opcionais variam de acordo com o identificador do algoritmo. [RFC3279], [RFC4055] e [RFC4491] listam os algoritmos de assinatura suportados, mas outros algoritmos PODEM tamb´em ser suportados.
4.1.2.4 Issuer
O campo issuer identifica a entidade que assinou e emitiu o certificado. O campo issuer DEVE conter um valor n˜ao vazio de nome distinto (DN). O campo issuer ´e definido com o tipo Name do ASN.1 [X.500]. Name ´e definido pela estrutura ASN.1 a seguir:
Name ::= CHOICE {
only one possibility for now
--rdnSequence RDNSequence }
RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue
AttributeTypeAndValue ::= SEQUENCE {
type AttributeType,
value AttributeValue }
AttributeType ::= OBJECT IDENTIFIER
AttributeValue ::= ANY -- DEFINED BY AttributeType
E
rn
a
n
d
es
20
teletexString TeletexString (SIZE (1..MAX)),
printableString PrintableString (SIZE (1..MAX)),
universalString UniversalString (SIZE (1..MAX)),
utf8String UTF8String (SIZE (1..MAX)),
bmpString BMPString (SIZE (1..MAX)) }
O tipo Name descreve um nome hier´arquico composto de atributos, tais como o nome do pa´ıs, e os valores correspondentes, como US. O tipo de componente AttributeValue ´e de-terminado pelo AttributeType; geralmente ser´a um DirectoryString.
O tipo DirectoryString ´e definido como uma selec˜ao entre PrintableString, TelexString, BMPString e UniversalString. As ACs em conformidade com este perfil DEVEM usar codi-fica¸c˜ao PrintableString ou UTF8String para codificar o DirectoryString, com duas exce¸c˜oes. Quando ACs tiverem emitido anteriormente certificados com campos issuer com atributos codificados usando TelexString, BMPString ou UniversalString, a AC PODE continuar a usar essas codifica¸c˜oes para o DirectoryString de maneira a preservar a compatibilidade do legado. Tamb´em no caso de novas ACs serem adicionadas a um dom´ınio onde existem ACs que emitem certificados com campos issuer com atributos codificados usando TelexString, BMPString ou UniversalString PODEM codificar os atributos que elas trocam com as ACs existentes usando a mesma codifica¸c˜ao que as ACs utilizam.
Como notado acima, os nomes distintos s˜ao compostos por atributos. A presente espcifi-ca¸c˜ao n˜ao restringe o conjunto de tipos de atributos que podem aparecer nos nomes. En-tretanto, as implementa¸c˜oes em conformidade DEVEM estar preparadas para receberem certificados com nomes contendo o conjunto de atributos listados a seguir. Esta especifica-¸c˜ao RECOMENDA o suporte a tipos adicionais de atributos.
O conjunto padr˜ao de atributos foi definido na s´erie de especifica¸c˜oes do X.500 [X.520]. As implementa¸c˜oes deta especifica¸c˜ao DEVEM estar preparadas para receberem os seguintes tipos de atributos de nomes padr˜ao nos campos issuer e subject (se¸c˜ao 4.1.2.6):
* pa´ıs,
* organiza¸c˜ao,
* unidade organizacional, * qualificador do nome distinto, * nome do estado ou provincia,
* nome comum (por exemplo, “Susan Housley”), e * n´umero serial.
Al´em disso, as implementa¸c˜oes desta especifica¸c˜ao DEVERIAM estar preparadas para re-ceberem os seguintes tipo de atributos padr˜ao tanto no nome do emissor quanto no nome do sujeito:
* localidade * t´ıtulo,
E
rn
a
n
d
es
21 * sobrenome, * nome, * iniciais, * pseudˆonimo, e* qualificador de gera¸c˜ao (por exemplo, “Jr”, “3º”, ou “IV”).
A sintaxe e identificadores de objeto (OIDs) para esses tipos de atributos s˜ao fornecidos nos m´odulos ASN.1 do apˆendice A.
Adicionalmente, as implementa¸c˜oes desta especifica¸c˜ao DEVEM estar preparadas para re-ceberem atributos domainComponent, como descrito em [RFC4519]. O Sistema de Nome de Dom´ınio (DNS) fornece um sistema de r´otulos hier´arquico. Este atributo fornece um mecanismo adequado para organiza¸c˜ao que deseja usar DNs em paralelo aos nomes DNS. Isso n˜ao ´e uma substitui¸c˜ao para o componente dNSName das extens˜oes alternative name. N˜ao ´e necess´ario que as implementa¸c˜oes convertam estes nomes em nomes DNS. A sintaxe associada e o OID para este tipo de atributo s˜ao fornecidos nos m´odulos ASN.1 do apˆendice A. Regras para a codifica¸c˜ao de nomes de dom´ınio internacionalizados para uso no atributo domainComponent ser˜ao especificadas na se¸c˜ao 7.3.
Os sistemas usu´arios de certificados DEVEM ser preparados para processar campos con-tendo nomes distintos do emissor e do sujeito (se¸c˜ao 4.1.2.6) para validar a cadeia de nome do caminho de certifica¸c˜ao (se¸c˜ao 6). A cadeia de nomes ´e executada fazendo a correspon-dˆencia entre o nome distinto do emissor no certificado com o nome do sujeito no certificado da AC. As regras de compara¸c˜ao de nomes distintos est˜ao especificadas na se¸c˜ao 7.1. Se os nomes nos campos emissor e sujeito de um certificado correspondem de acordo com as regras especificadas na se¸c˜ao 7.1 ent˜ao o certificado ´e auto-emitido.
4.1.2.5 Validity
O per´ıodo de validade do certificado ´e o intervalo de tempo durante o qual a AC garante que vai manter as informa¸c˜oes sobre o status do certificado. O campo ´e representado como uma sequˆencia de duas datas: a data em que o per´ıodo de validade do certificado come¸ca (notBefore) e a data na qual o per´ıodo de validade do certificado termina (notAfter). Am-bos notBefore e notAfter podem ser codificados como UTCTime ou GeneralizedTime. As ACS em conformidade com esse perfil deve sempre codificar datas de validade de cer-tificado at´e o ano de 2049 como UTCTime; data de validade de cercer-tificado em 2050 ou posterior, deve ser codificada como GeneralizedTime. As aplica¸c˜oes em conformidade de-vem ser capazes de processar datas de validade que s˜ao codificados em tanto em UTCTime quanto em GeneralizedTime.
O per´ıodo de validade de um certificado ´e o per´ıodo de tempo compreendido entre notBe-fore e notAfter, inclusive nestas datas.
Em algumas situa¸c˜oes, s˜ao fornecidos aos dispositivos certificados para os quais nenhuma data de expira¸c˜ao boa pode ser atribu´ıda. Por exemplo, pode ser emitido um certificado para um dispositivo que vincula o seu modelo e n´umero de s´erie com a sua chave p´ublica,
E
rn
a
n
d
es
22
´e esperado que tal certificado seja utilizado durante toda a vida ´util do dispositivo.
Para indicar que um certificado n˜ao tem data de validade bem definida, ao campo notAfter deve ser atribu´ıdo o valor de GeneralizedTime igual a 99991231235959Z.
Quando o emissor n˜ao ´e capaz de manter informa¸c˜oes de estado at´e a data notAfter (inclu-sive quando a data contida em notAfter for 99991231235959Z), o emissor DEVE assegurar que n˜ao existir´a nenhum caminho de certifica¸c˜ao v´alido para o certificado ap´os encerrada a manuten¸c˜ao de informa¸c˜oes sobre o estado do certificado. Isto pode ser conseguido atrav´es de expira¸c˜ao ou revoga¸c˜ao de todos os certificados de AC contendo a chave p´ublica usada para verificar a assinatura do certificado e com a interrup¸c˜ao do uso da chave p´ublica utilizada para verificar a assinatura do certificado como ˆancora de confian¸ca.
4.1.2.5.1 UTCTime
O tipo de tempo universal, UTCTime, ´e um tipo padr˜ao ASN.1 usado para representa¸c˜ao de datas e tempo. O UTCTime especifica para ano os dois d´ıgitos de mais baixa ´ordem e o tempo ´e especificado com a precis˜ao de um minuto ou um segundo. O UTCTime inclui tanto Z (para Zulu, ou Greenwich Mean Time) ou um tempo diferencial de tempo.
Para os prop´ositos deste perfil, os valores UTCTime DEVEM ser expressos em Greenwich Mean Time (Zulu) e DEVEM incluir os segundos (por exemplo, tempos s˜ao representados por YYMMDDHHMMSSZ), mesmo onde o n´umero relacionado aos segundos seja zero. Os sistemas em conformidade DEVEM interpretar o campo ano (YY) como:
Quando YY for maior que ou igual a 50, o ano DEVER ´A ser interepretado como 19YY; e
Quando YY for menor que 50, o ano DEVER ´A ser interpretado como 20YY.
4.1.2.5.2 GeneralizedTime
O tipo tempo generalizado, GeneralizedTime, ´e um tipo padr˜ao ASN.1 para representa¸c˜ao precisa de tempo vari´avel. Opcionalmente, o campo GeneralizedTime pode incluir a repre-senta¸c˜ao do diferencial do tempo entre o tempo local e o Greenwich Mean Time.
Para os prop´ositos deste perfil, os valores de GeneralizedTime DEVEM ser expressos em Greenwich Mean Time (Zulu) e DEVEM incluir segundos (por exemplo, tempos s˜ao repre-sentados por YYYYMMDDHHMMMSSZ), mesmo quando o n´umero de segundos for igual a zero. Os valores de GeneralizedTime N ˜AO DEVEM incluir fra¸c˜oes de segundos.
4.1.2.6 Subject
O campo subject identifica a entidade associada com a chave p´ublica armazenada no campo subject public key. O nome do sujeito PODE ocorrer no campo subject e/ou na extens˜ao subjectAltName. Se o sujeito ´e uma AC (por exemplo, a extens˜ao basic constraints, a ser discutida na se¸c˜ao 4.2.1.9, ocorre e o valor do campo cA ser´a TRUE), ent˜ao o campo sub-ject DEVE ser preenchido com um nome distinto n˜ao vazio correspondente ao conte´udo do campo issuer (se¸c˜ao 4.1.2.4) em todos os certificados emitidos com o sujeito AC. Quando o sujeito for um emissor de LCR (por exemplo, na extens˜ao key usage, discutida na se¸c˜ao
E
rn
a
n
d
es
23
4.2.1.3, estar´a presente e o valor de cRLSign ser´a TRUE), ent˜ao o campo subject DEVE ser preenchido com um nome distinto n˜ao vazio correspondente ao conte´udo do campo issuer (se¸c˜ao 5.1.2.3) em todas as LCRs emitidas pelo emissor de LCR. Quando a informa¸c˜ao de nome do sujeito estiver presente apenas na extens˜ao subjectAltName (por exemplo, uma chave relacionada apenas a um endere¸co de email ou URI), ent˜ao o nome do sujeito DEVE ser uma sequˆencia vazia e a extens˜ao subjectAltName DEVE ser marcada como cr´ıtica. Quando o campo subject n˜ao for vazio, DEVE conter um nome distinto (DN) X.500. O DN DEVE ser ´unico para cada entidade sujeito certificado por uma AC como definido no campo issuer. Uma AC PODE emitir mais que um certificado com o mesmo DN para a mesma entidade sujeito.
O campo subject ´e definido como um nome tipo X.501. Os requisitos de implementa¸c˜ao para este campo s˜ao aqueles definidos para o campo issuer (se¸c˜ao 4.1.2.4). As implementa-¸c˜oes desta especifica¸c˜ao DEVEM se preparadas para receberem nomes de sujeito contendo os tipos de atributos necess´arios para o campo issuer. As implementa¸c˜oes desta especi-fica¸c˜ao DEVERIAM ser preparadas para receber nomes de sujeito contendo os tipos de atributos recomendados para o campo issuer. A sintaxe e os identificadores de objetos (OIDs) associados a estes tipos de atributos s˜ao fornecidos nos m´odulos ASN.1 do apˆendice A. As implementa¸c˜oes desta especifica¸c˜ao DEVEM usar as regras de compara¸c˜ao contidas na se¸c˜ao 7.1 para processar os tipos de atributos n˜ao comuns (por exemplo, para come de cadeia) cujos valores de atributos usam uma das op¸c˜oes de codifica¸c˜ao definidas como DirectoryString. Compara¸c˜oes bin´arias deveriam ser utilizadas quando tipos de atribu-tos incomuns incluirem valores de atribuatribu-tos com op¸c˜oes de codifica¸c˜ao diferentes daquelas encontradas no DirectoryString. Isso permite `as implementa¸c˜oes processarem certificados com atributos incomuns presentes no nome de sujeito.
Na codifica¸c˜ao dos valores de atributos do tipo DirectoryString, as ACs em conformidade DEVEM usar codifica¸c˜ao PrintableString ou UTF8String, com as seguintes exce¸c˜oes:
(a) Quando o sujeito de um certificado for uma AC, o campo subject DEVE ser codi-ficado da mesma forma que ele foi codicodi-ficado no campo issuer (se¸c˜ao 4.1.2.4) em todos os certificados emitidos pelo sujeito AC. Assim, se o sujeito AC codificar atributos nos campos issuer do certificado dos certificados que ela emite usando codifica¸c˜ao TeletexSting, BMPString, ou UniversalString, o campo subject dos certificados emitidos para aquela AC DEVEM usar a mesma codifica¸c˜ao.
(b) Quando o sujeito de um certificado ´e um emissor de LCR, o campo subject DEVE ser codificado da mesma forma que foi codificado no campo issuer (se¸c˜ao 5.1.2.3) em todas as LCRs emitidas pelo sujeito emissor da LCR.
(c) TeletexString, BMPString e UniversalString s˜ao inclu´ıdos para compatibilidade com o legado, e N ˜AO DEVERIAM ser usados em certificados para novos sujei-tos. Entretanto, estes tipos PODEM ser usados em certificados onde o nome foi previamente estabelecido, incluindo os casos nos quais um novo certificado esta sendo emitido para um novo sujeito onde os atributos sendo codificados foram previamente estabelecidos no certificado emitido para outros sujeitos. Os usu´arios do certificado DEVERIAM ser preparados para receberem certificados com esses tipos.
Implementa¸c˜oes do legado existem onde um endere¸co de email est´a incorporado no nome distinto do sujeito como um atributo emailAddress [RFC2985]. O valor do atributo para
E
rn
a
n
d
es
24
emailAddress ´e do tipo IA5String para permitir inclus˜ao do caractere “@”, que n˜ao ´e parte do conjunto de caracteres PrintableString. Valores de atributo emailAddress n˜ao s˜ao sens´ı-veis quanto a mai´usculas e min´usculas (por exemplo, “[email protected]” ´e o mesmo que “[email protected]”).
As implementa¸c˜oes em conformidade quando da gera¸c˜ao de novos certificados com endere¸cos de email PODEM usar o rfc822Name na extens˜ao de nome de sujeito alternativo (se¸c˜ao 4.2.1.6) para descrever tal identidade. Inclus˜oes simultˆaneas do atributo emailAddress no nome distinto do sujeito para suportar implementa¸c˜oes do legado n˜ao ´e uma pr´atica incentivada, embora seja permitida.
4.1.2.7 Subject Public Key Info
Este campo ´e utilizado para incluir a chave p´ublica e o identificar o algoritmo com o qual a chave ´e usada (por exemplo, RSA, DSA ou Diffie-Hellman). O algoritmo ´e identificado usando a estrutura AlgorithmIdentifier especificada na se¸c˜ao 4.1.1.2. O identificador de objeto para o algoritmo suportado e o m´etodo de codifica¸c˜ao do material da chave p´ u-blica (chave p´ublica e os seus parˆametros) s˜ao especificados em [RFC3279], [RFC4055] e [RFC4491].
4.1.2.8 Unique Identifiers
Esses campos somente DEVEM estar presentes quando a vers˜ao for 2 ou 3 (se¸c˜ao 4.1.2.1). Esses campos N ˜AO DEVEM aparecer quando a vers˜ao for 1. O subject e issuer unique identifiers est˜ao presentes no certificado para possibilitar a reutiliza¸c˜ao do nome do sujeito e/ou emissor no decorrer do tempo. Este perfil RECOMENDA que os nomes n˜ao sejam reutilizados para entidades diferentes. ACs em conformidade com este perfil N ˜AO DEVEM gerar certificados com unique identifiers. As aplica¸c˜oes em conformidade com este perfil DEVERIAM ser capazes de analisar certificados que incluem unique identifiers, mas n˜ao h´a nenhum requisito de processamento associado ao unique identifiers.
4.1.2.9 Extensions
Este campo DEVE aparecer apenas quando a vers˜ao for 3 (se¸c˜ao 4.1.2.1). Quando presente, o campo ´e uma SEQUENCE de um ou mais extens˜oes de certificado. O formato e o conte´udo das extens˜oes de certificado da ICP de Internet est˜ao definidos na se¸c˜ao 4.2.
4.2
Extens˜
oes do Certificado
As extens˜oes definidas para certificados X.509 v3 fornecem m´etodos para associar atribu-tos adicionais aos usu´arios ou chaves p´ublicas, e tamb´em para a gest˜ao das rela¸c˜oes entre ACs. O formato do certificado X.509 v3 tamb´em permite que comunidades definam ex-tens˜oes privadas que levam informa¸c˜oes exclusivas a essas comunidades. Cada uma das extens˜oes do certificado ´e designada como cr´ıtica ou n˜ao cr´ıtica. O sistema que utiliza cer-tificado deve rejeitar o cercer-tificado quando encontrar uma extens˜ao cr´ıtica n˜ao reconhecida ou uma extens˜ao cr´ıtica que contenha informa¸c˜oes que n˜ao podem ser processadas. A ex-tens˜ao n˜ao-cr´ıtica PODE ser ignorada quando n˜ao reconhecida, mas DEVE ser processada quando reconhecido. As se¸c˜oes seguintes apresentam extens˜oes recomendadas usadas nos certificados Internet Internet e os localiza¸c˜ao padr˜ao para a informa¸c˜ao. As comunidades
E
rn
a
n
d
es
25
podem optar por usar extens˜oes adicionais, no entanto, todo cuidado deve ser tomado na ado¸c˜ao de qualquer extens˜ao cr´ıtica que possam inviabilizar o seu uso em um contexto geral. Cada extens˜ao inclui um OID e uma estrutura ASN.1. Quando uma extens˜ao aparece em um certificado, o respectivo OID ocorre como um campo extnID e a estrutura codificada em DER do ASN.1 ´e o valor do string de octetos contido no extnValue. O certificado N ˜AO DEVE incluir mais que uma instˆancia de uma determinada extens˜ao. Por exemplo, o certificado pode conter apenas uma extens˜ao authority key identifier (se¸c˜ao 4.2.1.1). Uma extens˜ao inclui a op¸c˜ao de criticidade como um valor booleano, com valor padr˜ao FALSE. O texto relacionado a cada das extens˜oes, especifica os valores aceit´aveis para campo cr´ıtico para ACs em conformidade com este perfil.
As ACs em conformidade DEVEM suportar as extens˜oes key identifiers (se¸c˜ao 4.2.1.1 e 4.2.1.2), basic constraints (se¸c˜ao 4.2.1.9), key usage (se¸c˜ao 4.2.1.3), e certificate policies (se¸c˜ao 4.2.1.4). Quando uma AC emite certificados com uma sequˆencia vazia para o campo subject, a AC DEVE suportar a extens˜ao subject alternative name (se¸c˜ao 4.2.1.6). O suporte `as extens˜oes restantes permanece opcional. As ACs em conformidade PODEM su-portar extens˜oes que n˜ao s˜ao identificadas nesta especifica¸c˜ao; os emissores de certificados com estas extens˜oes que as marcarem como cr´ıticas podem dificultar a interoperabilidade. No m´ınimo, as aplica¸c˜oes em conformidade com este perfil DEVEM reconhecer as seguintes extens˜oes: key usage (se¸c˜ao 4.2.1.3), certificate policies (se¸c˜ao 4.2.1.4), subject alternative name (se¸c˜ao 4.2.1.6), basic constraints (se¸c˜ao 4.2.1.9), name constraints (se¸c˜ao 4.2.1.10), policy constraints (se¸c˜ao 4.2.1.11), extended key usage (se¸c˜ao 4.2.1.12), e inhibir anyPolicy (se¸c˜ao 4.2.1.14).
Adicionalmente, as aplica¸c˜oes em conformidade com este perfil DEVERIAM reconhecer as extens˜oes authority and subject key identifier (se¸c˜ao 4.2.1.1 e 4.2.1.2) e policy mappings (se¸c˜ao 4.2.1.5).
4.2.1 Extens˜oes Padr˜ao
Esta se¸c˜ao identifica as extens˜oes padr˜ao de certificado no [X.509] para uso na ICP Internet. Cada extens˜ao ´e associada a um OID definido em [X.509]. Esses OIDs s˜ao membros do arco de OID id-ce-arc, que ´e definido da seguinte forma:
id-ce OBJECT IDENTIFIER ::= { joint-iso-ccitt(2) ds(5) 29 }
4.2.1.1 Authority Key Identifier
A extens˜ao authority key identifier fornece um meio de identifica¸c˜ao da chave p´ublica cor-respondente a chave privada usada para assinar o certificado. Esta extens˜ao ´e utilizada quando um emissor tem m´ultiplas chaves de assinatura (tamb´em d devido a ocorrˆencia de v´arios pares de chaves simultˆaneos ou devido `a mudan¸ca do par de chaves). A identifica¸c˜ao PODE ser baseada tanto no key identifier (identificador da chave do sujeito no certificado do emissor) como no nome do emissor e n´umero serial.
O campo keyIdentifier da extens˜ao authorityKeyIdentifier DEVE ser inclu´ıdo em todos os certificados gerados por ACs em conformidade para facilitar a constru¸c˜ao do caminho de certifica¸c˜ao. Existe uma exce¸c˜ao; quando uma AC distribui sua chave p´ublica na forma de certificado “auto-assinado”, o identificador de chave da autoridade PODE ser omitido.
E
rn
a
n
d
es
26
A assinatura em um certificado auto-assinado ´e gerada com a chave privada associada a chave p´ublica do sujeiro do certificado. (Isso prova que o emissor tem a posse tanto da chave p´ublica quanto da privada). Neste caso, o sujeito e o identificador de chave de au-toridade devem ser idˆenticos, mas apenas o identificador de chave do sujeito ´e necess´ario para a constru¸c˜ao do caminho de certifica¸c˜ao.
O valor do campo keyIdentifier DEVERIA ser derivado a partir da chave p´ublica utilizada para verificar a assinatura do certificado ou do m´etodo que gera valores ´unicos. Dois m´e-todos comuns para gera¸c˜ao de identificadores para chave p´ublica s˜ao descritos na se¸c˜ao 4.2.1.2. Quando o identificador de chave n˜ao tiver sido previamente definido, esta especifi-ca¸c˜ao RECOMENDA o uso de um desses m´etodos para a gera¸c˜ao do keyIdentifiers ou o uso de um m´etodo similar que usa um algoritmo de hash diferente. Quando um identificador de chave tiver sido previamente definido, a AC DEVERIA usar o identificador previamente definido.
Este perfil RECOMENDA suporte ao m´etodo de identific˜ao de chave a todos os usu´arios de certificado.
As ACs em conformidade DEVEM marcar esta extens˜ao como n˜ao cr´ıtica. id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
AuthorityKeyIdentifier ::= SEQUENCE {
keyIdentifier [0] KeyIdentifier OPTIONAL,
authorityCertIssuer [1] GeneralNames OPTIONAL,
authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL }
KeyIdentifier ::= OCTET STRING 4.2.1.2 Subject Key Identifier
A extens˜ao subject key identifier fornece meios para identifica¸c˜ao de certificados que con-t´em uma determinada chave p´ublica.
Para facilitar a constru¸c˜ao do caminho de certifica¸c˜ao, esta extens˜ao DEVE aparecer em todos os certificados de AC, ou seja, todos os certificados que incluem a extens˜ao basic constraints (se¸c˜ao 4.2.1.9) nos quais o valor de cA ´e TRUE. Nos certificados de AC em conformidade, o valor do subject key identifier DEVE ser o valor colocado no campo key identifier da extens˜ao authority key identifier (se¸c˜ao 4.2.1.1) dos certificados emitidos pelo sujeito deste certificado. As aplica¸c˜oes n˜ao precisam verificar que os identificadores de chave corresponde quando realizam a valida¸c˜ao do caminho de certifica¸c˜ao.
Para certificados de AC, os identificadores de chave de sujeito DEVERIAM ser derivados da chave p´ublica ou a partir de um m´etodo que gera valores ´unicos. Dois m´etodos comuns para gera¸c˜ao de identificadores de chave a partir da chave p´ublica s˜ao:
(1) o keyIdentifier ´e composto por um hash de 160 bits SHA-1 do valor do BIT STRING subjectPublicKey (exclu´ıdos o r´otulo, o tamanho e o n´umero de bits n˜ao utilizados).