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

Šifrování v klidu a/nebo AES_ENCRYPT

Šifrování v klidu

Klidové šifrování jsou data v databázi, když nejsou používána/nepřistupována nebo aktualizována. Šifrování na cestách jsou věci jako TLS kde jsou data (z databáze ) se přenáší ze serveru na server do prohlížeče, na server, do prohlížeče atd. TLS je ve většině situací naprosto dobré, pokud se s ním zachází opatrně a přistupuje se k němu s přístupem, že musíte udělat víc než naprosté minimum aby to bylo skutečně realisticky bezpečné.

Typickým příkladem jsou lidé, kteří si na svou doménu nasadí TLS certifikát od LetsEncrypt a myslí si, že najednou jsou všechny jejich věci v bezpečí; ale nešifrují své relace ani soubory cookie takže zanechávají obrovskou potenciální díru v jejich obraně.

Nepoužívejte vestavěný šifrovací systém MySQL.

Nemohu to dostatečně zdůraznit; vestavěný šifrovací systém v MySQL není vhodný pro skutečnou bezpečnou ochranu dat.

Přečtěte si prosím moji odpověď na velmi podobnou otázku zde pokud jde o podrobnosti (Nechci jednoduše kopírovat/vkládat ).

Dobře, protože na tom trváte... zde:

Z toho, co jsem četl ve svém vlastním výzkumu na toto téma, odkaz poskytnutý Magnusem na defuse/php -šifrování je jedním z nejlepších způsobů, jak zabránit tomu, aby vám MySQL způsobilo kompromitaci vašich dat tím, že nikdy nedovolíte programu/serveru MySQL vidět hodnotu vašich dat v prostém textu.

-- Odpovězte zveřejněním 7. května 2017.

Také Odpověď Billa Karwina na stejnou otázku poskytuje některé cenné další poznatky:

-- Odpovězte zveřejněním 7. května 2017.

Bod uzavření:

Zabezpečení je složité. Chcete-li to udělat správně a mít důvěru ve své ochranné cibulové slupky, musíte udělat spoustu věcí (viz odrážky níže); ale první věc, kterou musíte udělat, je:

  • Definujte, před kým chráníte

Vážně. Potřebujete různé strategie proti někomu, kdo chce ukrást vaše jména a adresy v prostém textu, oproti někomu, kdo chce převzít váš server, oproti někomu, kdo chce data jednoduše zničit jen proto. Je to mýtus, který můžete neustále chránit proti všem, z principu je to nemožné*; takže musíte definovat nejpravděpodobnější agresory a poté zjistit, jak nejlépe zmírnit jejich pokroky.

Pokud jde o MySQL, několik jasných doporučení:

  • Udržujte SQL a PHP na stejném serveru. Nepřistupujte vzdáleně k datům MySQL.

  • Vyloučit externí přístup k SQL (takže je to localhost pouze)

  • Zaměňte názvy tabulek a názvy sloupců; pokud se někdo nabourá do vašich dat a vy máte HDTBJ^BTUETHNUYT ve sloupci username pak vědí, že toto zkomolení je pravděpodobně uživatelské jméno, takže mají velmi dobrý začátek ve snaze prolomit vaše šifrování.

  • DŮLEŽITÉ :Opravdu zablokujte přístup ke stolu; nastavit mnoho uživatelů MySQL, z nichž každý bude mít pouze minimální oprávnění dělat to, co potřebuje; chcete, aby si uživatel přečetl tabulku (pouze ) a číst pouze určité tabulky; uživatelé zapisovat do určitých tabulek, ale nemají přístup k jiným tabulkám. Je to oddělení zájmu, takže pokud je některý uživatel na MySQL ohrožen; neztratili jste automaticky všechna uložená data.

  • Používejte šifrovací služby PHP. Uložte šifrovací klíče na zcela oddělené místo; mít například jiný server, který používáte výhradně pro zálohování, ke kterému máte přístup pouze za účelem získání šifrovacích klíčů, takže pokud je váš server PHP/MySQL kompromitován, máte prostor pro odříznutí a uzamčení serveru klíčů, abyste mohli omezit škody. Pokud má klíčový server také zálohy, pak ve skutečnosti nejste příliš ohroženi (závisí na situaci ).

  • Nastavte si spoustu pozorovatelů a e-mailových informátorů, kteří vám přesně sdělí, kdy běží určité procesy a kteří uživatelé serveru (ne lidé, ale programy) co dělají. Takže můžete vidět, proč neočekávaný proces začíná běžet v 5 hodin ráno, abyste zkusili změřit velikost tabulek MySQL. WTF?

  • Existuje velký potenciál, že vaše data z MySQL AES_ENCRYPT „načmucháte“, i když nejsou v klidu v DB, ale pokud dojde ke kompromitaci webu (nebo hůře, PHP kód je nezabezpečený), pak útoky načasování mohou fungovat. datový obsah pomocí časování vyhledávání dotazů a vracení datových paketů.

  • Bezpečnost je černá díra; v určitém okamžiku si pomyslíte:„Tohle, udělal jsem toho dost“. Nikdo nikdy nemá úplné zabezpečení, některé velmi oddané organizace toho mají dostatek bezpečnostní. Musíte zjistit, jak daleko jste ochotni dojít, než tu vzdálenost ujdete.

* Proč nemožné? Protože aby byla vaše data neustále chráněna před všemi hrozbami, musela by být nečitelná, nepoužitelná, jako hash. Hash je chráněn před každým, po celou dobu. Ale hash nelze nikdy zrušit.




  1. Jak spouštět vzdálené úlohy z IRI Workbench

  2. Jak AUTO aktualizovat MySQL po vypršení platnosti pole časového razítka

  3. Jak vytvořit formulář pomocí Průvodce formulářem

  4. Laravel:vlevo připojit dotaz