Jak mogę ustalić, czy określony plik .app jest podpisany

45

Uzyskaj informacje w aplikacji .app nie generuje informacji o podpisie. Na przykład w systemie Windows kliknięcie prawym przyciskiem myszy> właściwości ujawni, kto podpisał plik.

Jak uzyskać te informacje dla danej aplikacji w systemie OS X?

JasonGenX
źródło
Co się stanie, jeśli spojrzysz w Contents / _CodeSignature ??
GEdgar

Odpowiedzi:

51

Możesz sprawdzić plik, wydając następujące polecenie w terminalu:

 codesign -dv /Applications/Whatever.app

Istnieje bezpłatne narzędzie, które implementuje funkcje polecenia codeign i rozszerza je o ładny GUI. Nazywa się RB App Checker (w App Store), a także strona opisująca program http://brockerhoff.net/RB/AppCheckerLite/

Nie potrzebowałem niczego oprócz tych dwóch narzędzi do sprawdzania podpisywania kodu w OS X, więc mam nadzieję, że pasują one do twoich potrzeb. Sprawdź AppChecker, jeśli Twój komputer Mac nie ma znaku (niektóre starsze potrzebowały Xcode, aby uzyskać to narzędzie przed wysłaniem strażnika).

Co do tego, co wiesz, system operacyjny będzie wyświetlać niezaufane aplikacje jako przyciemnione i ze standardową ikoną, dopóki proces strażnika nie zatwierdzi pakietu do uruchomienia - ale ten kod może nadal zostać podpisany, więc nie możesz polegać na wizualnej wskazówce, aby koniecznie powiedzieć jeśli jakiś kod został lub nie został podpisany - zwłaszcza biorąc pod uwagę, że strażnika można wyłączyć na danym komputerze Mac.

bmike
źródło
16
-dvvv dodaje wiersze dla urzędów certyfikacji, typu skrótu i ​​skrótu dosłownego. -dv (lub -dvvv) tak naprawdę nie pokazuje, czy podpis jest prawidłowy czy nieprawidłowy. -v pokazuje, czy podpis jest prawidłowy, a jeśli nie jest, -vv drukuje również zmodyfikowane pliki.
Lri
1
@Lri Wymienione urzędy certyfikacji to tylko ciągi tekstowe. Każdy może utworzyć dowolny urząd certyfikacji o dowolnej nazwie. Oprócz tego, w jaki sposób sprawdzamy, czy skróty odpowiadają zaufanym urzędom certyfikacji? Czy chcemy CandidateCDHash, czy CDHash? Czy którykolwiek z tych elementów potwierdza, że ​​nie ma zainstalowanych fałszywych uprawnień root lub podobnych?
nealmcb