Настройка шифрования с двумя ключами

Область применения: Шифрование двойного ключа Microsoft Purview, Microsoft Purview, Azure Information Protection

Описание службы для: Microsoft Purview

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

  1. Разверните службу DKE, как описано в этой статье. Убедитесь, что ваша среда соответствует минимальным требованиям к системе и лицензированию. Дополнительные сведения см. в статье Требования к системе и лицензированию для DKE.

  2. Создайте метку с шифрованием двойного ключа. В Портал соответствия требованиям Microsoft Purview перейдите в раздел Защита информации и создайте новую метку с шифрованием двойного ключа. См . раздел Ограничение доступа к содержимому с помощью меток конфиденциальности для применения шифрования.

  3. Настройте реестр на клиентских устройствах, чтобы можно было использовать метки шифрования двойного ключа. Затем защитите данные, выбрав метку Зашифровано с двойным ключом на ленте Конфиденциальность в Microsoft Office.

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

Развертывание DKE

В этой статье и видео о развертывании используется Azure в качестве назначения развертывания для службы DKE. При развертывании в другом расположении необходимо указать собственные значения.

Выполните следующие общие действия, чтобы настроить шифрование с двойным ключом для организации.

  1. Установка необходимых компонентов программного обеспечения для службы DKE
  2. Клонирование репозитория GitHub для шифрования двойного ключа
  3. Изменение параметров приложения
  4. Создание тестовых ключей
  5. Построение проекта
  6. Развертывание службы DKE и публикация хранилища ключей
  7. Проверка развертывания
  8. Регистрация хранилища ключей
  9. Создание меток конфиденциальности с помощью DKE
  10. Перенос защищенных файлов из меток 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:

  1. В браузере перейдите по адресу https://github.com/Azure-Samples/DoubleKeyEncryptionService.

  2. В правой части экрана выберите Код. В вашей версии пользовательского интерфейса может отображаться кнопка "Клонировать" или "Скачать ". Затем в появившемся раскрывающемся списке щелкните значок копирования, чтобы скопировать URL-адрес в буфер обмена.

    Например:

    Клонируйте репозиторий службы шифрования двойного ключа из GitHub.

  3. В Visual Studio Code выберите Просмотр>палитры команд и выберите Git: клонирование. Чтобы перейти к параметру в списке, начните вводить, git: clone чтобы отфильтровать записи, а затем выберите его в раскрывающемся списке. Например:

    Visual Studio Code параметр GIT:Clone.

  4. В текстовое поле вставьте URL-адрес, скопированный из Git, и выберите Клонировать из GitHub.

  5. В появившемся диалоговом окне Выбор папки перейдите по адресу и выберите расположение для хранения репозитория. Выберите Открыть.

    Репозиторий откроется в Visual Studio Code и отображает текущую ветвь Git в левом нижнем углу. Ветвь должна быть main. Например:

    Снимок экрана: репозиторий DKE в Visual Studio Code с main ветвью.

  6. Если вы не находитесь в ветви main, выберите ее. В Visual Studio Code выберите ветвь и выберите main в списке отображаемых ветвей.

    Важно!

    Выбор main ветви гарантирует, что у вас есть правильные файлы для сборки проекта. Если не выбрать правильную ветвь, развертывание завершится ошибкой.

Теперь у вас есть репозиторий источника DKE, настроенный локально. Затем измените параметры приложения для своей организации.

Изменение параметров приложения

Чтобы развернуть службу DKE, необходимо изменить следующие типы параметров приложения:

Параметры приложения изменяются в файле appsettings.json. Этот файл находится в репозитории DoubleKeyEncryptionService, который вы клонировали локально в папке DoubleKeyEncryptionService\src\customer-key-store. Например, в Visual Studio Code можно перейти к файлу, как показано на следующем рисунке.

Поиск файла appsettings.json для DKE.

Параметры доступа к ключам

Выберите, следует ли использовать электронную почту или авторизацию роли. DKE поддерживает только один из этих методов проверки подлинности одновременно.

  • авторизация Email. Позволяет вашей организации авторизовать доступ к ключам только на основе адресов электронной почты.

  • Авторизация роли. Позволяет вашей организации авторизовать доступ к ключам на основе групп Active Directory и требует, чтобы веб-служба могла запрашивать LDAP.

