Mysql
 sql >> база данни >  >> RDS >> Mysql

Кой е най-добрият начин за съхраняване на чувствителни данни в MySQL?

Сериозно, НЕ ИЗПОЛЗВАЙТЕ aes_encrypt() на MySQL Това е най-несигурният метод за използване на блоков шифър. Използва режим ECB и мога да дам прост пример с демонстрация защо това е сериозна грешка.

Обикновен текстово съобщение:

Същото съобщение, криптирано с режим ECB (няма значение какъв шифър използвате):

ТОЧНО същото съобщение при използване на режим CBC (отново, няма значение какъв шифър използвате):

Има още повече причини да не използвате aes_encrypt на mysql, най-вече всяка отделна заявка, която изпращате, ще има и ключа aes, който използвате. Ако базата данни е компрометирана, нападателят ще активира регистриране и просто ще получи вашия aes ключ и ще декриптира цялата база данни .

И така, какво трябва ти използваш? Харесвам този клас за момента. Използва режим CBC с функция String2Key и IV. Можете да използвате първичния ключ като своя IV, всяко съобщение трябва да има уникален IV. Всичко е наред, ако нападателят знае IV и ако те са последователни, стига реализацията на блоковия шифър да е сигурна. Повторното използване на IV направи WEP много по-малко сигурен .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. съхраняване на mp3 файлове в mysql

  2. MySQL заявка, където JOIN зависи от CASE

  3. Система за уведомяване, използваща php и mysql

  4. mysql_fetch_array връща само един ред

  5. MySQL enum срещу набор