mcpField
V
vault

vault

github.com/glebisセキュリティ40170 回インストール1 日前に更新
リポジトリ

vault について

vault は、機密性の高い RED の記録が独立した 3 層の保護で保存されているか確認するセキュリティスキルです。データを変更せず状態と修正案を示し、セットアップ補助機能は明示的な指定時のみ動作します。

主な機能

  1. 013つのロック状態を読み取り専用で確認
  2. 02JSON 形式の状態出力
  3. 03クラウド同期先の検出
  4. 04明示指定による非破壊のセットアップ補助

活用シーン

  1. 01デバイス、ストア、ファイルの暗号化確認
  2. 02RED ストアがクラウド同期対象外か確認
  3. 03保護設定前に修正コマンドを確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/glebis/claude-skills --skill vault

インストール後、Claude Code で/vaultを入力して読み込まれたか確認します。

同梱ファイルscripts/vault.py

詳細

confide:vault — RED データを保管するための THREE LOCKS

confide/docs/THREE-LOCKS.md に記載されている多層防御の保管方針を実装します。実データ(RED)の文字起こしは、互いに独立した3つのロックの背後に保管されるため、いずれか1つが突破されてもクライアント情報は漏えいしません。実際の文字起こしを読むには、攻撃者はデバイスのパスワードと暗号化ストアのパスワードとage キーをすべて入手する必要があります。3つは別々の秘密情報であり、できれば異なる場所に保管してください。

ロック内容防ぐもの
1 — デバイスFileVault によるディスク全体の暗号化+強力なログインパスワード+短時間での自動ロック紛失・盗難に遭ったマシン、USB から起動されたマシン
2 — ストアRED を専用の暗号化ストア(暗号化 APFS ボリューム/AES-256 .dmg)に保管します。Documents には保存せず、iCloud/Dropbox には絶対に保存しません他のアプリ、他のユーザー、気付かれないクラウド同期
3 — ファイル単位各 RED ファイルを sops/age で保存時に暗号化し、age キーは別の場所に保管します。処理はネットワーク接続のない VM/コンテナ内で行いますファイルを個別に封印し、キーをデータと同じ場所に置かないこと

非破壊的 — 実行前にお読みください

  • --check(デフォルト)は読み取り専用の確認のみを実行します。fdesetup status、 shutil.which(sops/age)、os.path.exists(...) が対象です。データの移動、削除、 暗号化は一切行わず、fdesetup enable、hdiutil、age-keygen、rm も実行しません。
  • 各ロックの状態を ✓/✗ で報告し、✗ を修正するための正確なコマンドを表示します。ユーザー自身で確認して実行できます。
  • --init-age は、明示的にこのフラグを指定した場合にのみ age キーを生成し、既存のキーを上書きしません。
  • --init-store PATH は、暗号化ストアを作成するコマンドを表示するだけで、ディスクイメージの作成は実行しません。クラウド同期されるパスは拒否します。
  • 明示的な確認なしに、ユーザーの RED データを移動、暗号化、削除することはありません。デフォルトで破壊的な操作が実行されることはありません。

実行方法

# default = read-only status check + checklist with fix commands
python3 skills/vault/scripts/vault.py --check
python3 skills/vault/scripts/vault.py --json            # structured status dict

# point at your own RED store to verify it's not cloud-synced
python3 skills/vault/scripts/vault.py --store-path ~/CONFIDE-RED.dmg

# optional, GUARDED helpers (explicit flags only)
python3 skills/vault/scripts/vault.py --init-age        # make an age key (never overwrites)
python3 skills/vault/scripts/vault.py --init-store ~/CONFIDE-RED.dmg   # prints the hdiutil command

lock_status() はインポート可能で、次を返します。

{
  "device":  {"filevault": bool},
  "store":   {"present": bool, "path": str|None, "cloud_synced": bool, "safe": bool},
  "perfile": {"sops": bool, "age": bool, "key": bool, "key_path": str|None}
}

ユーザーを支援する方法

  1. --check を実行し、✓/✗ のチェックリストを読み上げます。
  2. 各 ✗ について、表示された修正コマンド(例:sudo fdesetup enable、 age-keygen -o ~/.config/confide/age.key、 hdiutil create -encryption AES-256 … ~/CONFIDE-RED.dmg)を提示し、ユーザー自身で実行してもらいます。
  3. RED ストアが iCloud/Dropbox の中にないことを確認します(store.safe)。
  4. sops/age の暗号化・復号手順(チェックリストに表示されます)を提示し、RED を保存時は暗号文のまま保管し、分離されたパイプライン内(confide/docs/ISOLATION.md)でメモリ上のみ復号するようにします。マシンの外に出るのは GREEN(匿名化済み)出力だけです。

confide/docs/THREE-LOCKS.md(モデルとチェックリスト)および confide/docs/ISOLATION.md (red/green のフロー、ネットワーク接続のない VM/コンテナ)を参照してください。

コメント