Как мне убедиться, что 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)

Обновить

Теперь, когда была выпущена каталина, это немного изменилось. Возраст подписания ключей влияет на Мохаве. Каталина теперь требует, чтобы все было нотариально заверено.

Другие вопросы по тегам