@AntonKiya

Как защитить данные в базе данных?

Всем привет, есть задача при написании скрипта сделать так, чтобы если злоумышленники получат наш скрипт или базу данных они не смогли оттуда получить логины/пароли.
Так вот с базой данных понятно, есть куча библиотек для кодирования информации в бд, и для декодирования используется ключ, который я обычно хранил в конфиг файле. Получается если кто то получит скрипт, то получит и этот ключ и сможет раскодировать данные из бд. Вопрос: как и где тогда хранить этот ключ, либо же чем вместо этих библиотек еще можно воспользоваться, какие есть еще варианты ? Заранее спасибо.
ps обычно пользовался библиотекой bcrypt
  • Вопрос задан
  • 128 просмотров
Решения вопроса 1
bitniks
@bitniks
Go/PHP/Symfony developer
Храните в базе не зашифрованный пароль, а захешированный с помощью однонаправленной хеш функции. Тогда злоумышленник, получив все данные, не сможет восстановить пароль по хешу. Это будет возможно только перебором, что может занять значительное время для каждого хеша

> Получается если кто то получит скрипт, то получит и этот ключ и сможет раскодировать данные из бд
У однонаправленного алгоритма нет ключа для декодирования. Обычно бывает соль, чтобы предотвратить перебор по радужной таблице. Но соль никак не поможет злоумышленнику получить пароли. Указанный вами bcrypt как раз однонаправленный алгоритм хеширования и скорее всего под ключом вы понимаете как раз соль
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Не выпускайте базу данных в интернет, и проблем не будет.
Ну и пароли везде должны быть сложные.
И пароли в коде хранить нельзя - храните их безопасном хранилище, к которому имеют доступ только доверенные сотрудники.
Шифровать данные в базе - это крайняя мера, причём не самая эффективная, да ещё и вредная.
Ответ написан
Комментировать
asilonos
@asilonos
Программист
Для этого нужно немного поменять протокол обработки данных клиентов.
Чтобы в итоге прийти к сквозному шифрованию на клиентах. Это довольно сложно обьяснить на пальцах в кратце-
вот тут примерно описано как это работает на практике -
https://staffcounter.net/ru/introducing-p2p-encryp...

еще почитайте как это сделано в mega.nz
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы