Готовимся к Hardened Runtime и Notary Service в macOS Mojave
С выходом macOS Mojave Apple представила поддержку служб Hardened Runtime и Notary. Эти две службы предназначены для повышения безопасности приложений в macOS. Недавно компания заявила:
Начиная с macOS 10.14.5, все новые или обновленные расширения ядра и все программы от разработчиков, впервые освоивших распространение с Developer ID, для запуска должны быть заверены через Hardened Runtime и Notary. В будущей версии macOS заверение потребуется по умолчанию для всех программ.Сегодня поможем вам разобраться в новых требованиях с точки зрения Xamarin.
Безопасность в macOS
- Code Signing – в macOS GateKeeper требует криптографической подписи пакетов приложений с помощью ключа из аккаунта разработчика Apple.
- Это было требованием начиная с macOS Lion (10.7).
- С первого раза может быть трудно получить правильные ключи и сертификаты, так что смотрите документацию по подписи приложений Xamarin.Mac.
-
Hardened Runtime — это второй уровень безопасности, введенный в macOS Mojave (10.14). При подписании кода с дополнительным флагом среда выполнения Cocoa будет применять несколько ограничений к запущенному приложению.
- Например, некоторые ограничения включают отказ в выполнении самоизменяющегося кода или загрузку неподписанных динамических библиотек.
- Каждая категория ограничений может быть отключена с помощью специальных прав.
- Notary Service — это третий уровень безопасности, также введенный в macOS Mojave (10.14). Это служба сканирования кода, которая сканирует ваше программное обеспечение на наличие вредоносного содержимого. Чтобы пройти notary-сканирование, ваше приложение должно быть уже проверено в Hardened Runtime.
Как начать
Чтобы начать подготовку приложения к этим новым требованиям, выполните следующие действия:
- Откройте приложение и убедитесь, что для сборок выпуска включена подпись кода с файлом entitlement. Убедитесь, что приложение успешно запускается. Если у вас возникнут проблемы, следуйте документации по подписи приложений Xamarin.Mac.
- Загрузите и установите Xamarin.Mac 5.10 (d16-1) здесь.
Настройте права
Пока мы не реализуем поддержку IDE для новых опций, необходимо вручную выполнить два шага:
- Откройте приложение Xamarin.Mac .csproj в текстовом редакторе и добавьте
в раздел Release. - Откройте файл entitlements.plist в текстовом редакторе и добавьте
Запустите ваше приложение и протестируйте его. В случае сбоя вам могут потребоваться дополнительные права от Apple.
Заверьте приложение
Для заверения вам необходимо выполнить два шага:
Все готово! Если у вас есть какие-либо отзывы относительно этого процесса, мы будем рады услышать их от вас. Электронная почта david.ortinau@microsoft.com или добавьте комментарий на GitHub.