// SECURITY AUDIT

セキュリティ監査レポート

信頼するが、検証せよ — 監査の結論はすべてここに公開します。

監査の概要

公開済み
📅 監査日:2026-06-01📄 監査範囲:lib/ の全 159 個の .dart ファイル · plugins/ の 14 個の .html プラグイン · android/ 設定🔬 監査方法:ファイル横断の相互検証 + ボトムアップの階層監査
0
重大
0
0
0
0
安全確認

総評:プロジェクトのセキュリティ態勢は良好です。 Hive の機密データ暗号化、サンドボックス隔離、HTTPS 強制などの中核メカニズムは適切に実装されています。主な問題は Android ビルド機の鍵管理、暗号化対象外の一部 Hive Box、プラグイン層のパスワード入力方式に集中しています。

🔧
レポート公開後の修正状況:公開後のバージョンで複数項目を順次修正済み — API キーをベンダー別の暗号化バケットで保存(v1.7.0)、パスワードマネージャーの偽暗号化を本物の AES-256-GCM に書き直し(v1.7.0)、2FA 永続化(v1.7.0)、ネットワークツールの SSL 証明書を厳格検証(v1.7.0)、クリップボードの機密フィールド除外(v1.7.0)、パスワード変更時の自動再暗号化(v1.1.0)。最新の修正は更新履歴へ。

確認された実在の問題

🔴 重大

重大
#1 Android 署名鍵パスワードの平文保存 — ビルド機の署名鍵パスフレーズが設定に平文で保存されており、ビルド機の侵害は署名鍵の侵害と同義です。

🟠 高

#2 ai_plugin_projects Box が aiApiKey を未暗号化で保存 — プロジェクト単位の AI キーが Hive に平文保存され、暗号化対象外。
#3 プラグイン市場にハードコードされたテスト用ライセンスキー — テスト用認証情報がリリースパッケージに含まれるべきではありません。
#4 REQUEST_INSTALL_PACKAGES 権限 — 未知のソースからのアプリインストール権限を申請しており、使用場面の最小化が必要です。

🟡 中

#5 百度翻訳 API キーが GET URL パラメータで送信 — キーがアクセスログ / 履歴に残る可能性があります。
#6 プラグインが prompt() で暗号化パスワードを入力 — サンドボックス内のパスワード入力はホスト提供のセキュアキーボードを使うべきです。
#7 WebDAV 自動バックアップのパスワードを Hive に保存 — 暗号化 Box 内であることの確認が必要です。
#8 RECORD_AUDIO 権限 — 録音時のみオンデマンドで申請し、常駐許可は避けるべきです。

🟢 低

#9 sticky_notes Box がユーザーメモを未暗号化で保存
#10 家計簿プラグインが財務データを平文保存
#11 requestLegacyExternalStorage 互換フラグ — targetSdk の更新に伴う削除を推奨
#12 ブックマークプラグインが http:// URL を許可 — 平文ページは既定でダウングレード警告を出すべき
#13 エラーログのエクスポートが内部パスを露出 — スタックトレースにファイルパスとコード構造が含まれる

⚪ 要人工確認の疑義

疑義
S1 プラグインの innerHTML 多用(13/14 プラグイン)— 多くは escapeHtml() 済みで、サンドボックス CSP が外部スクリプトを制限しますが、エスケープ漏れがあれば DOM XSS の可能性があります。
疑義
S2 プラグインの console.log / console.error 呼び出し — 出力は logcat に書き込まれ、内容はエラーオブジェクトのみでユーザーデータなし、リスクは低い。

安全と確認された設計

以下のセキュリティ機構はファイル横断の相互検証を通過し、安全かつ有効と確認されています:

#セキュリティ機構検証経路状態
1Hive 暗号化キーのハードウェア保護FlutterSecureStorage → Android Keystore / iOS Keychain
27/7 の機密 Box が全て暗号化main.dart で相互検証、機密 Box はすべて cipher でオープン
3バックアップの暗号化強制パスワードなし → UnencryptedBackupException
4バックアップ暗号化アルゴリズムPBKDF2(300k ラウンド)+ AES-256-GCM
5Release でのログオーバーヘッドゼロすべてのログ出力が kDebugMode
6WebDAV HTTPS 強制HTTP 設定は直接拒否
7サンドボックス eval / Function 無効化Object.defineProperty で完全カバー
8サンドボックス CSP 注入meta タグ + HTTP ヘッダーの二重経路
9パストラバーサル対策プラグインインポートとバックアップ復元に安全検証あり
10その他の確認項目バックアップ暗号 v3、復元プロセスのアトミック化、機密ページの FLAG_SECURE など
🔬
完全版レポート(項目別のコード位置と修正提案を含む)はオープンソースリポジトリとともに公開予定です。現在は要点版。セキュリティは私たちの基盤 — 問題があればフィードバックでお知らせください。
マトリックスモード: ON — 再入力するか ESC で終了