Cómo mostrar y verificar firmas de código para aplicaciones en Mac OS X

Las aplicaciones firmadas con código permiten a los usuarios preocupados por la seguridad verificar el creador y el hash de una aplicación en particular para ayudar a confirmar que no se ha corrompido o manipulado. Esto rara vez es necesario para los usuarios promedio de Mac, particularmente aquellos que obtienen su software de la 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 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 ha sido manipulado y que proviene legítimamente de Apple, y además de verificar el hash de sha1 directamente, la forma más fácil de hacerlo es verificar la firma del código y el cifrado. hash de la aplicación en cuestión.

Para comenzar, inicie Terminal, que se encuentra en / Aplicaciones / Utilidades /. Usaremos el comando ‘codeign’, con el nombre apropiado, completo con los indicadores -dv y –verbose = 4 para mostrar información de identificación sobre cualquier aplicación, incluido el tipo de hash, la suma de comprobación de hash y la autoridad de firma.

La sintaxis básica es la siguiente:

code sign -dv --verbose=4 /Path/To/Application.app

Por ejemplo, verifiquemos 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
Format=bundle with 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=1 size=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 hash 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.

Tenga en cuenta que la mayoría del software firmado con código que ha sido modificado por una parte no autorizada será rechazado por Gatekeeper en OS X, a menos que Gatekeeper haya sido deshabilitado o eludido de alguna otra manera , pero incluso con Gatekeeper dejado activado es teóricamente posible que un matón emprendedor De todos modos, el software que no ha sido certificado por un desarrollador identificado siempre se puede lanzar alrededor de Gatekeeper.

Puede leer más sobre la firma de código en Wikipedia y en la guía para desarrolladores de Apple sobre firma de código aquí .

¡Si te ha gustado vota con 5 Estrellas!
(Votos: 0 Promedio: 0)

Escribe Aquí Tu Comentario