¿Cómo puedo determinar si un determinado archivo .app está firmado?

45

Obtener información sobre un .app no ​​produce la información de la firma. En Windows, por ejemplo, hacer clic con el botón derecho> propiedades expondrá quién firmó el archivo.

¿Cómo obtengo esa información para un .app determinado en OS X?

JasonGenX
fuente
¿Qué sucede si miras en Contenidos / _CodeSignature?
GEdgar

Respuestas:

51

Puede verificar un archivo emitiendo el siguiente comando en Terminal:

 codesign -dv /Applications/Whatever.app

Hay una herramienta gratuita que implementa las funciones del comando del código y lo extiende con una buena GUI. Se llama RB App Checker (en la App Store) y un sitio que describe el programa http://brockerhoff.net/RB/AppCheckerLite/

No he necesitado nada más que estas dos herramientas para verificar la firma de código en OS X, así que espero que se ajusten a sus necesidades. Verifique el AppChecker si su Mac no tiene código de identificación (algunos más antiguos necesitaban Xcode para obtener esa herramienta antes de que se enviara el gatekeeper).

En cuanto a cómo lo sabría, el sistema operativo mostrará las aplicaciones no confiables como tenues y con un ícono genérico hasta que el proceso de gatekeeper apruebe que se ejecute un paquete, pero ese código aún podría firmarse, por lo que no puede confiar en una pista visual para decir necesariamente si algún código ha sido firmado o no, especialmente teniendo en cuenta que gatekeeper podría estar deshabilitado en una Mac determinada.

bmike
fuente
16
-dvvv agrega filas para las autoridades de certificación, tipo de hash y hash literal. -dv (o -dvvv) en realidad no muestra si la firma es válida o no válida. -v muestra si la firma es válida, y si no lo es, -vv también imprime los archivos modificados.
Lri
1
@Lri Las autoridades de certificación enumeradas son solo cadenas de texto. Cualquiera puede crear cualquier autoridad de certificación que desee con cualquier nombre. Entonces, además de esto, ¿cómo verificamos que los hashes corresponden a CA confiables? ¿Queremos el CandidateCDHash o el CDHash? ¿Algo de esto establece que no hay instaladas autoridades de raíz falsas o similares?
nealmcb