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

Оглавление:

Anonim

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

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

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

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

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

codesign -dv --verbose=4 /Путь/к/Application.app

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

codesign -dv --verbose=4 /Applications/Utilities/Terminal.app Executable=/Applications/Utilities/Terminal.app/Contents/MacOS/Идентификатор терминала=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 ID=1 Hash type=sha1 size=20 CDHash=0941049019f9fa3499333fb5b52b53735b498aed6cde6a23 Размер подписи=4105 Полномочия=Центр подписи программного обеспечения=Центр сертификации подписи кода Apple Полномочия=Корневой ЦС Apple Info.plist записей=34 TeamIdentifier=не задан Версия запечатанных ресурсов=2 правила=13 файлов=996 Количество внутренних требований=1 размер=68

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

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

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

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

Вы когда-нибудь проверяли, подписаны ли приложения? Это может быть правильным способом определить, что представляют собой некоторые процессы и приложения, а также может быть полезно для устранения неполадок. Попробуйте в следующий раз, когда вам будет интересно, что это такое и подписано оно или нет!

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