Fim de ano chegando e junto com ele aqueles necessários momentos de reflexão, revisão de metas e planejamento para 2019.
Poxa, pelo menos pra mim, não dá pra reclamar desse ano. Profissionalmente me foi muito bom!!! Projetos novos iniciados e em andamento, meus artigos aqui e no blog MCSE Brasil tiveram uma aceitação bem acima do esperado, conheci e convivi com profissionais extremamente competentes, aulas enriquecedoras ... trabalhei bastante e talvez por isso, por mais esse ano a sorte me sorriu.
E com tanta correria, ainda consigo escrever algo de vez em quando.
Não imaginei que isso aconteceria, mas já estou sendo cobrado por novas publicações. E por incrível que pareça, esse tipo de cobrança é legal!!!
Continuando o tema que iniciei mês passado (caso não tenham lido, sugiro que o façam clicando aqui), no artigo desse mês tratarei sobre gerenciamento de autoridades certificadoras.
Então vamos lá ...
A importância que uma autoridade de certificação possui exige grande cuidado em sua configuração e administração. Um erro bobo pode nos custar muito ...
A garantia de uma PKI segura envolve por exemplo, atribuir a usuários e grupos a permissão adequada para executar tarefas administrativas, ou ainda configurar as opções de registro e monitoramento para uma autoridade de certificação pela necessidade de registrar, armazenar e rastrear todas as tarefas e atividades importantes que nela tenham sido executadas.
Através da console da Autoridade de Certificação pode-se configurar as opções de gerenciamento de CA mais comuns. Somente as mais comuns ...
Entretanto, nem todas tarefas podem ser executadas com excelência através dessa console. Aí, contamos com nosso querido PowerShell e com a ferramenta de linha de comando certutil para gerenciar várias opções avançadas de CA e executar tarefas que não estão disponíveis no console gráfico.
No Windows Server 2016, os módulos ADCSDeployment e ADCSAdministration do Windows PowerShell estão disponíveis para implantar e administrar CAs.
Para utiliza-los, basta instalar os binários do AD CS,e após isso importar os módulos para uso no Windows PowerShell através dos seguintes comandos:
Import-Module ADCSDeployment
Import-Module ADCSAdministration
Para consultar todos os cmdlets disponíveis para implantação e administração da autoridade de certificação, podemos utilizar o seguinte comando no Windows PowerShell:
Get-Command –Module ADCS*
Abaixo a descrição de alguns (somente alguns) cmdlets para administração de CA:
- Add-CATemplate - Adiciona um modelo de certificado à autoridade de certificação.
- Add-CACrlDistributionPoint - Adiciona um Identificador Uniforme de Recursos (URI) do CDP, no qual a autoridade de certificação publica revogações de certificação.
- Add-CAAuthorityInformationAccess - Configura os URIs AIA ou OCSP em uma autoridade de certificação.
- Get-CATemplate - Obtém a lista de modelos definidos na CA para emissão de certificados.
- Get-CACrlDistributionPoint - Obtém todos os locais definidos na extensão CDP das propriedades da autoridade de certificação.
- Get-CAAuthorityInformationAccess - Obtém as informações de URI AIA e OCSP definidas na extensão AIA das propriedades da autoridade de certificação.
- Remove-CATemplate - Remove os modelos da CA que foram configurados para emissão de certificados.
- Remove-CACrlDistributionPoint - Remove o URI do CDP da CA.
- Remove-CAAuthorityInformationAccess - Remove URIs AIA ou OCSP do conjunto de extensões AIA na CA.
Usando o CERTUTIL para administrar uma autoridade de certificação
Embora o PowerShell forneça grande quantidade de cmdlets que podem ser utilizados para o gerenciamento do AD CS, ele ainda não é completo.
Assim, para gerenciamento completo do AD CS via linha de comando, utilizamos o certutil que por sua vez é instalado como parte AD CS.
Através dele, podemos obter informações detalhadas de configuração da autoridade de certificação, configurar o AD CS, fazer backup e restaurar componentes da autoridade de certificação e verificar certificados, pares de chaves e cadeias de certificados.
Notem que para tarefas comuns de configuração e gerenciamento da CA, não é necessário usar o certutil.
Já para tarefas mais avançadas, o certutil pode ser sua única opção.
Para exemplo meramente educativo, se quiser revisar todas as definições de configuração da autoridade de certificação, poderá fazer isso através dos seguintes comandos:
Certutil –dump
Certutil –getreg
Certutil –getreg
Este comando fornece muito mais informações sobre sua configuração de CA. Isso inclui o tipo de informação que é definido pelo arquivo CAPolicy.inf ou após a instalação executando scripts de pós-configuração.
A verdade, é que ainda não dá pra acessar todas as informações usando apenas o console da Autoridade de Certificação, o que cá pra nós é uma pena, né?
Gerenciando PKI com Diretiva de Grupo
Depois que sua PKI estiver implantada, é preciso utilizar GPO (Política de Grupos) para automatizar a distribuição de certificados digitais e definir as opções de configuração.
Diretivas de Grupo podem ser utilizadas para as seguintes áreas relacionadas ao AD CS:
Roaming Credential- Isso permite que os usuários mantenham seus certificados com o AD DS em vários computadores. Isso também elimina o requisito de gerenciar vários certificados de cliente e chaves privadas em várias estações de trabalho do cliente para um único usuário. Pois é ... agiliza um lado importante para os administradores.
Registro automático de certificados - Isso simplifica a emissão de certificados, permitindo que os computadores clientes solicitem e renovem certificados automaticamente. O registro automático requer uma autoridade de certificação corporativa e o uso da Diretiva de Grupo para habilitar os computadores e usuários em seu ambiente do AD DS para o registro automático. Particularmente, para obter maior controle, prefiro não utilizar essa opção.
Validação do caminho de certificado - Com a validação de caminho de certificado, você pode gerenciar certificados que são usados para assinatura de código, implantando certificados de autoridade de certificação subordinada, bloqueando certificados que não são confiáveis e definindo configurações de recuperação para certificados e CRLs.
Distribuição de certificados - Normalmente, você usa a Diretiva de Grupo para a distribuição automatizada de certificados ou para especificar configurações relacionadas ao registro.
Configurando a segurança da autoridade de certificação
Para gerenciar e configurar a segurança na CA, pode-se utilizar a guia “Segurança” para exibir as propriedades de uma autoridade de certificação no console da Autoridade de Certificação. Nela, pode-se definir as seguintes permissões de segurança:
Ler - As entidades que recebem essa permissão podem localizar essa autoridade de certificação no AD DS ou acessá-la usando o console da Web ou os serviços da Web se você implantou a autoridade de certificação como uma autoridade autônoma.
Emitir e gerenciar certificados - As entidades que recebem essa permissão podem aprovar ou negar solicitações de certificado que estejam em um estado pendente. Eles também podem revogar um certificado emitido, especificar um motivo de revogação e realizar uma revogação. As entidades de segurança também podem ler todos os certificados emitidos e exportá-los para arquivos.
Gerenciar CA - As entidades que recebem essa permissão podem gerenciar e configurar todas as opções na CA. Por padrão, eles não podem gerenciar certificados, mas podem conceder a si mesmos o direito.
Solicitar certificados - As entidades de segurança que recebem essa permissão podem executar solicitações de certificado para a autoridade de certificação. No entanto, isso não significa que eles possam se inscrever em um certificado. O modelo de certificado controla as permissões de inscrição.
Além de definir permissões de segurança na ACL (lista de controle de acesso) do objeto CA, você também pode usar a guia "Gerenciadores de certificados" na janela de propriedades da autoridade de certificação para restringir outras entidades de segurança que contenham a permissão “Emitir e Gerenciar certificados”.
Por exemplo, se você deseja delegar a permissão “Emitir e Gerenciar Certificados” para um modelo específico, você deve:
1 - Conceder à entidade de segurança o direito “Emitir e Gerenciar Certificados” na guia Segurança das propriedades da autoridade de certificação.
2 - Na guia “Gerenciadores de certificados” das propriedades da autoridade de certificação, selecione “Restringir gerenciadores de certificados”.
3 - Selecione a entidade de segurança que você deseja restringir e, em seguida, modifique os modelos que deseja que a entidade de segurança gerencie. Usando a guia “Gerenciadores de Certificados” das propriedades da autoridade de certificação, você pode delegar direitos a um modelo de certificado específico sem atribuir à entidade de segurança o direito de emitir e gerenciar certificados em todos os modelos publicados na autoridade de certificação.
Funções de segurança para a administração da autoridade de certificação
A administração baseada em função no AD CS fornece a capacidade de delegar as permissões predefinidas disponíveis em uma CA a grupos criados no AD DS para CAs corporativas ou no banco de dados local do Security Account Manager para CAs independentes que não sejam membros do domínio.
Embora possamos atribuir permissões de autoridade de certificação a um objeto de usuário específico, como prática recomendada, recomendo que as permissões sejam delegadas a grupos.
A delegação a um grupo reduz o esforço administrativo e fornece transparência sobre quais permissões foram atribuídas. Cada função criada só deve ser capaz de executar uma tarefa predeterminada ou uma série de tarefas atribuídas a um grupo de segurança.
A tabela a seguir mostra os detalhes das funções e grupos que normalmente estão envolvidos na administração baseada em função de uma implantação do AD CS.
OBS: O grupo Administradores local em uma autoridade de certificação tem as permissões para “Gerenciar CA” e “Emitir e Gerenciar Certificados” por padrão. Em CAs corporativas, essas permissões também se estendem aos grupos Admins. Do Domínio e Administradores de Empresa. Em CAs autônomas que ingressaram em um domínio, os membros do grupo Admins. Do Domínio também têm direitos administrativos completos na CA.
Criar funções de segurança para administração do AD CS
Por padrão, o AD CS não cria automaticamente as funções e os grupos listados na tabela acima no ato da instalação.
As funções listadas acima são representativas de uma implantação típica do AD CS em que se deseja a administração baseada em funções.
A administração baseada em função pode ser exclusiva para cada implantação do AD CS. Portanto, planeje e crie apenas as funções necessárias para sua organização.
Para tornar o entendimento mais fácil, vamos analisar o cenário a seguir e pensar numa possibilidade de configuração para atender aos requisitos.
Cenário: Você é o administrador do AD CS da empresa XPTO. Você implantou uma autoridade de certificação raiz independente associada ao domínio e duas autoridades de certificação subordinadas na empresa. Uma autoridade de certificação subordinada emitirá certificados de usuário e a outra autoridade de certificação subordinada emitirá certificados de computador. Você deseja configurar a administração baseada em funções para que tenha as seguintes funções:
1- Uma função com direitos Gerenciar CA e Emitir e gerenciar certificados em todas as CAs na hierarquia.
2- Uma função com os direitos Gerenciar CA e Emitir e Gerenciar Certificados somente em CAs subordinadas.
3- Uma função com os direitos Issue e Manage Certificates para o modelo de certificado do usuário.
4- Uma função com os direitos Issue e Manage Certificates para o modelo de certificado de computador.
Notem que embora seja um cenário hipotético, não é difícil encontrar cenário parecido na vida real.
Para atender a esses requisitos, podemos configurar a administração do AD CS baseada em função seguindo as seguintes etapas:
1. Criar um grupo de segurança no AD que se alinhe a cada função que desejamos atribuir no AD CS. Com base nos requisitos acima, criaríamos os seguintes grupos para cada função exigida:
- Administradores de PKI
- Administradores de CA subordinados
- Gerentes de certificado de usuário
- Gerentes de certificado de computador
2. Em cada CA da hierarquia, atribuímos ao grupo Administradores de PKI as permissões "Gerenciar CA" e "Emitir e Gerenciar Certificados" no console da Autoridade de Certificação.
3. Em cada CA subordinada, atribuímos ao grupo Administradores de CA subordinados as permissões "Gerenciar CA" e "Emitir e Gerenciar Certificado"s no console da Autoridade de Certificação.
4. Na autoridade de certificação subordinada que emitirá certificados de usuário, atribuímos ao grupo Gerenciadores de Certificados de Usuário a permissão "Emitir e Gerenciar Certificados" no console da Autoridade de Certificação. Na guia Gerenciadores de Certificados das propriedades da autoridade de certificação, restringimos o grupo Gerenciadores de Certificados do Usuário ao modelo de certificado do Usuário.
5. Na autoridade de certificação subordinada que emitirá certificados de computador, atribua ao grupo Administradores de Certificados de Computador a permissão "Emitir e Gerenciar Certificados" no console da Autoridade de Certificação. Na guia Gerenciadores de Certificados das propriedades da autoridade de certificação, você restringe o grupo Gerenciadores de Certificados de Computador ao modelo de certificado do Computador.
Configurando locais de CDPs e AIA
Para termos um ambiente de PKI que funcione corretamente, devemos configurar as extensões de certificado AIA e CDP para cada CA.
Isso garantirá que o ambiente de PKI encontre falhas mínimas quando os aplicativos ou serviços tentarem validar a cadeia de confiança ou o status de revogação de um certificado.
Basicamente, a função dos endereços AIA e CDP é:
- Os endereços AIA são as URLs que informam ao verificador de certificado a localização do certificado de autoridade de certificação. Os endereços AIA são necessários para que os aplicativos e serviços que usam um certificado possam estabelecer a validade da CA e de uma cadeia confiável para uma CA na qual o verificador confie explicitamente, se não confiar explicitamente na CA que emitiu o certificado diretamente.
- Os endereços CDP são os URLs que informam ao verificador de certificado a localização da CRL que a autoridade de certificação mantém. Os endereços CDP são necessários para que os aplicativos e serviços que usam um certificado possam estabelecer o status de revogação de um certificado. Cada certificado que você emite de sua CA contém os endereços AIA e CDP que configurado na CA no momento em que a CA emitiu o certificado. Todas as extensões AIA e CDP devem conter pelo menos uma URL acessível, ou o verificador pode assumir que o certificado não é válido, tornando-o inutilizável.
OBS: As URLs da AIA e CDP podem ser HTTP, FTP, LDAP (Lightweight Directory Access Protocol) ou endereços FILE.
Considerações sobre publicação de AIA e CDP
Se você estiver usando uma autoridade de certificação corporativa, os valores de extensão AIA e CDP serão configurados automaticamente para que o certificado de autoridade de certificação e a CRL estejam disponíveis na partição de configuração do AD DS que replica todos os controladores de domínio da floresta do AD DS.
No entanto, se implantarmos uma autoridade de certificação offline ou autônoma ou usar certificados que uma autoridade de certificação de fora do seu ambiente do AD, você deve considerar essas autoridades de certificação offline e autônomas não se integram ao AD DS. Logo, precisaremos garantir a acessibilidade de AIA e CDP manualmente publicando o certificado de autoridade de certificação offline ou independente e a CRL para AD DS usando o comando certutil.
Isso oferece o mesmo benefício que uma CA corporativa e torna as URLs da AIA e CDP acessíveis para clientes do AD em toda a floresta, mas devemos publicar manualmente as informações e configurar manualmente as extensões de CA com a URL do LDAP correta.
OBS: Além de configurar os pontos de publicação CDP e AIA, devemos nos certificar de que a CRL seja válida. Uma CA online renovará automaticamente a CRL periodicamente, mas uma CA offline não. Se a CRL da CA off-line expirar, as verificações de revogação falharão. Para evitar falhas, uma boa alternativa talvez seja configurar um período longo de validade para a CRL off-line, definir um lembrete para ativar essa autoridade de certificação e emitir uma nova CRL antes que a antiga expire.
Clientes que não são membros do domínio
Os clientes internos que não são membros do domínio não poderão acessar as URLs LDAP AIA ou CDP, que fazem referência à partição de configuração do AD DS.
Nesse caso, devemos disponibilizar o certificado de autoridade de certificação e a CRL em um servidor da Web acessível internamente e configurar uma URL HTTP válida para as extensões AIA e CDP.
Também podemos utilizar URLs FTP ou mesmo FILE, embora o recomendado seja usar apenas HTTP para garantirmos a máxima interoperabilidade e flexibilidade.
Importante salientar que clientes externos à sua rede, incluindo clientes de domínio em uma rede externa, também não poderão acessar as URLs AIA ou CDP, que fazem referência ao seu ambiente interno do AD DS. Além disso, eles podem não conseguir acessar URLs HTTP internos sem uma conexão VPN ou DirectAccess.
Se os clientes externos precisarem validar certificados emitidos por sua CA interna, talvez seja necessário publicar externamente as URLs HTTP internas usando o serviço Proxy de Aplicativo Web do Windows Server 2016 da função Acesso Remoto.
Outra alternativa é utilizar uma solução de proxy reverso de terceiros. Se as URLs internas e externas não corresponderem, você precisará configurar uma URL HTTP AIA / CDP adicional na CA.
Os clientes externos que não pertencem ao seu domínio do AD DS precisarão ter seu certificado de CA importado manualmente para os armazenamentos das Autoridades de Certificação Raiz Confiáveis ou das Autoridades de Certificação Intermediárias. Isso pode ser necessário, pois o cliente externo não confiará em outros certificados que sua CA interna emitiu.
OBS 01: A ordem de listagem das URLs CDP e AIA é importante porque o mecanismo de certificação verifica os URLs sequencialmente. Se os seus certificados são usados principalmente internamente em um ambiente do AD DS, coloque o URL do LDAP primeiro na lista. Solicite outros URLs com base na probabilidade de o URL estar disponível para clientes internos ou externos.
OBS 02: Se desativar as URLs AIA ou CDP nos certificados emitidos, removendo-as da autoridade de certificação, verifique se todos os certificados que contêm uma URL descomissionada expiraram, foram revogados ou contêm uma URL adicional que ainda seja válida e acessível.
Um outro utilitário extremamente útil para atestarmos o funcionamento e saúde de uma PKI é o PKIVIEW. Recomendo muito que o conheçam.
Maiores informações sobre o PKIVIEW pode ser obtida clicando aqui.
Espero que tenham gostado tanto do tema quanto da abordagem de mais esse artigo. Se gostaram, compartilhem a nos ajude a difundir o conhecimento.
Caso queiram que eu aborde alguém outro tema relacionado à serviços de infra Microsoft, me escrevam e emitam vossas sugestões.
Abraço e até a próxima!!!