Este artigo lista os requisitos necessários para que cada certificado em uma cadeia X.509 seja considerado confiável para uso no contexto de e-mails com assinatura ou criptografia S/MIME.
Além de atender a esses requisitos, a cadeia precisa estar vinculada ao certificado de uma autoridade de certificação (CA) que o Google considere explicitamente confiável para esse objetivo. Você também pode aceitar certificados raiz de autoridades que considere confiáveis. Veja mais informações nas diretrizes do certificado raiz.
Observações:
- O Google fornece e mantém uma lista de certificados de CA confiáveis do Gmail para S/MIME. A lista apresenta CAs consideradas confiáveis exclusivamente pelos critérios do Google, que se reserva o direito de remover CAs raiz com ou sem motivo.
- Confirme que as extensões instaladas não contradizem outras extensões no mesmo certificado. Por exemplo, se nsCertTypes forem definidos, eles precisarão cobrir os mesmos usuários da extensão de uso de chave, da extensão de uso estendido de chave e da extensão de restrições básicas.
Regras da cadeia de certificados
CA raiz
Campo | Valor |
---|---|
DN do emissor |
Precisa identificar a CA. Por exemplo, o DN não pode ser um valor genérico, como "Autoridade de certificação". |
DN do titular |
O formulário codificado precisa ser idêntico (byte por byte) ao DN do emissor. |
Informações da chave pública do titular |
rsaEncryption com um módulo RSA de 2048, 3072 ou 4096. Ou ecPublicKey usando secp256r1 ou secp384r1. |
Certificados da CA intermediária que não seja a emissora
Use esta informação se houver mais de uma CA intermediária entre a entidade raiz e final, direta ou indiretamente.
A CA intermediária emissora é a CA intermediária que emite o certificado de entidade final. Esta seção é aplicável a todas as CAs intermediárias na cadeia que não sejam a CA intermediária emissora.
Campo | Valor | ||
---|---|---|---|
Versão | Versão 3 | ||
Número de série | Precisa ser maior que zero (0). Quando o DER estiver codificado como um NÚMERO INTEIRO, precisa ser menor que ou igual a 20 bytes. | ||
Algoritmo de assinatura | RSA com SHA‐256, SHA‐384 ou SHA‐512. Ou ECDSA com SHA‐256, SHA‐384 ou SHA‐512 | ||
DN do emissor |
Precisa ser idêntico (byte por byte) ao DN do titular da CA emissora. |
||
Período de validade | Nenhuma estipulação | ||
DN do titular | Nenhuma estipulação | ||
Informações da chave pública do titular |
rsaEncryption com um módulo RSA de 2048, 3072 ou 4096. Ou ecPublicKey usando secp256r1 ou secp384r1 |
||
Extensão | Presença | Crítico | Valor |
Uso da chave | Obrigatório | Sim |
Posições de bits precisam ser definidas para: keyCertSign |
Restrições básicas | Obrigatório | Sim | O campo "cA" precisa ser definido como "true" O campo "pathLenConstraint" deve estar presente |
Pontos de distribuição de CRL | Obrigatório | Não |
Pelo menos um HTTP acessível publicamente |
(observação) | Os servidores de revogação precisam ser operados de acordo com as seguintes seções da Política de requisitos de base do fórum da CA/do navegador para a emissão e o gerenciamento de certificados emitidos publicamente, versão 1.3.2 ou superior:
|
||
Qualquer outra extensão | Pode estar presente |
Certificado da CA intermediária que emite a entidade final
Importante: pelo menos um certificado de CA intermediário precisa estar presente na cadeia, ou seja, a raiz não pode emitir certificados de entidade final diretamente.
Campo | Valor | ||
---|---|---|---|
Versão | Versão 3 | ||
Número de série | Precisa ser maior que zero (0). Quando o DER estiver codificado como um NÚMERO INTEIRO, precisa ser menor que ou igual a 20 bytes. | ||
Algoritmo de assinatura |
RSA com SHA‐256, SHA‐384 ou SHA‐512. Ou ECDSA com SHA‐256, SHA‐384 ou SHA‐512. |
||
DN do emissor |
Precisa ser idêntico (byte por byte) ao DN do titular da CA emissora. |
||
Período de validade |
Diferença entre "notBefore" e "notAfter" Não deve ser maior que 10 anos e não pode exceder 20 anos. |
||
DN do titular |
Deve indicar o uso da CA. |
||
Informações da chave pública do titular |
rsaEncryption com um módulo RSA de 2048, 3072 ou 4096. Ou ecPublicKey usando secp256r1 ou secp384r1 |
||
Extensão | Presença | Crítico | Valor |
Uso da chave | Obrigatório | Sim |
Posições de bits precisam ser definidas para: Outras posições de bits não podem ser definidas |
Uso estendido de chave | Obrigatório | Qualquer um | Precisa estar presente: emailProtection Não pode estar presente: serverAuth codeSigning timeStamping anyExtendedKeyUsage |
Restrições básicas |
Obrigatório | Sim |
O campo "cA" precisa ser definido como "true" |
Políticas de certificado | Opcional | Não |
Um policyIdentifier que identifique a política com base na qual a CA opera DEVE ser fornecido, e NÃO DEVE ser anyPolicy. |
Pontos de distribuição de CRL | Obrigatório | Não |
Pelo menos um HTTP acessível publicamente |
(observação) |
Os servidores de revogação precisam ser operados de acordo com as seguintes seções da Política de requisitos de base do fórum da CA/do navegador para a emissão e o gerenciamento de certificados emitidos publicamente, versão 1.3.2 ou mais recente:
|
||
Qualquer outra extensão | Opcional | Não |
Pode estar presente. |
Certificado de entidade final
Campo | Valor | ||
---|---|---|---|
Versão | Versão 3 | ||
Número de série |
Precisa ser maior que zero (0) e precisa conter pelo menos 64 bits imprevisíveis. Observação: será atualizado para refletir os requisitos de entropia do número de série da entidade final Política de requisitos de base do fórum da CA/do navegador. |
||
Algoritmo de assinatura | RSA com SHA‐256, SHA‐384 ou SHA‐512. Ou ECDSA com SHA‐256, SHA‐384 ou SHA‐512. | ||
DN do emissor |
Precisa ser idêntico (byte por byte) ao DN do titular da CA emissora. |
||
Período de validade |
A diferença entre notBefore e notAfter não pode ser maior que 27 meses. A hora notBefore precisa representar a hora da assinatura (mais ou menos 48 horas). |
||
DN do titular |
Todos os nomes distintos relacionados ao assunto, e não ao endereço de e-mail, precisam ser rigorosamente validados antes da emissão, usando um procedimento documentado e auditado publicamente. Consulte §3.2.3 "Autenticação de identidade de indivíduo" da "Política de requisitos de base do fórum da Política de requisitos de base do fórum da CA/do navegador para a emissão e o gerenciamento de certificados emitidos publicamente, versão 1.3.2 ou mais recente para ver um procedimento aceitável. Qualquer endereço de e-mail (por exemplo, nos campos "commonName" ou "emailAddress") também precisa estar presente na extensão de nome alternativo do titular como um rfc822Name. |
||
Informações da chave pública do titular |
rsaEncryption com um módulo RSA de 2048, 3072 ou 4096. Ou ecPublicKey usando secp256r1 ou secp384r1 |
||
Extensão | Presença | Crítico | Valor |
Uso da chave (RSA) | Obrigatório | Sim |
Posições de bits precisam ser definidas para: Outras posições de bits não podem ser definidas |
Uso da chave (ECDH) | Obrigatório |
Posições de bits precisam ser definidas para: Outras posições de bits não podem ser definidas |
|
Uso estendido de chave | Obrigatório | Qualquer um |
Precisa estar presente: |
Restrições básicas |
Opcional | Qualquer um |
Se presente, o campo "cA" não pode ser configurado como "true" |
Políticas de certificado | Obrigatório | Não |
Precisa estar presente: é preciso informar um policyIdentifier que identifique a política de emissão do certificado e não seja anyPolicy. Pode estar presente: cps, se presente, precisa conter um link HTTP ou HTTPS válido para o CPS com base no qual o certificado foi emitido. |
Acesso às informações da autoridade |
Opcional | Não |
caIssuers e, se presente, ocsp, precisam conter pelo menos um HTTP uniformResourceIdentifier acessível publicamente. AccessDescription não pode conter marcadores ou parâmetros que sejam específicos de um certificado individual. |
Pontos de distribuição de CRL | Obrigatório | Não |
Pelo menos um |
(observação) |
Os servidores de revogação precisam ser operados de acordo com as seguintes seções da Política de requisitos de base do fórum da CA/do navegador para a emissão e o gerenciamento de certificados emitidos publicamente, versão 1.3.2 ou mais recente:
|
||
Nome alternativo do titular |
Obrigatório | Não |
Precisa conter pelo menos um item do tipo rfc822Name. |
Qualquer outra extensão |
Opcional | Não | Pode estar presente. |