Настройка параметров доступа к ключам для DKE с помощью авторизации по электронной почте
  1. Откройте файл appsettings.json и найдите AuthorizedEmailAddress параметр .

  2. Добавьте адрес электронной почты или адреса, которые вы хотите авторизовать. Разделите несколько адресов электронной почты двойными кавычками и запятыми. Например:

    "AuthorizedEmailAddress": ["email1@company.com", "email2@company.com ", "email3@company.com"]
    
  3. LDAPPath Найдите параметр и удалите текст If you use role authorization (AuthorizedRoles) then this is the LDAP path. между двойными кавычками. Оставьте двойные кавычки на месте. По завершении настройка должна выглядеть следующим образом.

    "LDAPPath": ""
    
  4. AuthorizedRoles Найдите параметр и удалите всю строку.

На этом изображении показан файл appsettings.json , правильно отформатированный для авторизации по электронной почте.

Файл appsettings.json с методом авторизации по электронной почте.

Настройка параметров доступа к ключам для DKE с помощью авторизации роли
  1. Откройте файл appsettings.json и найдите AuthorizedRoles параметр .

  2. Добавьте имена групп Active Directory, которые нужно авторизовать. Разделите несколько имен групп двойными кавычками и запятыми. Например:

    "AuthorizedRoles": ["group1", "group2", "group3"]
    
  3. LDAPPath Найдите параметр и добавьте домен Active Directory. Например:

    "LDAPPath": "contoso.com"
    
  4. AuthorizedEmailAddress Найдите параметр и удалите всю строку.

На этом изображении показан файл appsettings.json , правильно отформатированный для авторизации роли.

appsettings.json файл с методом авторизации роли.

Параметры клиента и ключа

Параметры клиента И ключа DKE находятся в файле appsettings.json .

Настройка параметров клиента и ключа для DKE
  1. Откройте файл appsettings.json .

  2. 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 настроено для авторизации роли.

В файле appsettings.json отображаются правильные параметры клиента и ключа для DKE.

Создание тестовых ключей

После определения параметров приложения вы сможете создавать открытые и закрытые тестовые ключи.

Чтобы создать ключи, выполните приведенные ниже действия.

  1. В меню "Пуск" Windows запустите командную строку OpenSSL.

  2. Перейдите в папку, в которой нужно сохранить тестовые ключи. Файлы, созданные путем выполнения действий в этой задаче, хранятся в той же папке.

  3. Создайте новый тестовый ключ.

    openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
    
  4. Создайте закрытый ключ.

    Если вы установили OpenSSL версии 3 или более поздней, выполните следующую команду:

    openssl rsa -in key.pem -out privkeynopass.pem -outform PEM -traditional
    

    В противном случае выполните следующую команду:

    openssl rsa -in key.pem -out privkeynopass.pem -outform PEM
    
  5. Создайте открытый ключ.

    openssl rsa -in key.pem -pubout > pubkeyonly.pem
    
  6. В текстовом редакторе откройте pubkeyonly.pem. Скопируйте все содержимое файла pubkeyonly.pem , кроме первой и последней строк, в PublicPem раздел файла appsettings.json .

  7. В текстовом редакторе откройте privkeynopass.pem. Скопируйте все содержимое файла privkeynopass.pem , кроме первой и последней строк, в PrivatePem раздел файла appsettings.json .

  8. Удалите все пробелы и новые линии в PublicPem разделах и PrivatePem .

    Важно!

    При копировании этого содержимого не удаляйте данные PEM.

  9. В Visual Studio Code перейдите к файлу Startup.cs. Этот файл находится в репозитории DoubleKeyEncryptionService, который вы клонировали локально в папке DoubleKeyEncryptionService\src\customer-key-store.

  10. Найдите следующие строки:

        #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
    
  11. Замените эти строки следующим текстом:

    services.AddSingleton<ippw.IKeyStore, ippw.TestKeyStore>();
    

    Конечные результаты должны выглядеть следующим образом.

    startup.cs файл для общедоступной предварительной версии.

Теперь вы готовы к созданию проекта DKE.

Построение проекта

