目次
Bookmark Vault
概要
ブラウザ標準のブックマークは、URL一覧が丸見えのままローカルに保存されており、パスワード保存機能と同様に「PCへの覗き見・不正アクセス」への耐性がありません。
Bookmark Vaultは、パスワードでブックマークをAES-256-GCMで暗号化して保存するChrome拡張機能です。外部通信は一切行わず、すべてローカルのAPIだけで完結します。
画面イメージ
ポップアップ(登録・呼び出し画面)
拡張機能アイコンをクリックすると出る画面。パスワードを入力し、「bookmark」で今開いているタブを保存、「view」で一覧タブを開きます。
一覧画面(タブ)
主な機能
🔑 パスワードごとに独立した「複数の一覧」
- パスワードが違えば、まったく別のブックマーク一覧として扱われます。
- 「どのパスワードがどの一覧に対応するか」を示す索引は一切保存しない。
- 未使用のパスワードを入力した場合はエラーにはならず、その場で新しい空の一覧が作られる。
- 「パスワードが正しいか」を画面上で判定・表示すること自体をしない設計にしており、覗き見や総当たりに対してヒントを一切出さない。
🗂 グループ管理(ドラッグ操作)
- ブックマークをグループ行へドラッグ&ドロップするだけで移動。
- 同じグループ内でもドラッグして並び替え可能。
- プルダウンやボタンでの移動操作は無く、ドラッグのみに統一。
🗑 ゴミ箱(復元可能な削除)
- ブックマーク・グループどちらの削除も、即消去せず「ゴミ箱」に一旦退避する。
- ゴミ箱はブックマークのみのフラット一覧で、それぞれ「元々どのグループにいたか」を表示。
- 復元すると、元のグループが既に無い(グループごと削除された等)場合はグループごと復元し、ある場合はそのままそこへ戻る。
- 「完全に削除」は取り消せないため、ボタンを2回押す(1回目で確認表示に変わる)方式で誤操作を防止。ブラウザ標準の確認ダイアログは使わない。
💾 書き出し/読み込み(バックアップ・端末移行)
- 書き出しは「今開いている一覧」だけを対象にする(他のパスワードの一覧は含まれない)。
- 読み込み時は、そのファイルを書き出した時のパスワードを別途確認したうえで、
- 今開いている一覧の内容をそのパスワードの中身で上書きする。
- 別端末に移す場合、新しい端末側では好きなパスワードで一覧タブを開いておき、
- そこへ元端末で書き出したファイルを読み込めばよい(パスワードを揃える必要はない)。
🔄 更新ボタン
- 別タブ(ポップアップでの追加など)で加えた変更を、再ログインせずその場で反映できる
- 「更新」ボタンをタブ内に用意。ページ遷移を伴わないため、認証をやり直す必要がない。
🕶 シークレットモード対応
- incognito: split を指定しており、通常ウィンドウとシークレットウィンドウで
- 保存データ・セッションが完全に分離される。
- Chromeの仕様上、拡張機能の詳細画面で「シークレットモードでの実行を許可する」を
- 手動でONにする必要がある(拡張機能側からは自動許可できない)。
基本操作
初回セットアップ
1. chrome://extensions で「パッケージ化されていない拡張機能を読み込む」→ 展開済みフォルダを選択
2. 拡張機能アイコンをクリック
3. 好きなパスワードを入力して「bookmark」(保存)または「view」(一覧を開く)を押す。このパスワードが、以後この内容を呼び出すための鍵になる
ブックマークの登録
- 保存したいページを開いた状態で拡張機能アイコンをクリック
- パスワードを入力して「bookmark」を押すだけ。同じURLを再度保存した場合はタイトル・更新日時のみ上書きされる(ゴミ箱に入っていた場合はここで自動的に復元される)
一覧の閲覧・整理
- 拡張機能アイコン→パスワード入力→「view」で一覧タブが開く
- 左のグループをクリックして絞り込み、検索欄でタイトル・URLを部分一致検索
- ブックマークカードをグループ行へドラッグして移動、同じグループ内でドラッグして並び替え
- グループの追加は左ペイン最下部の「+ グループ追加」
削除・復元
- ブックマーク・グループどちらも「削除」ボタンでゴミ箱へ移動(即消去ではない)
- ゴミ箱で「復元」すると元の場所(元のグループが無ければグループごと)に戻る
- ゴミ箱で「完全に削除」を押すと確認表示に変わり、もう一度押すと完全に削除される
別タブでの変更を反映したいとき
- 一覧タブを開いたまま、別タブ(ポップアップ)でブックマークを追加した場合は、
- 一覧タブ上部の「更新」ボタンを押すと反映される(再ログイン不要)
別端末への移行
1. 元端末の一覧タブで「書き出し」→ ファイルがダウンロードされる
2. 新しい端末に拡張機能を入れ、好きなパスワードで一覧タブを開く(初回は空の状態で開かれる)
3. 「読み込み」で書き出したファイルを選択
4. 表示されたモーダルに、書き出した時のパスワードを入力
5. 一致すれば、今開いている一覧の中身がその内容で上書きされる
トラブルシューティング
Q. 一覧タブが「Vault はロックされています」の案内だけになる
- パスワードの入力欄はポップアップにしかない(一覧タブ側には置いていない)。
- 拡張機能のアイコンをクリックし、パスワードを入力して「view」を押し直してください。
- ブラウザを再起動した場合や、その一覧タブをリロード(F5)した場合、URLを直接開いた場合は、
- 仕様として自動では開かない(下記セキュリティ設計メモを参照)。必ずポップアップからやり直す
Q. 別タブで追加したブックマークが一覧に出てこない
- 一覧タブは開いた時点の内容を保持しているだけなので、他のタブでの追加は自動反映されない。上部の「更新」ボタンを押してください
Q. パスワードを忘れた
- パスワードはどこにも保存されておらず、復元する手段はない。別のパスワードとして新規に一覧を作り直すことになる(以前の内容にはアクセスできない)
Q. 拡張機能を入れ直したら中身が空になった
- 読み込み元のフォルダを移動・再作成すると、Chromeからは別の拡張機能として扱われ、データが引き継がれない。事前に「書き出し」しておいたファイルがあれば読み込みで復元できる
セキュリティ設計メモ
- 暗号化はPBKDF2(25万回, SHA-256)でパスワードから鍵を導出し、AES-256-GCMで暗号化。
- 外部通信は行わず、すべてWeb Crypto APIのみで完結する。
- 平文のパスワードはどこにも保存しない。ポップアップからタブへの受け渡しはchrome.storage.session(メモリのみ・ブラウザ終了で消える)を使う
- 一覧タブ側が読み込んだ時点で即座に消す使い捨て方式。そのため:同じタブのリロード(F5)、URLを直接開くなど必ずポップアップからやり直す必要がある
- どのパスワードが正しいかを示す索引を持たない設計。パスワードの正誤判定結果を画面に一切出さないため、総当たりや覗き見に対するヒントが生まれない。
- ブックマーク・グループの削除確認や読み込み時のパスワード確認は、すべて拡張機能内の独自モーダルで行い、ブラウザ標準のalert/confirm/promptは使用しない。
開発情報
- 開発: 個人利用ツール
- バージョン: 0.5.0
- 対応環境: Google Chrome(Manifest V3)
- 権限: storage, activeTab
- 生成AI: Claude
更新履歴
- v0.5.0: 書き出し/読み込みを「開いている一覧単位」に変更。読み込み時のパスワード確認・エラー表示を自前モーダル化し、ブラウザ標準ダイアログを廃止
- v0.4.1: セッションの自動解錠を使い捨て方式に変更(リロード・URL直開きでの自動解錠を廃止)。シークレットモード対応(incognito: split)
- v0.4.0: ゴミ箱機能を追加。グループ削除時も中身ごとゴミ箱へ退避し、復元時はグループが無ければ再作成
- v0.3.0: ドラッグ&ドロップでのグループ移動・グループ内並び替えに対応。フォルダ選択プルダウンを廃止
- v0.2.0: パスワードごとに独立した複数の一覧に対応。「パスワードの正誤」を画面に出さない設計に変更
- v0.1.0: 初回リリース(パスワードでのAES-256-GCM暗号化、単一の一覧、グループ分け、書き出し/読み込み)

コメント