Как мне убедиться, что MacOS pkg нотариально заверен?
Как проверить, что файл pkg установщика macOS был заверен нотариально? Есть ли инструмент командной строки для этого?
1 ответ
stapler validate
сделаю это -
$ stapler validate myfile.pkg
Processing: myfile.pkg
The validate action worked!
Если действие валидации сработало! печатается, указанный файл pkg заверяется нотариально.
К сожалению, правильных ответов несколько.
Процесс нотариального заверения заключается в загрузке пакета, приложения или двоичного файла в Apple. Затем Apple проверит это. Если базовый формат поддерживает это, вы можете загрузить этот "билет" и "скрепить" его. Примечательно то, что вам не нужно прикреплять билет для нотариального заверения. Привратник будет искать его с помощью Apple во время выполнения.
Проверить, прикреплен ли билет, можно с помощью staple
команда. Но вы можете использоватьspctl
чтобы получить более широкий ответ о том, примет ли это привратник.
Есть еще одна проблема - учетные записи разработчиков Apple, выпущенные до августа 2019 года, освобождены от требований нотариального заверения. (По крайней мере, в Мохаве.) Это может сбить с толку попытки понять, что происходит.
Некоторые примеры беззнаковых, подписанных и нотариально заверенных двоичных файлов. Здесь нет скоб.
Использование учетной записи разработчика Apple, которой несколько лет назад. Нотариальное заверение не требуется для проверки привратником:
$ spctl -a -vvv -t install go-hello-unsigned
go-hello-unsigned: rejected
source=no usable signature
$ spctl -a -vvv -t install go-hello-signed-oldapple
go-hello-signed-oldapple: accepted
source=Developer ID
origin=Developer ID Application: Example Inc (oldapple)
$ spctl -a -vvv -t install go-hello-notarized-oldapple
go-hello-notarized-oldapple: accepted
source=Notarized Developer ID
origin=Developer ID Application: Example Inc (oldapple)
Использование новой учетной записи разработчика Apple. При соблюдении требований нотариального заверения:
$ spctl -a -vvv -t install go-hello-unsigned
go-hello-unsigned: rejected
source=no usable signature
$ spctl -a -vvv -t install go-hello-signed-newapple
go-hello-signed-newapple: rejected
source=Unnotarized Developer ID
origin=Developer ID Application: Kolide, Inc (newapple)
$ spctl -a -vvv -t install go-hello-notarized-newapple
go-hello-notarized-newapple: accepted
source=Notarized Developer ID
origin=Developer ID Application: Kolide, Inc (newapple)
Обновить
Теперь, когда была выпущена каталина, это немного изменилось. Возраст подписания ключей влияет на Мохаве. Каталина теперь требует, чтобы все было нотариально заверено.