Se passer de mot de passe avec sa carte d’identité électronique belge sous Lion et Mountain Lion

J’en parlais la semaine dernière, il est possible d’utiliser une carte d’identité belge (cet affreux pays dégénéré ou les gays se marient en mangeant des frites) comme identifiant pour remplacer le mot de passe de Mac OS X. J’expliquais la manoeuvre avec Snow Leopard, assez simple. Passons à Lion et Mountain Lion…

Je passe sur les explications, on a donc besoin d’un lecteur de cartes (SCR3500 de chez SCM) et d’une carte d’identité belge.

Sous Lion et Mountain Lion, Apple a supprimé les tokend (les fichiers contenant les informations liées aux cartes) mais il est assez simple de les installer. On va donc aller télécharger ce qui est nécessaire. Les fichiers en question sont basés sur l’implémentation de Snow Leopard et l’ensemble est open source.

Il faut donc d’abord installer les Smart Card Services adaptés au système d’exploitation. L’installeur est disponible ne version 2.0b2 et il faut télécharger celui correspondant à son système (Mountain Lion ou Lion).

Dans notre cas, il suffit d’installer le tokend BELPIC et le script pour prendre en charge le login.

Capture d’écran 2013-01-26 à 12.32.26

Une fois que c’est fait, la carte devrait être lisible depuis le trousseau d’accès.

Maintenant, comme pour Snow Léopard, on va associer la carte à un compte utilisateur.

sc_auth hash

Vous aurez une liste de clés, il faut sélectionner la première, celle qui se trouve avant Authentification Key.
Ensuite, il suffit de rentrer la ligne suivante. Il faut utiliser le nom utilisé par Mac OS X pour votre dossier Home, et la clé.

sudo sc_auth accept -u votre_nom_d_utilisateur -h la_cle_complete

Maintenant, enfin, il faut modifier certains fichiers systèmes pour que Mac OS X prennent en charge l’authentification avec une Smart Card. La doc Apple n’est pas très claire (j’ai éclaté une installation de Mac OS X…) mais le blog de Yoann Gini donne la bonne méthode.

Si vous faites une fausse manoeuvre, ça va casser Mac OS X. Vraiment. Donc sauver et vérifier avant de vous lancer que la partition de restauration fonctionne…

D’abord, on sauve le fichier original.

sudo cp /etc/authorization /etc/authorization.bck

Ensuite, on le modifie en ligne de commande.

sudo /usr/libexec/PlistBuddy -c "add rights:system.login.console:mechanisms:0 string builtin:smartcard-sniffer,privileged" /etc/authorization
sudo /usr/libexec/PlistBuddy -c "add rules:authenticate:mechanisms:0 string builtin:smartcard-sniffer,privileged" /etc/authorization

Enfin, on redémarre. En cas de soucis, ça peut arriver, il suffira de démarrer sur la partition de restauration et de remplacer le fichier modifié par la sauvegarde.

Petit truc à savoir, il vaut mieux avoir un Mac OS X bien à jour (Lion 10.7.5 et Mountain Lion 10.8.2) avant de jouer avec ça, la prise en charge était buggée dans les premières versions de Lion… Et pensez à effectuer une sauvegarde du système avant.

Untitled 02 1

Normalement, si ça marche, l’écran de démarrage se modifiera quand vous insérerez la carte dans le lecteur pour vous demander le code PIN, comme dans la vidéo.