MacOS Logs: /var/db/DetachedSignatures - No such file or directory

Aktuell habe ich leider erheblichen Ärger mit meiner Mojave Installation und kämpfe mit möglichen Fehlerquellen und Logeinträgen.

Dabei bin ich u.a. auf die folgende Fehlermeldung gestossen:

Um welche Fehler geht es?

Untrusted kexts are not allowed
Kext with invalid signature (-67062) denied: /Library/StagedExtensions/System/Library/Extensions/HuaweiDataCardDriver.kext/Contents/PlugIns/14E59974-99C3-4F32-9E41-2AA9634A7F8B.kext
Bundle (/System/Library/Extensions/HuaweiDataCardDriver.kext/Contents/PlugIns/HuaweiDataCardECMControl.kext) failed to validate, deleting: /Library/StagedExtensions/System/Library/Extensions/HuaweiDataCardDriver.kext/Contents/PlugIns/14E59974-99C3-4F32-9E41-2AA9634A7F8B.kext
Unable to stage kext (/System/Library/Extensions/HuaweiDataCardDriver.kext/Contents/PlugIns/HuaweiDataCardECMControl.kext) to secure location.
cannot open file at line 42270 of [95fbac39ba]
os_unix.c:42270: (2) open(/var/db/DetachedSignatures) - No such file or directory
cannot open file at line 42270 of [95fbac39ba]
os_unix.c:42270: (2) open(/var/db/DetachedSignatures) - No such file or directory

Die Datei /var/db/DetachedSignatures wird also offensichtlich versucht vom System zu laden, um unbekannte Software/Signaturen zu bestätigen. Meine Vermutung lautet, das in dieser Datei die Signaturen hinterlegt werden, welche vom Benutzer selber bestätigt wurden.

Reine Mutmaßung bis auf weiteres, denn ich konnte keine bessere Erläuterung finden…

open(/var/db/DetachedSignatures) - No such file or directory

Dieser Fehler scheint bei diversen Benutzern aufzutreten, allerdings in verschiedensten Situationen und oft im Zusammenhang mit Applikationen die man starten will.

Was hat es damit auf sich? Und wieso dokumentiert Apple sowas nicht, wenn das Internet mit der Meldung voll mit der Meldung ist:

os_unix.c:42270: (2) open(/var/db/DetachedSignatures) - No such file or directory

Nervig, das man sich durch dutzende Seiten quer lesen muss, bis man dann endlich einen Hinweise darauf findet.

Ruft man die ManPage für das binary codesign auf:

man codesign

Und sucht nach detached, dann findet man 2 interessante Hinweise:

 --detached-database
         When signing, specifies that a detached signature should be generated as with the --detached option, but that the resulting signature should be written into a system database, from where it is made automatically available whenever apparently
         unsigned code is validated on the system.
         Writing to this system database requires elevated process privileges that are not available to ordinary users.

und:

FILES
     /var/db/DetachedSignatures  System-wide database of detached code signatures for unsigned code. 

Es handelt sich also um eine SQLite Datenbank. Dieser Blogbeitrag erläutert grob den Inhalt der Datei.

Wieso die Datei /var/db/DetachedSignatures nicht per default existiert und wieso sie für unsignierte Kexts mehrfach versucht wird zu laden, tja dazu gibt es natürlich keine Hinweise. Und leider auch nicht dazu, wie man sie neu erzeugt. Ich vermute indem man eine Applikation signiert bzw. deren Nutzung bestätigt, sollte ich mehr dazu rausfinden werde ich es hier nachtragen.