Comment afficher & Vérifier les signatures de code pour les applications sous Mac OS X
Table des matières:
Les applications signées par 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 falsifiée. Cela est rarement nécessaire pour les utilisateurs Mac moyens, en particulier ceux qui obtiennent leur logiciel sur le Mac App Store ou d'autres sources fiables 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 tiers. sources.
La vérification d'une signature de code est particulièrement importante pour ceux qui obtiennent des logiciels et des installateurs à partir de p2p et de sources distribuées, peut-être un site 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 doit télécharger une application d'installation Mac OS X et s'appuie donc sur une source tierce. Une telle situation est lorsqu'il serait important de savoir et de vérifier que le programme d'installation n'a pas été falsifié et qu'il provient légitimement d'Apple, et en plus de vérifier directement le hachage sha1, le moyen le plus simple de le faire est de vérifier la signature du code et cryptographique hachage de l'application en question.
Comment vérifier la signature du code pour les applications sur Mac
Pour commencer, lancez Terminal, qui se trouve dans /Applications/Utilitaires/. Nous utiliserons la commande bien nommée "codesign", avec les indicateurs -dv et -verbose=4 pour afficher des informations d'identification sur n'importe quelle application, y compris son type de hachage, sa somme de contrôle de hachage et son autorité de signature.
La syntaxe de base est la suivante :
codesign -dv --verbose=4 /Path/To/Application.app
Par exemple, vérifions la signature sur Terminal.app, située dans /Applications/Utilitaires/
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 entry=34 TeamIdentifier=non défini Sealed Resources version=2 rules=13 files=996 Nombre d'exigences internes=1 size=68
Ce que vous recherchez, ce sont les entrées de type de hachage, de hachage et d'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 simplement vérifier les hachages sha1 ou md5 des programmes d'installation 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 par code qui ont été modifiés par une partie non autorisée seront rejetés par Gatekeeper sous Mac OS X, à moins que Gatekeeper n'ait été désactivé ou autrement contourné, mais même avec Gatekeeper laissé allumé, c'est théoriquement possible pour un crétin entreprenant de trouver un moyen de contourner cela, et bien sûr, un logiciel qui n'a pas été certifié par un développeur identifié peut toujours être lancé autour de Gatekeeper de toute façon.
Vous pouvez en savoir plus sur la signature de code sur Wikipédia et sur le guide du développeur Apple pour la signature de code ici.
Vérifiez-vous parfois si les applications sont signées ? Cela peut être un moyen valable de déterminer quels sont certains processus et applications, et peut également être utile pour le dépannage. Essayez-le la prochaine fois que vous vous demanderez ce qu'est quelque chose et s'il est signé ou non !