アシアルブログ

アシアルの中の人が技術と想いのたけをつづるブログです

Debianで指紋認証を使用する

最近は指紋認証を搭載したPCが増えてきました。業務用グレードなら大抵は標準装備かオプションで存在します。
便利そうなので(今更ながら)自分も導入してみました。

なお、今回導入したPCは Thinkpad X61s です。(6番で詳細)

1・モジュールのインストール
Linuxでは、pamを使って認証をしていますので、まずはpamにモジュールを追加します。
Thinkpad 指紋認証ググるとthinkfinger使えと出てきますが、今回はwheezy(testing)に入っているlibpam-fprintdを利用します。



apt-get install libpam-fprintd fprintd


これでpamの設定までしてくれます。簡単ですね。さすがパッケージ。
なお、/etc/pam.d/common-auth に下記のように追加されるはずです。


auth	[success=3 default=ignore]	pam_fprintd.so max_tries=1 timeout=10 # debug

ここのパラメータを調整して、リトライ回数とタイムアウトを設定できます。

2・事前準備
そのままだとxlockなどの一般ユーザ権限で動くアプリがアクセスできないため、
先に /usr/share/polkit-1/actions/net.reactivated.fprint.device.policy を書き換えます。
(ずっと/dev/bus以下のパーミッションが問題かと思ってハマっていました)

内容はただのXMLで、下記のように
net.reactivated.fprint.device.verify と
net.reactivated.fprint.device.enroll の
allow_any を yes に書き換えるだけです。


...
<action id="net.reactivated.fprint.device.verify">
...
   <defaults>
      <allow_any>no</allow_any> ←このnoをyesに書き換え
...
<action id="net.reactivated.fprint.device.enroll">
...
   <defaults>
      <allow_any>no</allow_any> ←このnoをyesに書き換え
...


3・指紋の登録

fprintd-enroll [ユーザ名]
で登録できます。
複数回指紋を読み取らせれば登録完了します。



hoge@:debian~$ fprintd-enroll hoge
Using device /net/reactivated/Fprint/Device/0
Enrolling right index finger.
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-completed


なお、manpageによれば、下記のように -f オプションで指を指定出来ます。


fprintd-enroll -f left-middle-finger hoge


ただし、pamの方で別の指選ぶ方法が不明で調査中です。
とりあえず右の人差し指だけでも使えれば便利なので、人差し指だけで使っています。

4・認証

通常のターミナルで認証や、sudo、XDMなどで指紋認証が使用出来るようになっているはずです。
xlockでは、パスワード認証のプロンプトが出るので、Enterを押してやると指紋を入力出来るようになります。

5・使用感

試しに導入してみましたが便利ですね。
xlock解除の手間が省けていい感じです。
ログインについては・・・ずっと起動しっぱなしなのでそれほど変わらず。

6・おまけ

自分のThinkpad X61s
CPU: Core2 L7300 @ 1.40GHz
RAM: 4GB

確か3,4年位使っていますが、性能は普段の開発なら十分です。
この間、ファンが壊れた事以外は特に問題もなく元気に動いています。
Thinkpadは保守パーツを購入可能なので、ファンは自力で修理。このままあと5年は戦えます。
社内ではいい加減買い換えろとか、macにしろとか言われますが。