アシアルブログ

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

Ubuntuで指紋認証

こんにちは。小川です。

僕はプライベートで使っているノートPCにUbuntuを入れているのですが、以指紋認証機能をみつけて使ってみたところ不覚にも感動してしまったので、今回はそれを紹介したいと思います。

ThinkFinger - UbuntuWiki

簡単に設定の流れを説明すると、パッケージのインストール後にいくつかのコマンドでテストをし、完了後にユーザの登録を行います。ちなみに僕がインストールしたときはUbuntu 7.10でしたので今回も7.10をベースに進めていきます。(現在は8.04にアップグレードしましたが、今のところ問題なく動いています。)

まずは/etc/apt/sources.listに以下を追加し、その後apt-getでインストールを行います。



deb     http://ppa.launchpad.net/jldugger/ubuntu gutsy main restricted universe multiverse
deb-src http://ppa.launchpad.net/jldugger/ubuntu gutsy main restricted universe multiverse




$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install thinkfinger-tools  libpam-thinkfinger 


これでパッケージはインストールされました。次に動作テストに入ります。まずは一度指紋を登録します。以下のコマンドを実行し、3回指でなぞります。



$ sudo tf-tool --acquire


次に先ほど登録した指紋について正しく認証できるかをテストします。以下のコマンドを実行し、1回指でなぞってみてください。



$ sudo tf-tool --verify


最後の1文に以下が表示されれば認証成功となります。



Result: Fingerprint does match.


気になる方は指を変えて、間違って認証されないかためしてみてください。

以上でテストは完了です。次はいよいよ、普段の認証時に指紋認証を有効にするように設定をしていきます。

/etc/pam.d/common-authを開き、以下のようにします。



auth    sufficient      pam_thinkfinger.so
auth    required        pam_unix.so try_first_pass nullok_secure


次に以下のコマンドを実行し、先ほどのテストの時と同じようにしてユーザを登録します。以下はogawaユーザの例になります。



$ sudo tf-tool --add-user ogawa


このとき"Unable to set ACL of aquired file: /etc/pam_thinkfinger/your-login.bir: Operation not supported"のようなエラーが出るかもしれませんが、これは無視して結構です。

最後になりますが、起動時にカーネルモジュールがロードされるように設定が必要です。/etc/modulesを開き、以下のように"uinput"を追加しましょう



fuse
lp
sbp2
uinput


これで設定は完了しました!とりあえず再起動します。最初の試練であるログイン画面に辿り着いたら、パスワード入力の変わりに落ち着いて指でなぞりましょう。僕は感動のあまり、すぐさまログアウトしてしまいました。

ちなみに複数の指を登録する方法とかは調べてません。もう1度--add-userした場合は確か上書きされたと思います。またこれも調べていないだけですが、スクリーンセーバーの解除時にパスワードを要求している場合は指紋認証は有効になっていません。ここらへんはまた暇なときに調べてみようと思います。

長々と説明しましたが、基本的に今説明したことはほぼ全て、はじめに紹介したところに書いてあります。パスワードでの認証も可能ですので、指の機嫌が悪いときは素直にパスワードを打ちましょう。正直別に必要ないですが、あえて理由をつけるのであれば「そこに指紋認証があるから」です。興味がある方はぜひ使ってみてください。