開いている間と、閉じるとき
開いている領域は、サイクルごとに確認し直します。ドライブが抜かれた、トークンが差し替えられた・期限切れになった・廃止された鍵で署名されていた、あるいはアカウントの権限がなくなった。そのいずれかなら、その領域はロックされ、アプリケーションに閉じるよう指示が出ます。他のドライブで開いた領域は開いたままです。画面を閉じたりデータ操作を拒否したりするのはアプリケーションの役目で、Tetherlockはそのタイミングを伝えます。
ポートフォリオ → Tetherlock
ローカルのワークスペース向けのアクセス制御コンポーネントです。ホストアプリケーションがワークスペースを開けるのは、3つの条件が同時にそろったときだけです。サインインしている人に入る権限があること、差し込んだドライブに署名済みトークンがあること、パスワードが一致すること。その後のチェックでドライブがなくなっていれば、アプリケーションにワークスペースのロックを指示します。
ローカルのワークスペースには、開く条件に加え、必要なドライブがなくなったときにアクセスを終了するルールも必要です。
個人プロジェクトとして、アクセスのルール、鍵の設計、ロックのライフサイクルを定義し、設計レビューと実際の使用による確認を行いました。モジュールはAIコーディングエージェントが実装しました。
実際のコマンドとテストの出力、鍵の設計判断を、ホストアプリケーションの責任と制約と併せて確認できます。
実際のコマンドとテストの出力を添えた、設計の解説です。ソースコードはGitHubで公開しています。録画や第三者による監査はありません。設計はしたものの証明できていない点は、このページにそう書いています。
ローカルのワークスペースには、機密性の高いファイルがあります。開いてよいのは、3つの条件が同時にそろったときだけです。サインインしている人に入る権限があること、正しいドライブが差し込まれていること、その人がパスワードを知っていること。そしてドライブが抜かれたら、すぐにまた閉じなければなりません。
アカウントに権限があること、ドライブに署名済みトークンがあること、パスワードが一致すること。アカウントに権限がなければ、パスワードの入力画面は表示されません。
開いているワークスペースは、チェックのたびに確認し直します。トークンがない、差し替えられた、または有効でなくなった場合は、そのワークスペースだけをロックします。
別の保守用トークンに、許可する内容をそのまま列挙します。セッションは初期設定では30分後に、またはドライブを抜いた時点で、自動的に終わります。
横にスワイプすると図の全体が見られます。
横にスワイプすると図の全体が見られます。
開いている領域は、サイクルごとに確認し直します。ドライブが抜かれた、トークンが差し替えられた・期限切れになった・廃止された鍵で署名されていた、あるいはアカウントの権限がなくなった。そのいずれかなら、その領域はロックされ、アプリケーションに閉じるよう指示が出ます。他のドライブで開いた領域は開いたままです。画面を閉じたりデータ操作を拒否したりするのはアプリケーションの役目で、Tetherlockはそのタイミングを伝えます。
別のトークンに許可する権限を列挙し、そのうちアプリケーションが認識するものだけを付与します。セッションはメモリ上にだけ存在し、初期設定では30分続きます。使うたびに時刻とトークンを確認し直し、ドライブを抜くと、次の操作の前にセッションは終わります。
新しく生成したデモ用の鍵で実行した、実際のコマンドとテストの出力です。撮影は2026-09-22と2026-09-26。パスは短縮し、ドライブのシリアル番号は隠しています。画面をタップすると原寸で開きます。
パスワードの入力には数秒かかり、その間にドライブが抜かれたり、同じドライブ文字の別のドライブに差し替えられたりするおそれがあります。そこで、パスワードの後、何かを開く前に、トークンを読み直して検証し直します。
採らなかった案:入力画面の前に一度だけドライブを確認し、その結果をあとまで信用する。
復旧用の鍵も、迂回する経路もありません。アクセスを許可するコードは、パスワード確認の後にしか実行されません。その代償は受け入れています。署名鍵をすべて失えば、信頼の設定を一からやり直すことになります。
採らなかった案:「いつでも復旧できるように」という緊急用の解除手段。バックドアは、いちばん簡単な侵入口になります。
チェックが想定外のエラーで失敗したり、領域が開いている間にトークンが読めなくなったりしたら、まず領域をロックし、エラーはその後で報告します。そのため持ち主が、たまにロックを解除し直すことになるかもしれません。
逆に、誰かが確認するまで開いたままにすると、誰も気づかない間ずっと扉が開いたままになります。
Tetherlockが決めるのは、保護されたワークスペースを開いてよいかどうかです。そして、それを再び閉じます。中のファイルは暗号化しません。ワークスペースのパスワードは確認しますが、暗号鍵ではありません。ドライブの中身を読めないようにするのは、ディスク全体の暗号化の役目です。また、ドライブと、それをビット単位で完全に複製したものとを見分けることもできません。
こうした考え方をチームに求めているなら、同じ発想はAI Control Centerにも表れています。そこでは承認は、承認したときとまったく同じ版に対してだけ有効です。