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

Проверка и проверка подписи кода приложений в Mac OS X

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


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

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

Базовый синтаксис следующий:

code sign -dv --verbose=4 /Path/To/Application.app

Например, проверим подпись в Terminal.app, который находится в / Applications / Utilities /

codesign -dv --verbose=4 /Applications/Utilities/Terminal.app
Executable=/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
Identifier=com.apple.Terminal
Format=bundle with Mach-O thin (x86_64)
CodeDirectory v=20100 size=5227 flags=0x0(none) hashes=255+3 location=embedded
Platform identifier=1
Hash type=sha1 size=20
CDHash=0941049019f9fa3499333fb5b52b53735b498aed6cde6a23
Signature size=4105
Authority=Software Signing
Authority=Apple Code Signing Certification Authority
Authority=Apple Root CA
Info.plist entries=34
TeamIdentifier=not set
Sealed Resources version=2 rules=13 files=996
Internal requirements count=1 size=68

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

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

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

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

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

Похожие записи

Добавить комментарий

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