Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apa cara terbaik untuk menyimpan data sensitif di MySQL?

Serius, JANGAN GUNAKAN aes_encrypt() MySQL MySQL Ini adalah metode yang paling tidak aman dalam menggunakan cipher blok. Ini menggunakan mode ECB, dan saya dapat memberikan contoh demonstrasi sederhana mengapa ini adalah kesalahan serius.

Pesan teks biasa:

Pesan yang sama dienkripsi dengan mode ECB (tidak masalah sandi apa pun yang Anda gunakan):

Pesan yang sama PERSIS menggunakan mode CBC (sekali lagi, tidak masalah sandi apa yang Anda gunakan):

Ada lebih banyak alasan lagi untuk tidak menggunakan aes_encrypt mysql, terutama setiap kueri yang Anda kirim juga akan memiliki kunci aes yang Anda gunakan. Jika database disusupi, penyerang akan mengaktifkan logging dan hanya mendapatkan kunci aes Anda dan mendekripsi seluruh database .

Jadi apa yang seharusnya Kau gunakan? Saya suka kelas ini untuk saat ini. Ini menggunakan mode CBC dengan fungsi String2Key dan IV. Anda dapat menggunakan kunci utama sebagai IV Anda, setiap pesan harus memiliki IV yang unik. Tidak apa-apa jika penyerang mengetahui IV, dan jika berurutan, asalkan implementasi block cipher aman. Penggunaan kembali IV membuat WEP jauh lebih tidak aman .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menambahkan Batasan NOT NULL di MySQL

  2. menggabungkan kueri mysql DAN ATAU di Codeigniter

  3. MASALAH:Mysql mengonversi Enum ke Int

  4. MySQLi - mendeklarasikan variabel setelah bind_param?

  5. Sambungan gagal:Akses ditolak untuk pengguna 'root'@'localhost' (menggunakan kata sandi:YA) dari fungsi php