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

Применяется к рекомендации по контрольным спискам безопасности Well-Architected Framework:

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 (HSTS), чтобы транспорт HTTPS поддерживался и не падал в HTTP во время обмена данными. Эта политика защищает от атак "злоумышленник в середине".

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

    Примечание

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

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

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

    Примечание

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

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

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

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

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

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

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

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

Используемые данные

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

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

Шифрование и расшифровка данных должны выполняться только в пределах этих границ изоляции.

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

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

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

Упрощение поддержки Azure

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

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

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

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 и управлять ими, что позволяет клиентам воспользоваться преимуществами защиты в использовании. Предложения контейнеров основаны на конфиденциальных Виртуальные машины и используют те же средства защиты.

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

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

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

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

Пример

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

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

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

См. полный набор рекомендаций.

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