Я получаю данные и использую AES или шифр для шифрования его прежде, чем сохранить его к базе данных, таким образом, шифрование сделано на прикладном уровне. Если кто-то украдет базу данных, то данные будут относительно безопасны, если они не украли приложение также (где ключ хранится/получается доступ).
Я теперь изучаю шифрование базы данных с библиотеками как ezNcrypt для MySQL, ОБЩЕГО Шифрованием, или SQLCipher.
Но я не вполне понимаю, как шифрование базы данных работает. Если приложение только передает необработанные неизменные данные базе данных, и база данных дешифрует сами данные так или иначе, разве который не сделал бы шифрование уровня базы данных менее безопасным, если бы база данных была украдена, так как 100% компонента шифрования были украдены?
В моей текущей ситуации, если бы база данных украдена, взломщик должен был бы покрыть сталью второй компонент (ключ, который является на прикладном уровне) дешифровать базу данных. Но с шифрованием базы данных, сама база данных несет полную ответственность шифрования, таким образом, путем кражи базы данных, разве у взломщика не было бы всего, должен был дешифровать базу данных?
Возможно, я не ясен о том, как дешифрование уровня базы данных работает.
Алгоритм шифрования применяется в разных точках стека вашего приложения, но, в конце концов, процесс точно такой же, независимо от того, используете ли вы приложение или решение на уровне базы данных. Ключ должен храниться где-то , и если злоумышленник получит и зашифрованные данные, и ключ, он получит доступ к данным.
Итак, настоящий вопрос сводится к тому, как вы храните свой ключ:
* Я говорю это в основном потому, что технически ключ все еще доступен в виде открытого текста где-то в ОЗУ. Но это намного сложнее, чем то, что хранится на диске (несмотря на подкачку памяти).
Что касается конкретно MySQL, вы можете найти эту ветку полезной.
Какой метод вы используете для аутентификации пользователей? Если метод аутентификации в каждом случае один и тот же, шифрование в приложении вряд ли будет более или менее безопасным, чем в базе данных. Наиболее вероятный вектор атаки остался прежним. Кажется гораздо менее вероятным, что у злоумышленника будет возможность фактически украсть базу данных, а не просто получить к ней доступ - если вы не делаете что-то очень глупое.