Una cosa che mi è sempre piaciuta è l’autenticazione su di un sistema tramite device esterno, sia esso smart-card, token USB o altro.
Il problema di molti di questi sistemi è che spesso richiedono sforzi abbastanza elevati o hardware abbastanza costosi: tra smart card e lettore si arriva tranquillamente a 20/30€, idem per un token USB.
Se si utilizza Linux la soluzione tuttavia è semplice ed economicissima: esiste infatti un software, sviluppato da Andrea Luzzardi che ci permette di usare una normalissima penna USB per ogni genere di autenticazione o di azione supportata da PAM.
La cosa migliore è che la chiavetta non deve neanche essere dedicata allo scopo ma può tranquillamente essere riutilizzata per salvare dati, ecc…Viene infatti creata una cartellachiamata .pamusb al suo interno con dentro un file (cifrato) per ogni computer e ogni utente che si deve autenticare; una chiavetta, quindi, più computer più utenti. Questo vuol dire che io adesso con questa chiavetta posso:
- Inserirla nel pc di casa, accenderlo ed evitare di mettere la password per il login: il modulo riconosce l’hardware e il file-chiave e fa l’autologin. Se ovviamente la chiavetta non è inserita chiede la password come al solito…
- Autenticarmi in console: basta scrivere il mio login e premere invio per evitare di digitare la password (ovviamente funziona anche in modalità grafica con gdm e kdm).
- Usare sudo senza che mi venga richiesta la password: la chiavetta c’è, c’è l’autenticazione…
- Bloccare la sessione (e far partire il salvaschermo) quando sfilo la pennetta dal PC e sbloccarla automaticamente quando viene reinserita.
- Tutte le autenticazioni che vi possono venire in mente…e molto di più!
Prima di passare alla mini-guida vorrei rassicurare chi come me è un paranoico della sicurezza: da quanto ne so il modulo è ben robusto e funzionante, se non si ha la chiavetta non ci si autentica. Inoltre il programma riconosce anche il modello e il serial number dell’hardware, quindi copiare solamente il file cifrato sarebbe inutile. Infine il meccanismo si basa sul noto concetto di One-time-pad, il che vuol dire che se la chiavetta finisse nelle mani sbagliate basta cancellare subito il file corrispondente nella propria home (creato automaticamente dal programma) per rendere inutile qualsiasi tentativo successivo di utilizzo su quel PC.
Per utilizzare il software sotto Ubuntu 9.04 basta seguire questi pochi semplici passi:
- Installare tramite apt-get i seguenti pacchetti:
sudo apt-get install pamusb-tools libpam-usb - Inserire la chiavetta USB
- Lanciare il seguente comando per aggiungere la chiavetta al file di configurazione:
sudo pamusb-conf --add-device MyUSB
(Ovviamente potete cambiare MyUSB in qualsiasi altro nome) - Se più di un dispositivo rimovibile è connesso al PC viene presentato un rapido menu da cui è possibile scegliere l’hardware giusto.
- Lanciare il comando per aggiungere l’utente che usufruirà dell’autenticazione tramite USB al file di configurazione:
sudo pamusb-conf --add-user nomeutente
(Cambiate nomeutente con il vostro username o con quello di qualsiasi altro utente, ad esempio root) - Controllare che l’autenticazione vada a buon fine con il comando
pamusb-check nomeutente - Se tutto è andato per il verso giusto, è il momento di decidere come autenticarsi. I seguenti passi rispecchiano le impostazioni descritte precedentemente, per modificarle consiglio il sito ufficiale che contiene ottime guide ed howto.
- Modificare (come root) il file /etc/pam.d/common-auth aggiungendo
auth sufficient pam_usb.so
subito prima di
auth [success=1 default=ignore] pam_unix.so nullok_secure - Salvare e chiudere.
- Modificare il file /etc/pam.d/gdm-autologin (il nome è esplicativo) aggiungendo
auth sufficient pam_usb.so
subito prima di
auth required pam_permit.so
e commentando quest’ultimo - Abilitare l’autologin per l’utente che avete scelto (sconsiglio vivamente la cosa nel caso abbiate deciso di utilizzare l’utente root, così come la modifica del file gdm-autologin nel caso) attraverso il menu (se usate Gnome) System->Administration->Login Window->Security
- A causa di un bug in pmount (vedi https://bugs.launchpad.net/ubuntu/+source/pmount/+bug/296164) che impedisce alla pennetta di essere montata correttamente all’avvio, aggiungere al file /etc/pmount.allow (come root) la riga
/dev/sda1
nel caso la vostra pennetta venga di solito riconosciuta come /dev/sda1 - Aggiungere al file /etc/pamusb.conf, tra i tag <user> e </user> le seguenti righe:
<agent event="lock">gnome-screensaver-command --lock</agent>
<agent event="unlock">gnome-screensaver-command --deactivate</agent> - Salvare e chiudere. In questo modo dovrebbe essere abilitato il blocco e lo sblocco dello schermo tramite USB.
- Infine far partire all’avvio il programma pamusb-agent aggiungendolo a System->Preferences->Startup Applications
- Riavviare e testare!
Alcuni problemi che sono sorti:
- A volte non si riesce comunque a fare’autenticazione: la cosa migliore in questo caso e cancellare la cartella .pamusb nella home dell’utente configurato e sulla pennetta e riprovare.
- A volte rimangono delle cartelle inutilizzate chiamate pamusbxxxxx sotto /media/, sempre per il problema di pmount
In ogni caso la cosa migliore è consultare il sito ufficiale del progetto:
http://pamusb.org
EDIT: ecco qui un’altra guida, più aggiornata e completa.
