Если я понимаю ваш вопрос, вы получаете это предупреждение, потому что приложение, загруженное в Safari, не было подписано разработчиком, известным Apple. Вы спрашиваете, где программа xyz находится на вашем компьютере?
Jake3231,
Ответы:
13
Информация хранится в расширенных атрибутах, а дополнительная информация может быть встроена в приложение.
Расширенные атрибуты
Эта информация о карантине хранится как расширенный атрибут . Используйте xattrинструмент для просмотра атрибутов, связанных с файлом или приложением.
Атрибут, вызывающий это сообщение com.apple.quarantine.
Дополнительная цифровая подпись, встроенная в приложение, используется для определения разработчика приложения. Если подпись не найдена, macOS представляет приложение от неизвестного разработчика.
Это не совсем правильно. Данные карантина используются для отслеживания источника загруженного файла, но подпись находится в другом месте.
duskwuff -неактив-
1
@duskwuff правильно. Карантин вызывает всплывающее окно "XXX был загружен из Интернета, вы уверены, что хотите открыть его?"
Бармар
1
Не все файлы и приложения имеют кодовую подпись. Многих приложений нет, поэтому в этих случаях нет встроенной подписи. Это будет иметь место для сообщений «неопознанного разработчика».
Грэм Милн
7
Фактически сообщение «Неопознанный разработчик ...» является результатом сочетания обеих задач: проверки атрибута com.apple.quarantine и ресурсов для подписи кода (в * / Contents / _CodeSignature / CodeResources), в то время как фактический статус подписи равен определяется исключительно * / CodeResources .
Доступ к информации для подписи кода осуществляется путем ввода:
$ codesign -dvvv /Applications/*.app
Пример:
$ codesign -dvvvv /Applications/Google\ Chrome.app/
Executable=/Applications/Google Chrome.app/Contents/MacOS/Google Chrome
Identifier=com.google.Chrome
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=273 flags=0x800(restrict) hashes=3+3 location=embedded
OSPlatform=36
OSSDKVersion=658432
OSVersionMin=657664
Hash type=sha256 size=32
CandidateCDHash sha1=bc8e3dffe7d9d5242e09ea80a220ed365d46fdf2
CandidateCDHash sha256=d7ae6211906bb17d593ce9c215d190a81f37e658
Hash choices=sha1,sha256
Page size=4096
CDHash=d7ae6211906bb17d593ce9c215d190a81f37e658
Signature size=8949
Authority=Developer ID Application: Google, Inc. (EQHXZ8M8AV)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=20. Mar 2018 at 07:23:20
Info.plist entries=36
TeamIdentifier=EQHXZ8M8AV
Sealed Resources version=2 rules=7 files=203
Internal requirements count=1 size=240
Наиболее важной частью является цепочка сертификатов (и цепочка доверия):
Authority=Developer ID Application: Google, Inc. (EQHXZ8M8AV)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Здесь видны три разных авторитета:
Корневой сертификат: Apple Root CA
Промежуточный сертификат разработчика Apple: Центр сертификации ID разработчика
Сертификат разработчика: Google, Inc. (EQHXZ8M8AV)
Это означает, что приложение подписано сертификатом разработчика, опубликовано и подписано промежуточным органом Apple по разработке, который сам публикуется и подписывается корневым центром сертификации Apple.
Эта цепочка квалифицирует Google (или точнее: команду / подразделение Google, Inc. (EQHXZ8M8AV)) как разработчика, идентифицированного Apple.
Вы также можете кодировать приложения либо самостоятельно, либо с помощью сертификата кодирования от другого промежуточного / корневого органа, но это не побеждает Gatekeeper.
Теперь возможны четыре перестановки при условии, что включен Gatekeeper (но без учета самоподписания / подписи пришельцев):
Нет атрибута com.apple.quarantine / нет сертификата Apple Developer (Пример: установлен бочковый бочонок Apache CouchDB )
Нет атрибута com.apple.quarantine / сертификата Apple Developer (пример: установлен Google Chrome для brew cask )
Атрибут com.apple.quarantine / сертификат Apple Developer отсутствует (пример: Apache CouchDB устанавливается путем загрузки zip-файла с веб-сайта и копирования разархивированного приложения в / Applications / )
Атрибут com.apple.quarantine / сертификат разработчика Apple (пример: Google Chrome устанавливается путем загрузки dmg с веб-сайта и копирования приложения в / Applications / )
В первых двух случаях приложение просто запустится. В третьем случае вы получите сообщение Unindentified Developer . Вы можете решить эту проблему, удалив расширенный атрибут xattr -d com.apple.quarantine *(= case 1). В четвертом случае вы получите "* был загружен из Интернета, вы уверены, что хотите открыть его?"
Как macOS может определить эту информацию? Где хранятся метаданные подписи для приложения?
Подпись хранится в самом двоичном файле приложения с некоторыми дополнительными данными в комплекте приложения (в файле Contents/_CodeSignature/CodeResources).
Вы можете получить некоторую информацию о подписи, используя утилиту командной строки codesign- например:
Ответы:
Информация хранится в расширенных атрибутах, а дополнительная информация может быть встроена в приложение.
Расширенные атрибуты
Эта информация о карантине хранится как расширенный атрибут . Используйте
xattr
инструмент для просмотра атрибутов, связанных с файлом или приложением.Атрибут, вызывающий это сообщение
com.apple.quarantine
.См. Как удалить «расширенные атрибуты» для файла в Mac OS X? и приложение не может быть открыто, потому что оно от неизвестного разработчика для более подробной информации.
Гейткипер и кодовые подписи
Расширенный атрибут используется Gatekeeper в macOS и обсуждается в разделе Как установить (восстановить) атрибут com.apple.quarantine?
Дополнительная цифровая подпись, встроенная в приложение, используется для определения разработчика приложения. Если подпись не найдена, macOS представляет приложение от неизвестного разработчика.
источник
Фактически сообщение «Неопознанный разработчик ...» является результатом сочетания обеих задач: проверки атрибута com.apple.quarantine и ресурсов для подписи кода (в * / Contents / _CodeSignature / CodeResources), в то время как фактический статус подписи равен определяется исключительно * / CodeResources .
Вы можете получить расширенный атрибут, введя:
Доступ к информации для подписи кода осуществляется путем ввода:
Пример:
Наиболее важной частью является цепочка сертификатов (и цепочка доверия):
Здесь видны три разных авторитета:
Это означает, что приложение подписано сертификатом разработчика, опубликовано и подписано промежуточным органом Apple по разработке, который сам публикуется и подписывается корневым центром сертификации Apple.
Эта цепочка квалифицирует Google (или точнее: команду / подразделение Google, Inc. (EQHXZ8M8AV)) как разработчика, идентифицированного Apple.
Вы также можете кодировать приложения либо самостоятельно, либо с помощью сертификата кодирования от другого промежуточного / корневого органа, но это не побеждает Gatekeeper.
Теперь возможны четыре перестановки при условии, что включен Gatekeeper (но без учета самоподписания / подписи пришельцев):
В первых двух случаях приложение просто запустится. В третьем случае вы получите сообщение Unindentified Developer . Вы можете решить эту проблему, удалив расширенный атрибут
xattr -d com.apple.quarantine *
(= case 1). В четвертом случае вы получите "* был загружен из Интернета, вы уверены, что хотите открыть его?"источник
Подпись хранится в самом двоичном файле приложения с некоторыми дополнительными данными в комплекте приложения (в файле
Contents/_CodeSignature/CodeResources
).Вы можете получить некоторую информацию о подписи, используя утилиту командной строки
codesign
- например:источник