Was hat Access mit AC/DC zu tun?

Letzte Änderung am 7. Juli 2021 by Christoph Jüngling

Als kleine Ergänzung zu dem Artikel von letzter Woche über Code-Signing möchte ich heute das Verfahren erwähnen, das Microsoft in Access dafür vorgesehen hat. Es bewirkt im Grunde das gleiche wie schon zuvor beschrieben, nur eben mit Bordmitteln.

Ziel

Ziel ist nach wie vor, dem Anwender eine Access-Applikation möglichst sicher zur Verfügung zu stellen. Da im Internet jeder behaupten kann, Christoph Jüngling zu heißen, ist die reine Autorenangabe wenig verlässlich. Das digitale Zertifikat kann dabei helfen, sich über den Herausgeber einer Applikation sicher zu sein.

Sonderlösung in Access

Wie bereits in dem Artikel über Makroviren ausführlich beschrieben, funktioniert die ansonsten Office-weit etablierte Methode, den VBA-Code zu signieren (im VBA-Editor auf Extras/Digitale Signatur klicken, Zertifikat auswählen und speichern) in Access leider nicht. Statt dessen wurde hier ein Mini-Setup eingebaut. Das ist zwar nicht so komfortabel und vor allem flexibel anpassbar wie eine eigenständige Setup-Applikation, aber es erfüllt seinen Zweck.

Allerdings ist der Weg dorthin inzwischen (zumindest unter Access 2019) etwas anders als noch in der Message-Box des VB-Editors beschrieben. Über das DATEI-Menü (“Backstage-Bereich”) geht man auf “Speichern unter”, und dort findet sich alles weitere:

Anwendung des Assistenten zum Packen und Signieren

Anwendung des Access-Assistenten zum Packen und Signieren

Der letzte Schritt ist dann nur noch, das Verzeichnis und den Dateinamen festzulegen, unter dem das Paket gespeichert werden soll. Die Erweiterung dafür lautet ACCDC, und nur diese Datei muss dem Anwender geschickt werden. Ich vermute, ACCDC bedeutet “Access delivery container”, sicher bin ich mir nicht. Aber immerhin hat es mich zu dem Titel dieses Artikels inspiriert :-)

Access-Datei-LogosDie beiden Logos der Datenbank und des Pakets ähneln sich zwar, unterscheiden sich aber auch, was darauf hindeutet, dass der neue Dateityp in Windows bereits bekannt ist. Daher genügt auch ein Doppelklick auf das Icon mit dem Orden, um Access zu starten, das dann die Installation durchführt. “Installation” ist hier allerdings etwas hochgegriffen, denn es wird lediglich die .accdb-Datei ausgepackt. Wenn der Benutzer ein Icon zum Starten braucht, muss er sich das selbst erzeugen.

Installation

Der Installationsvorgang warnt unter Umständen zunächst vor einem potentiellen Sicherheitsrisiko, erlaubt aber auch hier, die Details der digitalen Signatur in Augenschein zu nehmen. Wenn es akzeptabel ist, kann per “Öffnen” die Installation fortgesetzt werden.

Statt dessen kann man auch per Schaltfläche gleich dem “gesamten Inhalt des Herausgebers vertrauen”. Dies führt dazu, dass das Zertifikat des Herausgebers in den Container für “Vertrauenswürdige Herausgeber” importiert wird. Spätere Installationen vom gleichen Autor brauchen dann nicht mehr bestätigt zu werden.

Über das Startmenü “Benutzerzertifikate verwalten” gelangt man übrigens zu dem Zertifikatsmanager. Dort kann das Zertifikat aus dem genannten Container jederzeit wieder herausgelöscht werden. Das ändert zwar nichts an der erfolgten Installation, führt aber in der Zukunft wieder zu dem Warnungsfenster.

Dies alles geht natürlich auch mit einer .accde-Datei. Dazu wird aus dem Speichern-unter-Dialog im ersten Schritt “ACCDE erstellen” ausgewählt und mit dem “Speichern unter”-Button bestätigt. Danach öffnet man diese .accde und geht die Schritte wie oben beschrieben durch.

Der Haken an der Sache

Der einzige Haken an der Sache ist ebenso wie im vorherigen Artikel, dass die digitale Signatur nur für das Setup gilt. In der installierten .accdb/e-Datei ist nichts mehr davon zu sehen. Das ist sehr bedauerlich, denn auf den Vorteil der anderen Office-Applikationen, den Makrovirusschutz autorenspezifisch zu konfigurieren, muss man leider verzichten.

Interessanterweise existieren die “Makroeinstellungen” im Trust-Center (DATEI/Optionen/Trust-Center/Einstellungen für das Trust-Center/Makroeinstellungen) nach wie vor. Man kann hier durchaus die Auswahl “Alle Makros außer digital signierten deaktivieren” auswählen, was dann aber dazu führt, dass kein VBA-Makro aus Access-Datenbanken mehr ausgeführt wird. Denn wie gesagt, die digitale Signatur wird im VBA-Bereich leider nicht gespeichert.

Somit bleibt für Access nur die Auswahl “Alle Makros aktivieren”. Der dort enthaltene Hinweis nicht empfohlen, weil potenziell gefährlicher Code ausgeführt werden kann ist durchaus berechtigt. Er ist aber lachhaft, da es leider die einzige Einstellung ist, die bei den Makroeinstellungen funktioniert.

Lösung: Vertrauenswürdige Speicherorte

Die einzige Lösung scheint zu sein, “Vertrauenswürdige Speicherorte” entsprechend zu konfigurieren. Diese Einstellung hat offenbar Vorrang vor den Makroeinstellungen, so dass dort dann sogar “Alle Makros ohne Benachrichtigung deaktivieren” ausgewählt werden kann. Diese Einstellung wird ebenfalls benutzerspezifisch gespeichert. Zeitgleich mit der Erstinstallation unserer Applikation muss der Benutzer dies also selbst vornehmen. (Siehe dazu auch diesen Artikel.)

Nun werden Access-VBA-Makros nur noch in den Verzeichnissen ausgeführt, die der Benutzer für vertrauenswürdig eingestellt hat. In Verbindung mit der digitalen Signatur des Entwicklers ist das letztlich einigermaßen sicher. Aber eben auch nur “einigermaßen”.

Ähnliche Artikel:

Schreibe einen Kommentar

Deine Email-Adresse wird nicht veröffentlicht.

acht − sieben =