window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Tabelleninhalte verschlüsseln

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Der Schutz sensibler Daten in Access-Datenbanken ist keine triviale Angelegenheit. Die Tabellen liegen offen in nur einer Datei, die problemlos auf einen USB-Stick kopiert werden kann, um deren Inhalte anderenorts in aller Ruhe zu inspizieren. Frühere Access-Versionen bis Office 2003 erlaubten die Absicherung über ein Berechtigungsmodell, das später leider ersatzlos gestrichen wurde. Wer auf Nummer Sicher gehen will, der sollte sich Gedanken über eine Datenverschlüsselung machen.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1701_Cryto.accdb.

Strings verschlüsseln per VBA

Zu den Daten, die in einer Tabelle nicht unbedingt auf den ersten Blick einsehbar sein müssen, gehören vor allem Texte. In einer Adressenliste etwa beträfe dies die Namensfelder, die Telefon- und E-Mail-Daten, sowie andere Adressfelder. Verschlüsselt man diese, so kann ein Unbefugter mit ihnen nicht allzu viel anfangen.

In der Beispieldatenbank bekommen wir es wieder einmal mit der bekannten Kundentabelle zu tun, deren Datenmodell Bild 1 wiedergibt. Neben den Nachschlagetabellen zu Anreden, Orten und Ländern enthält die Haupttabelle tblKunden die üblichen Adressfelder. Wir machen uns zur Aufgabe, die folgenden Felder zu verschlüsseln: Nachname, Vorname, Strasse, Telefon und Email. Das sollte ausreichen, um die Datensätze so zu verunstalten, dass aus ihnen keine Rückschlüsse auf den ursprünglichen Inhalt mehr möglich sind.

Das Datenmodell der Beispieldatenbank zu Kundenadressen

Bild 1: Das Datenmodell der Beispieldatenbank zu Kundenadressen

Der Ausgangszustand zeigt sich in Bild 2. Hier sind alle Adressdaten in konventioneller Weise abgespeichert. Jeder kann sie einsehen und gegebenenfalls stehlen. Dazu benötigt man noch nicht einmal eine Office-Installation, denn die Datenzugriffsbibliotheken DAO und ADO bringt Windows bereits von Haus aus mit. Selbst unter Linux/Android und etwa das Zugriffssystem JDBC käme man an die Tabelle heran. Das wäre zwar auch nach Verschlüsselung noch der Fall, doch dann nützt der Einblick wenig, wie Bild 3 beweist. Hier sind die erwähnten Textfelder über eine Aktualisierungsabfrage einer RC4-Verschlüsselung unterzogen worden, auf die wir noch zu sprechen kommen.

Dieselben Datensätze der verschlüsselten Kundentabelle in der Datenblattansicht

Bild 2: Dieselben Datensätze der verschlüsselten Kundentabelle in der Datenblattansicht

Einige Datensätze der normalen Kundentabelle in der Datenblattansicht

Bild 3: Einige Datensätze der normalen Kundentabelle in der Datenblattansicht

Verschlüsselungsalgorithmen

Access und VBA selbst bringen direkt keine Verschlüsselungsmethoden mit. Sie sind deshalb auf eigene VBA-Implementierungen in Form von Funktionen angewiesen.

Listing 1 zeigt eine extrem einfache Methode, die sich die VBA-Funktion StrReverse zunutze macht. Sie kehrt einen übergebenen String schlicht um:

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar