Як показати & перевірити підписи коду для програм у Mac OS X
Зміст:
Програми, підписані кодом, дозволяють користувачам, які піклуються про безпеку, перевірити автора та хеш певної програми, щоб підтвердити, що її не було пошкоджено чи змінено. Це рідко потрібно середнім користувачам Mac, особливо тим, хто отримує програмне забезпечення з Mac App Store або інших надійних джерел, оскільки програми сертифіковані, але перевірка цифрового підпису програми може бути надзвичайно корисною для користувачів, які отримують програми від сторонніх розробників. джерела.
Перевірка підпису коду особливо важлива для тих, хто отримує програмне забезпечення та інсталятори з p2p і розподілених джерел, наприклад, торрент-сайту чи груп новин, IRC, публічного ftp чи іншого мережевого ресурсу. Для практичного прикладу, скажімо, користувач не може отримати доступ до Mac App Store з будь-якої причини, але йому потрібно завантажити програму встановлення Mac OS X і тому покладається на стороннє джерело. У такій ситуації важливо знати та переконатися, що програму встановлення не було підроблено та законно походить від Apple, і окрім безпосередньої перевірки хешу sha1, найпростіший спосіб це зробити — перевірити підпис коду та криптографічний хеш відповідної програми.
Як перевірити підпис коду для програм на Mac
Щоб почати, запустіть термінал, який можна знайти в /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 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=6
Те, що ви шукаєте, це записи типу хешу, хешу та повноважень. У цьому випадку тип хешу — sha1, а авторизований підпис — Apple, чого ви й очікували.
Так, ви також можете використовувати командний рядок, щоб просто перевірити хеші sha1 або md5 інсталяторів програм і завантажень і порівняти їх із законним джерелом, але це не розкриє підпис коду та деталі сертифіката.
Пам’ятайте, що більшість підписаного коду програмного забезпечення, яке було змінено неавторизованою стороною, буде відхилено Gatekeeper у Mac OS X, якщо Gatekeeper не було вимкнено або іншим чином обійдено, але навіть якщо Gatekeeper залишився ввімкненим теоретично можливо для заповзятливого жуліка знайти спосіб обійти це, і, звичайно, програмне забезпечення, яке не було сертифіковане визначеним розробником, завжди може бути запущено навколо Gatekeeper.
Ви можете дізнатися про підписання коду у Вікіпедії та в посібнику розробника Apple щодо підписання коду тут.
Чи перевіряєте ви коли-небудь, чи підписані програми? Це може бути дійсним способом визначити, які процеси та програми, а також може бути корисним для усунення несправностей. Спробуйте наступного разу, коли вам буде цікаво, що це таке і чи воно підписано чи ні!