Ein guter Weg, um Datenbankfelder zu verschlüsseln?

Ich wurde gebeten, verschiedene db Felder innerhalb der db zu verschlüsseln .

Problem ist, dass diese Felder nach dem Lesen entschlüsselt werden müssen.


Ich verwende Django und SQL Server 2005 .

Irgendwelche guten Ideen?

4 Solutions collect form web for “Ein guter Weg, um Datenbankfelder zu verschlüsseln?”

Ja. Sag, wer dir gesagt hat, dass du echt kommst. Macht keinen / wenig Sinn. Wenn es um die gespeicherten Werte geht, kann die Enterprise Edition 2008 verschlüsselte DB-Dateien speichern.

Andernfalls, wenn Sie wirklich brauchen (mit allen Nachteilen) einfach verschlüsseln und speichern sie als Byte-Felder.

Siehe: Symmetrische Verschlüsselung in einer SQL Server 2005-Datenbank verwenden

Ich hatte das gleiche Problem und schuf die folgende Lösung: http://djangosnippets.org/snippets/2489/

Ich habe zufällig M2Crypto als Chiffre-Engine verwendet, aber das kann bei Bedarf ausgetauscht werden.

Wie TomTom bemerkt, macht dies einfach die Stange für einen Angreifer, anstatt feindliche Entschlüsselung unmöglich zu machen – neben dem Zugriff auf Ihre Datenbank müssen sie nun auch überall zugreifen, wo Sie die Passphrase speichern, die in die Schlüsselableitungsfunktion einfließt. Durch das Teilen des Schlüssels aus den Daten, die es auf diese Weise schützt, hat man zumindest jetzt die Möglichkeit, diesen Schlüssel (zB mit einem Key Management Server) weiter zu sichern, um die Bar noch höher zu erhöhen. Verteidigung in der Tiefe ist eine gute Strategie, aber Sie müssen auch entscheiden, was konstituiert Overkill für eine gegebene Anwendung.

Es ist auch eine schreckliche Idee, jedes Feld zu verschlüsseln, das für Such- oder Sortierzwecke nützlich sein könnte (ich verwende nur diesen Trick, um OAuth-Anmeldeinformationen für einen Webdienst zu speichern, der keine korrekten Token-OAuth-Verbindungen unterstützt).

Wenn du Dinge wie Passwörter speicherst, kannst du das machen:

  1. Speichern Sie die Passwörter der Benutzer als SHA256 Hashes
  2. Bekomme das Passwort des Benutzers
  3. hat geschlagen
  4. Listenpunkt

Überprüfen Sie es gegen das gespeicherte Passwort

Sie können einen SHA-256-Hash in Python erstellen, indem Sie das hashlib Modul verwenden.

Hoffe das hilft

  • Django, python und link verschlüsselung
  • Entschlüsseln einer Datei in einen Stream und Lesen des Streams in Pandas (hdf oder stata)
  • Python oder LibreOffice Save xlsx Datei mit Passwort verschlüsselt
  • Verschlüsseln von Passwörtern auf POST Django
  • Verschlüsseln einer Datei mit RSA in Python
  • Verwenden Sie RSA, um in JavaScript zu verschlüsseln und in Python3 zu entschlüsseln
  • Verschlüsselte und sichere Docker-Container
  • AES-Verschlüsselung in Node.js, um die erwartete Entschlüsselung in Python zu erfüllen
  • Python-Code, der RSA verschlüsselte Datei in Chunks von 64 Bit unter Verwendung eines privaten Exponenten und Moduls entschlüsselt
  • Entschlüsseln von Strings in Python, die mit MCRYPT_RIJNDAEL_256 in PHP verschlüsselt wurden
  • Verschlüsselung / UnEncrypt Python Scripts in C
  • Python ist die beste Programmiersprache der Welt.