パスワードを打ち直さない指紋キー「immurok」、Mac miniやLinuxデスクトップの隙間を埋める

テクノロジー
スポンサーリンク

ノートPCの指紋センサーは便利だ。親指を当てるだけでロックが解けて、sudoも通る。ところが外付けキーボードを使い始めた途端、その手軽さは消える。Mac miniやMac Studio、クラムシェルで閉じたMacBook、Linuxデスクトップ。どれもキーボードが手元にあるのに、指紋センサーだけが手の届かないところにある。

この隙間を埋めようとして作られたのが「immurok」だ。Mac/Linux向けの小さなワイヤレス指紋認証デバイスで、端末作業の多い人が何度もパスワードを打たされる煩わしさを減らすことを狙っている。製作者のsuperdog氏自身が、外付けキーボードでターミナルに張りつく毎日のなかで欲しくなって作ったものだという。

キーホルダー大の本体と中身

本体はキーホルダーほどの大きさで、心臓部にWCH製のCH592Fマイコンを据えている。RISC-VコアにBluetoothとBLEを最初から積んだチップで、これ1つで無線接続をまかなえる。相手のマシンとはBluetoothでつながり、標準的なBluetooth HIDキーボードとして認識される。

指紋の読み取りにはR559Sという静電容量式センサーを使う。ここが設計のうえで重要な点で、指紋の照合はセンサー内で完結する。登録した指紋のテンプレートはセンサー自身のフラッシュに収まっていて、外に読み出されることはない。CH592Fマイコンが受け取るのは「N番と一致した/しなかった」という結果だけで、指紋の画像やテンプレートそのものは一度も見ない。つまりBluetoothの通信路にも、母艦のディスクにも、指紋を復元できる情報は流れない。デバイスを落とし物にしたときの最悪のケースは「デバイスを1つ失う」ことであって、「本人確認を乗っ取られる」ことではない、という設計になっている。

低消費電力もこだわりどころで、待機時の電流はおよそ40マイクロアンペアまで削られている。指を触れると起きる仕組みで、充電はUSB-C、1回で数週間もつという。ここまで詰めるのに基板は8回作り直され、初期のESP32ベースの試作から、より省電力なCH592Fへ載せ替えられている。

パスワードを打ち直す装置ではない

この手の「指紋でロック解除」ガジェットには、じつは中身が二通りある。ひとつは、保存しておいたパスワードを指紋をトリガーに代わりに打ち込むだけのもの。動きはするが、パスワードがどこかに保管され続けるうえ、キー入力を覗ける相手にはパスワードが丸見えになる。immurokが避けたかったのは、まさにこの方式だ。

Linuxでは、sudoやログインが普段から使っている認証の枠組みPAMに組み込む形をとる。sudoを実行するとPAMがimmurokのモジュールに問い合わせ、モジュールがペアリング済みのデバイスと認証済みの経路でやりとりし、指を当てると、PAMには本物の成功/失敗の結果が返る。保存したパスワードを再生しているのではなく、認証の判断がOS自身の認証パイプラインを流れていく。ロック画面もLinuxではこのPAM経路に乗るので、パスワードはどこにも保存されない。

macOSは少し事情が分かれる。ターミナルでのsudoや一部のシステムダイアログのようにPAMを参照する場面では、同じくPAM経由で認可する。ただしログイン画面やスクリーンセーバーの解除だけは、macOSがサードパーティのPAMモジュールにその権限を渡さない。そこでこの1経路に限っては、キー入力のシミュレーションに切り替える。ログインパスワードをmacOSのキーチェーンに預けておき、デバイスから署名付きの一致を確認したあとにだけ打ち込む、という手順だ。この例外を除けば、母艦にパスワードを溜め込む箇所はない。

指の一押しに載る信頼の作り

指紋で認証するということは、その「指を当てた」という事実をマシンが信用できて初めて成り立つ。近くの誰かの無線が偽の押下をでっち上げられるなら意味がない。immurokはここを暗号でかためている。ペアリングのときにECDHで共有鍵を導出し、その鍵は通信路には出さない。マシンが受け取る一押しにはHMACのタグが付いていて、これは正規のデバイスしか作れない。接続のたびに新しいチャレンジで自分を証明し、リプレイ攻撃を防ぐ。ファームウェアの更新にも署名がかかり、筐体を物理的にこじ開けると保存された鍵と登録指紋を消す仕掛けも用意されている。

sudoの先にある使い道

immurokはロック解除とsudoにとどまらない。ハードウェアのSSHエージェントとして働き、秘密鍵をデバイス内で生成・保管するので、鍵が母艦のストレージに置かれずに済む。APIトークンやワンタイムパスワードの種を入れておく暗号化された保管領域もあり、指紋の照合が通ったときだけ取り出される。

面白いのは、AIコーディングエージェントを念頭に置いた機能だ。エージェントがコマンドを imk run --agent -- でくるむと、指紋の一押しがそのセッションのあいだの認可をまとめて仲介する。自律的に動くエージェントが特権コマンドを走らせたり保護された認証情報に触れたりする前に、人間の指を1回はさむ、という関所になる。手を離れたところで勝手に動くものに、物理的な一手を残しておく発想だ。

オープンで、これから量産へ

immurokはハードウェア設計・macOSアプリ・PAMモジュール・Linuxアプリがオープンソースで公開されている。ファームウェアだけは年内をめどに公開予定で、これは何かを隠すためではなく、発売時に安い模倣品が出回るのを防ぐための時間稼ぎだと説明されている。ライセンスはBSL 1.1で始まり、2030年にApache 2.0へ移行する計画だ。

製作者は公式サイトでウェイトリストを開き、Kickstarterでのハードウェア量産に向けて準備を進めている。手元のセンサーが遊んでいるなら自分でも試せる領域の話だし、そうでなくても「ノートの指紋認証を、外付け環境にどう持ち出すか」という一点をここまで真面目に詰めた設計は読んでいて楽しい。詳しい経緯はHackadayの記事と製作者のプロジェクトログにまとまっている。

コメント

タイトルとURLをコピーしました