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


Шифрование

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

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

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

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

 

Пространства имен

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

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)

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

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

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

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

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