Almacenes de recopilación
A medida que crece el número de certificados, las listas de revocación de certificados (CRL) y la lista de confianza de certificados (CTL) en la colección de un usuario, la organización de esos certificados se convierte en un problema. Una posible solución es crear almacenes de certificados independientes para mantener diferentes tipos de certificados. Esta solución crea un nuevo problema porque es posible que una aplicación necesite buscar varios almacenes diferentes para encontrar un certificado específico. El uso de almacenes lógicos o de colección resuelve este problema.
Un almacén lógico y un almacén de certificados de recopilación son grupos de almacenes físicos que parecen en una aplicación como un único almacén. Todos los almacenes de miembros de un almacén lógico o de colección se pueden buscar o enumerar con una sola llamada de función a CertFindCertificateInStore o CertEnumCertificatesInStore.
El uso de almacenes lógicos o de colección también proporciona flexibilidad que es difícil de lograr con registros de papel. Es posible que un certificado de un único almacén físico tenga que ser miembro de varios grupos lógicos diferentes. Por lo tanto, un almacén físico individual puede ser miembro de más de un almacén lógico o de colección, como se muestra en la ilustración siguiente.
En esta ilustración se presentan los siguientes conceptos básicos del almacén de certificados lógicos:
- Un almacén de certificados de colección tiene un puntero al primer bloque de puntero para ese almacén de recopilación.
- Cada bloque de puntero de un almacén de recopilación tiene un puntero a un almacén relacionado y un puntero al siguiente bloque de puntero de la colección.
- Cada almacén relacionado de una colección es un almacén de certificados físico simple.
- Un almacén de certificados simple puede ser un almacén relacionado miembro en muchos almacenes de recopilación diferentes.
- Los certificados agregados a un almacén de recopilación se agregan físicamente a uno de los almacenes del mismo nivel de la colección.
- Se puede acceder a los certificados de un almacén relacionado mediante cualquier almacén de recopilación en el que el almacén relacionado sea miembro.
Los almacenes de recopilación se compilan dentro de una aplicación abriendo un almacén de recopilación mediante CertOpenStore y, a continuación, usando CertAddStoreToCollection para agregar un almacén relacionado abierto al almacén de recopilación. Un almacén relacionado se puede eliminar de un almacén de recopilación llamando a CertRemoveStoreFromCollection.