Ich habe mit Safari eine App aus dem Internet heruntergeladen. Bei der Ausführung benachrichtigt macOS, dass die App von einem nicht identifizierten Entwickler stammt.
Wie kann macOS diese Informationen ermitteln? Wo werden die Signaturmetadaten für eine App gespeichert?
Antworten:
Die Informationen werden in erweiterten Attributen gespeichert, wobei zusätzliche Informationen möglicherweise in eine Anwendung eingebettet sind.
Erweiterte Attribute
Diese Quarantäneinformationen werden als erweitertes Attribut gespeichert . Verwenden Sie das
xattr
Tool, um die Attribute anzuzeigen, die einer Datei oder Anwendung zugeordnet sind.Das Attribut, das diese Nachricht verursacht, ist
com.apple.quarantine
.Siehe Wie entferne ich die "erweiterten Attribute" einer Datei in Mac OS X? und App kann nicht geöffnet werden, da sie von einem unbekannten Entwickler stammt, um weitere Informationen zu erhalten.
Gatekeeper- und Codesignaturen
Das erweiterte Attribut wird von Gatekeeper unter macOS verwendet und wird unter Festlegen (Wiederherstellen) des Attributs com.apple.quarantine erläutert.
Eine optionale digitale Signatur, die in eine Anwendung eingebettet ist, wird verwendet, um den Entwickler der Anwendung zu bestimmen. Wenn keine Signatur gefunden wird, präsentiert macOS die Anwendung als von einem nicht identifizierten Entwickler stammend.
quelle
Tatsächlich ist die Meldung "Nicht identifizierter Entwickler ..." das Ergebnis einer Kombination beider Aufgaben: Überprüfen des Attributs com.apple.quarantine und der Codesignaturressourcen (in * / Contents / _CodeSignature / CodeResources), während der tatsächliche Signaturstatus lautet ausschließlich bestimmt durch * / CodeResources .
Sie können das erweiterte Attribut erhalten, indem Sie Folgendes eingeben:
Auf die Codesignaturinformationen wird zugegriffen, indem Folgendes eingegeben wird:
Beispiel:
Der wichtigste Teil ist die Zertifikatskette (und die Vertrauenskette):
Hier sind drei verschiedene Behörden sichtbar:
Dies bedeutet, dass die App mit einem Entwicklerzertifikat signiert ist, das von Apples zwischengeschalteter Entwicklerbehörde veröffentlicht und signiert wurde. Dieses Zertifikat wird selbst von Apples Root-Zertifizierungsstelle veröffentlicht und signiert.
Diese Kette qualifiziert Google (oder genauer: das Team / die Einheit Google, Inc. (EQHXZ8M8AV)) als von Apple identifizierten Entwickler.
Sie können Apps auch selbst oder mit einem Codesign-Zertifikat einer anderen Zwischen- / Stammbehörde codieren, dies wird Gatekeeper jedoch nicht überwinden.
Jetzt sind vier Permutationen möglich, vorausgesetzt, Gatekeeper ist aktiviert (ohne Selbstsignierung / Aliensignatur):
In den ersten beiden Fällen wird die App einfach gestartet. Im dritten Fall erhalten Sie die Meldung " Nicht identifizierter Entwickler" . Sie können dies beheben, indem Sie das erweiterte Attribut
xattr -d com.apple.quarantine *
(= Fall 1) entfernen . Im vierten Fall erhalten Sie die Meldung "* wurde aus dem Internet heruntergeladen. Möchten Sie sie wirklich öffnen?"quelle
Die Signatur wird in der Anwendungsbinärdatei selbst gespeichert, mit einigen zusätzlichen Daten im Anwendungspaket (in der Datei
Contents/_CodeSignature/CodeResources
).Mit dem Befehlszeilenprogramm können Sie einige Informationen zur Signatur abrufen
codesign
- zum Beispiel:quelle