Поделиться через


Рекомендации по шифрованию данных

Применяется к рекомендации по контрольным спискам безопасности для хорошо спроектированной платформы:

SE:07 Шифрование данных с помощью современных стандартных методов для защиты конфиденциальности и целостности. Выравнивание области шифрования с помощью классификаций данных; приоритеты методов шифрования собственной платформы.

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

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

Определения

Условия Определение
Сертификаты Цифровые файлы, которые содержат открытые ключи для шифрования или расшифровки.
Комплект шифрования Набор алгоритмов, используемых для шифрования и расшифровки информации для защиты сетевого подключения через TLS.
Конфиденциальные вычисления Конфиденциальные вычисления — это защита данных, используемых путем выполнения вычислений в аппаратной среде доверенного выполнения.
Расшифровка Процесс, в котором зашифрованные данные разблокируются с помощью секретного кода.
Двойное шифрование Процесс шифрования данных с помощью двух или более независимых уровней шифрования.
Шифрование Процесс, с помощью которого данные нечитаемые и заблокированы с помощью секретного кода.
Хэширование Процесс преобразования данных в текст или числа с целью скрытия информации.
Ключи Секретный код, используемый для блокировки или разблокировки зашифрованных данных.
Подпись Зашифрованная метка проверки подлинности для данных.
Подписывание Процесс проверки подлинности данных с помощью подписи.
X.509 Стандарт, определяющий формат сертификатов открытого ключа.

Основные стратегии проектирования

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

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

Механизмы шифрования, скорее всего, должны защитить данные на трех этапах:

  • Данные неактивных данных — это все сведения, которые хранятся в объектах хранилища.

    Пример защиты неактивных данных — использование BitLocker для шифрования данных, сохраненных в хранилище на диске.

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

    Пример защиты передаваемых данных — шифрование данных с помощью TLS, чтобы пакеты, перемещаемые по общедоступным и частным сетям, были защищены.

  • Используемые данные — это данные, которые активно работают в памяти.

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

Предыдущие варианты не являются взаимоисключающими. Они часто используются вместе в контексте всего решения. Один этап может выступать в качестве компенсирующего элемента управления. Например, может потребоваться изолировать данные, чтобы предотвратить изменение данных при чтении данных из памяти.

Определение требований к шифрованию

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

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

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

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

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

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

Сведения о классификации см . в рекомендациях по классификации данных.

Использование собственных механизмов шифрования

Большинство служб Azure предоставляют базовый уровень шифрования. Ознакомьтесь с параметрами шифрования, предоставляемыми платформой.

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

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

Разработчики должны использовать API-интерфейсы шифрования, встроенные в операционную систему, а не библиотеки криптографии не платформы. Для .NET следуйте модели шифрования .NET.

Выбор подхода к ключам шифрования

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

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

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

Хранить ключи отдельно от зашифрованных данных. Это разделение помогает гарантировать, что компрометация одной сущности не влияет на другую. Если вы используете ключи, управляемые клиентом, сохраните их в хранилище ключей. Храните конфиденциальные данные в управляемом аппаратном модуле безопасности (HSM).

Оба хранилища защищены с помощью доступа на основе удостоверений. Эта функция позволяет запретить доступ даже к платформе.

Использование стандартных алгоритмов шифрования

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

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

Компромисс. Если вы выбираете алгоритм, который очень сложный или внедряет более чем разумное количество энтропии, он снижает производительность системы.

Использование хэшей и контрольных сумм

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

Приложения должны использовать семейство хэш-алгоритмов SHA-2, таких как SHA-256, SHA-384 или SHA-512.

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

