sql >> Databáze >  >> RDS >> Mysql

Jaký je nejlepší způsob ukládání citlivých dat v MySQL?

Vážně, NEPOUŽÍVEJTE aes_encrypt() MySQL Je to nejnebezpečnější metoda použití blokové šifry. Používá režim ECB a mohu uvést jednoduchý příklad, proč je to vážná chyba.

Prostý textová zpráva:

Stejná zpráva zašifrovaná v režimu ECB (nezáleží na tom, jakou šifru používáte):

PŘESNĚ stejná zpráva v režimu CBC (opět nezáleží na tom, jakou šifru používáte):

Důvodů je ještě více abyste nepoužívali aes_encrypt mysql, zejména každý jednotlivý dotaz, který odešlete, bude mít také klíč aes, který používáte. Pokud je databáze kompromitována, útočník povolí protokolování a získá váš klíč aes a dešifruje celou databázi .

Co tedy mělo by používáš? Líbí se mi tato třída prozatím. Používá režim CBC s funkcí String2Key a IV. Primární klíč můžete použít jako svůj IV, každá zpráva musí mít jedinečný IV. Je v pořádku, pokud útočník zná IV a pokud jsou sekvenční, pokud je implementace blokové šifry bezpečná. Opětovné použití IV učinilo WEP mnohem méně bezpečným .



  1. První písmeno velké. MySQL

  2. Přesouvání textových sloupců zeměpisné šířky/délky do sloupce typu „bod“.

  3. Pořízení záznamu s maximálním datem

  4. MySQL – Udělejte z páru jedinečných hodnot