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


Практическое руководство. Работа с параметрами шифрования

Важно!

Версии пакета SDK службы microsoft Rights Management, выпущенные до марта 2020 г., устарели; для использования выпуска за март 2020 г. необходимо обновить приложения, использующие более ранние версии. Полные сведения см. в уведомлении об устаревании.

Для пакета SDK службы Microsoft Rights Management не планируется никаких дополнительных улучшений. Мы настоятельно рекомендуем внедрить пакет SDK Microsoft Information Protection для классификации, маркировки и защиты.

В этом разделе рассказывается о пакетах шифрования и показываются некоторые фрагменты кода для их использования.

Поддержка AES 256, новый стандарт по умолчанию

Для использования шифрования на основе стандарта AES 256 дополнительный код не нужен (это новый стандарт по умолчанию), если вы создаете приложения с помощью пакета SDK 2.1 RMS с обновлением за март 2015 года или более поздней версии. Мы рекомендуем выполнять обновление приложений с помощью этого выпуска, чтобы воспользоваться дополнительными преимуществами защиты стандарта AES 256.

Важно!

Использование файлов с защитой AES 256 поддерживается, начиная с выпуска за октябрь 2014 года. При использовании приложений, созданных с помощью версий пакета SDK, выпущенных до октября 2014 года, это обновление нарушит работу приложения. Убедитесь, что пользователи ваших приложений используют обновленный пакет SDK или планируют выполнить обновление до последней версии приложения в кратчайшие сроки.

 

Поддержка шифрования API

Начиная с обновления за март 2015 года, в наш API и связанные пакеты шифрования добавлены три следующих флага:

  • IPC_ENCRYPTION_PACKAGE_AES256_CBC4K
  • IPC_ENCRYPTION_PACKAGE _AES128_CBC4K
  • IPC_ENCRYPTION_PACKAGE _AES128_ECB (также известный как устаревшие алгоритмы)

Флаги пакета шифрования, см. в разделе "Предпочтительное шифрование", можно использовать в сочетании с флагом "Свойство лицензии" IPC_LI_PREFERRED_ENCRYPTION_PACKAGE.

Ниже приведено несколько фрагментов простого кода, которые показывают, как использовать новое свойство лицензии.

Устаревшие алгоритмы

Мы больше не раскрываем флаг IPC_LI_DEPRECATED_ENCRYPTION_ALGORITHMS в нашем API. Это означает, что будущие версии приложений, если они ссылаются на этот флаг, больше не будут компилироваться. А уже созданные приложения будут работать, так как для них в частном порядке будет учитываться наличие этого флага в коде API.

Чтобы воспользоваться преимуществом флага предыдущих версий алгоритмов шифрования, необходимо изменить один флаг. Примеры см. в следующих фрагментах кода.

Защита файлов с помощью AES 256 CBC4K

Изменения в коде не нужны, стандарт AES 256 CBC4K используется по умолчанию.

hr = IpcCreateLicenseFromTemplateID(pcTil->aTi[0].wszID,
                                0,
                                NULL,
                                &pLicenseHandle);

Защита файлов с помощью AES-128 CBC4K

hr = IpcCreateLicenseFromTemplateID(pcTil->aTi[0].wszID,
                                0,
                                NULL,
                                &pLicenseHandle);

DWORD dwEncryptionMode = IPC_ENCRYPTION_PACKAGE_AES128_CBC4K;

hr = IpcSetLicenseProperty(pLicenseHandle,
                        false,
                        IPC_LI_PREFERRED_ENCRYPTION_PACKAGE,
                        &dwEncryptionMode);

Защита файлов с помощью AES-128 ECB (устаревшие алгоритмы)

В этом примере также показан новый способ поддержки устаревших алгоритмов.

hr = IpcCreateLicenseFromTemplateID(pcTil->aTi[0].wszID,
                                0,
                                NULL,
                                &pLicenseHandle);

DWORD dwEncryptionMode = IPC_ENCRYPTION_PACKAGE_AES128_ECB;

hr = IpcSetLicenseProperty(pLicenseHandle,
                        false,
                        IPC_LI_PREFERRED_ENCRYPTION_PACKAGE,
                        &dwEncryptionMode);