Классификация и защита объектов хранилища информации в соответствии с внутренними и внешними требованиями соответствия. Ознакомьтесь со следующими рекомендациями:

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

    Дополнительные сведения см. в разделе "Защита от неактивных данных".

  • Используйте двойное шифрование. Если бизнес-требования вызывают более высокую гарантию, можно выполнить двойное шифрование. Шифрование данных в двух или более уровнях с помощью независимых ключей, управляемых клиентом. Храните данные в управляемом HSM. Для чтения данных необходимо получить доступ к обоим ключам. Если один ключ скомпрометирован, другой ключ по-прежнему защищает данные. Эта методика направлена на увеличение затрат на злоумышленников.

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

    Используйте несколько ключей шифрования. Используйте ключ шифрования ключей (KEK) для защиты ключа шифрования данных (DEK).

  • Используйте элементы управления доступом на основе удостоверений для управления доступом к данным. Добавьте сетевые брандмауэры, чтобы обеспечить дополнительный уровень безопасности, который блокирует непредвиденный и небезопасный доступ.

    Дополнительные сведения см. в рекомендациях по управлению удостоверениями и доступом.

  • Храните ключи в управляемом HSM с минимальными привилегиями управления доступом. Отделите данные от ключей к данным.

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

Шифрование передаваемых данных

  • Используйте безопасные протоколы для обмена данными с клиентским сервером. Транспортные протоколы имеют встроенный уровень безопасности. TLS является отраслевым стандартом для обмена данными между конечными точками клиента и сервера.

    Не используйте версии ниже TLS 1.2. Миграция решений для поддержки TLS 1.2 и использование этой версии по умолчанию. Все службы Azure поддерживают протокол TLS 1.2 на общедоступных конечных точках HTTPS.

    Риск. Старые клиенты, не поддерживающие TLS 1.2, могут работать неправильно, если обратная совместимость не поддерживается.

    Все обмен данными с веб-сайтом должны использовать ПРОТОКОЛ HTTPS независимо от конфиденциальности передаваемых данных. Во время подтверждения на клиентском сервере согласовывайте использование политики http Strict Transport Security (HSTS), чтобы транспорт HTTPS поддерживался и не сбрасывается на HTTP во время обмена данными. Эта политика защищает от атак человека в середине.

    Поддержка HSTS для новых версий. Вы можете нарушить обратную совместимость со старыми браузерами.

    Примечание.

    Кроме того, можно шифровать протоколы для установления безопасных подключений для баз данных. Например, База данных SQL Azure поддерживает протокол табличного потока данных (TDS), который интегрирует подтверждение TLS.

    Набор шифров — это набор алгоритмов, используемых для стандартизации подтверждения между клиентом и сервером. Шифры гарантируют, что обмен шифруется и проходит проверку подлинности. Выбор шифров зависит от версии TLS, используемой сервером. Для некоторых служб, таких как Шлюз приложений Azure, можно выбрать версию TLS и наборы шифров, которые требуется поддерживать. Реализуйте наборы шифров, которые используют расширенный стандарт шифрования (AES) в качестве симметричного блочного шифра. AES-128, AES-192 и AES-256 допустимы.

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

    Примечание.

    Если вы используете закрепление сертификатов, ознакомьтесь с ограничениями гибкости и управления сертификатами.

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

    Если ключ скомпрометирован, сертификат должен быть немедленно отменен. Центр сертификации (ЦС) предоставляет список отзыва сертификатов (CRL), указывающий на сертификаты, недопустимые до истечения срока их действия. Проверка должна иметь учетную запись для crLs.

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

    Одним из способов локализации элементов управления является взаимное tls (mTLS). Он устанавливает доверие в обоих направлениях между клиентом и сервером. Клиент и сервер имеют собственные сертификаты, и каждый сертификат проходит проверку подлинности с помощью пары открытых или закрытых ключей. При использовании MTLS вы не зависите от внешнего ЦС. Компромисс — это добавленная сложность управления двумя сертификатами.

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

    Компромисс. По сравнению с одной настройкой VPN, двойные настройки VPN часто дороже, а подключения часто медленнее.

  • Реализуйте процессы ведения журнала и мониторинга. Следите за ресурсами входа, которые хранят сведения о клиентах, таких как исходный IP-адрес, порт и протокол. Используйте эти сведения для обнаружения аномалий.

