Шифрование неактивных данных в Azure

На платформе Microsoft Azure доступны средства для защиты данных, позволяющие организациям соблюдать требования безопасности и обязательные стандарты. В этой статье основное внимание уделяется следующим вопросам:

  • защита неактивных данных в Microsoft Azure;
  • описание различных компонентов, обеспечивающих защиту данных;
  • анализ преимуществ и недостатков основных подходов к защите управления.

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

Что такое шифрование неактивных данных?

Шифрованием называется кодирование данных с целью защиты их конфиденциальности. Схемы шифрования неактивных данных в Azure используют симметричное шифрование для быстрого шифрования и расшифровки больших объемов данных на основе простой концептуальной модели:

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

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

Цель шифрования неактивных данных

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

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

Шифрование неактивных данных также требуется, если организации важно управлять данными и обеспечивать соответствие стандартам. В отраслевых и государственных нормативах, например HIPAA, PCI и FedRAMP, описываются меры по обеспечению безопасности на основе требований к шифрованию и защите данных. Шифрование при хранении является обязательной мерой, необходимой для соблюдения некоторых из этих нормативов. Дополнительные сведения о подходе корпорации Майкрософт к проверке FIPS 140-2 см. в статье Федеральный стандарт обработки информации (FIPS) 140-2.

Шифрование неактивных данных не только позволяет выполнить нормативные требования и требования соответствия, но и предоставляет расширенную защиту для платформы. Microsoft Azure предоставляет соответствующую стандартам платформу для служб, приложений и данных. Также предоставляется поддержка на уровне оборудования для физической защиты, управления доступом к данным и аудита. Тем не менее очень важно обеспечить дополнительные "перекрывающие" меры безопасности на случай сбоя других мер безопасности. Шифрование неактивных данных предоставляет именно этот уровень безопасности.

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

Компоненты шифрования неактивных данных в Azure

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

Компоненты

Azure Key Vault

Место хранения ключей шифрования и управление доступом к этим ключам имеет принципиально важное значение в отношении модели шифрования неактивных данных. Ключи должны быть надежно защищены. При этом определенные службы должны иметь к ним доступны, и они должны быть доступны для управления определенными пользователями. Для служб Azure рекомендуемым решением хранилища ключей является хранилище Azure Key Vault, предоставляющее общие возможности управления в службах. Для хранения ключей и управления ими используются хранилища ключей, доступ к которым можно предоставить пользователям или службам. Azure Key Vault поддерживает создание пользователем ключей или импорт пользовательских ключей для использования в сценариях ключей шифрования, управляемых пользователем.

Azure Active Directory

Учетным записям Azure Active Directory можно предоставить разрешения на использование ключей, хранящихся в Azure Key Vault, управление ими или доступ к ним в целях шифрования неактивных данных и расшифровки.

Конвертное шифрование с использованием иерархии ключей

При реализации шифрования неактивных данных используется несколько ключей шифрования. Хранение ключа шифрования в Azure Key Vault обеспечивает безопасный доступ к ключам и централизованное управление ими. Однако локальный доступ службы к ключам шифрования позволяет эффективнее выполнять массовое шифрование и расшифровку, чем взаимодействие с Key Vault при каждой операции с данными. Так можно повысить надежность шифрования и производительность систем. Ограничение использования ключа шифрования снижает риск его компрометации, а также затраты на повторное шифрование при необходимости замены ключа. В моделях Azure для шифрования неактивных данных используется конвертное шифрование, при котором ключ шифрования ключей шифрует ключ шифрования данных. Такая модель создает иерархию ключей и позволяет лучше выполнять требования к производительности и безопасности.

  • Ключ шифрования данных (DEK) — это симметричный ключ AES256, который используется для шифрования секции или блока данных. Иногда его называют просто ключом данных. Один ресурс может включать много секций и много ключей шифрования данных. Шифрование каждого блока данных другим ключом создает дополнительные сложности для выполнения атак в отношении зашифрованных данных. Сохранение DEK в локальной службе, где выполняется шифрование и расшифровка данных, позволяет добиться максимальной производительности.
  • Ключ шифрования ключа (KEK) используется для шифрования ключей шифрования данных по технологии конвертного шифрования, также называемой оболочкой. Использование ключа шифрования ключей, который всегда остается в Key Vault, позволяет зашифровать непосредственно ключи шифрования данных и контролировать доступ к ним. Сущность, у которой есть доступ к KEK, может быть отличной от сущности, требующей DEK. Сущность выступает в качестве брокера при доступе к DEK, чтобы ограничить доступ каждого DEK для определенной секции. Поскольку KEK требуется для расшифровки DEK, клиенты могут криптографически удалять ключи DEK и данные, просто отключая KEK.

