Настройка шифрования с двумя ключами
Область применения: Шифрование двойного ключа 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 Core 7.0. Скачайте и установите пакет SDK из раздела Скачать .NET Core 7.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 в левом нижнем углу. Ветвь должна быть основной. Например:
Если вы не находитесь в главной ветви, выберите ее. В Visual Studio Code выберите ветвь и выберите main в списке отображаемых ветвей.
Важно!
Выбор главной ветви гарантирует, что у вас есть правильные файлы для сборки проекта. Если не выбрать правильную ветвь, развертывание завершится ошибкой.
Теперь у вас есть репозиторий источника DKE, настроенный локально. Затем измените параметры приложения для своей организации.
Изменение параметров приложения
Чтобы развернуть службу DKE, необходимо изменить следующие типы параметров приложения:
Параметры приложения изменяются в файле appsettings.json. Этот файл находится в репозитории DoubleKeyEncryptionService, который вы клонировали локально в папке DoubleKeyEncryptionService\src\customer-key-store. Например, в Visual Studio Code можно перейти к файлу, как показано на следующем рисунке.
Параметры доступа к ключам
Выберите, следует ли использовать электронную почту или авторизацию роли. DKE поддерживает только один из этих методов проверки подлинности одновременно.
Авторизация по электронной почте. Позволяет вашей организации авторизовать доступ к ключам только на основе адресов электронной почты.
Авторизация роли. Позволяет вашей организации авторизовать доступ к ключам на основе групп 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 и выберите Добавить службы приложений>.
Выберите подписку и группу ресурсов и определите сведения об экземпляре.
Введите имя узла компьютера, на котором требуется установить службу DKE. Убедитесь, что это имя совпадает с именем, определенным для параметра JwtAudience в файле appsettings.json . Для имени также указывается значение WebAppInstanceName.
Для параметра Опубликовать выберите код, а в стеке среды выполнения выберите .NET Core 3.1.
Например:
В нижней части страницы выберите Просмотр и создание, а затем нажмите кнопку Добавить.
Чтобы опубликовать созданные ключи, выполните одно из следующих действий:
Публикация с помощью ZipDeployUI
Перейдите по адресу
https://<WebAppInstanceName>.scm.azurewebsites.net/ZipDeployUI
.Пример:
https://dkeservice.contoso.scm.azurewebsites.net/ZipDeployUI
В базе кода для хранилища ключей перейдите в папку customer-key-store\src\customer-key-store и убедитесь, что эта папка содержит файл customerkeystore.csproj .
Запуск: dotnet publish
В окне вывода отображается каталог, в котором была развернута публикация.
Пример:
customer-key-store\src\customer-key-store\bin\Debug\netcoreapp3.1\publish\
Отправьте все файлы в каталоге публикации в файл .zip. При создании файла .zip убедитесь, что все файлы в каталоге находятся на корневом уровне файла .zip.
Перетащите созданный файл .zip на открытый ранее сайт ZipDeployUI. Пример:
https://dkeservice.scm.azurewebsites.net/ZipDeployUI
DKE развернут, и вы можете перейти к созданным ключам тестирования. Перейдите к статье Проверка развертывания в этой статье.
Публикация через FTP
Подключитесь к службе приложений, созданной ранее.
В браузере перейдите в раздел Центр>развертыванияслужбы приложенийЦентра развертывания > службы > приложенийВручную>панель мониторингаFTP>.
Скопируйте строки подключения, отображаемые в локальный файл. Используйте эти строки для подключения к службе веб-приложений и отправки файлов по протоколу FTP.
Например:
В базе кода для хранилища ключей перейдите в каталог customer-key-store\src\customer-key-store.
Убедитесь, что этот каталог содержит файл customerkeystore.csproj .
Запуск: dotnet publish
Выходные данные содержат каталог, в котором была развернута публикация.
Пример:
customer-key-store\src\customer-key-store\bin\Debug\netcoreapp3.1\publish\
Отправьте все файлы в каталоге публикации в ZIP-файл. При создании файла .zip убедитесь, что все файлы в каталоге находятся на корневом уровне файла .zip.
В FTP-клиенте используйте скопированные сведения о подключении для подключения к Службе приложений. Отправьте файл .zip, созданный на предыдущем шаге, в корневой каталог веб-приложения.
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 .
Нажмите кнопку Добавить приложение.
Нажмите кнопку Сохранить в верхней части окна, чтобы сохранить изменения.
Повторите эти действия, но на этот раз определите идентификатор клиента как
c00e9d32-3c8d-4a7d-832b-029040e7db99
. Это значение является идентификатором клиента Azure information Protection.Повторите эти действия, но на этот раз определите идентификатор клиента как
0e25d998-b19a-4080-811c-d74d60d65e42
. Это значение является идентификатором клиента Purview Information Protection.
Служба 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 Information Protection. Чтобы приступить к работе со сканером, см. статью Общие сведения о сканере защиты информации.
Если вы не переносите содержимое, содержимое, защищенное 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