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.