Se passer de mot de passe avec sa carte d’identité électronique belge avec Tiger

J’avais déjà fait ça avec différents OS de chez Apple, mais jamais avec Tiger. Ca ne va servir à personne, mais comme j’ai quelques vieilles machines sous cet OS, je montre que ça reste possible.
gates

La raison principale, outre le fait que j’ai une carte d’identité belge, c’est qu’un jour, un vendeur eBay s’est trompé et m’a envoyé un lecteur de smartcard PCMCIA à la place de ma commande. Je l’avais gardé et j’ai (enfin) décidé de le tester. Comme j’ai récupéré récemment un PowerBook justement équipé en PCMCIA, j’ai testé.

Dans le PowerBook

Dans le PowerBook

C’est plutôt compliqué, je dois l’avouer.

D’abord, les pilotes pour le CardMan 4040. Par défaut, sous Tiger, ça ne fonctionne pas, même avec les pilotes. Deux solutions : adapter le pilote (ce qui empêche la prise en charge du branchement à chaud) ou mettre à jour PCSC. Question de facilité avec les vieux OS, j’ai préféré la première.

Le lecteur

Le lecteur

Il faut installer le pilote, puis aller dans le Terminal et lancer la commande suivante.

sudo nano /etc/reader.conf

Dans le fichier, il faut copier les données suivantes.

FRIENDLYNAME "OMNIKEY CardMan 4040"
DEVICENAME CMOB_SOCKET
LIBPATH /usr/local/pcsc/drivers/ifdok_cm4040_macos-2.0.0.bundle
CHANNELID 0

Ensuite, il faut redémarrer, avec le lecteur branché et la carte insérée.

Seconde étape, mettre à jour Tiger pour activer la connexion via une carte (via ce blog)

Dans le Terminal.

sudo -s
cd /etc/
cp authorization authorization.orig
cp authorization /tmp/authorization.mod
nano /tmp/authorization.mod

A modifier, dans le fichier.

Ligne 452 : après la ligne <string>builtin:auto-login,privileged</string>, ajouter <string>builtin:smartcard-sniffer,privileged</string>.
Après la ligne <string>builtin:reset-password,privileged</string> remplacer <string>authinternal</string> par <string>builtin:authenticate,privileged</string>.

Ligne 649 : ajouter la ligne <string>builtin:smartcard-sniffer,privileged</string> juste après le <array>.
Après la ligne <string>builtin:authenticate</string> remplacer <string>authinternal</string> par <string>builtin:authenticate,privileged</string>.

Sauver et taper la ligne suivante.

cp /tmp/authorization.mod /etc/authorization

Maintenant, taper la ligne suivante pour récupérer les clés de la carte d’identité.

sc_auth hash

Le résultat donne un truc comme ça.

3F5C816C10AB60926E2E8A3CD9096C1F8AF34C9C PrK#2 (authentication)
35BDB8600FA219204D28FAD856380F6E06123B62 PrK#3 (signature)

Maintenant, il faut lier votre utilisateur à la carte. Ici, mon utilisateur est dandu.

sc_auth accept -u dandu -h 3F5C816C10AB60926E2E8A3CD9096C1F8AF34C9C

Normalement, maintenant, ça devrait fonctionner. Il suffit de redémarrer et le système va demander le code PIN de la carte au démarrage, à la place du mot de passe. Il est possible de débrancher la carte à chaud, mais pas de la remettre.

Le résultat

Le résultat