Wie generieren Verschlüsselungsschlüssel zur Verwendung mit attr_encrypted

Ich überlege mir, mit dem attr_encrypted Juwel für Feld-level-Verschlüsselung in eine Rails-app. Wie erstelle ich einen Verschlüsselungs-Schlüssel für die Verwendung mit diesem gem?

Update:

In der Dokumentation für Encryptor, die die zugrunde liegende Verschlüsselung verwendet attr_encrypted, besagt Folgendes (unter Verwendung | Basic):

secret_key = Digest::SHA256.hexdigest('a secret key')
encrypted_value = Encryptor.encrypt('some string to encrypt', :key => secret_key)

Ich würde vermuten, dass a secret key kann jede beliebige Länge beliebige Zeichenfolge und der Aufruf hexdigest berechnen eine entsprechende Zeichenfolge fester Länge aus. Ist dies der empfohlene Weg, es zu tun?

  • Ich versuchte zu Antworten, aber habe eine Frage: wer (oder welche Art von Szenario) sind Sie versuchen zu halten, die Klartext-Daten geheim?
  • Bestimmte Felder in der Datenbank verschlüsselt, rest vor allem für off-site-backup-Zwecke (wo die off-site-backup-system keinen Zugriff auf den Verschlüsselungsschlüssel).
  • In diesem Fall würde ich denke, die off-site-system hat Zugriff auf die Daten, aber nicht die Konfiguration oder source-code? Ich würde wahrscheinlich immer noch err Richtung Konfiguration zu speichern, zumindest einen Teil der Taste, und verwenden Sie die gem Möglichkeit zum aufrufen einer Methode zum abrufen des korrekten Schlüssel aus, der als eine Art der Ernährung, die in. Aber wenn der source-code gesichert ist, unabhängig von der backup-Daten, hard-Kodierung verschlüsseln Tasten pro Feld ist praktikabel, auch.
  • Das ist richtig, Neil. Wie bereits in meinem Kommentar auf deine Antwort, die sicherungen und source-code wird getrennt von der Konfiguration, die enthält die Verschlüsselungs-Schlüssel. Non-Produktion-Implementierungen (zum testen, etc.) haben keinen Zugriff auf die Produktions-Konfiguration.
InformationsquelleAutor Richard Cook | 2013-07-01
Schreibe einen Kommentar