Глава 14. Библиотека сертификатов и сообщений (ctMsgLib)

Библиотека сертификатов и сообщений (ctMsgLib) предоставляет высокоуровневый интерфейс к процедурам управления сертификатами и обработки сообщений. 

Общий обзор:

Библиотека поддерживает все общеиспользуемые сертификационные объекты:

cертификат — подписанные данные, содержащие имя пользователя, открытый ключ, параметры алгоритма и другую информацию. Обычно сертификаты подписывает доверенная организация, называемая Certification Authority (CA) или Центром Сертификации (ЦС). Это обеспечивает секретный способ обмена открытыми ключами между пользователями системы безопасности.

запрос на  сертификат — подписанные данные, содержащую информацию, требуемую для создания сертификата. Запрос подписывается пользователем и отправляется в ЦС на обработку. ЦС создаёт сертификат по информации запроса.

CMC запрос/ответ — этот объект используется для взаимодействия с ЦС. Запрос может содержать несколько запросов на сертификацию и набор дополнительных атрибутов. Ответ посылается Центром Сертификации на каждый запрос CMC.

список аннулированных сертификатов (Certificate revokation list, CRL) — подписанные данные, содержащие список сертификатов, которые были аннулированы (отменены) в ЦС и не могут использоваться с момента аннулирования. CRL подписывается ЦС и периодически рассылается пользователям. 

список доверенных сертификатов (Certificate trust list, CTL) — капсула с данными, содержащими список сертификатов, которые являются доверенными на использование без проверки подписи. Он должен содержать, как минимум, самоподписанный сертификат ЦС. Каждый пользователь хранит CTL на своём компьютере.

цепь сертификатов — капсула с данными, содержащая несколько сертификатов, представляющими путь сертификации.

цепь объектов — капсула с данными, содержащая внутри набор любых объектов.

Сертификаты, используемые в настоящей библиотеке, полностью удовлетворяет международному стандарту X.509 (стандарт, используемый для хранения дополнительной информации в сертификационных объектах), включая его расширения версии 3.

конверт сообщений — сообщения, содержащие криптографически обработанные данные и связанную с ними информацию, необходимую для его открывания.

CtMsgLib поддерживает определённое количество общеиспользуемых типов (стандарта PKCS #7) содержимого сообщений для хэшированных, подписанных или закодированных данных.

Формат PKCS #7 описывает общий синтаксис сообщения. Этот синтаксис допускает рекурсию, при которой, например, один конверт может находиться внутри другого, или пользователь может подписать данные, хотя они были уже помещены в конверт другим пользователем. Также доступны произвольные расширения — атрибуты, такие как подписанное время, эти атрибуты подписываются вместе с содержимым конверта.

Функции библиотеки ctMsgLib предусматривают управление сертификатами и обработкой сообщений. Они предоставляют возможность:

-открыть новый контекст для объекта указанного типа -добавить ссылку в контекст

-закрыть контекст и освободить захваченную память -получить свойства контекста объекта

-установить свойства контекста объекта

-передавать данные между контекстами, добавляя один объект ко другому -фиксировать и подписывать данные объекта -проверить подлинность полей и подписи объекта -получить информацию о последней ошибке

Следующие структуры ctMsgLib содержат всю необходимую для работы информацию:

К константам ctMsgLib относятся:

С помощью ctMsgLib Вы можете свободно работать с сертификационными объектами и сообщениями. В документации (.chm) к .Библиотеке приведены примеры:

создания сертификата по запросу

создания законченного сообщения

и другие примеры.