Поставщики ресурсов и экземпляры приложений хранят ключи шифрования данных в формате метаданных. Расшифровать эти ключи шифрования данных может только сущность с доступом к ключу шифрования ключей. Поддерживаются различные модели хранилища ключей. Дополнительные сведения см. в статье Модели шифрования данных.

Шифрование неактивных данных в облачных службах Майкрософт

Облачные службы Майкрософт используются во всех трех облачных моделях: IaaS, PaaS, SaaS. Ниже приведены примеры их размещения в каждой модели.

  • Программные службы SaaS ("программное обеспечение как услуга"), которые включают приложения, предоставленные облачной службой, например, Microsoft 365.
  • Службы платформы, в которых пользователи используют облако для доступа к функциям служебной шины, хранения и аналитики из своих приложений.
  • Службы инфраструктуры (инфраструктура как услуга (IaaS)), в которых пользователь развертывает операционные системы и приложения, размещенные в облаке, и в которых может использовать другие облачные службы.

Шифрование неактивных данных пользователей SaaS

Для пользователей программного обеспечения как услуги (SaaS) шифрование неактивных данных обычно включено или доступно в каждой службе. В Microsoft 365 реализовано несколько механизмов проверки и включения шифрования неактивных данных. Дополнительные сведения о службах Microsoft 365 см. в статье о шифровании в Microsoft 365.

Шифрование неактивных данных пользователей PaaS

Данные клиента в формате PaaS (платформа как услуга) обычно находятся в службе хранилища, например в Хранилище BLOB-объектов, но также могут кэшироваться или храниться в среде выполнения приложений, например в виртуальной машине. Чтобы понять, какие возможности для шифрования неактивных данных вам доступны, найдите в таблице поддерживаемых служб для моделей шифрования данных используемые вами платформы приложений и хранения.

Шифрование неактивных данных пользователей IaaS

Пользователи, использующие инфраструктуру как услугу (IaaS), могут использовать ряд служб и приложений. Службы IaaS могут включить шифрование неактивных данных на своих размещенных в Azure виртуальных машинах и виртуальных жестких дисках с помощью шифрования дисков Azure.

Зашифрованное хранилище

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

Зашифрованные вычисления

Все управляемые диски, моментальные снимки и образы шифруются в службе "Шифрование службы хранилища" с помощью ключа, управляемого службой. Более полное решение для шифрования неактивных данных гарантирует, что данные никогда не сохраняются в незашифрованном виде. При обработке данных на виртуальной машине данные могут сохраняться в файле подкачки операционной системы (Windows или Linux), в аварийном дампе или в журнале приложения. Чтобы убедиться, что эти данные шифруются при хранении, приложения IaaS могут использовать службу "Шифрование дисков Azure" на виртуальной машине Azure IaaS (Windows или Linux) и виртуальном диске.

Пользовательское шифрование неактивных данных

Рекомендуется, чтобы приложения IaaS использовали шифрование дисков Azure и параметры шифрования неактивных данных, предоставляемые любой используемой службой Azure. В некоторых случаях, например при нестандартных требованиях к шифрованию или при использовании хранилища, отличного от Azure, разработчику приложения IaaS может потребоваться реализовать шифрование неактивных данных самостоятельно. Разработчики решений IaaS могут обеспечивать лучшую интеграцию с управлением Azure и удовлетворять ожидания пользователей за счет использования определенных компонентов Azure. В частности разработчикам следует использовать службу Azure Key Vault, чтобы обеспечить безопасное хранение ключей, а также предоставить своим пользователям согласованные параметры управления ключами большинства служб платформы Azure. Кроме того, пользовательские решения должны использовать удостоверения служб, управляемых Azure, чтобы предоставить учетным записям служб доступ к ключам шифрования. Сведения для разработчиков об Azure Key Vault и удостоверениях управляемых служб см. в соответствующих пакетах SDK.

Поддержка модели шифрования поставщиками ресурсов Azure

Каждая служба Microsoft Azure поддерживает одну или несколько моделей шифрования неактивных данных. Тем не менее для некоторых служб одна или несколько моделей шифрования могут быть неприменимы. Для служб, которые поддерживают управляемые клиентами сценарии использования ключей, они могут поддерживать только несколько типов ключей, которые поддерживает хранилище Azure Key Vault для ключей шифрования ключей. Кроме того, службы могут добавлять поддержку этих сценариев и типов ключей в разное время. В этом разделе описывается поддержка шифрования неактивных данных на момент написания этой статьи для основных служб хранения данных Azure.

Шифрование дисков Azure

Любой пользователь, который использует функции инфраструктуры как услуги (IaaS) Azure, может включить шифрование неактивных данных на виртуальных машинах IaaS и дисках с помощью шифрования дисков Azure. См. сведения в статьях Шифрование дисков Azure для виртуальных машин Linux и Шифрование дисков Azure для виртуальных машин Windows.

Хранилище Azure

Все службы хранилища Azure (Хранилище BLOB-объектов, Хранилище очередей, Хранилище таблиц и Файлы Azure) поддерживают шифрование данных при хранении на стороне сервера, а некоторые службы поддерживают еще и управляемые клиентом ключи с шифрованием на стороне клиента.

База данных SQL Azure

В настоящее время База данных SQL Azure поддерживает шифрование неактивных данных в сценариях шифрования на стороне клиента и на стороне управляемых служб Майкрософт.

Поддержка шифрования на стороне сервера в настоящее время предоставляется с помощью функции SQL, которая называется прозрачным шифрованием данных. Как только пользователь базы данных SQL Azure активирует прозрачное шифрование данных, эта функция будет автоматически создавать ключи и управлять ими. Шифрование неактивных данных можно включить на уровне базы данных и на уровне сервера. Начиная с июня 2017 г. прозрачное шифрование данных (TDE) включается по умолчанию для всех новых баз данных. База данных SQL Azure поддерживает управляемые клиентом 2048-битные ключи RSA в Azure Key Vault. Дополнительные сведения см. в статье Прозрачное шифрование данных с поддержкой использования собственных ключей для Базы данных SQL Azure и хранилища данных SQL Azure.

Шифрование на стороне клиента Базы данных SQL Azure поддерживается с помощью функции Always Encrypted. Always Encrypted использует ключ, который создается и хранится клиентом. пользователь может хранить главный ключ в хранилище сертификатов Windows, Azure Key Vault или аппаратном модуле безопасности (HSM), размещенном локально. В SQL Server Management Studio пользователи SQL могут выбрать ключи для шифрования отдельных столбцов.

Заключение

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

Дальнейшие действия

  • Дополнительные сведения о ключах, управляемых службой и клиентом, см. в статье Модели шифрования данных.
  • Изучите, как в Azure используется двойное шифрование для устранения угроз, возникающих при шифровании данных.
  • Узнайте, какие меры корпорация Майкрософт предпринимает, чтобы обеспечить безопасность и целостность платформы для узлов на таких этапах конвейеров оборудования и встроенного ПО, как сборка, интеграция, эксплуатация и восстановление.