Comment afficher et vérifier les signatures de code pour les applications sous Mac OS X
Les applications signées par un code permettent aux utilisateurs soucieux de la sécurité de vérifier le créateur et le hachage d'une application particulière pour aider à confirmer qu'elle n'a pas été corrompue ou altérée. Cela est rarement nécessaire pour les utilisateurs moyens de Mac, en particulier ceux qui obtiennent leurs logiciels du Mac App Store ou d'autres sources de confiance puisque les applications sont certifiées, mais la vérification de la signature numérique d'une application peut être extrêmement utile pour les utilisateurs qui obtiennent des applications de sources tierces.
La vérification d'une signature de code est particulièrement importante pour ceux qui obtiennent des logiciels et des installateurs à partir de sources p2p et distribuées, peut-être un site de torrent ou des groupes de discussion, IRC, ftp public ou une autre ressource réseau. Pour un exemple pratique, disons qu'un utilisateur ne peut pas accéder au Mac App Store pour une raison quelconque, mais qu'il doit télécharger une application d'installation OS X et qu'il dépend donc d'une source tierce. Dans une telle situation, il serait important de savoir et de vérifier que l'installateur n'a pas été altéré et qu'il provient légitimement d'Apple. Outre la vérification directe du hachage sha1, le moyen le plus simple de le faire est de vérifier la signature du code et le hachage cryptographique de l'application en question.
Pour commencer, lancez Terminal, que vous trouverez dans /Applications/Utilitaires/. Nous utiliserons la commande "codesign", bien nommée, complétée par les drapeaux -dv et -verbose=4 pour afficher les informations d'identification de toute application, y compris son type de hachage, sa somme de contrôle de hachage et son pouvoir de signature.
La syntaxe de base est la suivante :
signe de code -dv --verbose=4 /Chemin/À/Application.app
Par exemple, vérifions la signature sur Terminal.app, situé dans /Applications/Utilitaires/
codesign -dv --verbose=4 /Applications/Utilitaires/Terminal.app
Exécutable=/Applications/Utilitaires/Terminal.app/Contenu/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
Identifiant de la plate-forme=1
Hash type=sha1 size=20
CDHash=0941049019f9fa3499333fb5b52b53735b498aed6cde6a23
Taille de la signature=4105
Autorité=Signature du logiciel
Authority=Apple Code Signing Certification Authority
Authority=Apple Root CA
Info.plist entries=34
TeamIdentifier=not set
Ressources scellées version=2 règles=13 fichiers=996
Les exigences internes comptent=1 taille=68
Ce que vous recherchez, ce sont les entrées de type hash, hash et autorité. Dans ce cas, le type de hachage est sha1 et l'autorité signée est Apple, ce à quoi vous vous attendez.
Oui, vous pouvez également utiliser la ligne de commande pour vérifier les hachages sha1 ou md5 des installateurs et des téléchargements d'applications et les comparer à une source légitime, mais cela ne révélera pas les détails de la signature du code et du certificat.
Gardez à l'esprit que la plupart des logiciels signés qui ont été modifiés par une partie non autorisée seront rejetés par Gatekeeper dans OS X, à moins que Gatekeeper n'ait été désactivé ou contourné d'une autre manière, mais même en laissant Gatekeeper en marche, il est théoriquement possible pour un crétin d'entreprise de trouver un moyen de le contourner, et bien sûr les logiciels qui n'ont pas été certifiés par un développeur identifié peuvent toujours être lancés autour de Gatekeeper de toute façon.
Vous pouvez en savoir plus sur la signature de code sur Wikipedia et sur le guide du développeur Apple sur la signature de code ici .