В чем отличия SQL Server 2016 от Always Encrypted и Transparent Data Encryption?

40

Пока я пишу это, я все еще жду официального выпуска SQL Server 2016, чтобы мы могли изучить полезность его функции «Всегда зашифровано».

Я просто хотел бы знать, какие будут конкретные различия между Always Encrypted и доступным в настоящее время прозрачным шифрованием данных в SQL Server 2016, чтобы мы могли принять правильное решение для будущих проектов.

RoastBeast
источник
При использовании Always Encrypted драйверы клиента шифруют / дешифруют данные до того, как они попадут на SQL Server, а TDE работает на самом SQL Server. ИМХО TDE в основном бесполезен в сценариях облачных / защищенных центров обработки данных (выделите «TDE не очень полезен в облаке»). Если вы заинтересованы в улучшенной безопасности данных, также проверьте Crypteron . Полное раскрытие: я работаю там
DeepSpace101

Ответы:

48

Недостатки прозрачного шифрования данных по сравнению с Always Encrypted:

  • Защищает только данные в состоянии покоя - резервные копии и файлы данных «безопасны», но данные в движении или в памяти уязвимы
  • Только вся база данных
  • Все данные зашифрованы одинаково
  • Сжатие резервных копий может занять больше времени и быть неэффективным

    • Ну, на самом деле, в SQL Server 2016 есть некоторые улучшения, которые не соответствуют тому, что мы обычно знаем о попытке сжатия зашифрованных данных - это намного лучше, чем в предыдущих версиях, но, вероятно, все еще хуже, чем только шифрование нескольких столбцов (не проверено)
  • Tempdb также наследует шифрование - остается даже после отключения TDE
  • Требуется Enterprise Edition
  • Данные всегда доступны для сисадмина

Always Encrypted полностью или частично решает все эти проблемы:

  • Данные защищены в покое, в движении и в памяти - гораздо больший контроль над сертификатами, ключами и тем, кто именно может расшифровать данные
  • Может быть только один столбец
  • Тип шифрования является выбором:
    • Может использовать детерминированное шифрование для поддержки индексов и поиска точек (скажем, SSN)
    • Может использовать случайное шифрование для более высокой защиты (скажем, номер кредитной карты)
  • Поскольку это не масштабирование всей базы данных, сжатие резервных копий не обязательно затрагивается - конечно, чем больше столбцов вы шифруете, тем хуже будет ваша удача
  • Tempdb не вовлечен
  • Начиная с SQL Server 2016 с пакетом обновления 1 (SP1), Always Encrypted теперь работает во всех выпусках.
  • Данные могут быть защищены от sysadmin (но не от sysadmin и администраторов безопасности Windows / cert / key, другими словами, вы можете разделить ответственность, если эти две группы не вступают в сговор)

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

Аарон Бертран
источник
Не могли бы вы объяснить, как Always Encrypted шифрует данные в памяти? Я пытался найти эту информацию в MSDN, но она просто говорит о данных в состоянии покоя и данных в шифровании движения. Спасибо :)
Виктория Малая
1
@Victoria данные зашифрованы поставщиком прежде, чем SQL Server когда-либо их увидит. Таким образом, SQL Server получает зашифрованное значение, помещает это зашифрованное значение на диск и загружает зашифрованное значение в память, когда эта страница находится в памяти. Шифрование не происходит в памяти так, как вы думаете, а дешифрование происходит только тогда, когда у клиента есть сертификат с возможностью дешифрования ...
Аарон Бертран
2
Насколько я знаю, одно из самых больших отличий заключается в запросе данных. С TDE вы можете выполнять любой запрос, как обычно, с AE вы очень ограничены в запросах зашифрованных столбцов, то есть вы можете выполнять только сравнения на равенство (и это требует выбора детерминированного шифрования). Здесь нет диапазонов дат проверки, запросов типа LIKE и т. Д.
Musefan
3

Проще говоря, TDE - это данные, зашифрованные в состоянии покоя (на диске), а AE - данные, зашифрованные на проводе.

Чад Мэттокс
источник
Я думаю, что вы можете иметь это задом наперед, нет?
zwerdlds
Разве это не должно быть: TDE шифруется в состоянии покоя, в то время как AE шифруется в проводном режиме, в состоянии покоя и в памяти?
RoastBeast
AFAIK: Вы можете объединить TDE и Force Protocol Encryption на сервере MS SQL, чтобы также шифровать его в проводном режиме.
TiloBunt