Authentifikatoren

Mit einem Authentifikator kann verhindert werden, dass ganze Werte in verschlüsselten Feldern ersetzt werden. Betrachten Sie dazu beispielsweise die folgende Tabelle mit Daten zu Gehältern.

Employee_ID

Standard_Title

Base_Pay

345

Kopierraumhilfe

Fskj%7^edhn00

697

Leiter der Finanzabteilung

M0x8900f56543

694

EDV-Leiter

Cvc97824%^34f

Ohne die Verschlüsselung aufzubrechen, kann ein Hacker wichtige Informationen aus dem Kontext folgern, in dem der verschlüsselte Text gespeichert wird. Da ein Leiter der Finanzabteilung besser als eine Kopierraumhilfe verdient, folgt daraus, dass der als M0x8900f56543 verschlüsselte Wert größer als der als Fskj%7^edhn00 verschlüsselte Wert sein muss. Wenn dies der Fall ist, kann jeder beliebige Benutzer mit der ALTER-Berechtigung für die Tabelle der Kopierraumhilfe eine Gehaltserhöhung verschaffen, indem die Daten in seinem Base_Pay-Feld durch eine Kopie der im Base_Pay-Feld gespeicherten Daten des Leiters der Finanzabteilung ersetzt werden. Dieser ganzwertige Ersetzungsangriff umgeht die Verschlüsselung insgesamt. Ganzwertige Ersetzungsangriffe können durch Hinzufügen von Kontextinformationen zum Klartext verhindert werden, bevor dieser verschlüsselt wird. Diese Kontextinformationen werden zum Überprüfen verwendet, ob die Klartextdaten verschoben wurden.

Wenn ein authenticator-Parameter beim Verschlüsseln der Daten angegeben wird, wird der gleiche Authentifikator zum Entschlüsseln der Daten benötigt. Zur Verschlüsselungszeit wird ein Hash des Authentifikators zusammen mit dem Klartext verschlüsselt. Zur Entschlüsselungszeit muss der gleiche Authentifikator an die Entschlüsselungsfunktion übergeben werden. Stimmen die beiden nicht überein, erzeugt die Entschlüsselung einen Fehler und zeigt so an, dass der Wert seit seiner Verschlüsselung verschoben wurde. Sie sollten den Primärschlüssel der Tabelle, in der das Ergebnis gespeichert wird, als Authentifikator verwenden.