Gerenciando certificados com repositórios de certificados
Durante um período de tempo, os certificados serão acumulados no computador de um usuário. As ferramentas são necessárias para gerenciar esses certificados. CryptoAPI fornece essas ferramentas como funções para armazenar, recuperar, excluir, listar (enumerar) e verificar certificados. CryptoAPI também fornece os meios para anexar certificados a mensagens.
CryptoAPI oferece duas categorias main de funções para gerenciar certificados: funções que gerenciam repositórios de certificados e funções que funcionam com certificados, CRLs (listas de revogação de certificados) e CTLs (listas de confiança de certificado) nesses repositórios.
As funções que gerenciam repositórios de certificados incluem funções para trabalhar com repositórios lógicos ou virtuais, repositórios remotos, repositórios externos e repositórios que podem ser realocados.
Certificados, CRLs e CTLs podem ser mantidos e mantidos em repositórios de certificados. Eles podem ser recuperados de um repositório em que foram persistidos para uso em processos de autenticação.
O repositório de certificados é central para todas as funcionalidades de certificado. Os certificados são gerenciados no repositório usando funções com um prefixo "Cert". Um repositório de certificados típico é uma lista vinculada de certificados , conforme mostrado na ilustração a seguir.
A ilustração anterior mostra:
- Cada repositório de certificados tem um ponteiro para o primeiro bloco de certificados nesse repositório.
- Um bloco de certificado inclui um ponteiro para os dados desse certificado e um ponteiro "próximo" para o próximo bloco de certificado no repositório.
- O ponteiro "próximo" no último bloco de certificado é definido como NULL.
- O bloco de dados de um certificado contém o contexto de certificado somente leitura e todas as propriedades estendidas do certificado.
- O bloco de dados de cada certificado contém uma contagem de referência que controla o número de ponteiros para o certificado existente.
Os certificados em um repositório de certificados normalmente são mantidos em algum tipo de armazenamento permanente, como um arquivo de disco ou o registro do sistema. Os repositórios de certificados também podem ser criados e abertos estritamente na memória. Um repositório de memória fornece armazenamento temporário de certificados para trabalhar com certificados que não precisam ser mantidos.
Locais de repositório adicionais permitem que os repositórios sejam mantidos e pesquisados em várias partes do registro de um computador local ou, com permissões adequadas definidas, no registro em um computador remoto.
Cada usuário tem um Meu repositório pessoal onde os certificados desse usuário são armazenados. O Meu repositório pode estar em qualquer um dos muitos locais físicos, incluindo o registro em um computador local ou remoto, um arquivo de disco, um banco de dados, um serviço de diretório, um cartão inteligente ou outro local. Embora qualquer certificado possa ser armazenado em Minha loja, esse repositório deve ser reservado para os certificados pessoais de um usuário: esses certificados usados para assinar e descriptografar as mensagens desse usuário.
O uso de certificados para autenticação depende de ter certificados emitidos por algum emissor de certificado confiável. Os certificados para emissores de certificados confiáveis normalmente são mantidos no repositório Raiz, que atualmente é mantido em uma subchave do Registro. No contexto CryptoAPI, o repositório Raiz está protegido e as caixas de diálogo da interface do usuário lembram o usuário de colocar apenas certificados confiáveis nesse repositório. Em situações de rede corporativa, os certificados podem ser enviados por push (copiados) por um administrador do sistema do computador controlador de domínio para os repositórios raiz em computadores cliente. Esse processo fornece a todos os membros de um domínio listas de confiança semelhantes.
Outros certificados podem ser armazenados no repositório do sistema de autoridade de certificação (AC) ou em repositórios baseados em arquivos criados pelo usuário.
Para obter listas de funções para usar e manter repositórios de certificados, consulte Funções do Repositório de Certificados.
Para obter um exemplo que usa algumas dessas funções, consulte Exemplo de programa C: operações de repositório de certificados.
Tópicos relacionados