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.

Lire aussi :  Comment signaler des bugs à Apple dans iOS 14 Beta

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.

Lire aussi :  Comment imprimer depuis l'iPhone et l'iPad vers une imprimante

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 .

Click to rate this post!
[Total: 2 Average: 5]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *