Как да покажа & Проверете кодовите подписи за приложения в Mac OS X
Съдържание:
Приложенията, подписани с код, позволяват на потребителите, загрижени за сигурността, да проверят създателя и хеша на конкретно приложение, за да се потвърди, че то не е повредено или манипулирано. Това рядко е необходимо за средните потребители на Mac, особено тези, които получават своя софтуер от Mac App Store или други доверени източници, тъй като приложенията са сертифицирани, но проверката на цифровия подпис на приложение може да бъде изключително полезна за потребители, които получават приложения от трета страна източници.
Проверката на кодов подпис е особено важна за онези, които получават софтуер и инсталатори от p2p и разпределени източници, може би торент сайт или дискусионни групи, IRC, публичен ftp или друг мрежов ресурс. За практически пример, да кажем, че потребител не може да получи достъп до Mac App Store по някаква причина, но трябва да изтегли приложение за инсталиране на Mac OS X и по този начин разчита на източник от трета страна. Такава ситуация е, когато би било важно да знаете и да проверите, че инсталаторът не е бил манипулиран и законно идва от Apple, и освен директната проверка на sha1 хеша, най-лесният начин да направите това е да проверите подписа на кода и криптографския хеш на въпросното приложение.
Как да проверите подписа на кода за приложения на Mac
За да започнете, стартирайте Terminal, намиращ се в /Applications/Utilities/. Ще използваме подходящо наречената команда ‘codesign’, пълна с флаговете -dv и –verbose=4, за да покажем идентифицираща информация за всяко приложение, включително неговия хеш тип, хеш контролна сума и правомощия за подписване.
Основният синтаксис е както следва:
codesign -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=пакет с Mach-O thin (x86_64) CodeDirectory v=20100 размер=5227 флагове=0x0(няма) хешове=255+3 местоположение=вграден идентификатор на платформа=1 Тип хеш=sha1 размер=20 CDHash=0941049019f9fa3499333fb5b52b53735b498aed6cde6a23 Размер на подписа=4105 Authority=Орган за подписване на софтуер=Apple Code Signing Certification Authority Authority=Apple Root CA Info.plist entries=34 TeamIdentifier=not set Sealed Resources version=2 rules=13 files=991 size=6 Internal requirements count=
Това, което търсите, са хеш тип, хеш и записи за авторитет. В този случай хеш типът е sha1 и подписаният орган е Apple, което е, което бихте очаквали.
Да, можете също да използвате командния ред, за да проверите sha1 или md5 хешовете на инсталаторите и изтеглянията на приложения и да ги сравните с легитимен източник, но това няма да разкрие подробностите за подписването на кода и сертификата.
Имайте предвид, че повечето подписан с код софтуер, който е бил модифициран от неупълномощена страна, ще бъде отхвърлен от Gatekeeper в Mac OS X, освен ако Gatekeeper не е бил деактивиран или заобиколен по друг начин, но дори ако Gatekeeper е оставен включен теоретично е възможно един предприемчив глупак да намери начин да го заобиколи и, разбира се, софтуер, който не е сертифициран от идентифициран разработчик, така или иначе винаги може да бъде стартиран около Gatekeeper.
Можете да научите за подписването на код в Wikipedia и в ръководството за разработчици на Apple за подписване на код тук.
Проверявате ли някога дали приложенията са подписани? Това може да бъде валиден начин да се определи какви са някои процеси и приложения, а също така може да бъде полезно за отстраняване на неизправности. Опитайте го следващия път, когато се чудите какво е нещо и дали е подписано или не!