Когда вы шифруете конфиденциальные данные, вы по сути ограничиваете доступ тех, кто имеет доступ к ключу.Затем возникает проблема управления ключами: обеспечение доступа к ключу, необходимому для дешифрования данных, имеют только уполномоченные лица / системы.
Конечно, вы должны использовать стандартный алгоритм шифрования, достаточно простой в наши дни, но то, что вынужно подумать о том, от каких угроз вы защищаетесь, как вы собираетесь контролировать доступ к ключу (ключам) и как вы контролируете физический доступ к серверам.
Использование TDE гарантирует, что содержимоебаза данных и ее резервные копии зашифрованы, с минимальным воздействием для авторизованных пользователей базы данных.Таким образом, любой, кто может получить доступ к серверу базы данных с действительными учетными данными, сможет просматривать незашифрованные данные.Также любой администратор БД обычно будет иметь доступ к ключу и сможет просматривать незашифрованные данные.Но третья сторона, которая, скажем, получает автономную резервную копию, не сможет получить доступ к данным, что может быть важно для соответствия нормативным требованиям.
С другой стороны, если вы шифруете вНа уровне приложения вы можете использовать ключ, доступный только администраторам сервера приложений.Это потенциально дает вам больше безопасности, если, например, администраторы сервера баз данных и серверов приложений находятся отдельно (например, члены разных организаций).Администраторы баз данных, у которых нет доступа к ключу сервера приложений, не смогут увидеть данные.
В своем первоначальном посте вы говорили о том, как скрыть секретный ключ в файле конфигурации на сервере приложений.На первый взгляд, это похоже на то, как скрывать ключ от входной двери под ковриком.Если вы сделаете это, вам нужно подумать о том, как вы будете гарантировать, что посторонние люди не смогут получить доступ к ключу.