Они говорят, что такой вещи, как «глупый вопрос», не существует, так что вот так:
Я понимаю, что SQL Server Transparent Data Encryption (TDE) шифрует данные в состоянии покоя, поэтому файлы вашей базы данных (.mdf) и файлы резервных копий (.bak) шифруются на случай, если кто-то проникнет в ваше хранилище и похитит эти файлы. Я также понимаю, что данные считываются при чтении с диска, поэтому они не зашифрованы в памяти (в движении). Поэтому данные, запрашиваемые пользователем, выполняющим удаленный запрос (выберите * из SensitiveData), будут незашифрованными при путешествии по сети и, следовательно, уязвимы для перехвата.
Итак, если предположить, что все вышеприведенное верно, вот мой глупый вопрос: если мой экземпляр SQL Server находится на компьютере A, а мои резервные копии базы данных TDE записаны в хранилище на удаленном компьютере B, шифруются ли данные операции резервного копирования по мере их поступления из компьютер A будет записан на диск на компьютере B? Я предполагаю, что это должно быть (потому что я предполагаю, что операция шифрования сначала выполняется на компьютере A), но я не могу найти подтверждения этому ни в одной из документов Microsoft или в блогах. И точно так же, во время операции восстановления - кто-нибудь должен был перехватить данные, передаваемые с диска на компьютер B, чтобы восстановить базу данных на компьютере A - они обнаружат, что данные в движении зашифрованы?
источник
Ответы:
Да, резервные копии шифруются при перемещении по сети, поскольку данные TDE шифруются на диске, и операция резервного копирования никогда не расшифровывает их .
Резервные мифы Пола Рэндала :
Если страницы были загружены в буферный пул («нормальное» пространство памяти, используемое SQL для кэширования таблицы базы данных и индексирования данных), их пришлось бы расшифровать. Но резервные копии этого не делают, они просто сбрасывают необработанные зашифрованные «экстенты» (непрерывные 8-страничные блоки) в место назначения резервной копии.
Мне удалось получить подтверждение от Пола Рэндала, что его вышеупомянутый комментарий по-прежнему актуален для TDE :
Другими словами, если вы включили CHECKSUM в базу данных, они добавляются (во время обычных операций записи SQL) после выполнения шифрования. Это означает, что процесс резервного копирования может считывать необработанный (зашифрованный) экстент, проверять контрольную сумму и записывать резервную копию, и все это без расшифровки данных.
Это почти наверняка является причиной того, что (до SQL 2016) включение сжатия резервной копии в базе данных с TDE ничего не делало, поскольку зашифрованные данные не очень сжимаемы :
Для операции восстановления применяется тот же принцип. Зашифрованная резервная копия остается зашифрованной по всей сети и записывается на диск восстанавливающего сервера в их все еще зашифрованном состоянии. Они дешифруются только тогда, когда база данных загружена в память после завершения восстановления.
источник
Да, он расшифровывается при входе в пул буферов и шифруется при выходе. В этой ситуации, поскольку мы пишем на диск, он сначала шифруется, а затем записывается. Поскольку записи выполняются по сети, сами данные зашифрованы, а любые другие части сетевого трафика - нет.
Да, поскольку применимо то же, что и выше, но в обратном порядке. Данные были зашифрованы на диске, читаются и передаются в зашифрованном виде. Затем он попадает в экземпляр и загружается в буферный пул, где он не шифруется как шаг в пути.
источник