パーミッションシステム
Quiraは従来のIDベースアクセスモデル ―「あなたは誰?」― をCapability-Based Securityモデル ―「あなたはどんな証明を持っている?」― に置き換えます。この根本的な転換により、環境権限が排除され、すべてのパーミッションが明示的、スコープ付き、時間制限付きになります。
Capability-Based Security
従来のブラウザでは、拡張機能やページは環境権限の下で動作します: 一度広いパーミッションが付与されると自由に行使できます。Quiraはこのパターンを完全に排除します。すべてのCapabilityトークン評価は、macOS AMFIに着想を得た単一の判定ポイントであるContext Trust Arbiter (CTA)に集約されます。
| 特性 | 従来型 (Chrome/Firefox) | Quira |
|---|---|---|
| アクセスモデル | IDベースACL | Capabilityトークン(偽造不能) |
| トークン生成 | インストール時に付与 | プロセス+タイムスタンプにバインドされたHMAC-SHA256 |
| スコープ | グローバルまたはオリジン単位 | Space単位、パーミッション単位、セッション単位 |
| 委譲 | 不可 | 減衰サブCapability(read-writeからread-onlyへ) |
| 失効 | アンインストールまたは手動切替 | 即時無効化、派生トークンもすべて失効 |
| 有効期間 | 失効まで永続 | 時間制限付き減衰(設定可能なTTL) |
環境権限なし
Capabilityトークンは偽造不能、転送不能、プロセスバインドです。拡張機能のメモリが侵害されても、攻撃者は異なるプロセスから盗んだトークンを使用できません。
Context TCC
macOS TCC (Transparency, Consent, and Control)にインスパイアされたContext TCCは、同じ明示的同意モデルをContext Graphに適用します ― このきめ細かさでナレッジグラフを保護するブラウザは世界に存在しません。
プラグインや内部サブシステムがContext Graphへのアクセスを要求すると、Context TCCがリクエストをインターセプトし、正確にどのデータにアクセスするか、なぜアクセスするかを説明する同意ダイアログを表示します。
TCCパーミッションタイプ
| パーミッション | スコープ | 許可する操作 | 感度 |
|---|---|---|---|
read:nodes | Space単位 | グラフからページタイトル、URL、メタデータを読み取り | 中 |
read:embeddings | Space単位 | セマンティック埋め込みベクトルの読み取り ― 最もセンシティブ | 最重要 |
write:edges | Space単位 | グラフノード間のリレーションシップの作成・変更 | 高 |
query:nl | Space単位 | AIレイヤーを介した自然言語クエリの実行 | 高 |
read:embeddingsは最重要
埋め込みベクトルはブラウジングコンテンツのセマンティックな意味をエンコードしています。逆演算でおおよそのページコンテンツを復元可能です。このパーミッションはSpace単位での明示的同意が必要で、自動付与されることはありません。
情報フロー制御
誰がデータにアクセスできるかを制御するだけでなく、Quiraはデータがどこに流れるかを追跡します。Context Graphのすべてのデータには、伝搬を制約するIFCラベルが付与されます。
- 単調ラベル ― 感度ラベルは増加のみ可能で、減少はできません。「confidential」ソースから派生したデータは少なくとも「confidential」感度を継承します。
- テイント追跡 ― AIがグラフデータを処理する際、出力はすべての入力の最大感度を継承します。
- Cross-Spaceバリア ― WorkスペースのデータがPersonalスペースに黙って流入することはできません。ユーザーがCross-Space転送を明示的に承認する必要があります。
- エクスポート制御 ― ブラウザから出ていくデータ(クリップボード、ファイルエクスポート、ネットワーク)はIFCラベルに対してチェックされます。高感度データは確認ダイアログをトリガーします。
Spaceスコープセキュリティ境界
Context Spaceは単なる整理用コンテナではなく、セキュリティ境界です。各Spaceは独立したセキュリティ設定を持ちます:
- 独立したCapabilityトークンプール(Space AのトークンはSpace Bにアクセス不能)
- Space個別のプライバシーモード設定(標準、厳格、シークレット)
- 独立暗号化鍵を持つ隔離されたContext Graphパーティション
- 全グラフ書き込み操作のSpace単位監査ログ
プラグインサンドボックス
Quiraプラグインは宣言的Capabilityモデルを持つサンドボックス環境で実行されます:
- マニフェスト宣言 ― 各プラグインはマニフェストで必要なCapabilityを宣言
- 減衰委譲 ― プラグインは必要最小限のCapabilityトークンのみ受け取る
- ネットワークアローリスト ― マニフェストで宣言されたドメインにのみ接続可能
- ストレージ割り当て ― プラグインごとのストレージ上限(デフォルト10MB)
- 監査ログ ― プラグインによるすべてのContext Graph操作は
quira://settings/security/auditで記録
サイト別パーミッション
従来のWebパーミッション(カメラ、マイク、位置情報、通知)も同じCapabilityモデルに従います:
| カテゴリ | API | デフォルト |
|---|---|---|
| 位置情報 | Geolocation API | 毎回確認 |
| カメラ / マイク | getUserMedia | 毎回確認 |
| 通知 | Notification API, Push API | ブロック |
| クリップボード | Clipboard API (読み取り) | 毎回確認 |
| 自動再生 | 音声/動画の自動再生 | ブロック(ユーザー操作必須) |
| ダウンロード | プログラムによるファイルダウンロード | 毎回確認 |