Signer et notarier facilement vos apps, AppleScript, packages… avec SD Notary

Dans mon métier de consultant Apple (je vous rappelle que c’est un vrai métier), on a de plus en plus besoin de signer des éléments pour s’assurer qu’ils s’installent sans alerte quelconque en raison des protections imposées par Apple. Gatekeeper, le gardien silencieux de votre Mac, montre en effet les crocs dès qu’une app n’est pas notariée ou pire encore, même pas signée.

Quand on lance un package non signé, macOS sort les crocs. Vous pouvez toujours contourner l’alerte avec Contrôle + Clic > Ouvrir, mais méfiez-vous quand même.

Alors certes, si vous passez par un MDM, vos packages n’ont pas besoin d’être signés pour être installés, mais c’est mieux quand même quand tout est proprement signé et notarié. Et en fait, même ça, ce n’est pas totalement vrai : si vous souhaitez par exemple déployer des packages lors de l’inscription automatique de vos Mac sur votre MDM au démarrage via le programme d’inscription automatisée d’Apple (anciennement DEP), vous ne pourrez le faire qu’avec des packages correctement signés.

Aie, tout est noir, voire rouge ! Cette petite app est absolument impossible à déployer en l’état.

Pour vérifier la signature de mes packages, apps, etc… j’utilise l’app Apparency, qui permet de visualiser facilement les attributs de tous les éléments qui peuvent être signés et notariés. Et en plus, elle ajoute automatiquement un plug-in pour la fonction Coup d’œil, pratique… et gratos également !

Signer un package nécessite un abonnement développeur Apple (pour un coût minimum de 99€ par an). Une fois que vous êtes inscrit au programme développeur, vous devrez télécharger des certificats développeur sur votre Mac. Je ne vous explique pas comment faire, il y a pléthore de documentation sur le web pour cela. Assurez-vous juste de disposer d’un certificat de type Developer ID Application, stocké dans votre trousseau. Ce certificat dispose d’un identifiant à 10 caractères. Notez-le, vous en aurez besoin plus tard.

Maintenant, admettons que vous souhaitiez déployer un package et le signer proprement… et même le notarier, pour prouver que les fichiers à installer sont vierges de tout malware. J’avais publié il y a assez longtemps un petit guide pour notarier un AppleScript à travers un DMG, mais il existe désormais des outils mieux adaptés. Déjà, la commande xcrun dispose d’une option notary-tool qui facilite énormément le processus de notarisation de l’app.

Mais il y a encore plus simple si on préfère l’interface graphique ! SD Notary (disponible gratuitement ici) est un outil graphique qui permet de facilement signer et notarier vos apps. Téléchargez l’app et copiez-la dans votre dossier /Applications.

Créer un mot de passe unique

Ensuite, connectez-vous sur https://appleid.apple.com et authentifiez-vous avec votre compte développeur, puis cliquez sur Mots de passe pour apps.

Oui, le nom du bouton est tronqué, c’est n’importe quoi.

Cliquez sur le bouton + pour créer un nouveau mot de passe unique, et notez-le une fois créé. Attention : vous ne pourrez plus ensuite l’afficher à nouveau ! Mais vous pourrez en créer autant que vous voulez.

Ajouter le mot de passe au trousseau

Maintenant, ouvrez le trousseau sur votre Mac, et cliquez sur le menu Fichier > Nouvel élément de mot de passe.

Ajoutez l’identifiant de votre choix (j’ai utilisé ici SD-Notary), votre compte Apple ID comme identifiant, et le mot de passe unique dans le champ du mot de passe, de toute évidence, et cliquez sur Ajouter.

Ouf ! Presque fini ! D’autant que vous n’aurez à réaliser toute cette opération qu’une seule fois, le mot de passe servant autant que vous voulez.

Signer et notarier son app ou package avec SD Notary

Ouvrez SD Notary et affichez une nouvelle fenêtre, et remplissez tous les champs en spécifiant le nom de l’entrée du trousseau (ici, SD-Notary). Mais avant de cliquer sur Submit, cliquez sur le menu File > Set Defaults, ce qui vous évitera de remplir les détails à chaque fois.

Ceci fait… il est temps de signer et notarier votre app ! Cliquez cette fois sur Submit, et sélectionnez l’élément à notarier, donc votre app. Patientez… patientez… et patientez. En effet, le processus de vérification est parfois un peu long, le temps d’envoyer l’app à Apple et à celle-ci de s’assurer que y’a pas plein de malwouaires dedans. Si vous voyez Stapling succeeded, et bien, tout est OK : votre app a été validée, et Apple y a apposé un joli ticket pour dire que vous êtes un winner.

Et effectivement, vous pourrez découvrir dans le dossier Nom de l’app – Notarized une copie proprement notariée et signée de votre app.

All green ! Paré à déployer !

De même, une fois l’app packagée proprement avec l’outil de votre choix, vous pouvez glisser le package sur l’icône de SD Notary pour lancer une notarisation rapidement. Et hop !

Notez que le package est ici indiqué comme notarié par Apple, avec le ticket agrafé, donc immédiatement validé par Gatekeeper.

Et voilà ! Vous pouvez désormais facilement déployer vos apps, packages, plug-ins et autres de façon propre et sécurisée, et Gatekeeper vous adressera désormais de grands sourires. Cependant, si vous devez exécuter régulièrement ce genre d’opérations, n’hésitez pas à regarder du côté de la commande xcrun notarytool.

1 commentaire sur “Signer et notarier facilement vos apps, AppleScript, packages… avec SD Notary”

Les commentaires sont fermés.