Шифрование используемых данных

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

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

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

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

Упрощение функций Azure

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

Ключи, управляемые клиентом

Хранение ключей, управляемых клиентом, в Azure Key Vault или в управляемом HSM Key Vault.

Key Vault обрабатывает ключи как любой другой секрет. Управление доступом на основе ролей Azure (RBAC) осуществляется через модель разрешений. Этот элемент управления на основе удостоверений должен использоваться с политиками доступа Key Vault.

Дополнительные сведения см. в разделе "Предоставление доступа к ключам, сертификатам и секретам Key Vault с помощью RBAC".

Azure Key Vault Premium и Managed-HSM еще больше расширяет предложение, включая возможности конфиденциальных вычислений и безопасный выпуск ключей, который поддерживает политику, чтобы гарантировать, что ключ только когда-либо выпущен в рабочую нагрузку, которая может криптографически доказать, что она выполняется в доверенной среде выполнения (TEE).

Защита от неактивных данных
  • служба хранилища Azure автоматически шифрует данные с помощью блочных шифров при сохранении данных в учетной записи хранения. Для Хранилище BLOB-объектов Azure и хранилища очередей Azure хранилище также предоставляет клиентское шифрование через библиотеки.

    Дополнительные сведения см. в разделе "Шифрование хранилища".

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

    Управляемые диски можно экспортировать с портала. Шифрование на стороне сервера и шифрование на узле может защитить данные только после экспорта. Однако во время экспорта необходимо защитить данные. Вы можете использовать Шифрование дисков Azure для защиты и защиты данных во время процесса экспорта.

    Azure предлагает несколько вариантов шифрования для управляемых дисков. Дополнительные сведения см. в разделе Общие сведения о параметрах шифрования управляемых дисков.

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

Защита от передачи данных

С помощью Key Vault вы можете подготавливать, управлять и развертывать общедоступные и частные ssl-сертификаты или СЕРТИФИКАТЫ TLS. Сертификаты можно использовать в Azure и с внутренними подключенными ресурсами.

Защита от использования данных

Определенные службы в Azure предлагают возможность защищать данные при вычислении в физическом ЦП и памяти узла с помощью конфиденциальных вычислений Azure.

  • Конфиденциальные Виртуальные машины предлагают всю виртуальную машину, запущенную в TEE, память и выполнение содержимого ЦП виртуальной машины шифруются, предлагая простой подход "lift& shift" для перемещения неизмененных приложений с высокими требованиями к безопасности в Azure. Каждая конфиденциальная виртуальная машина Azure имеет собственный выделенный модуль платформы доверия (TPM). Шифрование выполняется при безопасной загрузке компонентов операционной системы.

  • Конфиденциальные рабочие узлы AKS, конфиденциальные контейнеры в AKS или конфиденциальных контейнерах на Экземпляры контейнеров Azure (ACI) предлагают возможность запускать неизмененные контейнеры в TEE и управлять ими, что позволяет клиентам воспользоваться защитой на основе использования. Предложения контейнеров основаны на конфиденциальной Виртуальные машины и используют те же средства защиты.

  • Решения анклавов приложений — это специально созданные приложения, использующие определенные расширения ЦП, предоставляемые номерами SKU виртуальных машин, поддерживающими расширения Intel Software Guard (SGX), они предлагают очень детализированную базу доверенных вычислительных ресурсов (TCB), но требуют, чтобы приложения были специально закодированы, чтобы воспользоваться преимуществами функций.

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

Управление секретами

Key Vault можно использовать для безопасного хранения и управления доступом к маркерам, паролям, сертификатам, ключам API и другим секретам. Используйте Key Vault в качестве решения для управления ключами и сертификатами. Номер SKU уровня "Премиум" поддерживает HSM.

Пример

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

Схема, демонстрирующая решения шифрования для управления ключами, сертификатами и секретами.

Контрольный список по безопасности

Ознакомьтесь с полным набором рекомендаций.

Контрольный список по безопасности