Mountain Lion : la revue de Ars technica (15)
Là où Lion a trébuché, Mountain Lion regroupe et va de l'avant.
Par John Siracusa, 25 Juillet 2012
L'humble interface utilisateur de Gatekeeper dans Lion dément l'effet profond qu'il peut avoir sur la plateforme Mac. Inoffensif, en bas de l'onglet "General" de la vitre des préférences "Sécurité et confidentialité", se trouve un texte court suivi de trois boutons radio.
Fig. 1 : Les trois choix possibles de Gatekeeper. Le réglage par défaut est affiché.
Le réglage par défaut permet aux applications d'être téléchargées depuis le Mac App Store, et des "développeurs identifiés". Décryptons un peu l'expression.
Le texte "Autoriser les applications téléchargées de :" signifie que ces règles s'appliquent seulement aux applications téléchargées sur Internet, identifiées par les attributs étendus de "quarantaine", ajoutés volontairement aux fichiers téléchargés par des applications comme Safari. Copiez une application d'un Mac à un autre, compilez votre propre application, ou faites tourner une application que vous avez utilisée précédemment et qui était sur votre disque dur avant d'avoir fait la mise à jour vers Mountain Lion, et Gatekeeper n'intervient pas du tout.
Les applications "venant de Mac App Store" sont faciles à identifier par les utilisateurs et, grâce à la signature de code, par l'OS lui-même.
Finalement, nous en arrivons à l'expression "développeurs identifiés". Cela fait référence au nouveau programme d'Apple d'identification des développeurs (Developer ID). Les développeurs ont toujours pu signer leurs applications de leurs propres clés privées. Le programme d'Apple "Developer ID" les autorise à signer leur application avec un ID qui leur est fourni par Apple. C'est la différence entre recevoir un permis de conduire de l'état et fabriquer son propre permis chez soi.
Le developer ID associe un morceau de logiciel à une entité légale responsable - une personne ou une société -, qui a obtenu l'autorisation d'Apple, et a accepté les termes du programme de développement Mac d'Apple. Il n'y a pas d'autres restrictions pour les applications Mac signées à l'aide d'un Developer ID officiel d'Apple. Elles n'ont pas besoin d'être ensablées ; elles peuvent requérir des privilèges d'administrateur ; elles peuvent appeler des APIs privées. Et à la différence des applications Mac qui ne sont pas signées avec un Developer ID officiel, elles pourront tourner après avoir été téléchargées par Safari sur une installation de Mountain Lion.
La tentative de télécharger et de lancer une application non signée, ou signée avec autre chose qu'un Developer ID d'Apple sur Mountain Lion dans sa configuration par défaut affiche une boîte de dialogue comme celle-ci :
Fig. 2 : Gatekeeper dit que la porte est fermée.
Notez l'absence de toute option pour continuer le téléchargement de l'application. Il y a au moins trois façons de résoudre le problème. La première est de configurer Gatekeeper pour autoriser les applications chargées depuis "n'importe où". En faisant cela, vous récupérez un avertissement sérieux :
Fig. 3 : Vous voulez votre liberté ? prenez-la.
Continuer ainsi entraînera votre système Mountain Lion à se comporter de la même façon que Lion quand il fait tourner des applications téléchargées. Vous aurez toujours le dialogue d'alerte de quarantaine lors du premier lancement de l'application téléchargée, tout comme sur Lion.
La seconde option est de laisser Gatekeeper à son réglage par défaut, mais à faire un clic-droit sur l'application et à choisir "Ouvrir" dans le menu contextuel. En utilisant les premières constructions de Mountain Lion, j'ai cru que c'était une bogue. mais maintenant, c'est proposé directement dans l'OS, et listé comme une possibilité sur le site web d'Apple. Apparemment, Apple a décidé que cette technique de lancement d'application est suffisamment obscure pour qu'elle puisse faire confiance à celui qui l'utilise pour prendre de bonnes décisions en matière de sécurité du logiciel.
La troisième option est de supprimer l'attribut étendu qui marque une application téléchargée à être mise en quarantaine. On peut le faire à l'aide du terminal en lançant une commande comme cell-ci :
% xattr -d com.apple.quarantine NicePlayer.app
Après cela, l'application va se lancer sans se plaindre.
Ces trois procédures -modifier les réglages de sécurité dans Préférences Système, faire un click droit pour ouvrir l'application, ou lancer un outil en ligne de commande, sont très peu susceptibles d'être exécutés par la plupart des utilisateurs de Macs. C'est pourquoi le réglage par défaut de Gatekeeper est si important.
En autorisant Mountain Lion à faire tourner des applications téléchargées depuis le Mac App Store et celles qui sont signées par un Developer ID officiel d'Apple, Apple a rendu plus difficile pour un logiciel malfaisant de s'installer sur le système à la place d'une application téléchargée, tout en permettant encore à des développeurs légitimes un accès non restreint de leurs utilisateurs à l'aide de tous les canaux existants.
Et pour finir, il y a le bouton radio Gatekeeper du haut, qui n'autorise à tourner que les applications téléchargées sur le Mac App Store (ou bien, si elles ont été téléchargées par une application qui n'a pas l'attribut étendu de quarantaine, mais là, je cherche des poux). En dépit de la création du programme developer ID, il semble inévitable qu'il subsistera un réglage par défaut dans les futures versions d'OS X.
Cela peut sembler lourd, mais c'est en réalité un compromis raisonnable. A la fin des temps, le scénario pourrait être une version de OS X qui fonctionne comme iOS et refuse de faire tourner toute application qui ne vient pas de l'AppStore, avec aucune manière "légitime" de contourner l'obstacle. Le refus de faire tourner des applications à moins qu'elles ne viennent du Mac App Store, avec deux options de comportement différent à la portée d'un clic est une ligne de conduite beaucoup plus ouverte, qui a presque les mêmes avantages.
De toute façon, ne parlons pas de demain. Aujourd'hui, le comportement par défaut de Gatekeeper laisse la porte grande ouverte à presque tous les développeurs, tout en donnant aux utilisateurs experts la liberté qu'ils désirent.