Nejsem si jistý, zda by použití vestavěného šifrování MySQL bylo nejlepším řešením vašeho problému.
M_CRYPT PHP Balíček je považován za docela dobrý a poskytuje vám flexibilitu při výběru algoritmu, který nejlépe vyhovuje vašim potřebám.
Uložení klíče na jiném serveru má jednu velkou výhodu:klíč není na stejném počítači jako šifrovaná data. Dokud tedy útočník nemá dostatečnou kontrolu nad napadeným počítačem, nemůže se ke klíči dostat.
Pokud útočník získá plnou kontrolu nad počítačem, na kterém jsou data uložena, bude s největší pravděpodobností schopen dotazovat webová služba pro klíč.
Přenos klíče z jednoho stroje do druhého však otevírá zcela novou oblast, kterou je třeba zabezpečit. Pravděpodobně zahrnuje více klíčových a více šifrovacích vrstev, čímž se zvyšuje pravděpodobnost, že dojde k chybám.
Druhou možností je zadat heslo při spuštění webového serveru a uložit jej pouze do paměti.
Možné řešení
Pokud jste viděli použité řešení, které používalo následující metodu pro šifrování souborů pro uživatele s webovým přístupem (nejsem si jistý vaším prostředím, ale mohlo by to být užitečné):
- Při vytvoření uživatele je novému uživateli přiřazen dlouhý náhodný klíč.
- Tento náhodný klíč je uložen v zašifrovaném sloupci v záznamu uživatele.
(Pouze tento sloupec je zašifrován, aby neovlivnil výkon zbytku záznamu! ) - Šifrování sloupce s náhodným klíčem se provádí pomocí 1 hlavního hesla, uloženého v souboru nebo v paměti.
(Lepší možností je zadat heslo při prohlížení vašeho webového serveru a pouze jej uložit v paměti. )
(Dalším přístupem by bylo nechat uživatele zadat heslo a použít ho k zašifrování/dešifrování sloupce s náhodným klíčem, ale nejsem si jistý, zda by to zvýšilo nebo snížilo zabezpečení ) - Každý dokument, který je třeba zašifrovat, je zašifrován náhodným klíčem pro daného uživatele a poté uložen na disk.
- Dokumenty jsou v souborovém systému uloženy s minimálními oprávněními.
Výhody tohoto přístupu jsou:
1. Náhodný klíč je v databázi zašifrován. Takže stále máte přidané zabezpečení databázového serveru v kombinaci se šifrovaným sloupcem.2. Dokumenty jsou uloženy s různými klíči, pokud se útočníkovi zmocní klíče, je kompromitována pouze část dokumentů.
Nicméně:
Pokud se útočníkovi zmocní hlavní heslo a má přístup pro čtení k uživatelské tabulce, celý systém je znovu rozbitý.