Обратите внимание, что вся информация на этом портале переведена с других языков, поэтому некоторые фразы могут быть неточными. Надеемся на ваше понимание и желаем успешной работы с сайтом! С уважением, создатели сайта. Наша почта: [email protected]

Как показать и проверить сигнатуры кодов для приложений в Mac OS X

Приложения, подписанные кодами, позволяют пользователям, находящимся в безопасности, проверять создателя и хеш конкретного приложения, чтобы подтвердить, что оно не было повреждено или не подделано. Это редко необходимо для средних пользователей Mac, особенно тех, кто получает свое программное обеспечение из Mac App Store или других доверенных источников, поскольку приложения сертифицированы, но проверка цифровой подписи приложения может быть чрезвычайно полезна для пользователей, которые получают приложения от сторонних разработчиков источники.

Проверка подписи кода особенно важна для тех, кто получает программное обеспечение и инсталляторы из p2p и распределенных источников, возможно, торрент-сайт или группы новостей, IRC, общедоступный ftp или другой сетевой ресурс. Для практического примера, допустим, пользователь не может получить доступ к Mac App Store по какой-либо причине, но ему необходимо загрузить приложение-установщик OS X и, следовательно, полагаться на сторонний источник. Такая ситуация возникает, когда важно знать и проверять, что установщик не был подделан и законно поступает от Apple, и, кроме проверки хэша sha1, самый простой способ сделать это — проверить подпись кода и криптографию хэш приложения, о котором идет речь.

Чтобы начать работу, запустите Terminal, находящийся в / Applications / Utilities /. Мы будем использовать метко названную команду «codeign» в комплекте с флагами -dv и -verbose = 4, чтобы отображать идентификационную информацию о любом приложении, включая его хэш-тип, хеш-контрольную сумму и полномочия подписи.

Основной синтаксис выглядит следующим образом:

кодовый знак -dv —verbose = 4 /Path/To/Application.app

Например, давайте проверим подпись на Terminal.app, расположенную в папке / Applications / Utilities /

codeign -dv —verbose = 4 /Applications/Utilities/Terminal.app
Исполняемые = / Применения / Утилиты / Terminal.app / Содержание / MacOS / Терминал
Идентификатор = com.apple.Terminal
Формат = пакет с махом-тонким (x86_64)
CodeDirectory v = 20100 size = 5227 flags = 0x0 (none) hashes = 255 + 3 location = embedded
Идентификатор платформы = 1
Тип хэша = размер sha1 = 20
CDHash = 0941049019f9fa3499333fb5b52b53735b498aed6cde6a23
Размер подписи = 4105
Полномочия = Подписание программного обеспечения
Полномочия = Центр сертификации подписей Apple Code
Полномочия = Apple Root CA
Записи Info.plist = 34
TeamIdentifier = не установлен
Версия Sealed Resources = 2 правила = 13 файлов = 996
Внутренние требования count = 1 размер = 68

То, что вы ищете, это хеш-тип, хэш-код и записи полномочий. В этом случае хэш-тип является sha1, а подписанным органом является Apple, чего вы ожидаете.

Да, вы также можете использовать командную строку, чтобы просто проверить хэши sha1 или md5 инсталляторов приложений и загрузки и сравнить их с законным источником, но это не покажет информацию о подписи кода и сертификате.

Имейте в виду, что большинство программного обеспечения, подписанного кодом, которое было изменено неавторизованной стороной, будет отклонено Gatekeeper в OS X, если только Gatekeeper не был отключен или каким-либо иным образом не обходил, но даже с остатком Gatekeeper теоретически возможно, чтобы предприимчивый goon нашел путь вокруг него, и, конечно же, программное обеспечение, которое не было сертифицировано идентифицированным разработчиком, всегда может быть запущено вокруг Gatekeeper.

Вы можете больше узнать о подписании кода в Википедии и в руководстве разработчика Apple для подписания кода здесь.

Как работает подписание кода через Apple

Понравилась статья? Поделиться с друзьями: