Kuchařka pro zprovoznění čtečky otisku prstu na notebooku IBM ThinkPad

Majitelé novějších modelů notebooků IBM ThinkPad s integrovanou čtečkou otisku prstu mají možnost vyzkoušet tento alternativní způsob přihlašování k počítači už i v Linuxu. Návod, jak čtečku zprovoznit v SUSE 10.0, přináší tento článek.

Čtečka otisku prstu je na notebooku IBM ThinkPad připojena k USB sběrnici a pro Linux existuje proprietární user-space USB ovladač a také rozhraní pro PAM, které umožňuje autentizaci.
Varování: Veškeré kroky níže uvedené podnikáte na vlastní riziko. Čtečku otisku prstu se povedlo zprovoznit v SUSE 10.0. Konfigurace následne přežila upgrade na SUSE 10.1, to ale neznamená, že vše bude stejně hladce fungovat i u vás. Autorka článku neručí za žádné škody způsobené aplikováním tohoto postupu.

Co potřebujeme

  • Notebook IBM ThinkPad (R52, T42-3, T60, X41, X60, Z60)
  • C/C++ kompilátor (doporučuji v YaSTu nainstalovat celý výběr C/C++ kompilátor a nástroje)
  • Balíček pam-devel

Instalujeme Bioapi

Instalovat budeme do adresáře /root/fingerprint

Nejdříve stáhneme zdrojové texty (přímý odkaz), rozbalíme je a přesuneme se do vytvořeného adresáře:

wget http://www.qrivy.net/~michael/blua/bioapi/bioapi-latest.tar.bz2
tar xjvf bioapi-latest.tar.bz2
cd bioapi-x.y.z

Spustíme konfigurační skript (bohužel, bioapi není v SUSE přeložitelné s grafickými Qt nástroji, proto parametr --with-Qt-dir=no) a instalujeme (jako uživatel root):

./configure --with-Qt-dir=no
make
export LD_LIBRARY_PATH=/usr/local/lib
make install

Na závěr zkopírujeme příslušné hlavičkové soubory do adresáře /usr/include:

cp include/bioapi_util.h include/installdefs.h imports/cdsa/v2_0/inc/cssmtype.h /usr/include

Instalujeme a konfigurujeme ovladač

Instalovat budeme do adresáře /root/fingerprint/driver

Stáhneme zdrojové texty ovladače (přímý odkaz), rozbalíme je a spustíme instalační skript (jako uživatel root):

wget http://www.upek.com/support/download/TFMESS_BSP_LIN_1.0.zip
unzip TFMESS_BSP_LIN_1.0.zip
sh install.sh

Test ovladače a vložení otisku prstu

Přesuneme se do příslušného adresáře

cd /root/fingerprint/driver/NonGUI_Sample

Ze souboru main.c smažeme řádek #include "port/bioapi_port.h a zkompilujeme jej:

gcc -o Sample main.c -L/usr/local/lib -lbioapi100 -DUNIX -DLITTLE_ENDIAN

Nyní můžeme spustit aplikaci pro vložení otisku prstu:

./Sample

Nejdřív vybereme možnost 'e' (enroll - vložit), vložíme uživatelské jméno a následně otisk prstu. Následně zvolíme 'v' (verify - ověřit) a vložíme otisk znova pro ověření. Takto se vytvoří soubor s příponou .bir (doporučuje se uložit otisk pro uživatele root a minimálně jednoho dalšího uživatele).

Konfigurujeme PAM pro autentizaci pomocí otisku prstu

Instalovat budeme do adresáře /root/fingerprint

Nejdříve stáhneme zdrojové texty (přímý odkaz), rozbalíme je a přesuneme se do vytvořeného adresáře:

wget http://www.qrivy.net/~michael/blua/pam_bioapi/pam_bioapi-latest.tar.bz2
tar xjvf pam_bioapi-latest.tar.bz2
cd pam_bioapi-x.y.z

Pro správnou funkci je nutno stáhnout ještě patch (přímý odkaz) a aplikovat jej:

wget http://badcode.de/downloads/fingerprint.patch
patch -p0 

Nainstalujeme PAM bioapi modul:

./configure && make
make install
cp /usr/local/lib/security/* /lib/security/

Nastavíme proměnnou prostředí a vytvoříme adresář (toto sériové číslo je bohužel natvrdo naprogramované v pam_bioapi modulu):

SERIAL={5550454b-2054-464d-2f45-535320425350}
mkdir -p /etc/bioapi/pam/$SERIAL

Do tohoto adresáře nakopírujeme uložené otisky prstů (*.bir soubory)

cp /root/fingerprint/driver/NonGUI_Sample/*.bir /etc/bioapi/pam/$SERIAL

A nyní už zbýva jen upravit soubor /etc/pam.d/common-auth do následující podoby:

auth       sufficient   pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/
password   sufficient   pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/
auth       required     pam_unix2.so nullok_secure
#auth   required        pam_env.so
#auth   required        pam_unix2.so

Můžeme restartovat počítač a poprvé se příhlásit pomocí otisku prstu. Navíc odteď pokaždé, když bude vyžadována autentizace (příkaz su, odemčení šetřiče obrazovky), se objeví malé okénko, vyzývající k vložení otisku prstu. Po třech neúspěšných pokusech je ale ještě stále možnost přihlásit se klasicky pomocí hesla

Několik poznámek na závěr

  • Pokud počítáte i s přihlašováním k notebooku pomocí ssh, doporučuji upravit také soubor /etc/pam.d/sshd do následujícího tvaru:
    #%PAM-1.0
    auth    required        pam_env.so
    auth    required        pam_unix2.so
    auth     required       pam_nologin.so
    account  include        common-account
    password include        common-password
    session  include        common-session
    
  • Některé aplikace (YaST, KDE Control Center) vyžadují vložení otisku prstu dvakrát. Nepovedlo se mi zjistit proč :-)
  • V GNOME (gdm) se při přihlašování objeví ikonka vyzývající k vložení otisku prstu
  • KDE (kdm) žádnou takovou výzvu nemá, jednoduše vložte otisk prstu a přihlašte se

Odkazy

Odkaz na původní článek:
http://www.novell.com/coolsolutions/trench/16727.html
Další čtení na Thinkwiki:
http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader

Komentáře

kmachalkova odpověděl -

Uprimne priznam, ze nevim, nezkousela jsem (a ono se tenhle model skoro nikde v navodech nezminuje, asi je prilis novy ;-) ). Ale nemyslim si, ze by se hardware od te doby natolik zmenil, aby na nem v clanku uvedeny driver nefungoval. Muzete to kazdopadne otestovat.