Используйте следующие инструкции для локальной сборки проекта DKE:

  1. В Visual Studio Code в репозитории службы DKE выберите Просмотр>палитры команд и введите build в командной строке.

  2. В списке выберите Задачи: Выполнить задачу сборки.

    Если задачи сборки не найдены, выберите Настроить задачу сборки и создайте ее для .NET Core следующим образом.

    Настройка отсутствующих задач сборки для .NET.

    1. Выберите Создать tasks.json из шаблона.

      Создайте файл tasks.json из шаблона для DKE.

    2. В списке типов шаблонов выберите .NET Core.

      Выберите правильный шаблон для DKE.

    3. В разделе сборки найдите путь к файлу customerkeystore.csproj . Если его нет, добавьте следующую строку:

      "${workspaceFolder}/src/customer-key-store/customerkeystore.csproj",
      
    4. Запустите сборку еще раз.

  3. Убедитесь, что в окне вывода отсутствуют красные ошибки.

    Если есть красные ошибки, проверка выходные данные консоли. Убедитесь, что все предыдущие шаги выполнены правильно и имеются правильные версии сборки.

Настройка завершена. Перед публикацией хранилища ключей в appsettings.json для параметра JwtAudience убедитесь, что значение для имени узла точно соответствует имени узла Служба приложений.

Развертывание службы DKE и публикация хранилища ключей

Для рабочих развертываний разверните службу в стороннем облаке или опубликуйте в локальной системе.

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

Для пилотных развертываний можно выполнить развертывание в Azure и начать работу сразу.

Создание экземпляра веб-приложения Azure для размещения развертывания DKE

Чтобы опубликовать хранилище ключей, создайте экземпляр Служба приложений Azure для размещения развертывания DKE. Затем опубликуйте созданные ключи в Azure.

  1. В браузере войдите в microsoft портал Azure и выберите Добавить службы приложений>.

  2. Выберите подписку и группу ресурсов и определите сведения об экземпляре.

    • Введите имя узла компьютера, на котором требуется установить службу DKE. Убедитесь, что это имя совпадает с именем, определенным для параметра JwtAudience в файле appsettings.json . Для имени также указывается значение WebAppInstanceName.

    • Для параметра Опубликовать выберите код, а в стеке среды выполнения выберите .NET Core 3.1.

    Например:

    Добавьте Служба приложений.

  3. В нижней части страницы выберите Просмотр и создание, а затем нажмите кнопку Добавить.

  4. Чтобы опубликовать созданные ключи, выполните одно из следующих действий:

Публикация с помощью ZipDeployUI

  1. Перейдите по адресу https://<WebAppInstanceName>.scm.azurewebsites.net/ZipDeployUI.

    Пример: https://dkeservice.contoso.scm.azurewebsites.net/ZipDeployUI

  2. В базе кода для хранилища ключей перейдите в папку customer-key-store\src\customer-key-store и убедитесь, что эта папка содержит файл customerkeystore.csproj .

  3. Запуск: dotnet publish

    В окне вывода отображается каталог, в котором была развернута публикация.

    Пример: customer-key-store\src\customer-key-store\bin\Debug\netcoreapp3.1\publish\

  4. Отправьте все файлы в каталоге публикации в файл .zip. При создании файла .zip убедитесь, что все файлы в каталоге находятся на корневом уровне файла .zip.

  5. Перетащите созданный файл .zip на открытый ранее сайт ZipDeployUI. Пример: https://dkeservice.scm.azurewebsites.net/ZipDeployUI

DKE развернут, и вы можете перейти к созданным ключам тестирования. Перейдите к статье Проверка развертывания в этой статье.

