1. 現状の課題:非永続的で脆弱な保管領域
現在の多くの Web アプリケーションや Web/A の参照実装において、秘密鍵や機密データはブラウザの localStorage やプレーンなファイルとして管理されています。しかし、商用および公的な大規模展開を想定した場合、これらには以下の致命的な弱点があります。
- LocalStorage の脆弱性: XSS(クロスサイトスクリプティング)攻撃に対して無防備であり、スクリプトから秘密鍵を直接読み取られるリスクがある。
- フラットファイルの管理コスト: ユーザーが秘密鍵ファイルを誤って削除したり、紛失したりするリスクが高い。また、OS レイヤーでの保護が不十分な場合がある。
- 非永続性: ブラウザのキャッシュクリアやストレージ制限により、重要なアイデンティティが喪失する可能性がある。
2. 参照モデル:EUDIW ARF との比較
欧州のデジタル・アイデンティティ・ウォレット(EUDIW)のアーキテクチャ・フレームワーク(ARF)では、鍵管理について極めて厳格かつ高度なモデルを定義しています。
| コンポーネント | EUDIW ARF の定義 | Web/A Folio のアプローチ |
|---|---|---|
| WSCD (Secure Device) | Secure Element (SE) や TEE 等の物理的セキュリティデバイス。 | WebAuthn / Passkey 対応のセキュリティキーまたは端末内 Enclave。 |
| WSCA (Secure App) | WSCD 内で秘密鍵を直接扱うセキュアなアプリケーション。 | 直接的な App は作らず、ブラウザ経由でハードウェア鍵を呼び出す。 |
| LoA (Assurance) | 高(High)レベルの保証。SE への依存が必須。 | Holder Binding により、Passkey と公的証明書を紐付けて保証。 |
Web/A は「特定のネイティブアプリへの依存を避ける」という哲学を持つため、EUDIW の WSCA モデル(アプリをセキュアエレメント上に実装する)をそのまま採用するのではなく、標準的なブラウザ API である WebAuthn を Trust Anchor(信頼の基点)として活用します。
3. Web/A Folio の階層型セキュリティモデル
データの重要度とユースケースに応じて、以下の3つの階層(Tier)を使い分けます。
Tier 1: エフェメラル・ストレージ (開発・低保証用)
- 保管場所:
localStorageまたはプレーンなファイル。 - 用途: デモ、検証、重要度の低い情報の署名。
- リスク: 紛失・盗難に対して脆弱。
Tier 2: ウェアラブル/バイオメトリクス・セキュリティ (標準用)
- 保管場所: 端末のセキュア・エンクレーブ(Passkeys)。
- 用途: 日常的な申請、ログイン、文書署名。
- 鍵管理: WebAuthn により、秘密鍵はハードウェアから外部に出ない。
- 仕組み: Web/A 文書の署名は、Passkey で生成された鍵(P-256 / Ed25519 等)を用いて行われる。
Tier 3: ハードウェア・バインド・セキュリティ (高保証用)
- 保管場所: 公的証明書(ハードウェアトークン)+ Passkey。
- 用途: 法的効力を持つ手続き、高額取引。
- 鍵管理: 公的証明書の署名用電子証明書を用いて、Tier 2 の Passkey に対して「これは私の所持している鍵である」という署名を付与(Holder Binding)。
- メリット: 物理トークンを毎回読み取る手間を省きつつ、法的・物理的な本人性を担保する。
4. 「Folio Vault」構想:暗号化ラッピング
将来的な Folio は、単なるフォルダーではなく、「暗号化されたコンテナ(Vault)」 として扱われます。
- データ本体の暗号化: Folio 内の各ファイルまたはディレクトリ全体を、ユーザーの Passkey に紐付いた共有鍵(Web Crypto API で導出)で AES-GCM 暗号化する。
- アクセスの抽象化:
- ローカル環境では Folio CLI が復号を行う。
- ブラウザ環境では、Service Worker や「Folio Agent」が仮想ファイルシステムとして振る舞い、必要な時だけメモリ上で復号してユーザーに提示する。
- ポータビリティ: 暗号化された状態であれば、iCloud, Google Drive, Box 等のクラウドストレージに安全にバックアップ・同期が可能。プロバイダーは中身を閲覧できない。
5. 結論:ブラウザを「セキュアな窓口」に変える
Web/A は、ブラウザそのものを信頼するのではなく、ブラウザが提供する WebAuthn などのハードウェア保護された API をゲートウェイとして利用します。
これにより、ユーザーは「特定のベンダーのウォレットアプリ」に閉じ込められることなく、標準的なブラウザと手元のスマートフォンやセキュリティキー(Yubikey 等)を組み合わせて、国家レベルのセキュリティ要件を満たす鍵管理を、ファイルベースの利便性を維持したまま実現できます。