Debian Squeeze: Anmeldung mit Gesichtserkennung

Nachdem wir einen entfernten SSH-Login sicher gemacht haben, sollte ja auch der lokale Login an einem Netbook, welches man überall mitnimmt auch vorhanden sein.
Da ich encfs nutze, sind meine Laufwerke verschlüsselt. Sie werden nach einer weiteren Passwortabfrage nach Login entschlüsselt. Also Loginpass !=Encfspass. Warum propagandieren eigentlich so viele Truecrypt wenn der Kernel schon Alles an Board hat?
Somit habe ich mich einmal durch das Internet gesucht und ein Modul für PAM gefunden, welches Gesichtserkennung unterstütz und es ist auch ansprechbar für reine Shellnutzer.
Also habe ich mir die Sourcen von der Downloadseite pam-face-authentication-0.3.tar.gz des Projektes pam-face-authentication heruntergeladen.
Nach dem entpacken des Verzeichnisses der Wahl wurden erst einmal die Abhängigkeiten installiert:

root@sayuri:/home/seraphyn# aptitude install libpam0g-dev cmake python-opencv libx11-6 libx11-dev libqt4-dev libqt4-core libcv-dev libcv2.1 libcvaux-dev libcvaux2.1 libhighgui-dev libhighgui2.1 -y

Und dann ging es an das kompilieren:

root@sayuri:/home/seraphyn/tmp/googlepam/pam-face-authentication-0.3# mkcd build
 root@sayuri:/home/seraphyn/tmp/googlepam/pam-face-authentication-0.3# cmake -D CMAKE_INSTALL_PREFIX=/usr ..
 root@sayuri:/home/seraphyn/tmp/googlepam/pam-face-authentication-0.3# make && make install

Wer möchte, kann natürlich anstelle des make && make install sich auch ein Debianpaket bauen

Als nächstes sollte der Gesichtstrainer benutzt werden, dies geschieht als User mit qt-facetrainer.
Gute Beleuchtung sollte schon sein und man sollte so viele Mitschneiden wie möglich. Es werden in dem Fall verschiedene Sets angelegt. Unter Advanced lässt sich noch die höhe der Sicherheit einstellen. Mehr Auskunft über das Verfahren gibt die Seite LIFEASIKNOW-IT mit dem Artikel PAM Face Authentication Musings: Face Verification using cascaded MACE and LBP based Classifier in welchem auch PDFs zu dem Thema verlinkt sind.

Nachdem diese Hürde geschafft ist bearbeitet man die Datei /etc/pam.d/login und fügt ein auth required pam_face_authentication.so hinzu.
Als Test sollte man erst einemal sufficient nehmen anstelle von required ;)
Wenn Alles wie gewünscht funktioniert braucht man die Fallback-Lösung nicht mehr und kann es mit required scharf stellen.
Wer das ganze noch für ein substitude user (su) haben möchte muss die Datei /etc/pam.d/su im gleichen Stil bearbeiten. Auch hier gilt erst sufficient, dann required. Nicht vergessen als root auch ein qt-facetrainer zu machen, sonst hat die UID keine Sets anhand man das Gesicht erkennen kann.
Wem das ganze mit einem netten „Login timed out after 60 seconds“ quittiert wird, sollte sich mal das File /etc/login.defs anschauen und zwar den Punkt LOGIN_TIMEOUT
Das Ganze geht auch noch für Loginmanager, aber da ich keinen benutze habe ich es hier nicht abgedeckt.

Das Ganze hat aber keinen Sinn, wenn Euer / nicht verschlüsselt ist, denn dann kann man per Grub, Live-Image das ganze aus PAM rausschmeissen.
Meine Empfehlungen für ein Netbook/Laptop im absoluten Paranoiamode sind deshalb:
– Biospasswort
– Grubpassword
– Festplatte/Ordner per encfs/luks verschlüsseln
– OTP setzen für die Loginshell
– Gesichtserkennung für die Loginshell
– USB-Stick/Smartcard mit Zertifikat
– Wenn Dropbox dann gpg
– Der Rest ergibt sich von selbst wie Emailverschlüsselung etc.
Klar ist das vielleicht überspitzt, aber es ist machbar und sind nette Hürden.

Viel Spaß mit der erweiterten Sicherheit

9 Kommentare

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.