Ad-hoc-Codesignatur
Verwenden Sie für Anwendungen und Binärdateien von Drittanbietern, die Sie selbst kompilieren und für die eine Codesignatur erforderlich ist, eine Ad-hoc-Codesignatur .
- Ich gehe davon aus, dass die Anwendung nicht ohne Signatur ausgeführt wird.
- Ich gehe davon aus, dass der Antrag nicht verteilt wird.
- Ich gehe davon aus, dass es Ihnen egal ist, ob die Identität der Unterschrift gültig ist.
Eine Ad-hoc-Signatur bietet keine zuverlässigen Sicherheitsvorteile. Es kann verwendet werden, um festzustellen, ob die Anwendung geändert wurde, und um Sicherheitsbeschränkungen wie Berechtigungen auf eine Anwendung anzuwenden.
Eine Ad-hoc-Signatur wird dagegen validiert, codesign
jedoch nicht spctl
. Dies kann abhängig von der zu signierenden Binärdatei von Bedeutung sein oder auch nicht. Für Anwendungen und ausführbare Dateien ist dies unwahrscheinlich, da sie spctl
nicht auf lokal erstellten Binärdateien ausgeführt werden.
Warum Code Sign?
Zur verfeinerten Frage:
Wie ich mit nicht signiertem Quellcode umgehen soll, den ich selbst kompiliere, da ich nicht erwarte, dass Mitwirkende immer in der Lage sind oder sich daran erinnern, ihren Code zu signieren, insbesondere wenn es um winzige Beiträge zu Open Source-Projekten mit vielen Mitwirkenden geht.
Für die meisten selbst kompilierten Anwendungen ist keine Codesignatur erforderlich. Dies setzt voraus, dass Sie dem Code der Anwendung vertrauen. Unter macOS können Sie nicht vertrauenswürdige Anwendungen über den Finder öffnen. Weitere Informationen finden Sie unter Öffnen einer App von einem nicht identifizierten Entwickler durch Apple .
Wenn Sie dem Code oder den Entwicklern nicht vertrauen, kompilieren Sie die Anwendung nicht und führen Sie sie nicht aus.
Deine Verantwortung
Der Anbieter des Quellcodes hat keine Verantwortung oder Verpflichtung, vorgefertigte, mit Code signierte Binärdateien bereitzustellen. Alle Codesignaturen, die Sie selbst kompiliert haben, liegen in Ihrer Wahl und Verantwortung.
Apple verlangt, dass Einsendungen an ihre App Stores mit einem Code signiert werden.
Apple- Anforderungsentwickler außerhalb ihrer App Stores signieren ihren Code, dies ist jedoch noch nicht erforderlich.
In beiden Fällen werden nur die endgültigen Binärdateien signiert. Der ursprüngliche Quellcode und die Ressourcen sind nicht signiert.
Der Quellcode ist nicht signiert
Der Quellcode selbst kann für macOS nicht auf sinnvolle Weise signiert werden. Quelldateien und Code können wie jede andere Datei digital signiert werden. Dies hat jedoch keinen Einfluss darauf, wie die resultierende Anwendung oder Binärdatei von macOS behandelt wird.
Ad-hoc-Code Signieren einer Mac-Anwendung
Um eine Anwendung unter macOS mit einer Ad-hoc-Signatur zu codieren, setzen Sie das Identitätsflag -s
auf -
:
codesign --force -s - </path/to/application>
Alle anderen Regeln, Anforderungen und Permutationen des codesign
Befehls bleiben gleich.
Das Flag --force
wird hier verwendet, um vorhandene Signaturen zu überschreiben.
Möglicherweise müssen Sie --deep
dem codesign
Befehl das Flag hinzufügen , um Unterressourcen wie Frameworks und eingebettete Dienste zu signieren.
Das Signieren des Programms selbst ruiniert nicht den Zweck der Codesignatur. Der allgemeine Zweck der Codesignatur besteht darin, zu überprüfen, ob es sich bei dem Programm um eine unveränderte Kopie handelt, die ursprünglich von einer bestimmten Entität (Person oder Firma) erstellt wurde. Wenn Sie ein Programm selbst signieren, um es nur auf Ihrem Computer auszuführen, können Sie dem System ermöglichen, zu überprüfen, ob Sie tatsächlich die Binärdatei erstellt haben und ob sie nicht von anderen geändert wurde.
Der qualitative Unterschied zwischen dem Signieren der Anwendungsbinärdatei selbst und dem Zulassen von Apps von nicht identifizierten Entwicklern in GateKeeper besteht darin, dass Sie im ersten Fall die Ausführung einer einzelnen, spezifischen App zulassen. Im zweiten Fall öffnen Sie die Möglichkeit, dass Sie viele öffnen können verschiedene Apps, indem Sie mit der rechten Maustaste darauf klicken und Öffnen wählen. Das heißt, es ist restriktiver und daher etwas "sicherer", wenn Sie das spezifische Programm selbst signieren.
Die Verantwortung für die Unterzeichnung liegt ganz bei Ihnen. Der Open Source-Entwickler kann den Quellcode nicht signieren - es ist nur möglich, die kompilierten Binärdateien zu signieren. Wenn Sie die kompilierten Binärdateien selbst erstellen, müssen Sie sie signieren.
Sie können sich auf der Apple-Website für ein Entwicklerkonto anmelden, mit dem Sie ein Zertifikat erstellen können, das zum Signieren verwendet werden kann. Wenn Sie Entwickler sind und regelmäßig Binärdateien für Macs kompilieren, ist dies die bevorzugte Methode. Wenn dies eine einmalige Sache ist, die Sie wahrscheinlich nie wieder tun werden, ist es wahrscheinlich übertrieben, diesen Prozess zu durchlaufen. YMMV.
Andere Antworten auf Ihre Frage hier empfehlen, dass Sie Ad-hoc-Signierung für Ihre Binärdatei verwenden. Das wird nicht funktionieren. Sie müssen eine gültige Signatur generieren, damit die Binärdatei mit GateKeeper in der sichersten Einstellung ausgeführt wird.
quelle
Wenn Sie nicht der Entwickler sind, dann nein.
Kurz gesagt, die Codesignatur ist eine Methode, mit der Sie (der Entwickler) sagen, wer Sie sind und der Code hat sich seit Ihrer letzten Signierung nicht geändert.
Es klingt wie Ihre verwirrende Codesignatur (was Entwickler benötigen, um Apps im App Store zu veröffentlichen) und Gatekeeper (was Ihren Mac vor der Installation von Software von nicht identifizierten Entwicklern schützt).
Wenn Sie Ihrem Mac erlauben, Software sowohl aus dem App Store als auch von identifizierten Entwicklern zu installieren, wird das Popup weiterhin darauf hingewiesen, dass Software installiert wird
Und wenn es von einem unbekannten Entwickler stammt, erhalten Sie dasselbe Popup mit einem "Warnsymbol".
Sie können die Software weiterhin installieren. Dies ist nur ein Mechanismus, der die Benutzerinteraktion dazu zwingt, die Software tatsächlich zu installieren, und Ihnen eine Sicherheitsebene gegen selbst installierte Malware bietet.
quelle