Table des matières

, , ,

Pam Blue

PAM (Pluggable Authentification Module) est le système qui permet l'authentification de chaque utilisateur sous GNU/Linux.
Pour plus d'information sur PAM je vous renvoie sur l'introduction à PAM écrite par Sébastien Augereau.

Introduction

Le but de cette page est d'utiliser un appareil bluetooth (un téléphone par exemple) pour vous identifier à votre session, ainsi vous n'aurez plus besoin de taper votre mot de passe à chaque connexion mais uniquement votre nom d'utilisateur.

N'utilisez pas PAM Blue pour vous connectez si vous avez des données sensibles sur votre ordinateur.
PAM Blue utilise comme moyen d'identification le nom du périphérique bluetooth ainsi que son adresse MAC. Or une adresse MAC peut être modifiée par différents moyens plus ou moins complexes. Ce serait bête qu'une personne accède à votre ordinateur en contournant votre mot de passe grâce à son téléphone portable.

Pré-requis

Matériel nécessaire

Paquets nécessaires

Votre appareil Bluetooth

La première étape est de connaitre l'adresse MAC de votre appareil bluetooth.

Pour ce faire, placez votre appareil bluetooth à proximité de votre ordinateur et tapez la commande suivante :

$ hcitool scan
Scanning ...
00:1E:E1:6A:D4:41	Mizuho

Notez l'adresse MAC (00:1E:E1:6A:D4:41) et le nom de l'appareil (Mizuho) pour plus tard.

Si votre appareil bluetooth n'est pas détecté à cette étape, pensez à vérifier que la "visibilité bluetooth" de ce dernier est bien activée.

Installation

Via les Sources

Les sources sont disponibles à cet endroit.

Via les dépôts

installez les paquets libpam-dev et libpam-blue.

L'installation du paquet libpam-dev n'est pas indispensable au bon fonctionnement de l'authentification par bluetooth.

Configuration

Pam Blue

Pour commencer nous allons éditer le fichier /etc/security/bluesscan.conf.

Ce fichier devrait ressembler à ceci :

general {
  # the normal timeout for scanning
  # watch out for a to tiny timeslot for scanning
  # values between 3 and 15 seconds are valid
  timeout = 3;
}
# configuration for user korzendorfer

korzendorfer = {
  
    # bluetooth device name
    name    = tux;
  
    # bluetooth mac address
    bluemac = 54:34:34:34:34:34;

    # a seaparate timeout
    timeout = 10;
}
(...)

Changez dans ce fichier le nom de l'appareil bluetooth et son adresse MAC par le nom et l'adresse MAC récupérée un peu plus tôt par le scan ainsi que l'utilisateur par le nom de votre session. Pour mon exemple le fichier devient donc :

(...)
nathan = {
    # bluetooth device name
    name    = Mizuho;
    # bluetooth mac address
    bluemac = 00:1E:E1:6A:D4:41;
    # a seaparate timeout
    timeout = 10;
}
(...)
Le nom du périphérique ne doit pas contenir d'espace, sous peine de provoquer une erreur de parsing de la conf

Pam Blue est configuré. Il faut donc maintenant dire au système d'utiliser PAM Blue pour l'authentification à chaque fois que ce sera possible.

Système

Nous allons faire en sorte que l'identification de session gnome se fasse par PAM Blue à la place de l'identification classique.

Pour ce faire, éditez le fichier /etc/pam.d/gdm (pour Kubuntu, éditez /etc/pam.d/kdm, pour Xubuntu xdm, etc.)

Pour les distribution Ubuntu utilisant LightDM (par exemple la version 12.04) le fichier à modifier est /etc/pam.d/lightdm

Le fichier ressemble à ceci :

#%PAM-1.0
auth    requisite       pam_nologin.so
auth    required        pam_env.so readenv=1
auth    required        pam_env.so readenv=1 envfile=/etc/default/locale
@include common-auth
auth    optional        pam_gnome_keyring.so
@include common-account
session required        pam_limits.so
@include common-session
session optional        pam_gnome_keyring.so auto_start
@include common-password

Nous allons le modifier pour qu'il ressemble à ceci :

#%PAM-1.0
auth    requisite       pam_nologin.so
auth    required        pam_env.so readenv=1
auth    required        pam_env.so readenv=1 envfile=/etc/default/locale

auth	  sufficient	pam_blue.so
  
@include common-auth
auth    optional        pam_gnome_keyring.so
(...)

Voilà. C'est terminé. Redémarrer session et une fois sur le login entrer votre nom d'utilisateur et si tout s'est bien passé ainsi que si votre périphérique est bien à proximité vous n'aurez pas à rentrer votre mot de passe pour entrer sur votre session.

Commentaires

Vous pouvez configurer votre système pour qu'il utilise PAM Blue à chaque fois que vous devez rentrer un mot de passe (sudo par exemple), cependant soyez bien conscient que ceci peut mettre en danger la sécurité de votre système (notamment en cas de connexion à distance). C'est pour cela que je n'expliquerais pas ici comment faire. Si vous voulez vraiment aller plus loin vous avez les bases pour chercher seul.
Si votre appareil bluetooth n'est pas à portée au moment où vous vous identifiez sur votre session, au bout de 10 secondes1) PAM Blue cède la place à l'identificateur normale pour vous permettre de rentrer votre identifiant

Sources et Références


Contributeurs : Nathanos

1)
Durée configurable dans le fichier /etc/security/bluesscan.conf