Mit macOS Mojave hat Apple die Unterstützung für Hardened Runtime und Notary Service eingeführt. Diese beiden Dienste sollen die Anwendungssicherheit unter macOS verbessern. Kürzlich hat Apple erklärt :
„Ab macOS 10.14.5 müssen alle neuen oder aktualisierten Kernel-Erweiterungen und die gesamte Software von Entwicklern, die neu in der Verteilung mit Entwickler-ID sind, notariell beglaubigt werden, damit sie ausgeführt werden können. In einer zukünftigen Version von macOS ist standardmäßig eine Beglaubigung für alle Software erforderlich. “
Der heutige Tag wird Ihnen helfen, neue Regeln aus Xamarin-Sicht zu verstehen.

→
Dieser Artikel im BlogSicherheit unter macOS
- Codesignatur - Unter macOS GateKeeper müssen Anwendungspakete mit einem Schlüssel aus einem Apple-Entwicklerkonto kryptografisch signiert werden.
- Gehärtete Laufzeit - Dies ist eine zweite Sicherheitsebene, die in macOS Mojave (10.14) eingeführt wurde. Durch die Codesignatur mit einem zusätzlichen Flag wird die Cocoa-Laufzeit eine Reihe von Einschränkungen für die Ausführung der Anwendung anwenden.
- Einige Einschränkungen umfassen beispielsweise das Verweigern der Ausführung von selbstmodifizierendem Code oder das Laden nicht signierter dynamischer Bibliotheken.
- Jede Kategorie von Beschränkungen kann durch die Verwendung spezieller Ansprüche deaktiviert werden.
- Notarservice - Dies ist eine dritte Sicherheitsebene, die ebenfalls in macOS Mojave (10.14) eingeführt wurde. Es handelt sich um einen Code-Scan-Dienst, der Ihre Software auf schädliche Inhalte überprüft. Um das Scannen von Notaren zu bestehen, muss sich Ihre Anwendung bereits für die gehärtete Laufzeit entschieden haben.
Wie fange ich an?
Um Ihre Bewerbung auf diese neuen Anforderungen vorzubereiten, müssen Sie folgende Schritte ausführen:
Konfigurieren Sie Ihre Berechtigungen
Bis wir die IDE-Unterstützung für die neuen Optionen implementieren, sind zwei manuelle Schritte erforderlich:
- Öffnen Sie Ihre Xamarin.Mac-Anwendung .csproj in einem Texteditor und fügen Sie sie hinzu
<UseHardenedRuntime>true</UseHardenedRuntime>
zum Release-Bereich - Öffnen Sie Ihre Datei berechtigungen.plist in einem Texteditor und fügen Sie sie hinzu
<key>com.apple.security.cs.allow-jit</key> <true/>
Starten Sie Ihre Anwendung und testen Sie sie. Wenn es abstürzt, benötigen Sie möglicherweise zusätzliche Berechtigungen von Apple.
Beglaubigen Sie Ihre App
Um notariell zu beglaubigen, müssen Sie zwei Schritte ausführen:
- Laden Sie Ihren Build in den Notarservice hoch
- Heften Sie das Ticket an Ihre Bewerbung
Du bist fertig! Wenn Sie Feedback zu diesem Prozess haben, würden wir uns freuen, von Ihnen zu hören. E-Mail an david.ortinau@microsoft.com oder fügen Sie einen Kommentar zu GitHub hinzu .

Senior Program Manager, Tools für mobile Entwickler