Справочник по CAPICOM
[CAPICOM — это 32-разрядный компонент, доступный для использования в следующих операционных системах: Windows Server 2008, Windows Vista и Windows XP. Вместо этого используйте платформа .NET Framework для реализации функций безопасности. Дополнительные сведения см. в статье Альтернативы использованию CAPICOM.]
COM-клиент CAPICOM предоставляет службы, позволяющие разработчикам приложений добавлять в приложения безопасность на основе шифрования . CryptoAPI включает функции для проверки подлинности с помощью цифровых подписей, для обволакивающих сообщений, а также для шифрования и расшифровки данных.
Категория | Описание |
---|---|
Объекты хранилища сертификатов | Объекты, доступные для использования хранилищ сертификатов и сертификатов в этих хранилищах. |
Объекты цифровой подписи | Объекты, используемые для цифровой подписи данных и проверки цифровых подписей. |
Объекты данных в оболочке | Объекты, используемые для создания сообщений с запечатанными данными для обеспечения конфиденциальности и расшифровки данных в конвертированных сообщениях. |
Объекты шифрования данных | Объекты, используемые для шифрования данных и расшифровки зашифрованных данных. |
Вспомогательные объекты | Объекты, используемые для изменения поведения по умолчанию и управления сертификатами, хранилищами сертификатов и сообщениями пользовательского интерфейса. |
Интерфейсы взаимодействия | Интерфейсы, позволяющие производным от CryptoAPI работать вместе с CAPICOM 2.0. |
Типы перечисления | Типы перечисления, используемые с CAPICOM. |
Объекты хранилища сертификатов
Следующие объекты работают с хранилищами сертификатов и сертификатами в этих хранилищах. CAPICOM поддерживает использование хранилищ сертификатов текущего пользователя, локального компьютера, памяти и Active Directory.
Объект | Описание |
---|---|
Сертификат | Один цифровой сертификат. |
CertificatePolicies | Коллекция объектов PolicyInformation . |
Сертификаты | Коллекция объектов Certificate . |
CertificateStatus | Предоставляет сведения о состоянии сертификата. |
Цепи | Создает и проверяет цепочку проверки сертификатов на основе цифрового сертификата. |
ExtendedProperties | Представляет коллекцию объектов ExtendedProperty . |
ExtendedProperty | Представляет расширенное свойство Майкрософт. |
Расширение | Представляет одно расширение сертификата. |
Расширения | Представляет коллекцию объектов Extension . |
PrivateKey | Представляет закрытый ключ. |
PublicKey | Представляет открытый ключ в объекте Certificate . |
Магазин | Предоставляет свойства и методы для выбора, управления и использования хранилищ сертификатов и сертификатов в этих хранилищах. |
Шаблон | Представляет шаблон расширения сертификата. |
Объекты цифровой подписи
Следующие объекты экспортируются в данные цифровой подписи и для проверки цифровых подписей.
Объект | Описание |
---|---|
SignedCode | Предоставляет функциональные возможности для подписывания содержимого цифровой подписью Authenticode. |
SignedData | Объект, используемый для подписывания данных и проверки подписи на подписанных данных. |
Автор подписи | Сведения об одном подписании данных, включая сертификат подписывающего. |
Подписыватели | Коллекция объектов Signer . |
Объекты данных в оболочке
Следующие объекты экспортируются для создания сообщений с запечатанными данными для обеспечения конфиденциальности и расшифровки данных в конвертированных сообщениях.
Объект | Описание |
---|---|
EnvelopedData | Объекты, используемые для создания, отправки и получения запечатанных данных. Зашифрованные данные шифруются таким образом, что только предполагаемые получатели могут расшифровать их. |
Recipients | Коллекция объектов Certificate предполагаемых получателей конвертированного сообщения. |
Объекты шифрования данных
Следующий объект экспортируется для шифрования произвольных данных для обеспечения конфиденциальности и расшифровки зашифрованных данных.
Объект | Описание |
---|---|
EncryptedData | Объекты, используемые для шифрования данных. Зашифрованные данные в объекте EncryptedData можно расшифровать. |
Вспомогательные объекты
Следующие объекты экспортируются для изменения поведения других объектов по умолчанию, а также для управления сертификатами, хранилищами сертификатов и сообщениями.
Объект | Описание |
---|---|
Алгоритм | Задает алгоритм и длину ключа для использования в криптографических операциях. |
attribute | Предоставляет одну часть добавленных сведений о подписи, например время подписи. |
Атрибуты | Коллекция объектов Attribute . |
BasicConstraints | Предоставляет доступ только для чтения к основным ограничениям на использование сертификата. |
EKU | Предоставляет доступ к свойствам EKU сертификатов. |
EKU | Коллекция объектов EKU . |
EncodedData | Представляет блок закодированных данных. |
ExtendedKeyUsage | Предоставляет доступ только для чтения к свойствам расширенного использования ключа сертификатов. |
HashedData | Предоставляет функциональные возможности для применения хэш-алгоритма к строке. |
KeyUsage | Предоставляет доступ только для чтения к свойствам использования ключей сертификатов. |
OID | Представляет идентификатор объекта, используемый несколькими свойствами CAPICOM. |
Идентификаторы OID | Представляет коллекцию объектов OID . |
PolicyInformation | Предоставляет доступ к идентификаторам OID политики расширения. |
Квалификатор | Представляет указатель заявления о сертификации (CPS) или квалификатор уведомления пользователя. |
Квалификаторы | Представляет коллекцию квалификаторов. |
Параметры | Включает или отключает диалоговые окна для запроса удостоверения подписателя или отправителя, если это удостоверение не указано. |
Служебные программы | Предоставляет функциональные возможности для распространенных задач. |
Интерфейсы взаимодействия
Следующие интерфейсы позволяют производным от CryptoAPI работать вместе с CAPICOM 2.0.
Интерфейс | Описание |
---|---|
ICertContext | Предоставляет доступ к контексту объекта сертификата CAPICOM X.509v3. Этот контекст позволяет использовать сертификат CAPICOM в других производных от CryptoAPI. |
ICertStore | Предоставляет доступ к контексту объекта CAPICOM Store . Этот контекст позволяет использовать хранилище сертификатов CAPICOM в других производных от CryptoAPI. |
IChainContext | Предоставляет доступ к контексту объекта CAPICOM Chain . Этот контекст позволяет использовать цепочку доверия сертификатов CAPICOM в других производных от CryptoAPI. |
Типы перечисления
CAPICOM определяет следующие типы перечисления:
Подготовка к использованию CAPICOM
[CAPICOM — это 32-разрядный компонент, доступный для использования в следующих операционных системах: Windows Server 2008, Windows Vista и Windows XP. Вместо этого используйте платформа .NET Framework для реализации функций безопасности. Дополнительные сведения см. в статье Альтернативы использованию CAPICOM.]
Приложения, использующие объекты CAPICOM, должны создаваться с помощью CAPICOM.dll. CAPICOM.dll также должны присутствовать и регистрироваться во время выполнения, чтобы использовать объекты CAPICOM. CAPICOM.dll следует добавить в ссылки на проекты Visual Basic, чтобы использовать объекты CAPICOM.
CAPICOM доступен в виде распространяемого файла, который можно скачать из распространяемого пакета SDK для платформы: CAPICOM. Сведения о версиях CAPICOM см. в разделе Версии CAPICOM.
Регистрация CAPICOM.dll
- В командной строке измените каталог на каталог, в котором хранится CAPICOM.dll, а затем введите следующую команду: CAPICOM.dllregsvr32
Примеры ограничений кода
Чтобы обеспечить более краткий и более удобочитаемый код, в этих примерах не всегда соблюдаются принципы надлежащей практики программирования. В частности, отображаются только ограниченные ответы на ошибки. Рабочие приложения всегда должны проверка возвращенные коды ошибок и выполнять соответствующие действия при возникновении ошибки.
Необходимые контейнеры ключей, ключи и сертификаты в CAPICOM
Хотя некоторые операции с объектами CAPICOM могут выполняться на любом компьютере любым пользователем, создание цифровых подписей и получение содержимого в виде открытого текста сообщения с помощью объектов CAPICOM являются операциями на основе сертификатов. Пользователь, создающий цифровую подпись, и пользователь, извлекавший зашифрованное содержимое конвертированного сообщения, должны иметь цифровой сертификат с доступным связанным закрытым ключом. Если сертификат со связанным закрытым ключом отсутствует, криптографическая операция завершится ошибкой. Пользователи приложений CAPICOM должны убедиться, что у них есть соответствующий сертификат и доступный закрытый ключ при запуске приложений.
В некоторых примерах в следующих разделах выполняются операции, для которых требуется доступная пара открытого и закрытого ключей для шифрования и расшифровки файлов, сообщений и подписей. Многие из этих программ будут компилироваться и запускаться, но завершаются сбоем во время выполнения без наличия соответствующих контейнеров ключей, ключей, хранилищ сертификатов и сертификатов в этих хранилищах.
Создание самозаверяющего сертификата
- Установите средства подписывания. Они устанавливаются в составе пакета SDK для Microsoft Windows, пакета SDK для платформы или пакета SDK для платформа .NET Framework.
- После скачивания Makecert.exe выполните следующую команду в командной строке, заменив имя пользователя на UserName, название организации на OrganizationName и название компании в поле CompanyName: makecert -r -n «cn=UserName, ou=OrganizationName, o=CompanyName» -ss my
- Сертификат можно поместить в хранилище My текущего пользователя. Импортируйте сертификат, созданный в корневое хранилище, чтобы он был доверенным.
Использование CAPICOM
[CAPICOM — это 32-разрядный компонент, доступный для использования в следующих операционных системах: Windows Server 2008, Windows Vista и Windows XP. Вместо этого используйте платформа .NET Framework для реализации функций безопасности. Дополнительные сведения см. в статье Альтернативы использованию CAPICOM.]
В этом разделе содержатся сценарии, использующие процедуры CAPICOM.
Создание цифровых подписей и обволакивание сообщений с помощью CAPICOM выполняется с помощью шифрования инфраструктуры открытых ключей (PKI) и может выполняться только в том случае, если подписыватель или пользователь, расшифровывая конвертированное сообщение, имеет доступ к сертификату с доступным связанным закрытым ключом. Чтобы расшифровать конвертированное сообщение, сертификат с доступом к закрытому ключу должен находиться в хранилище MY.
Обсуждения и примеры сценариев на основе задач разделены на следующие разделы:
- Альтернативы использованию CAPICOM
- Подготовка к использованию CAPICOM
- Шифрование и расшифровка данных
- Подписывание данных и проверка цифровых подписей
- Использование хранилищ сертификатов
- Создание и получение сообщений о конвертированных данных
При подготовке материала использовались источники:
https://learn.microsoft.com/ru-ru/windows/win32/seccrypto/capicom-reference
https://learn.microsoft.com/ru-ru/windows/win32/seccrypto/getting-ready-to-use-capicom
https://learn.microsoft.com/ru-ru/windows/win32/seccrypto/using-capicom