Mittels Rijndael [1], den in MySQL eingebauten Kryptologie-Funktionen
„AES_ENCRYPT“ und „AES_DECRYPT“, lassen sich ohne viel Programmier-Kenntnis einzelne Datenbank-Felder wirksam verschlüsseln.
Datenbank-Schema:
CREATE TABLE `cryptosafe` ( `prn` int(12) NOT NULL AUTO_INCREMENT, `text` blob NOT NULL, PRIMARY KEY (`prn`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Insert-Statement
INSERT INTO cryptosafe VALUES (1, AES_ENCRYPT("test-text", "passwort"));
Update-Statement
UPDATE cryptosafe set text=AES_ENCRYPT("text-test", "passwort" ) where prn=1;
Select-Statement
SELECT prn, AES_DECRYPT(text, "passwort") from cryptosafe where prn=1;
Rijndael – AES-Algorithmus
Unter Rijndael versteht man einen symmetrischen Algorithmus mit einer flexiblen Blockgröße von 128, 192 bzw. 256 Bit. ( 128 Bit > 16 Byte )
Jeder Block wird in eine zweidimensionales Array-Feld mit vier Zeilen geschrieben, dessen Inhalte ein Byte groß sind.
Die Anzahl der Spalten variiert von 4 (128 Bit) bis 8 (256 Bit). Jeder Block wird nun abfolgend definierten Transformationen unterzogen.
Anstatt jeden Block einmal mit dem Key zu Chiffrieren, wendet AES unterschiedliche Teile eines Schlüssels nacheinander auf den Klartext-Bereich an. Die Anzahl dieser Runden (R) variiert und ist von Schlüssellänge (SL) und Blockgröße (BG) abhängig
R | BG = 128 | BG = 256 |
SL = 128 | 10 | 14 |
SL = 256 | 14 | 14 |
Je nach Blocklänge BG und Schlüssellänge SL wird die Anzahl der Runden bestimmt (10 oder 14)
… und kurz noch was zu Passworten
Die Sicherheit der Verschlüsselung ist direkt von Ihrem Passwort [2] abhängig.
Je schwieriger Ihr Passwort aufgebaut ist, desto besser sind Ihre Daten verschlüsselt. Sie sollten immer ein Passwort wählen, das zufällig gewählte (Gross und Klein)-Buchstaben, Zahlen und Sonderzeichen enthält.
Einfache Passworte können innerhalb weniger Minuten geknackt werden ( z.b. mit John [3] ).
[1] http://de.wikipedia.org/wiki/Advanced_Encryption_Standard
[2] http://de.wikipedia.org/wiki/Passwort
[3] http://de.wikipedia.org/wiki/John_the_Ripper