Überprüfen Sie die Codesignatur eines Paketinstallationsprogramms

Wenn Sie unter macOS eine aus dem Internet heruntergeladene App öffnen, überprüft Gatekeeper automatisch die Code-Signatur und warnt Sie im Falle eines Problems und blockiert die App. Soweit ich weiß, geschieht dies nur für Anwendungen (Erweiterung .app) und Gatekeeper nicht für Paketinstallationsprogramme (Erweiterung .pkg).

Ich beschloss, ein Experiment zu machen, um das zu überprüfen. Ich habe ein Paketinstallationsprogramm ( 1Password-7.8.pkg) mit einer gültigen Signatur verwendet und die Signatur vollständig entfernt. Im Wesentlichen habe ich Folgendes getan:

  1. pkgutil --expand 1Password-7.8.pkg Unsigned.unpkg
  2. pkgutil --flatten Unsigned.unpkg Unsigned.pkg
  3. pkgutil --check-signature Unsigned.pkg

Die Ausgabe des 3-Schrittes ist:

Package "Unsigned.pkg":
   Status: no signature

Dann doppelklickte ich auf Unsigned.pkgund konnte die Installation ohne Warnung oder Blockierung durch den Gatekeeper durchführen. Dieses Experiment beweist, dass Gatekeeper die Codesignatur eines Paketinstallationsprogramms (Erweiterung .pkg) nicht automatisch überprüft, habe ich Recht?

Wenn die obige Annahme aktuell ist, führt sie zur zweiten Frage. Wie überprüfe ich die Signatur eines Paketinstallationsprogramms manuell, bevor ich es ausführe?

Apple hat einen großartigen Artikel darüber, wie man die Signatur eines Paketinstallationsprogramms überprüft: https://support.apple.com/en-us/HT202369 : Sie müssen einfach das Installationsprogramm öffnen und auf das Vorhängeschloss in der oberen rechten Ecke klicken . Das funktioniert in den meisten Fällen reibungslos. Wenn jedoch ein Installationsprogramm das Vorinstallationsskript enthält, sehen Sie beim Öffnen des Installationsprogramms ein Popup mit dem Text „Dieses Paket führt ein Programm aus, um festzustellen, ob die Software installiert werden kann.“ das Popup sieht so aus: Geben Sie hier die Bildbeschreibung einIn diesem Fall ist das Vorhängeschloss ausgegraut und Sie können es erst anklicken, wenn Sie auf „Zulassen“ geklickt haben. Das Problem ist, wenn Sie auf "Zulassen" klicken, wird das Vorinstallationsskript ausgeführt und es bedeutet, dass Sie eine Art Skript ausführen, bevor Sie seine Authentizität überprüfen. Normalerweise,Das Skript prüft nur die im Popup-Titel angegebenen Anforderungen und Kompatibilität. Aber möglicherweise kann es beliebige Dinge tun, z. B. den Zoom-Installer-Fall: https://twitter.com/c1truz_/status/1244737672930824193

Gibt es also eine Option, die Code-Signatur eines Paketinstallationsprogramms über die GUI zu überprüfen, bevor es ausgeführt wird, oder Apple hat diesen Fall einfach verpasst und ich muss eine Feature-Anfrage an sie senden?

Natürlich können Sie die Signatur immer wie folgt vom Terminal aus überprüfen: `pkgutil --check-signature, aber das Ausführen dieses Befehls für einen aus dem Internet heruntergeladenen Paketinstaller scheint nicht richtig zu sein, und es sollte einen nativen und bequemeren Weg geben TU das.

Danke!

Antworten (1)

Es gibt derzeit keine Möglichkeit, die Signatur mit Installer.app zu überprüfen, bevor das Preflight-Skript akzeptiert wird. Dies ist ein langjähriges Versehen der Apple-Ingenieure.

Bitte geben Sie Feedback oder, wenn Sie ein Entwickler sind, melden Sie dieses Problem offiziell an Apple.