Публикация через FTP

  1. Подключитесь к созданному ранее Служба приложений.

    В браузере перейдите по адресу: портал Azure>Служба приложений>Deployment Center>Manual Deployment>FTP>Dashboard.

  2. Скопируйте строки подключения, отображаемые в локальный файл. Используйте эти строки для подключения к веб-Служба приложений и отправки файлов по протоколу FTP.

    Например:

    Скопируйте строки подключения с панели мониторинга FTP.

  3. В базе кода для хранилища ключей перейдите в каталог customer-key-store\src\customer-key-store.

  4. Убедитесь, что этот каталог содержит файл customerkeystore.csproj .

  5. Запуск: dotnet publish

    Выходные данные содержат каталог, в котором была развернута публикация.

    Пример: customer-key-store\src\customer-key-store\bin\Debug\netcoreapp3.1\publish\

  6. Отправьте все файлы в каталоге публикации в ZIP-файл. При создании файла .zip убедитесь, что все файлы в каталоге находятся на корневом уровне файла .zip.

  7. В 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, выполните следующие действия:

  1. В браузере откройте microsoft портал Azure и перейдите в разделРегистрация приложений дляудостоверений>всех служб>.

  2. Выберите Создать регистрацию и введите понятное имя.

  3. Выберите тип учетной записи из отображаемых параметров.

    Например:

    Регистрация нового приложения.

  4. В нижней части страницы выберите Зарегистрировать , чтобы создать новую регистрацию приложения.

  5. В новой регистрации приложения в области слева в разделе Управление выберите Проверка подлинности.

  6. Выберите Добавить платформу.

  7. Во всплывающем окне Настройка платформ выберите Интернет.

  8. В разделе URI перенаправления введите URI службы шифрования с двойным ключом. Введите URL-адрес Служба приложений, включая имя узла и домен.

    Пример: https://mydkeservicetest.com

    • Вводимый URL-адрес должен соответствовать имени узла, на котором развернута служба DKE.
    • Домен должен быть проверенным доменом.
    • Во всех случаях схема должна быть https.

    Убедитесь, что имя узла точно соответствует имени узла Служба приложений.

  9. В разделе Неявное предоставление установите флажок Маркеры идентификаторов .

  10. Нажмите кнопку Сохранить, чтобы сохранить изменения.

  11. На левой панели выберите Предоставить API, рядом с полем URI идентификатора приложения введите URL-адрес Служба приложений, включая имя узла и домен, а затем нажмите кнопку Задать.

  12. На странице Предоставление API в области Области, определенные этим API, выберите Добавить область. В новом область:

    1. Определите имя область как user_impersonation.

    2. Выберите администраторов и пользователей, которые могут предоставить согласие.

    3. Определите все оставшиеся обязательные значения.

    4. Нажмите Добавить область.

    5. Нажмите кнопку Сохранить в верхней части окна, чтобы сохранить изменения.

  13. На странице Предоставление API в области Авторизованные клиентские приложения выберите Добавить клиентское приложение.

    В новом клиентском приложении:

    1. Определите идентификатор клиента как d3590ed6-52b3-4102-aeff-aad2292ab01c. Это значение является идентификатором клиента Microsoft Office и позволяет Office получить маркер доступа для хранилища ключей.

    2. В разделе Авторизованные области выберите область user_impersonation.

    3. Нажмите кнопку Добавить приложение.

    4. Нажмите кнопку Сохранить в верхней части окна, чтобы сохранить изменения.

    5. Повторите эти действия, но на этот раз определите идентификатор клиента как c00e9d32-3c8d-4a7d-832b-029040e7db99. Это значение является идентификатором клиента защиты информации.

Служба DKE теперь зарегистрирована. Продолжайте создавать метки с помощью DKE.

Создание меток конфиденциальности с помощью DKE

В Портал соответствия требованиям Microsoft Purview создайте новую метку конфиденциальности и примените шифрование, как и в противном случае. Выберите Использовать шифрование двойного ключа и введите URL-адрес конечной точки для ключа. Необходимо включить имя ключа, предоставленное в разделе "TestKeys" файла appsettings.json в URL-адресе.

Пример: https://testingdke1.azurewebsites.net/KEYNAME

Выберите Использовать шифрование с двойным ключом в Портал соответствия требованиям Microsoft Purview.

Все добавленные метки DKE отображаются для пользователей в последних версиях Приложения Microsoft 365 для предприятий.

Примечание.

Обновление клиентов с использованием новых меток может занять до 24 часов.

Перенос защищенных файлов из меток HYOK в метки DKE

При необходимости после завершения настройки DKE можно перенести содержимое, защищенное с помощью меток HYOK, в метки DKE. Для миграции используйте сканер Защита информации Microsoft Purview. Чтобы приступить к работе со сканером, см. статью Общие сведения о сканере защиты информации.

Если вы не переносите содержимое, содержимое, защищенное HYOK, остается неизменным.

Другие варианты развертывания

Мы понимаем, что для некоторых клиентов в строго регулируемых отраслях эта стандартная эталонная реализация с использованием программных ключей может оказаться недостаточной для удовлетворения их расширенных обязательств по соответствию требованиям и потребностей. Мы сотрудничаем со сторонними поставщиками аппаратных модулей безопасности (HSM) для поддержки расширенных параметров управления ключами в службе DKE, включая:

Обратитесь непосредственно к этим поставщикам для получения дополнительной информации и рекомендаций по их рыночным решениям DKE HSM.

Настройка клиентов для применения меток конфиденциальности DKE

На каждом клиентском устройстве выполните эту задачу.

  1. Убедитесь, что для каждого клиента определены следующие значения реестра. Создайте разделы реестра, которых еще нет:
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSIPC\flighting]
"DoubleKeyProtection"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSIPC\flighting]
"DoubleKeyProtection"=dword:00000001