Настройка шифрования с двумя ключами
Область применения: Шифрование двойного ключа Microsoft Purview, Microsoft Purview, Azure Information Protection
Описание службы для: Microsoft Purview
Выполните следующие общие действия, чтобы настроить DKE. После выполнения этих действий пользователи смогут защитить конфиденциальные данные с помощью шифрования двойного ключа.
Разверните службу DKE, как описано в этой статье. Убедитесь, что ваша среда соответствует минимальным требованиям к системе и лицензированию. Дополнительные сведения см. в статье Требования к системе и лицензированию для DKE.
Создайте метку с шифрованием двойного ключа. В Портал соответствия требованиям Microsoft Purview перейдите в раздел Защита информации и создайте новую метку с шифрованием двойного ключа. См . раздел Ограничение доступа к содержимому с помощью меток конфиденциальности для применения шифрования.
Настройте реестр на клиентских устройствах, чтобы можно было использовать метки шифрования двойного ключа. Затем защитите данные, выбрав метку Зашифровано с двойным ключом на ленте Конфиденциальность в Microsoft Office.
Существует несколько способов выполнения некоторых действий по развертыванию шифрования с двойным ключом. В этой статье содержатся подробные инструкции, чтобы менее опытные администраторы успешно развернули службу. Если вам это удобно, вы можете выбрать собственные методы.
Развертывание DKE
В этой статье и видео о развертывании используется Azure в качестве назначения развертывания для службы DKE. При развертывании в другом расположении необходимо указать собственные значения.
Выполните следующие общие действия, чтобы настроить шифрование с двойным ключом для организации.
- Установка необходимых компонентов программного обеспечения для службы DKE
- Клонирование репозитория GitHub для шифрования двойного ключа
- Изменение параметров приложения
- Создание тестовых ключей
- Построение проекта
- Развертывание службы DKE и публикация хранилища ключей
- Проверка развертывания
- Регистрация хранилища ключей
- Создание меток конфиденциальности с помощью DKE
- Перенос защищенных файлов из меток HYOK в метки DKE
По завершении можно зашифровать документы и файлы с помощью DKE. Дополнительные сведения см. в статье Применение меток конфиденциальности к файлам и электронной почте в Office.
Установка необходимых компонентов программного обеспечения для службы DKE
Установите эти необходимые компоненты на компьютере, на котором требуется установить службу DKE.
Пакет SDK для .NET 8.0. Скачайте и установите пакет SDK из раздела Скачать .NET 8.0.
Visual Studio Code. Скачайте Visual Studio Code из https://code.visualstudio.com/. После установки запустите Visual Studio Code и выберите Просмотреть>расширения. Установите эти расширения.
C# для Visual Studio Code
Диспетчер пакетов NuGet
Ресурсы Git. Скачайте и установите одно из следующих компонентов.
OpenSSL. Для создания тестовых ключей после развертывания DKE необходимо установить OpenSSL. Убедитесь, что вы правильно вызываете его из пути переменных среды. Например, дополнительные сведения см. в разделе "Добавление каталога установки в PATH".https://www.osradar.com/install-openssl-windows/
Клонирование репозитория DKE GitHub
Корпорация Майкрософт предоставляет исходные файлы DKE в репозитории GitHub. Вы клонируйте репозиторий, чтобы создать проект локально для использования в организации. Репозиторий DKE GitHub находится по адресу https://github.com/Azure-Samples/DoubleKeyEncryptionService.
Следующие инструкции предназначены для неопытных пользователей Git или Visual Studio Code:
В браузере перейдите по адресу https://github.com/Azure-Samples/DoubleKeyEncryptionService.
В правой части экрана выберите Код. В вашей версии пользовательского интерфейса может отображаться кнопка "Клонировать" или "Скачать ". Затем в появившемся раскрывающемся списке щелкните значок копирования, чтобы скопировать URL-адрес в буфер обмена.
Например:
В Visual Studio Code выберите Просмотр>палитры команд и выберите Git: клонирование. Чтобы перейти к параметру в списке, начните вводить,
git: clone
чтобы отфильтровать записи, а затем выберите его в раскрывающемся списке. Например:В текстовое поле вставьте URL-адрес, скопированный из Git, и выберите Клонировать из GitHub.
В появившемся диалоговом окне Выбор папки перейдите по адресу и выберите расположение для хранения репозитория. Выберите Открыть.
Репозиторий откроется в Visual Studio Code и отображает текущую ветвь Git в левом нижнем углу. Ветвь должна быть main. Например:
Если вы не находитесь в ветви main, выберите ее. В Visual Studio Code выберите ветвь и выберите main в списке отображаемых ветвей.
Важно!
Выбор main ветви гарантирует, что у вас есть правильные файлы для сборки проекта. Если не выбрать правильную ветвь, развертывание завершится ошибкой.
Теперь у вас есть репозиторий источника DKE, настроенный локально. Затем измените параметры приложения для своей организации.
Изменение параметров приложения
Чтобы развернуть службу DKE, необходимо изменить следующие типы параметров приложения:
Параметры приложения изменяются в файле appsettings.json. Этот файл находится в репозитории DoubleKeyEncryptionService, который вы клонировали локально в папке DoubleKeyEncryptionService\src\customer-key-store. Например, в Visual Studio Code можно перейти к файлу, как показано на следующем рисунке.
Параметры доступа к ключам
Выберите, следует ли использовать электронную почту или авторизацию роли. DKE поддерживает только один из этих методов проверки подлинности одновременно.
авторизация Email. Позволяет вашей организации авторизовать доступ к ключам только на основе адресов электронной почты.
Авторизация роли. Позволяет вашей организации авторизовать доступ к ключам на основе групп Active Directory и требует, чтобы веб-служба могла запрашивать LDAP.
Настройка параметров доступа к ключам для DKE с помощью авторизации по электронной почте
Откройте файл appsettings.json и найдите
AuthorizedEmailAddress
параметр .Добавьте адрес электронной почты или адреса, которые вы хотите авторизовать. Разделите несколько адресов электронной почты двойными кавычками и запятыми. Например:
"AuthorizedEmailAddress": ["email1@company.com", "email2@company.com ", "email3@company.com"]
LDAPPath
Найдите параметр и удалите текстIf you use role authorization (AuthorizedRoles) then this is the LDAP path.
между двойными кавычками. Оставьте двойные кавычки на месте. По завершении настройка должна выглядеть следующим образом."LDAPPath": ""
AuthorizedRoles
Найдите параметр и удалите всю строку.
На этом изображении показан файл appsettings.json , правильно отформатированный для авторизации по электронной почте.
Настройка параметров доступа к ключам для DKE с помощью авторизации роли
Откройте файл appsettings.json и найдите
AuthorizedRoles
параметр .Добавьте имена групп Active Directory, которые нужно авторизовать. Разделите несколько имен групп двойными кавычками и запятыми. Например:
"AuthorizedRoles": ["group1", "group2", "group3"]
LDAPPath
Найдите параметр и добавьте домен Active Directory. Например:"LDAPPath": "contoso.com"
AuthorizedEmailAddress
Найдите параметр и удалите всю строку.
На этом изображении показан файл appsettings.json , правильно отформатированный для авторизации роли.
Параметры клиента и ключа
Параметры клиента И ключа DKE находятся в файле appsettings.json .
Настройка параметров клиента и ключа для DKE
Откройте файл appsettings.json .
ValidIssuers
Найдите параметр и замените<tenantid>
идентификатором клиента, чтобы сохранить косую черту в конце идентификатора клиента. Чтобы найти идентификатор клиента, перейдите в портал Azure и просмотрите свойства клиента. Например:"ValidIssuers": [ "https://sts.windows.net/9c99431e-b513-44be-a7d9-e7b500002d4b/" ]
Примечание.
Если вы хотите включить внешний доступ B2B к хранилищу ключей, необходимо также включить эти внешние клиенты в список допустимых издателей.
Найдите .JwtAudience
Замените <yourhostname>
именем узла компьютера, на котором требуется запустить службу DKE. Пример: "https://dkeservice.contoso.com"
Важно!
Значение для JwtAudience
должно точно соответствовать имени узла.
-
TestKeys:Name
. Введите имя ключа. Пример:TestKey1
-
TestKeys:Id
. Создайте ИДЕНТИФИКАТОР GUID и введите его вTestKeys:ID
качестве значения. Например,DCE1CC21-FF9B-4424-8FF4-9914BD19A1BE
. Для случайного создания ИДЕНТИФИКАТОРа GUID можно использовать сайт, например Online GUID Generator .
На этом рисунке показан правильный формат параметров клиента и ключей в appsettings.json.
LDAPPath
настроено для авторизации роли.
Создание тестовых ключей
После определения параметров приложения вы сможете создавать открытые и закрытые тестовые ключи.
Чтобы создать ключи, выполните приведенные ниже действия.
В меню "Пуск" Windows запустите командную строку OpenSSL.
Перейдите в папку, в которой нужно сохранить тестовые ключи. Файлы, созданные путем выполнения действий в этой задаче, хранятся в той же папке.
Создайте новый тестовый ключ.
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
Создайте закрытый ключ.
Если вы установили OpenSSL версии 3 или более поздней, выполните следующую команду:
openssl rsa -in key.pem -out privkeynopass.pem -outform PEM -traditional
В противном случае выполните следующую команду:
openssl rsa -in key.pem -out privkeynopass.pem -outform PEM
Создайте открытый ключ.
openssl rsa -in key.pem -pubout > pubkeyonly.pem
В текстовом редакторе откройте pubkeyonly.pem. Скопируйте все содержимое файла pubkeyonly.pem , кроме первой и последней строк, в
PublicPem
раздел файла appsettings.json .В текстовом редакторе откройте privkeynopass.pem. Скопируйте все содержимое файла privkeynopass.pem , кроме первой и последней строк, в
PrivatePem
раздел файла appsettings.json .Удалите все пробелы и новые линии в
PublicPem
разделах иPrivatePem
.Важно!
При копировании этого содержимого не удаляйте данные PEM.
В Visual Studio Code перейдите к файлу Startup.cs. Этот файл находится в репозитории DoubleKeyEncryptionService, который вы клонировали локально в папке DoubleKeyEncryptionService\src\customer-key-store.
Найдите следующие строки:
#if USE_TEST_KEYS #error !!!!!!!!!!!!!!!!!!!!!! Use of test keys is only supported for testing, DO NOT USE FOR PRODUCTION !!!!!!!!!!!!!!!!!!!!!!!!!!!!! services.AddSingleton<ippw.IKeyStore, ippw.TestKeyStore>(); #endif
Замените эти строки следующим текстом:
services.AddSingleton<ippw.IKeyStore, ippw.TestKeyStore>();
Конечные результаты должны выглядеть следующим образом.
Теперь вы готовы к созданию проекта DKE.
Построение проекта
Используйте следующие инструкции для локальной сборки проекта DKE:
В Visual Studio Code в репозитории службы DKE выберите Просмотр>палитры команд и введите build в командной строке.
В списке выберите Задачи: Выполнить задачу сборки.
Если задачи сборки не найдены, выберите Настроить задачу сборки и создайте ее для .NET Core следующим образом.
Выберите Создать tasks.json из шаблона.
В списке типов шаблонов выберите .NET Core.
В разделе сборки найдите путь к файлу customerkeystore.csproj . Если его нет, добавьте следующую строку:
"${workspaceFolder}/src/customer-key-store/customerkeystore.csproj",
Запустите сборку еще раз.
Убедитесь, что в окне вывода отсутствуют красные ошибки.
Если есть красные ошибки, проверка выходные данные консоли. Убедитесь, что все предыдущие шаги выполнены правильно и имеются правильные версии сборки.
Настройка завершена. Перед публикацией хранилища ключей в appsettings.json для параметра JwtAudience убедитесь, что значение для имени узла точно соответствует имени узла Служба приложений.
Развертывание службы DKE и публикация хранилища ключей
Для рабочих развертываний разверните службу в стороннем облаке или опубликуйте в локальной системе.
Вы можете предпочесть другие методы для развертывания ключей. Выберите метод, который лучше всего подходит для вашей организации.
Для пилотных развертываний можно выполнить развертывание в Azure и начать работу сразу.
Создание экземпляра веб-приложения Azure для размещения развертывания DKE
Чтобы опубликовать хранилище ключей, создайте экземпляр Служба приложений Azure для размещения развертывания DKE. Затем опубликуйте созданные ключи в Azure.
В браузере войдите в microsoft портал Azure и перейдите в раздел Создание > веб-приложения служб приложений>.
Создайте новую или выберите существующую группу ресурсов.
Укажите имя экземпляра, например contosodke1. Это имя не совпадает с именем в файле конфигурации. Для имени также указывается значение WebAppInstanceName.
В ценовом плане выберите размер, разрешающий личные домены, например Базовый B1.
Для параметра Опубликовать выберите код, а в стеке среды выполнения выберите .NET 8 (LTS).
Выберите Проверить и создать.
Например:
В созданном веб-приложении перейдите в раздел "Параметры", "Личные домены", выберите Добавить личный домен.
В разделе Поставщик домена выберитеВсе остальные доменные службы.
В поле Домен введите имя узла компьютера, на котором требуется установить службу DKE.
Важно!
Убедитесь, что имя узла совпадает с именем, определенным для параметра JwtAudience в файле appsettings.json.
- В общедоступной службе DNS внесите предлагаемые изменения, как указано в разделе Проверка домена, и выберите Проверить.
Например:
Чтобы опубликовать созданные ключи, сделайте следующее:
- Публикация с помощью ZipDeployUI
- Для отправки двоичных файлов в это приложение можно использовать другие методы, например FTP.
например, ftp
Публикация с помощью ZipDeployUI
Перейдите по адресу
https://<WebAppInstanceName>.scm.<location>.azurewebsites.net/ZipDeployUI
.Пример:
https://dkeservice-ctaugtfwh7d3c3c.scm.westcentralus-01.azurewebsites.net/ZipDeployUI
Запустите командную строку PowerShell.
В базе кода для хранилища ключей перейдите в папку customer-key-store\src\customer-key-store и убедитесь, что эта папка содержит файл customerkeystore.csproj .
Запуск: dotnet publish
В окне вывода отображается каталог, в котором была развернута публикация.
Пример:
customer-key-store\src\customer-key-store\bin\Debug\net8.0\publish\
Отправьте все файлы в каталоге публикации в файл .zip. При создании файла .zip убедитесь, что все файлы в каталоге находятся на корневом уровне файла .zip.
Перетащите созданный файл .zip на открытый ранее сайт ZipDeployUI.
DKE развернут, и вы можете перейти к созданным ключам тестирования. Перейдите к статье Проверка развертывания в этой статье.
Проверка развертывания
После развертывания DKE с помощью одного из методов, описанных в этой статье, проверьте развертывание и параметры хранилища ключей.
Бежать:
src\customer-key-store\scripts\key_store_tester.ps1 dkeserviceurl/mykey
Например:
key_store_tester.ps1 https://dkeservice.contoso.com/TestKey1
Убедитесь, что в выходных данных не отображаются ошибки. Когда все будет готово, зарегистрируйте хранилище ключей.
Имя ключа учитывает регистр. Введите имя ключа, как оно отображается в файле appsettings.json.
Регистрация хранилища ключей
Следующие действия позволяют зарегистрировать службу DKE. Регистрация службы DKE — это последний шаг при развертывании DKE, прежде чем вы сможете приступить к созданию меток.
Чтобы зарегистрировать службу DKE, выполните следующие действия:
В браузере откройте microsoft портал Azure и перейдите в разделРегистрация приложений дляудостоверений>всех служб>.
Выберите Создать регистрацию и введите понятное имя.
Выберите тип учетной записи из отображаемых параметров.
Например:
В нижней части страницы выберите Зарегистрировать , чтобы создать новую регистрацию приложения.
В новой регистрации приложения в области слева в разделе Управление выберите Проверка подлинности.
Выберите Добавить платформу.
Во всплывающем окне Настройка платформ выберите Интернет.
В разделе URI перенаправления введите URI службы шифрования с двойным ключом. Введите URL-адрес Служба приложений, включая имя узла и домен.
Пример:
https://mydkeservicetest.com
- Вводимый URL-адрес должен соответствовать имени узла, на котором развернута служба DKE.
- Домен должен быть проверенным доменом.
- Во всех случаях схема должна быть https.
Убедитесь, что имя узла точно соответствует имени узла Служба приложений.
В разделе Неявное предоставление установите флажок Маркеры идентификаторов .
Нажмите кнопку Сохранить, чтобы сохранить изменения.
На левой панели выберите Предоставить API, рядом с полем URI идентификатора приложения введите URL-адрес Служба приложений, включая имя узла и домен, а затем нажмите кнопку Задать.
На странице Предоставление API в области Области, определенные этим API, выберите Добавить область. В новом область:
Определите имя область как user_impersonation.
Выберите администраторов и пользователей, которые могут предоставить согласие.
Определите все оставшиеся обязательные значения.
Нажмите Добавить область.
Нажмите кнопку Сохранить в верхней части окна, чтобы сохранить изменения.
На странице Предоставление API в области Авторизованные клиентские приложения выберите Добавить клиентское приложение.
В новом клиентском приложении:
Определите идентификатор клиента как
d3590ed6-52b3-4102-aeff-aad2292ab01c
. Это значение является идентификатором клиента Microsoft Office и позволяет Office получить маркер доступа для хранилища ключей.В разделе Авторизованные области выберите область user_impersonation.
Нажмите кнопку Добавить приложение.
Нажмите кнопку Сохранить в верхней части окна, чтобы сохранить изменения.
Повторите эти действия, но на этот раз, если вы по-прежнему используете клиент Azure Information Protection, определите идентификатор клиента как
c00e9d32-3c8d-4a7d-832b-029040e7db99
.Повторите эти действия, но на этот раз определите идентификатор клиента как
0e25d998-b19a-4080-811c-d74d60d65e42
. Это значение является идентификатором клиента Information Protection Purview.
Служба DKE теперь зарегистрирована. Продолжайте создавать метки с помощью DKE.
Создание меток конфиденциальности с помощью DKE
В Портал соответствия требованиям Microsoft Purview создайте новую метку конфиденциальности и примените шифрование, как и в противном случае. Выберите Использовать шифрование двойного ключа и введите URL-адрес конечной точки для ключа. Необходимо включить имя ключа, предоставленное в разделе "TestKeys" файла appsettings.json в URL-адресе.
Пример: https://testingdke1.azurewebsites.net/KEYNAME
Все добавленные метки DKE отображаются для пользователей в последних версиях Приложения Microsoft 365 для предприятий.
Примечание.
Обновление клиентов с использованием новых меток может занять до 24 часов.
Перенос защищенных файлов из меток HYOK в метки DKE
При необходимости после завершения настройки DKE можно перенести содержимое, защищенное с помощью меток HYOK, в метки DKE. Для миграции используйте сканер Защита информации Microsoft Purview. Чтобы приступить к работе со сканером, см. статью Общие сведения о сканере защиты информации.
Если вы не переносите содержимое, содержимое, защищенное HYOK, остается неизменным.
Другие варианты развертывания
Мы понимаем, что для некоторых клиентов в строго регулируемых отраслях эта стандартная эталонная реализация с использованием программных ключей может оказаться недостаточной для удовлетворения их расширенных обязательств по соответствию требованиям и потребностей. Мы сотрудничаем со сторонними поставщиками аппаратных модулей безопасности (HSM) для поддержки расширенных параметров управления ключами в службе DKE, включая:
Обратитесь непосредственно к этим поставщикам для получения дополнительной информации и рекомендаций по их рыночным решениям DKE HSM.
Настройка клиентов для применения меток конфиденциальности DKE
На каждом клиентском устройстве выполните эту задачу.
Убедитесь, что для каждого клиента определены следующие значения реестра. Создайте разделы реестра, которых еще нет:
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSIPC\flighting] "DoubleKeyProtection"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSIPC\flighting] "DoubleKeyProtection"=dword:00000001