Все потоки
Поиск
Написать публикацию
Обновить

Postgres Pro TDE — безопасность и производительность

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров2.6K
Всего голосов 20: ↑20 и ↓0+25
Комментарии13

Комментарии 13

Скажите, а может быть такая ситуация, что в процессе кодирования 8K страницы результат будет более 8K?

Нет, такое невозможно. Блочное кодирование обрабатывает данные так, что закодированный объём всегда равен исходному объёму.

Может если включен padding (дополнение). Например, популярный PKCS#7. Ссылка с примером.

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

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

Любая защита подразумевает совокупность мер для организации безопасности данных хранимых в файлах БД. Понятное дело, что если админ имеет полный доступ к файлам, ключам, IV :: тогда он сможет получить и доступ к защищаемой информации, здесь просто "не нужно класть рядом с замком ключ, который он открывает". Здесь больше вопрос к надежности и безопасности места хранения ключей, IV и их извлечения при раскодировании информации.

IV не даёт возможности прочитать данные без ключа. Ключ шифрования математического преобразования страницы зашифрован математически преобразован мастер ключём. Т.е. кроме IV и ключа таблиц, которые доступны для копирования, ещё нужно добыть мастер ключ. А это уже сложнее, т.к. в открытом виде его на диске нет. А может и вообще на сервере, даже в памяти (зависит от реализации провайдера ключей).

(Сорри, могу быть не точным в нюансах.)

Т.е. ключевое здесь, что IV ключ хранится в зашифрованном виде, так?

Мастер-ключ в прямом виде не кодирует IV, но участвует в генерации ключевого потока в алгоритме AES-GCM со случайным IV. Как правило, IV объединяется со счетчиком блока, мастер-ключ применяется к этому значению AES, и уже полученный ключевой поток XOR-ится с открытым текстом.

Спасибо за статью, но возник вопрос: Если вы всю чувствительную информацию (ключи и вектора) храните в отдельных tde файлах, то а как вы их (файлы) защищаете? Либо я пропустил это либо вы не написали.

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

Возник вопрос по применению российских криптостойких алгоритмов. Есть ли у вас такие планы? Или может уже есть, а в статье тема не раскрыта?

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий