Como manter lista de revogação para certificados de cliente

1

Eu tenho um site em execução no Windows Server 2012, IIS. Os usuários são autenticados usando certificados de cliente.

Eu usei para emitir certificados de cliente usando o snap-in do MMC de autoridade de certificação.

Como o número de usuários está crescendo rapidamente, agora estou criando certificados de cliente em lote, usando a biblioteca BouncyCastle e um pequeno código C #. Eu acredito que eu também poderia ter feito isso usando Makecert ou Openssl.

Nesses certificados, estou configurando as entradas da lista de revogação para os mesmos valores usados pelo snap-in da Autoridade de Certificação.

O IIS aceita esses certificados bem.

Minha pergunta está relacionada à revogação de certificados. Os certificados de cliente que foram emitidos no servidor podem ser facilmente revogados usando o snap-in do MMC, mas suponhamos que eu precise revogar qualquer um desses novos certificados. Embora o IIS aceite esses certificados, ele não possui nenhum registro deles, portanto, aparentemente, não posso revogá-los usando o snap-in da Autoridade de Certificação. Além disso, parece não haver nenhuma maneira de importar esses certificados, fazendo com que eles apareçam no snap-in da Autoridade de Certificação.

Então, qual é a melhor maneira de fazer isso? Preciso configurar uma lista de revogação (CRL) em algum outro lugar para esses certificados?

    
por H. den Breejen 02.02.2015 / 22:13

1 resposta

0

Você está fazendo errado. Se você usa a CA do Windows para emitir certificados, somente a autoridade de certificação do Windows deve assinar certificados com esse certificado de autoridade de certificação e par de chaves específicos. Você está comprometendo sua PKI usando bibliotecas openssl e de terceiros para assinar certificados de cliente com o certificado de CA do Windows. Por violar o requisito RFC5280 §4.1.2.2 : a CA deve manter o registro dos certificados emitidos e aplicar algumas restrições. Por exemplo, unicidade do número de série.

Também pode levar a uma incoistência de políticas e, obviamente, a incapacidade de fornecer meios de revogação para certificados assinados pela openssl.

Não importa qual ferramenta você usa para gerar e assinar solicitações, mas apenas um aplicativo deve usar determinado certificado CA para assinar outros certificados, armazená-los em um banco de dados e assinar CRLs. Pode haver soluções alternativas, mas nenhuma será suportada.

Se seus usuários residem no Active Directory, você deve utilizar o autenrollment de certificado funcionalidade para automatizar tarefas de emissão de certificados.

    
por 03.02.2015 / 09:01