Finalità dell'articolo
Avvalendosi di una pendrive come dispositivo identificativo, si intende illustrare la realizzazione con pam_usb di tre schemi di autenticazione :
- unique: l'autenticazione ha successo quando il "nome utente" (username) corrisponde alla pendrive collegata al sistema; non è mai richiesto l'inserimento del "codice segreto" (password);
- alternative: l'autenticazione ha successo quando il "nome utente" (username) corrisponde al "codice segreto" (password) fornito (anche se la pendrive non è collegata); se, viceversa, la pendrive è collegata, non è richiesto l'inserimento del "codice segreto" (password);
- additional: l'autenticazione ha successo quando il "nome utente" (username) corrisponde alla pendrive collegata al sistema e, contemporaneamente, il "nome utente" corrisponde alla "codice segreto" (password, che è chiesto obbligatoriamente);
Inoltre, a scopo didattico, il sistema sarà configurato in modo che, una volta terminata con successo l'autenticazione, la successiva rimozione della pendrive attivi in automatico lo screen saver così come l'eventuale ulteriore re-inserimento ne causi la disattivazione.
Identificazione del dispositivo
Una pendrive può essere identificata in base ad alcuni dati (generalmente non modificabili) impostati dal produttore ed, in particolare:
- codice e descrizione del produttore;
- codice e descrizione del prodotto;
- numero seriale;
- identificativo universale della partizione (Universally Unique Identifier o UUID).
Si riporta, di seguito, un esempio ottenuto impartendo come amministratore di sistema (utente root) il comando:
# lsusb -v
che genera il seguente output:
[.. omissis.. ] Bus 002 Device 002: ID 13fe:1f00 Kingston Technology Company Inc. \ DataTraveler 2.0 4GB Flash Drive [.. omissis ..] Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x13fe Kingston Technology Company Inc. idProduct 0x1f00 DataTraveler 2.0 4GB Flash Drive [..omissis..] bcdDevice 1.10 iManufacturer 1 Kingston iProduct 2 DataTraveler 2.0 iSerial 3 5B8509000178 [... omissis ...]