Чи зашифрований мережевий трафік під час написання віддалених резервних копій за допомогою SQL Server TDE?


9

Вони кажуть, що немає такого поняття, як "дурне питання", тож ось що:

Я розумію, що прозоре шифрування даних SQL Server (TDE) шифрує дані в спокої, так що ваші бази даних (.mdf) та ваші резервні файли (.bak) зашифровані, якщо хтось увірветься у ваш сховище та вкраде ці файли. Я також розумію, що дані розшифровуються при зчитуванні з диска, так що вони незашифровані в пам'яті (у русі). Тому дані, запитувані користувачем, який виконує віддалений запит (виберіть * з SensitiveData), будуть незашифровані під час подорожі по мережі і, таким чином, вразливі до перехоплення.

Отже, якщо все вищесказане правильно, ось моє дурне запитання: Якщо мій екземпляр SQL Server знаходиться на комп’ютері A, а мої резервні копії бази даних TDE списуються на зберігання на віддалений комп'ютер B, чи зашифровані дані операції резервного копіювання під час подорожі з комп'ютер A, що записується на диск у комп'ютері B? Я припускаю, що це має бути (тому що я думаю, що операція шифрування відбувається спочатку на комп’ютері А), але я не можу знайти підтвердження цього в жодній документації Microsoft або в блогах. І так само під час операції відновлення - чи хтось перехоплював дані, що передаються з диска на комп’ютер B, щоб відновити базу даних на комп'ютері A - чи знайдуть вони ці дані в русі зашифрованими?


2
Це справді гарне запитання
Шенкі

Відповіді:


7

Так, резервні копії шифруються під час переміщення по мережі, оскільки дані TDE шифруються на диску, а операція резервного копіювання ніколи не розшифровує їх .

Резервні міфи Пола Рандаля :

Міф 30-09) створює резервні копії зчитування даних через буферний пул

Ні . Підсистема резервного копіювання відкриває власні канали до файлів баз даних, щоб уникнути продуктивності, коли потрібно прочитати все в пам'яті SQL Server і повернутись на пристрій резервного копіювання (а також ефективно промити пул буфера в процесі). Якщо ви попросите перевірити сторінку-контрольну суму, вона використовує свою невелику частину пам'яті.

Якщо сторінки завантажувались у буферний пул ("звичайний" простір пам'яті, який SQL використовує для кешування таблиць баз даних та даних індексу), їх потрібно було б розшифрувати. Але резервного копіювання цього не робити, вони просто скидають необроблені зашифровані "розширення" (суміжні фрагменти на 8 сторінок) до місця призначення резервного копіювання.

Мені вдалося отримати підтвердження від Пола Рандала, що його вищезазначений коментар все ще актуальний для TDE :

Це працює точно так само. Буферний пул робить шифрування, після чого додає контрольну суму сторінки перед тим, як записати сторінку на диск. Резервні копії ніколи не читаються через буферний пул. Так, так, резервна копія бази даних TDE досі має шифрування. Контрольні суми сторінок перевірені, але за допомогою резервного коду, а не коду пулу буфера.

Іншими словами, якщо ви включили CHECKSUM у базі даних, вони додаються (під час звичайних операцій запису SQL) після того, як відбувається шифрування. Це означає, що процес резервного копіювання може прочитати необроблену (зашифровану) міру, перевірити контрольну суму та записати резервну копію, і все це не розшифровуючи дані.

Це майже напевно причина тому, що (до SQL 2016) включення резервного копіювання на базу даних з TDE нічого не робило, оскільки зашифровані дані не дуже стисливі :

Це пов’язано з тим, що при знятті резервних копій зашифрованої бази даних TDE сторінки бази даних не розшифровуються під час резервного копіювання. Вони створюються в резервному режимі в тому ж зашифрованому стані, в якому вони перебувають, і стискаються . За своєю природою зашифровані дані є дуже унікальними, тому стиснення даних не приносить великої користі від зашифрованих даних.

Для операції відновлення застосовується той самий принцип. Зашифрована резервна копія залишається зашифрованою по всій мережі та записується на диск відновлення сервера у їхньому ще зашифрованому стані. Вони розшифровуються лише тоді, коли база даних завантажується в пам'ять після відновлення.


3

... чи зашифровані дані операції резервного копіювання під час подорожі з комп'ютера A, що записуються на диск на комп'ютері B?

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

... під час операції відновлення ... чи знайдуть вони дані в русі зашифрованими?

Так, оскільки застосовується те саме, що вище, але у зворотному порядку. Дані були зашифровані на диску, читаються та передаються у зашифрованому стані. Потім він потрапляє до екземпляра і завантажується в буферний пул, де він незашифрований як крок на шляху.


1
Я думаю, що це правильно, але я не впевнений, що це правильно з причин, про які ви говорите. Я думав, що BACKUP відправить на диск необроблену базу даних EXTENTS (а не сторінки), тому обходить крок розшифровки, коли вони завантажуються в пам'ять. Я можу помилятися, але зараз шукаю документацію.
BradC

1
Виявивши це, дивіться міф Пола Рандала 30-09 : "Підсистема резервного копіювання відкриває власні канали до файлів баз даних, щоб уникнути досягнення продуктивності, коли потрібно прочитати все в пам'яті SQL Server і повернутися на пристрій резервного копіювання". Зокрема, TDE не згадує, але якщо процес резервного копіювання - це власний канал, мабуть, марно розшифрувати лише негайно повторно шифрувати. Він може навіть перевірити CHECKSUMS та / або застосувати стиснення без розшифровки, якщо вони включені.
BradC

@BradC Я не говорив, що саме резервне копіювання буде працювати таким чином, але як процес шифрування / дешифрування буде працювати з даними спокою. Якщо це неоднозначно, я його зміню, однак я не кажу, що так працює резервна копія саме тоді, коли і де відбувається шифрування / розшифровка.
Шон Галларді

Але якщо в процесі резервного копіювання не використовується буферний пул, то ваші міркування невірні, навіть якщо висновок (пакети резервного копіювання зашифровані) є правильним з іншої причини.
BradC

@BradC Ні, аргументація полягає в тому, що вона вже записана на диск, так що вона вже зашифрована ... Не впевнений, як ви отримуєте, що я констатую, що резервна копія розшифровується, а потім повторно шифрується, проходячи через ВР. Я думав, що це досить прямо вперед, кажучи, що він уже зашифрований, тому копіювання на інший диск або копіювання з іншого диска не розшифровує його ... Не знаю, як ви це плутаєте.
Шон Галларді
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.