Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: MySQL BLOB encryption

  Alt 25. Nov 2014, 21:48
Mal angenommen du würdest die Blobs auf dem Client mit AES256 verschlüsseln.
AES gibt es mit 128, 192 und 256 Bit - das entspricht einer Schlüssellänge von 8, 12 oder 16 Bytes.
Dann würde ich den Key für AES so berechnen: key := SHA256(password+tabellenname+primaryschluesselfeld);
Somit erhält jeder einzelne Blob einen eigenen Schlüssel.
Ein Angreifer könnte z.B. einen Blob aus einem best. Record kopieren und in einen anderen Record einfügen.
username blob
administratorethert8h88z5w45h8dfb8hsfdh....
guestjerwgw34t43guefguhw5gurefgsdfgsdf...
servicejieg4589gw485gsdufghuwreguherg...
Er weiß zwar nicht was sich hinter den Blobs verbirgt, aber wenn er den Blob vom adninistrator beim guest einfügt könnte das ja ganz interessant werden...
Das Ergebnis wäre allerdings Datenmüll weil dann der berechnete Schlüssel nicht passt.
Eine Änderung des Primärschlüssels darf deine Anwendung natürlich nicht vorsehen; sonst wären die Blobs nicht mehr zu entschlüsseln.
Anstelle des Primärschlüssels kann man auch andere eindeutige Felder in den Schlüssel einbringen.
fork me on Github

Geändert von sx2008 (25. Nov 2014 um 21:54 Uhr)
  Mit Zitat antworten Zitat