Поделиться через


Основные понятия синтаксиса шифрования обмена сообщениями PKCS #7

Функции сообщения CryptoAPI соответствуют стандарту синтаксиса криптографических сообщений (CMS) PKCS #7. Разработчикам необходимо ознакомиться с этой спецификацией, чтобы наиболее эффективно использовать функции сообщений низкого уровня. Здесь выделено несколько определений.

Стандарт PKCS #7 описывает общий синтаксис данных, к которым может быть применена криптография, например, цифровые подписи и цифровые обертки. Синтаксис допускает рекурсию, так что, например, один конверт может быть вложен внутри другого, или одна сторона может подписать цифровые данные, которые уже были помещены в конверт. Он также позволяет произвольным атрибутам, таким как время подписывания, проходить проверку подлинности вместе с содержимым сообщения. Кроме того, он предусматривает возможность ассоциации с сигнатурой других атрибутов, таких как контрасигнатуры.

Тип данных, содержащихся в сообщении PKCS #7, называется его типом контента. Существует два класса типов контента: Base и Enhanced.

  • Базовые типы контента содержат только данные без усовершенствований шифрования. В настоящее время в этом классе существует только один тип контента, тип контента данных.
  • Расширенные типы контента содержат данные определенного типа (возможно, зашифрованы) и другие усовершенствования шифрования (например, хэши или сигнатуры).

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

Типы контента, определенные в стандарте PKCS #7, приведены ниже.

Тип контента Описание
Данные Строка октета (BYTE).
Подписанные данные Содержимое любого типа и зашифрованных хэшей сообщений (дайджестов) содержимого для нуля или нескольких подписчиков.
Зашифрованные данные Зашифрованное содержимое любого типа и зашифрованные ключи шифрования содержимого для одного или нескольких получателей. Сочетание зашифрованного содержимого и зашифрованного ключа шифрования содержимого для получателя является цифровым конвертом для этого получателя.
Подписанные и охваченные данные Зашифрованное содержимое любого типа, зашифрованные ключи шифрования содержимого для одного или нескольких получателей и дважды зашифрованные дайджесты сообщений для одного или нескольких подписантов. Двойное шифрование состоит из шифрования с закрытым ключом подписи, за которым следует шифрование с ключом шифрования содержимого.
Обработанные данные Содержимое любого типа и хэш содержимого (дайджест).
Зашифрованные данные Зашифрованное содержимое любого типа. В отличие от типа содержимого обернутых данных, тип содержимого зашифрованных данных не имеет ни получателей, ни ключей шифрования содержания. Предполагается, что ключи управляются другими средствами.

 

Примечание.

В спецификации PKCS #7 термины дайджест и дайджест относятся к значению, полученному при применении алгоритма хэширования к данным. В этой документации используются термины хэш и хэшированные для той же цели. Например, тип данных, используемый с функциями сообщений низкого уровня, называется хэшированным, а не отсуммированным. В целях этой документации два набора терминов могут использоваться взаимозаменяемо.