O tipo de registro DNS de autorização de autoridade de certificação (CAA) inclui um issue
parâmetro (também issuewild
) que designa um identificador para uma autoridade de certificação com permissão para emitir certificados para seu domínio. Tudo bem, mas é um pouco vago.
Ao definir o valor em seus próprios registros de CAA, como você deve descobrir qual deve ser o valor exato para sua(s) CA(s)? No caso de letsencrypt, eles fornecem um documento aqui que menciona que seu identificador de problema é letsencrypt.org
, e que também está documentado na seção 4.2.1 da Declaração de Prática de Certificação . Se eu inspecionar o certificado, posso ver vários campos nele, no entanto, nenhum corresponde exatamente a essa string, embora existam alguns que a contenham . Isso não parece ser uma maneira rigorosa ou confiável de garantir que o CA corresponda ao que está no registro do CAA - por exemplo, o que impede que ele seja correspondido letsencrypt.org.evilcorp.com
?
Tudo isso é viável de uma perspectiva humana, mas não é muito legível por máquina e é exclusivo desta CA.
Eu também tenho certificados da Comodo, e encontrei várias fontes não autorizadas dizendo que o ID do problema do CAA é comodoca.com
(e outros dizendo que é comodo.com
), mas não encontrei um documento oficial como o letsencrypt para isso. A comodoca.com
string aparece em alguns campos do meu certificado, mas não em um contexto que eu esperaria que fosse encontrada de forma confiável - por exemplo, o nome do emissor é COMODO ECC Domain Validation Secure Server CA (COMODO CA Limited from GB)
, a CRL é http://crl.comodoca.com/COMODOECCDomainValidationSecureServerCA.crl
e o OCSP URI é http://ocsp.comodoca.com
.
SSLMate tem um gerador de registro CAA e inclui uma lista de CAs e seus IDs de emissor - mas de onde essas informações foram obtidas?
Agora considere o caso de validação - dado um certificado e um ou mais IDs de emissor de CAA, quais elementos no certificado devemos esperar que correspondam exatamente ao emissor de CAA? Ou essa informação é obtida de algum outro serviço, como um log de CT?
Então, em suma, de onde os IDs do emissor da CAA devem ser obtidos e como eles devem ser validados de forma confiável?
O relevante
RFC 6844
não impõe nenhuma norma para o emissor, pelo contrário, concede liberdade quase total:Mas para dar um passo atrás: os registros CAA não foram destinados, até onde eu sei, para serem usados por usuários finais para validar se o certificado TLS que eles recebem é emitido pelo emissor de certificado correto.
Ele foi planejado para ser usado apenas por um emissor de certificado (respeitável) para validar que eles têm permissão para emitir um (novo) certificado para esse host/domínio.
É apenas o emissor do certificado que precisa verificar se o que eles esperam/exigem está presente no registro CAA, se existe um registro CAA.
O emissor do seu certificado, ou seja, sua CA, precisará comunicar quais domínios eles reconhecem nos registros de emissão da CAA. E também quais, se houver, outros parâmetros que eles exigem.
Por exemplo: Comodo, que usa
comodo.com
para sua marca online, é totalmente gratuito para reconhecer o domínio completamente diferentecomodoca.com
nos registros da CAA. Na verdade, as CAs também não estão restritas a reconhecer apenas um único domínio - o Comodo, por exemplo, reconhece quatro domínios diferentes :comodo.com
,comodoca.com
,usertrust.com
etrust-provider.com
Observação: os registros CAA são usados apenas na emissão de um certificado. A engenharia reversa do que o registro CAA deve ser de certificados válidos que já foram emitidos não serve a nenhum propósito imediato.
Até onde eu sei, não há nada que você possa automatizar facilmente com relação a isso, mas para uma abordagem manual: O fórum CA/Browser requer um local uniforme para que essas informações sejam publicadas:
"Em vigor a partir de 8 de setembro de 2017, a seção 4.2 da Política de Certificação e/ou Declaração de Prática de Certificação de uma CA DEVERÁ declarar a política ou prática da CA no processamento de Registros de CAA para Nomes de Domínio Totalmente Qualificados; essa política deve ser consistente com estes Requisitos. Deve claramente especifique o conjunto de Nomes de Domínio do Emissor que a CA reconhece nos registros da CAA "
issue
" ou "issuewild
" como permitindo a emissão."