sql >> Database >  >> RDS >> PostgreSQL

Versleutelde gegevens opslaan in Postgres

De beste manier is om de cryptografie op de client of applicatieserver te doen, zodat de database geen idee heeft wat de sleutels zijn en de gegevens niet kan decoderen. Als de client / appserver op een andere host staat, des te beter.

Als uw database de gegevens voor u versleutelt en ontsleutelt, is het kwetsbaar dat de sleutels samen met de database worden gestolen.

Als u de crypto-functies in de database van pgcrypto gebruikt, kunt u de toepassing de sleutel samen met de gegevens laten verzenden, wat op zijn minst enigszins nuttig is. Het risico bestaat nog steeds dat de sleutels in de logboeken worden weergegeven als een behulpzame systeembeheerder agressieve logboekregistratie van verklaringen of automatische plandumping inschakelt, en als de sleutels uiteindelijk naar de databasemachine gaan, zijn ze kwetsbaarder dan wanneer ze dat niet doen . Een aanvaller die de databasecomputer overneemt, kan ook de loginstellingen wijzigen, de postgresql-binaire bestanden vervangen of verkeer opsnuiven om op deze manier sleutels en gegevens vast te leggen.

Als de appserver en db zich op dezelfde machine bevinden en door dezelfde rol(len) worden beheerd, heeft het minder zin om ze te isoleren, en het kan verstandig zijn om gewoon pgcrypto te gebruiken.

Hoe dan ook, vergeet niet te zouten!




  1. NANVL() Functie in Oracle

  2. Oracle:Wat doet `(+)` in een WHERE-clausule?

  3. Problemen met createdb in postgres

  4. De geheimen van Domino's, of een Domino-spelgegevensmodel