Вам следует избегать шифрования всего в базе данных. По крайней мере, вам придется выяснить, какие поля используются для поиска, отношений, сортировки и т. Д., И оставить их незашифрованными. Вы должны учитывать уровни шифрования в зависимости от того, от кого вы скрываете данные. Также будет полезно, если вы четко понимаете разницу между односторонним хешированием (MD5, SHA), симметричным шифрованием и асимметричным шифрованием.
Шифрование паролей в базе данных имеет смысл, поскольку оно скрывает пароли от dba или любого, кто имеет возможность напрямую запрашивать db. На самом деле пароли не зашифрованы, они хешируются. Таким образом, вы никогда не сможете восстановить пароль, вы можете только создать новый.
Данные, которые необходимо восстановить, будут зашифрованы, чтобы их можно было расшифровать. Существуют различные алгоритмы для этого, и они имеют разные атрибуты прочности и стоимости (с точки зрения времени обработки и памяти). Вы должны выбрать тот, который соответствует вашим целям.
Дело в том, что шифрование и дешифрование должны выполняться в приложении, а не в базе данных. Причина этого заключается в том, что в какой-то момент между базой данных и серверами приложений может быть открытая сеть, и любые данные, передаваемые между приложением и базой данных, могут быть перехвачены.
При выборе между симметричным и асимметричным шифрованием существует два фактора. Во-первых, как долго эта информация должна храниться в безопасности. Если это ставка на аукционе, который заканчивается через 2 дня, вы можете использовать симметричное шифрование, потому что в идеале это не будет иметь значения, если люди узнают что-то после этого. Номера кредитных карт обычно не должны храниться в безопасности. Если вы храните дату истечения срока годности и номера карты ccv, то они должны храниться в безопасности, как правило, в течение многих лет. В этом случае вы должны использовать асимметричное шифрование.
При шифровании всей файловой системы главное не беспокоиться о снижении производительности. Насколько я видел, это требует, чтобы человек вводил правильный пароль при загрузке ОС, а для этого требуется физический доступ, и люди, которым можно доверять, знают пароль, находящийся настолько близко к серверам, насколько этого требует SLA. В этом все равно что установить пароль bios или пароль grub. Если вы действительно зашифруете свою файловую систему, обязательно проверьте это или найдите способ обойти это.