Show HN: PanicLock – MacBookの蓋を閉じるとTouchIDを無効にし、パスワードでロック解除
20時間前原文(github.com)
概要
- PanicLockは、macOSでTouch IDを即座に無効化し画面をロックするメニューバーユーティリティ
- 法執行機関や国境検査時など、パスワード保護のみを強制したい場面に特化
- ワンクリックやホットキー、または蓋の閉鎖で即時ロック・Touch ID無効化を実現
- 自動復元機能で元のTouch ID設定も簡単に戻せる
- オープンソースでセキュリティやプライバシーにも配慮
PanicLock:macOSのTouch ID即時無効化ユーティリティ
- macOSメニューバーからワンクリックでTouch IDを無効化し、画面ロック
- Touch IDの即時無効化により、パスワードのみでの復帰を強制
- **ホットキー(例:⌃⌥⌘L)**や蓋の閉鎖による自動ロックも設定可能
- セッション維持しつつ、Touch IDのみを一時的に無効化
- 自動復元機能でロック解除後にTouch ID設定を元通りに戻す
- 初回起動時に管理者パスワードを要求し、特権ヘルパーを一度だけインストール
主な特徴
- ワンクリックパニックロック:アイコン左クリックやホットキーで即時ロック
- Lock on Close機能:蓋を閉じるとTouch ID無効化&画面ロック
- 一時的Touch ID無効化:パスワードのみでのロック解除を強制
- キーボードショートカット:グローバルホットキーのカスタマイズ
- 自動起動:ログイン時に自動で起動可能
- Homebrew/DMG対応:Homebrewまたは手動DMGインストール対応
- macOS 14.0(Sonoma)以降、Touch ID搭載Macが必要
使い方
- アイコン左クリック:即時パニックロック発動
- アイコン右クリック:メニュー(設定、アンインストール、終了)表示
- Lock on Close有効時:蓋を閉じると自動でTouch ID無効化&ロック
- **通常の画面ロック(スクリーンセーバー等)**ではTouch IDは有効のまま
- アンインストールはアプリメニューやHomebrew、手動コマンドで実施可能
セキュリティ設計
- 最小権限設計:特権ヘルパーは3つのコマンド(bioutil, pmset)のみ実行
- コード署名済みXPC通信:アプリのBundle ID・Team ID・証明書を検証
- 完全オフライン動作:ネットワーク通信・テレメトリ・分析なし
- データ収集なし:保存するのはユーザー設定(アイコン、ショートカット)のみ
- オープンソース:全コード公開、監査可能
注意事項
- Touch ID以外の解除方法(Apple Watch、セキュリティキー等)は無効化対象外
- パスワード解除のみを強制したい場合に最適
インストール方法
- Homebrew:
brew install paniclock/tap/paniclock - 手動:リリースページから最新DMGをダウンロード
アンインストール方法
- Homebrew:
brew uninstall paniclock - アプリ右クリック:「Uninstall PanicLock...」選択、管理者パスワード入力
- 手動コマンド:launchctlやrmコマンドで関連ファイル削除
開発・ビルド
- リポジトリをクローン、Xcodeで開く
- Development Teamを両ターゲットで設定
- Team IDをInfo.plist等で更新
- ビルド・実行で開発可能
リリース・配布
- スクリプトによるビルド・署名・ノータリゼーション自動化
- バージョンごとのビルド/リリースディレクトリ作成
- MITライセンスで配布
コントリビューション
- IssueやPull Requestで貢献歓迎
背景事例:法執行機関によるTouch ID強制
- Washington Post記者 Hannah Natanson氏が指紋でMacを強制解除させられた事例
- Signalデスクトップの情報漏洩や取材源の暴露リスク
- 生体認証の法的リスクに対する具体的な対策としてPanicLockを開発
- 法的議論や先例の詳細は公式ランディングページ(https://paniclock.github.io/)参照