2010-09-03 9 views
12

Ich werde einige sensible Informationen (SSN, Bankkonten usw.) speichern, so dass sie offensichtlich verschlüsselt werden müssen. Welche Strategien empfehlen Sie?Strategien für die Verschlüsselung mit Django + Postgres?

Sollte ich die gesamte Verschlüsselung/Entschlüsselung in der Web-App selbst tun? Sollte ich etwas wie pgcrypto verwenden und die Konvertierungen auf der DB-Seite vornehmen lassen? Etwas ganz anderes?

Auch wenn Sie denken, ich sollte Verschlüsselung auf der Web-App-Seite tun, welche Python-Bibliotheken würden Sie empfehlen?

Antwort

1

Wovor schützen Sie sich? Wenn Angreifer Zugriff auf Ihr DB/Dateisystem erhalten würden, würde er herausfinden, wie Sie Daten entschlüsseln & Schlüssel. Es ist keine leichte Aufgabe, den Schlüssel zu verstecken (und wird selten in "normalen" Anwendungen implementiert).

Ich würde mehr Zeit auf den Schutz des Servers verbringen und alle allgemeinen Sicherheitsprobleme beheben.

+0

Ich bin damit einverstanden, und ich plane, einen vollständig verwalteten Service zu nutzen, um meine Produktion Setup für genau diesen Grund zu laufen - ich weiß nur, genug über Linux-System-Administration zu wissen, wie wenig ich weiß :) Das heißt, ich möchte immer noch die Felder zu verschlüsseln. Ich sehe es als die gleiche Art von Aktivität wie die Türen zu Ihrem Haus zu verriegeln. Es ist immer noch ziemlich leicht einzubrechen, aber es fügt ein bisschen Abschreckung hinzu. –

+0

Dann sollten Sie alle Ihre Beschreibung & Schlüssel auf Webapp-Seite, so dass, wenn DB gestohlenen Angreifer nichts bekommt. Wenn Dateien gestohlen werden - auch nichts. Also Code im Code eingeben und alle Daten mit AES aus der Python-Standardbibliothek verschlüsseln. – BarsMonster

+0

Ich denke, Sie können Ihren Schlüssel auch an einem beliebigen Ort platzieren. Wenn Sie also den Stamm Ihrer Site blind kopieren, erhält der Angreifer den Schlüssel nicht. – BarsMonster

1

Ich bin damit einverstanden, dass zuerst müssen Sie Ihre allgemeine Sicherheitsmodell betrachten und welche Bedrohung Wege könnte die Gefahr sein, a la dieser Artikel:

https://security.stackexchange.com/questions/16939/is-it-generally-a-bad-idea-to-encrypt-database-fields

aber auch einen Blick auf diese für verschlüsselte Felder in Django:

verschlüsselten Felder: https://github.com/svetlyak40wt/django-fields

mehr verschlüsselte Felder:

https://github.com/defrex/django-encrypted-fields, https://github.com/django-extensions/django-extensions

Verwandte Themen