Цепочки сертификатов
Чтобы использовать сертификаты в целях безопасности, необходимо проверить подлинность и действительность каждого полученного сертификата. Эта проверка зависит от концепции доверия и делегирования доверия; Дополнительные сведения см. в разделе Иерархия доверия.
Каждый сертификат содержит поле субъекта, которое идентифицирует пользователя или группу, которым был выдан сертификат. Каждый сертификат также содержит поле издателя, которое идентифицирует центр сертификации (ЦС), уполномоченный сертифицировать удостоверение субъекта.
Цепочка сертификатов состоит из всех сертификатов, необходимых для сертификации субъекта, определенного конечным сертификатом. На практике это относится к конечному сертификату, сертификатам промежуточных ЦС и сертификату корневого ЦС, которому доверяют все стороны в цепочке. Каждый промежуточный ЦС в цепочке содержит сертификат, выданный ЦС на один уровень выше его в иерархии доверия. Корневой ЦС выдает сертификат для себя.
Процесс проверки подлинности и действительности вновь полученного сертификата включает проверку всех сертификатов в цепочке сертификатов от исходного, универсально доверенного ЦС, через любые промежуточные ЦС до только что полученного сертификата, который называется конечным сертификатом. Новый сертификат может быть доверенным только в том случае, если каждый сертификат в цепочке сертификатов правильно выдан и действителен.
Отслеживание всех сертификатов, которые возвращают новый конечный сертификат, может стать трудоемким. Таким образом, технология CryptoAPI 2.0 предоставляет функции, которые автоматизируют создание цепочки сертификатов, которые поддерживают любой заданный конечный сертификат. Эти функции также проверка и сообщают о действии каждого сертификата в цепочке.
Функции создания цепочки и проверки CryptoAPI 2.0 используют механизм цепочки для создания и проверки цепочек сертификатов. Подсистема цепочки определяет пространство имен хранилища и секционирование кэша для инфраструктуры цепочки сертификатов. CryptoAPI 2.0 предоставляет механизм цепочки по умолчанию для любого процесса приложения, который использует только системные хранилища по умолчанию (например, MY, Root, CA и Trust) для создания цепочки и кэширования. Приложение может определить собственное пространство имен хранилища или иметь собственный секционированный кэш, создав собственный механизм цепочки. Чтобы добиться оптимального поведения кэширования, рекомендуется создать единую цепную подсистему при запуске приложения и использовать эту подсистему цепочки на протяжении всего времени существования приложения.
Список функций см. в разделе Функции проверки цепочки сертификатов. Сведения о программе, которая создает цепочки сертификатов и проверяет сертификаты, см. в разделе Пример программы C. Создание цепочки сертификатов.