Cómo mostrar & Verificar firmas de código para aplicaciones en Mac OS X
Tabla de contenido:
Las aplicaciones firmadas con código permiten a los usuarios conscientes de la seguridad verificar el creador y el hash de una aplicación en particular para ayudar a confirmar que no ha sido dañada o manipulada. Esto rara vez es necesario para los usuarios promedio de Mac, particularmente aquellos que obtienen su software de Mac App Store u otras fuentes confiables ya que las aplicaciones están certificadas, pero verificar la firma digital de una aplicación puede ser extremadamente útil para los usuarios que obtienen aplicaciones de terceros. fuentes.
Verificar una firma de código es particularmente importante para quienes obtienen software e instaladores de p2p y fuentes distribuidas, tal vez un sitio de torrents o grupos de noticias, IRC, ftp público u otro recurso de red. Para un ejemplo práctico, digamos que un usuario no puede acceder a la Mac App Store por cualquier motivo, pero necesita descargar una aplicación de instalación de Mac OS X y, por lo tanto, depende de una fuente de terceros. Tal situación es cuando sería importante saber y verificar que el instalador no haya sido manipulado y que provenga legítimamente de Apple, y además de verificar el hash sha1 directamente, la forma más fácil de hacerlo es verificar la firma del código y el código criptográfico. hash de la aplicación en cuestión.
Cómo verificar la firma del código para aplicaciones en Mac
Para comenzar, inicie Terminal, que se encuentra en /Aplicaciones/Utilidades/. Usaremos el comando 'codesign' acertadamente llamado, completo con los indicadores -dv y –verbose=4 para mostrar información de identificación sobre cualquier aplicación, incluido su tipo de hash, suma de comprobación de hash y autoridad de firma.
La sintaxis básica es la siguiente:
codesign -dv --verbose=4 /Ruta/A/Aplicación.app
Por ejemplo, revisemos la firma en Terminal.app, ubicada en /Aplicaciones/Utilidades/
codesign -dv --verbose=4 /Applications/Utilities/Terminal.app Executable=/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal Identifier=com.apple.Terminal Formato=paquete con Mach-O thin (x86_64) CodeDirectory v=20100 tamaño=5227 banderas=0x0(ninguno) hashes=255+3 ubicación=identificador de plataforma integrado=1 Tipo de hash=sha1 tamaño=20 CDHash=0941049019f9fa3499333fb5b52b53735b498aed6cde6a23 Tamaño de firma=4105 Autoridad=Autoridad de firma de software=Autoridad de certificación de firma de código de Apple Autoridad=Entradas de información de CA raíz de Apple=34 TeamIdentifier=no establecido Versión de recursos sellados=2 reglas=13 archivos=996 Recuento de requisitos internos=1 tamaño=68
Lo que está buscando son las entradas de tipo hash, hash y autoridad. En este caso, el tipo de hash es sha1 y la autoridad firmada es Apple, que es lo que cabría esperar.
Sí, también puede usar la línea de comando para verificar los hashes sha1 o md5 de los instaladores y descargas de aplicaciones y compararlos con una fuente legítima, pero eso no revelará la firma del código ni los detalles del certificado.
Recuerde que Gatekeeper en Mac OS X rechazará la mayoría del software con código firmado que haya sido modificado por una parte no autorizada, a menos que Gatekeeper haya sido desactivado o eludido de alguna otra manera, pero incluso con Gatekeeper activado. En teoría, es posible que un matón emprendedor encuentre una forma de evitarlo y, por supuesto, el software que no ha sido certificado por un desarrollador identificado siempre se puede lanzar alrededor de Gatekeeper de todos modos.
Puede consultar la firma de código en Wikipedia y en la guía para desarrolladores de Apple sobre la firma de código aquí.
¿Alguna vez compruebas si las aplicaciones están firmadas? Puede ser una forma válida de determinar cuáles son algunos procesos y aplicaciones, y también puede ser útil para solucionar problemas. ¡Pruébalo la próxima vez que te preguntes qué es algo y si está firmado o no!