Шифрование
В этой статье представлен обзор функций шифрования, доступных для приложений универсальная платформа 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, таких как создание случайных чисел, сравнение буферов, преобразование между строками и двоичными данными, копирование в массивы байтов и кодировка и декодирование данных. |