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


Cryptography

В этой статье представлен обзор функций шифрования, доступных для приложений WinUI. Подробные сведения о конкретных задачах см. в таблице в конце этой статьи.

Терминология

Следующая терминология часто используется в инфраструктуре шифрования и открытого ключа (PKI).

Срок Описание
Encryption Процесс преобразования данных с помощью криптографического алгоритма и ключа. Преобразованные данные можно восстановить только с помощью того же алгоритма и того же (симметричного) или связанного (открытого) ключа.
Расшифровка Процесс возврата зашифрованных данных в исходную форму.
Открытый текст Первоначально ссылается на незашифрованное текстовое сообщение. В настоящее время относится к любым незашифрованным данным.
Шифротекст Первоначально ссылается на зашифрованное и, следовательно, нечитаемое текстовое сообщение. В настоящее время это относится ко всем зашифрованным данным.
Хэширование Процесс преобразования данных переменной длины в фиксированную длину, обычно меньшее значение. Сравнивая хэши, вы можете получить разумное подтверждение того, что два или более данных одинаковы.
Signature Зашифрованный хэш цифровых данных обычно используется для проверки подлинности отправителя данных или проверки того, что данные не были изменены во время передачи.
Алгоритм Пошаговая процедура шифрования данных.
Ключ Случайный или псевдорандомный номер, используемый в качестве входных данных для шифрования и расшифровки данных.
Криптография симметричного ключа Криптография, в которой шифрование и расшифровка используют тот же ключ. Это также называется криптографией секретного ключа.
Асимметричный ключ шифрования Криптография, в которой шифрование и расшифровка используют другой, но математически связанный ключ. Это также называется криптографией открытого ключа.
Кодирование Процесс кодирования цифровых сообщений, включая сертификаты, для транспорта по сети.
Поставщик алгоритмов DLL, реализующая криптографический алгоритм.
Поставщик хранилища ключей Контейнер для хранения ключевого материала. В настоящее время ключи можно хранить в программном обеспечении, смарт-картах или доверенном модуле платформы (TPM).
Сертификат X.509 Цифровой документ, обычно выданный центром сертификации, для проверки личности отдельного лица, системы или сущности другим заинтересованным сторонам.

 

Namespaces

Следующие пространства имен доступны для использования в приложениях.

Windows.Security.Cryptography

Содержит класс CryptographicBuffer и статические методы, которые позволяют:

  • Преобразование данных в строки и из строк
  • Преобразование данных в и из массивов байтов
  • Кодирование сообщений для сетевого транспорта
  • Декодирование сообщений после передачи

Windows.Security.Cryptography.Certificates

Содержит классы, интерфейсы и типы перечисления, которые позволяют:

  • Создание запроса сертификата
  • Установка ответа сертификата
  • Импорт сертификата в PFX-файле
  • Указание и получение свойств запроса сертификата

Windows.Security.Cryptography.Core

Содержит классы и типы перечисления, которые позволяют:

  • Шифрование и расшифровка данных
  • Хэш-данные
  • Подписывайте данные и проверяйте подписи
  • Создание, импорт и экспорт ключей
  • Работа с поставщиками алгоритмов асимметричных ключей
  • Работа с поставщиками алгоритмов симметричного ключа
  • Работа с поставщиками хэш-алгоритмов
  • Работа с поставщиками алгоритмов для кода аутентификации сообщений (MAC)
  • Работа с поставщиками алгоритмов генерации ключей

Windows.Security.Cryptography.DataProtection

Содержит классы, которые позволяют выполнять следующие действия:

  • Асинхронное шифрование и расшифровка статических данных
  • Асинхронное шифрование и расшифровка потоков данных

Возможности приложений шифрования и PKI

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

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

Вы можете выполнить следующие задачи шифрования. Для получения дополнительной информации см. пространство имен Windows.Security.Cryptography.Core.

  • Создание симметричного ключа
  • Выполнение симметричного шифрования
  • Создание асимметричных ключей
  • Выполнение асимметричного шифрования
  • Извлечение ключей на основе паролей
  • Создание кодов проверки подлинности сообщений (MACs)
  • Хэш-содержимое
  • Цифровая подпись содержимого

Пакет SDK также предоставляет упрощенный интерфейс для защиты данных на основе паролей. Это можно использовать для выполнения следующих задач. Дополнительную информацию можно найти в пространстве имен Windows.Security.Cryptography.DataProtection.

  • Асинхронная защита статических данных
  • Асинхронная защита потока данных

Поддержка кодировки

Приложение может кодировать криптографические данные для передачи по сети и декодировать данные, полученные из сетевого источника. Дополнительные сведения см. в статических методах, доступных в пространстве имен Windows.Security.Cryptography .

Поддержка PKI

Приложения могут выполнять следующие задачи PKI. Дополнительные сведения см. в разделе пространства имен Windows.Security.Cryptography.Certificates.

  • Создание сертификата
  • Создание самозаверяющего сертификата
  • Установка ответа сертификата
  • Импорт сертификата в формате PFX
  • Использование сертификатов и ключей смарт-карт (набор возможностей sharedUserCertificates)
  • Использование сертификатов из пользовательского хранилища MY (набор возможностей sharedUserCertificates)

Кроме того, манифест можно использовать для выполнения следующих действий:

  • Указание доверенных корневых сертификатов для каждого приложения
  • Укажите доверенные сертификаты для каждого приложения отдельно
  • Явно отключить наследование от системного доверия
  • Укажите критерии выбора сертификата
    • Только сертификаты оборудования
    • Сертификаты, связанные через указанный набор удостоверяющих центров.
    • Автоматическое выбор сертификата из хранилища приложений

Подробные статьи

Дополнительные сведения о сценариях безопасности см. в следующих статьях.

Тема Описание
Certificates В этой статье рассматривается использование сертификатов в приложениях WinUI. Цифровые сертификаты используются в шифровании открытого ключа для привязки открытого ключа к лицу, компьютеру или организации. Привязанные учетные данные чаще всего используются для проверки подлинности одной сущности перед другой. Например, сертификаты часто используются для аутентификации веб-сервера перед пользователем и пользователя перед веб-сервером. Вы можете создавать запросы на сертификаты и устанавливать или импортировать выданные сертификаты. Вы также можете зарегистрировать сертификат в иерархии сертификатов.
Криптографические ключи В этой статье показано, как использовать стандартные функции производных ключей для получения ключей и шифрования содержимого с помощью симметричных и асимметричных ключей.
Защита данных В этой статье объясняется, как использовать класс DataProtectionProvider в пространстве имен Windows.Security.Cryptography.DataProtection для шифрования и расшифровки цифровых данных в приложении WinUI.
МАС, хэши и подписи В этой статье описывается, как коды проверки подлинности сообщений (MACs), хэши и подписи можно использовать в приложениях WinUI для обнаружения изменения сообщений.
Ограничения на экспорт шифрования Используйте эту информацию, чтобы определить, использует ли ваше приложение криптографию таким образом, который может помешать его публикации в Microsoft Store.
Распространенные задачи шифрования В этих статьях приведен пример кода для распространенных задач шифрования WinUI, таких как создание случайных чисел, сравнение буферов, преобразование между строками и двоичными данными, копирование в массивы байтов и кодировка и декодирование данных.