bitboy
Goto Top

Digitale Signaturen - Office Macros

Hallo zusammen,

Nachdem ich mir gestern ein Zertifikat zum Codesignieren gebastelt hab möchte ich heute mal testen wie das ganze funktioniert.
Falls jemand Erfahrungen damit immer her damit. Ansonsten dient der Beitrag dazu mal meine zu teilen.

Das Zertifikat zum Code signieren ist von der Stammzertifizierungsstelle signiert und diese natürlich als vertrauenswürdige Stammzertifizierungsstelle konfiguriert.
Das Code-Zertifikat selbst ist weder unter Vertrauenswürdige Herausgeber noch Vertrauenswürdige Stammzertifizierungsstellen vorhanden.
Damit der Code signiert werden kann muss es nur unter Benutzer -> Eigene Zertifikate vorhanden sein.

Zum Test verwende ich ein kleines Excel Macro das beim Start ausgeführt wird:
Private Sub Workbook_Open()
  MsgBox ("Hello World!")  
 Cells(1, 1).Value = "Hello World!"  
End Sub

Im Excel ist die Option Trustcenter -> Makroeinstellungen -> Alle Makos, außer digital signierten, deaktivieren.

Beobachtung 1:
Erstellt wird eine xlsm mit diesem Makro das erst keine Signatur hat.
Beim Öffnen wird es erwartungsgemäß nicht ausgeführt.
Das Macro wird nun signiert (Im VBA Editor Extras -> Digitake Signaturen)
Das Dokument gespeichert und neu geöffnet, ein Hinweis erscheint ob man Inhalte aktivieren möchte. Hinweis wird bestätigt. Macro wird ausgeführt. OK
Die Digitale Signatur wird nun wieder entfernt.
Das Dokument gespeichert und neu geöffnet. Das Macro wird ausgeführt... <- unerwartet
Macro wird verändert und immer noch ohne Signatur neu gespeichert. Beim öffnen der Datei wirds ausgeführt. <- unerwartet
Der Dateiname wird geändert und das Dokument geöffnet. Das Makro wird NICHT ausgeführt.
Der Dateiname wird zurückgeändert und geöffnet. Das Makro wird wieder ausgeführt <- ???

Für mich sieht es grade so aus als ob ein einmaliges "Inhalt zulassen" die Option "Makros nur mit Signatur ausführen" völlig obsolet macht.
Kann das jemand nachvollziehen oder teste ich hier grade Grütze? Ist irgendwo ein Denkfehler?

Content-ID: 461757

Url: https://administrator.de/contentid/461757

Ausgedruckt am: 08.11.2024 um 21:11 Uhr

Pjordorf
Pjordorf 13.06.2019 um 12:12:29 Uhr
Goto Top
Hallo,

Zitat von @Bitboy:
Erstellt wird eine xlsm mit diesem Makro das erst keine Signatur hat.
Beim Öffnen wird es erwartungsgemäß nicht ausgeführt.
Works as designed

Das Macro wird nun signiert (Im VBA Editor Extras -> Digitake Signaturen)
Das Dokument gespeichert und neu geöffnet, ein Hinweis erscheint ob man Inhalte aktivieren möchte. Hinweis wird bestätigt. Macro wird ausgeführt. OK
Works as desigmed

Die Digitale Signatur wird nun wieder entfernt.
Das Dokument gespeichert und neu geöffnet. Das Macro wird ausgeführt... <- unerwartet
Du hast dein Word bzw. Excel aber nicht komplett ausm RAM entfernt, oder? Was ist wenn du mal neustartest und auch mal ab- und anmeldest?
Vielleicht haben andere Office Versionen ja ein anderes Verhalten?

Gruß,
Peter
Bitboy
Bitboy 13.06.2019 um 12:53:40 Uhr
Goto Top
Die ersten beiden Punkte arbeiten wie erwartet. Völlig richtig.

Ich habe (natürlich) nicht zwischendurch neu gestartet. Kann ich aber noch testen.
Dafür hab ich etwas anderes versucht:

Die Datei ist signiert und Inhalte erlauben wurde angeklickt. Dadurch wird die Datei eine Vertrauenswürdige Datei.
https://support.office.com/de-de/article/vertrauensw%C3%BCrdige-dokument ...
[Komischerweise bekommt man das Zertifikat vorab gar nicht angezeigt. Weder in der Meldung noch in den Dateieigenschaften, man sieht es erst wenn man das Menü im VBA Editor aufmacht.]

Ich hab an einem anderen Speicherort eine Datei mit dem gleichen Namen erstellt, ein anderes Makro dort eingegeben (nur mehr MSGBoxen) und NICHT signiert.
Mit dieser Datei hab ich nun die erste ersetzt.
Beim Öffnen wirds ausgeführt, obwohl das Makro nie signiert war und auch völlig anderen Code enthält <- WTF?
Bitboy
Bitboy 18.06.2019 um 17:48:48 Uhr
Goto Top
Ich hab mich nochmal damit befasst weil mir das Verhalten unerwartet vorkam, scheint aber tatsächlich so gewollt zu sein.

Im Office selbst, steht, das vertrauenswürdige Dokumente immer und ohne jede Warnung ausgeführt werden, selbst wenn sich der Inhalt der Macros geändert hat.
Im Klartext bedeutet das, dass die Option zur Signaturprüfung dadurch ausgehebelt wird.
Es scheint auch nur der Pfad relevant zu sein um zu definieren was als vertrauenswürdig gilt und was nicht. Ein einfaches umbennen macht aus einer vertrauenswürdigen Datei eine nicht-vertrauenswürdige.
Die Pfade werden da gespeichert:HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Excel\Security\Trusted Documents\TrustRecords
Es sieht zwar so aus als würde ein Hash oder ähnliches mitgespeichert, aber dann würde eine Codeänderung ja eine erneute Bestätigung erfordern. Tuts aber nicht.

Es bleibt also nur die Option Vertrauenswürdige Dokumente zu deaktivieren. Ob das Verhalten auch für die vertrauenswürdigen Orte so ist hab ich nicht ausprobiert.