セキュリティの概要
Anon は支出鍵を利用者が管理する非カストディアルモデルです。公開取引の詳細やサービス要求のメタデータは他者に見える場合があります。Mobile Sync は暗号化 QR で画面間に復元情報を直接転送し、Anon にアップロードしません。
非カストディアルモデル
「非カストディアル」とは、資金を管理する秘密鍵を自分だけが保有することです。Anon は:
- サーバーに秘密鍵やニーモニックを保存しません
- Anon プラットフォームのアカウントを要求しません
- 取引を凍結、取り消し、またはアクセスできません
- ニーモニックを失った場合にアカウントを復元できません
その代わり、リカバリーフレーズのバックアップは利用者の責任です。
データの保存場所
| データ | 場所 | アクセス |
|---|---|---|
| 暗号化ニーモニック | ブラウザーの IndexedDB | パスキーまたはパスワードでのみ復号 |
| IDB 暗号化鍵 | chrome.storage.local |
PRF 導出鍵で暗号化 |
| 公開アドレス | chrome.storage.local |
平文、設計上公開 |
| RPC 設定 | chrome.storage.local |
平文 |
| セッション鍵(閲覧・支出) | メモリのみ | ロック・ログアウト時に消去 |
| PRF 鍵 | メモリのみ | 認証中のみ存在 |
| 取引履歴 | Railgun SDK の IndexedDB | ローカルで暗号化 |
鍵データ、ニーモニック、ノート内容は Anon サーバーに送られません。ネットワーク呼び出しと見える情報は次の通りです。
| 呼び出し | 目的 | 見える情報 |
|---|---|---|
Digest CDN(digest.anon.inc) |
シールドプール履歴の取得 | IP。全ユーザーで同じ要求を送り、鍵から導いた情報を含まない |
インデクサー head API(api.anon.inc) |
CDN 更新の間の追従 | IP とチェーン上の同期位置。遅れの程度であり保有資産ではない |
| Anon プロキシ経由の PPOI 集約サービス | 無実証明の確認 | IP と問い合わせたブラインドコミットメント。ウォレット固有、後述 |
| RPC エンドポイント | 公開残高、ガス、送信 | IP と問い合わせた公開アドレス。接続先は設定可能 |
| Waku P2P | ブロードキャスター通信 | オンチェーン提出は委任するが、ネットワークメタデータは見える場合がある |
| Paymaster API(任意) | ガス代支援 | IP とスポンサー取引を要求した事実 |
.anon.buzz 登録サービス(任意) |
ユーザー名の解決 | IP と解決するユーザー名 |
最初の行がデータの大半を担い、意図的にウォレット別クエリーを使いません。全員が同じ公開ファイルを取得してローカル復号するため、サーバーはどのノートが自分のものか知りません。ウォレット同期で詳しく説明します。
PPOI は別のプライバシー経路です。集約サービスは閲覧鍵から導いた特定のコミットメントの問い合わせを受けます。現在の Anon プロキシは読み取りをキャッシュし、要求パラメーターをメタデータに保存できます。キャッシュキーのハッシュ化はパラメーターを匿名化せず、ネットワークメタデータとの関連付けも防ぎません。運用者の保存とアクセス制御を確認し、非キャッシュ経路とは考えないでください。
脅威モデル
Anon が保護する脅威
- オンチェーン観察者: zk-SNARK はプライベート取引の金額、送信者、受信者を隠します
- IP による関連付け: 送信方法で接続メタデータを見る主体が変わります。Waku は IP 匿名性の保証ではありません
- インデクサーによるノート所有者の特定: ウォレット別クエリーではなく共通の公開ファイルを取得し端末で復号するため、サーバーが読むフィルターがありません。ウォレット同期を参照
- パスフレーズの総当たり: 高メモリコストの Argon2id がオフライン辞書攻撃を遅くします
- 保存データの窃取: 保存時に暗号化します。保護は認証シークレットと実装に依存します
- Mobile Sync QR 単体の盗み見: 復号には電話生成の 120 ビットのペアリングコードと、両端末に入力したワンタイムパスワードも必要です
Anon が保護できない脅威
- 侵害された端末: マルウェアがメモリ内の鍵やパスワードを取得する可能性があります
- 拡張機能の脆弱性: コードの不具合で鍵データが漏れる可能性があります
- ペアリング情報の完全取得: 暗号化 QR、電話のコード、ワンタイムパスワードをすべて得た人は転送アカウントを復元できます。オフライン QR コピーに期限や試行回数制限を強制できません。
- コードのクリップボード同期: 電話のコードをタップすると Universal Clipboard などでデスクトップにコピーされる場合があります。QR と同時に漏れると残る保護はワンタイムパスワードだけです。30 秒後のクリップボード消去は可能な範囲での対策です。
- 電話の画面キャプチャー: 対応する撮影・録画のブロックを OS に要求し、検出後に警告します。プラットフォームの防御は露出を減らしますが保証ではありません。復元画像は「写真」と「最近削除した項目」から消してください。
- ネットワークのトラフィック分析: 提出の委任はメタデータや分析を消しません
- 同期トラフィックの形: ダウンロード量と時刻から IP の最近の同期時期を推測できますが、所有ノートは分かりません。VPN や Tor は観察者を変えるだけで時刻と量を消しません
- 無実証明の問い合わせ: ウォレット固有の確認が Anon プロキシ経由で第三者の集約サービスに届きます
- ニーモニックの紛失: 12 単語のフレーズなしに復元する方法はありません
オープンソース
Anon はオープンソース化を計画し、github.com/anondotincでリポジトリとツールを順次公開しています。公開で保守できるようになった部品からリリースします。
ペイマスターリレーの Go、Docker、Cloudflare Worker の完全な実装など、一部はすでに公開済みです。
Anon 自体のコードとは別に、基盤の Railgun コントラクトと暗号回路はオープンソースで、複数の独立企業が監査しています。報告書は Railgun の GitHub 組織にあります。同期するダイジェストは公開かつコンテンツアドレス方式なので、誰でも Anon インフラへのアクセスなしでオンチェーンログと照合できます。ダイジェスト同期を参照してください。