2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Linuxでも指紋認証がしたい

Posted at

ことのはじめ

  • Macを使っているとTouch IDなる指紋認証の仕組みが存在しており、起動以降はTouch IDを使えば様々な認証をID/Passwordの入力なく行える。
  • 指紋認証は基本的に本人認証の方法としては安全なように思うしPasswordを覚えたりする手間を思えば全部の認証を指紋で行いたいところだ。

ところでLinuxをデスクトップで使っていると簡単にはこれが行えないようだった。

調査

Linuxで指紋認証を行うための手段

少し調べたところ、下記のような手段があった

  • (1) fprintd対応済みデバイスを使うかドライバを書く

最初、USB形式の指紋認証機器を購入し、そのLinux向けドライバを書けば早いのではないかと思っていたが色々と調べるうちに困難だとわかってきた。というのは商用の指紋読み取りデバイスはホストPCとUSB機器の通信が暗号化されているために、そこのリバースエンジニアリングが必要になるからだ。

このあたりは下記のサイトが参考になった

というわけで第二の選択肢を取ることにした

これはかなり行けそうだったのでAliExpressで機材を購入した

検討

  • 参考に動画を見ていると、AS608に接続するインターフェースはシリアル通信(UART)であることがわかった
  • 次に、RaspberryPiやArduinoを使わず直接Linux(Debian/Ubuntu)でインテグレーションを行えるソフトウェアが公開されているのを発見した

インテグレーション

物理デバイス編

  • まず指紋認証センサーを圧着端子でUSB-シリアル変換器でつないだ
  • USB-シリアル変換器はPL2303というものを使った、「USB UART TTLケーブル」とかで検索すればAliExpressで買える
  • USBの口はもちろんホストPCに接続する、うまく接続できていれば指紋認証センサーが光る

機器とUSBシリアル変換器の接続は下記のようにする(TX-RXはそれぞれ逆につなぐ)

[デバイス]   [USB-シリアル変換器]
GND      -  GND
RX       -  TX
TX       -  RX
3V3      -  3.3V
T-OUT       使わない
T-3V3       使わない

うまく接続できていればdmesgの結果に/dev/ttyUSB0が出てきてシリアル通信の準備ができる

kernel: [ 8440.889059] pl2303 1-7.1:1.0: pl2303 converter detected
kernel: [ 8440.889744] usb 1-7.1: pl2303 converter now attached to ttyUSB0

ソフトウェア編

  • PAM Fingerprint に記載の手順に従ってパッケージをインストールする
    • ここ、実はうまくいかなかったのでローカルでパッケージをビルドした

ともあれ、後はPAM Fingerprintで配布されているコマンドを使うと指紋認証デバイスへの指紋の登録とUNIXユーザーへの関連付け / 登録された指紋の削除 / 指紋のチェックがそれぞれできる

# pamfingerprint-conf
usage: pamfingerprint-conf [-h] [--add-user NAME] [--remove-user NAME] [--check-user NAME] [--version]

PAM Fingerprint configuration program:

options:
  -h, --help          show this help message and exit
  --add-user NAME     Adds a new user.
  --remove-user NAME  Removes a user.
  --check-user NAME   Checks fingerprint for an existing user.
  --version, -v       Prints version and exits.

使ってみた感触と今後

  • 指紋認証の判定自体はスマホの指紋認証等よりは判定が厳しい印象
  • PAM Fingerprintはパッケージ内部にPAMの設定ファイルも組み込まれているため、ちゃんと動いていればLinuxログイン時の指紋認証ログインも可能となる
  • 1Passwordとの連携もできるのだが、どうやら1PasswordはPC初回起動時に1度はマスターパスワードを入れないとだめらしくちょっと不便だった(2回目の認証は指紋認証で可)

後は機材がむき出しなので、なにかを使ってケースへの格納をして見た目をきれいにしたいなと思っている。

参考サイト

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?