# セキュリティ ## 概要 Neotask はセキュリティをコア原則として構築されています。ライセンスアクティベーションからデータストレージ、ネットワーク通信に至るすべての層が、データの保護と不正アクセスの防止を目的として設計されています。 ## ライセンスセキュリティ - **デバイスバインディング**:各ライセンスは SHA-256 フィンガープリントにより単一デバイスに暗号的にバインドされます。 - **HMAC-SHA256 リクエスト署名**:すべての API リクエストはデバイスごとのシークレット、ノンス、タイムスタンプで署名されます。 - **タイミング安全比較**:すべてのシークレット比較はタイミング攻撃を防ぐために定時間アルゴリズムを使用します。 - **トークンライフサイクル**:アクセスおよびリフレッシュトークンの有効期限は、署名された JWT クレームによりサーバー側で制御され、即時無効化が可能です。 - **自動再検証**:ライセンスは6時間ごとにチェックされます。 - **オフライン猶予期間**:再検証が必要になるまで72時間のオフラインアクセス。 - **リモート無効化**:ライセンスはサーバー側で即座に無効化できます。 ## 二要素認証(TOTP) Neotask はダッシュボードアクセス用にオプション(ただし推奨)の二要素認証をサポートしています。 - Google Authenticator、Authy、1Password、およびあらゆる TOTP 対応アプリと互換性があります。 - セットアップ時にバックアップコードが提供されます。これらのコードは SHA-256 ハッシュ化されており、一回限りの使用です。 - TOTP はダッシュボード設定の**セキュリティ**セクションからいつでも有効化または無効化できます。 ## 暗号化 ### 静的データ - **AES-256-GCM**:すべてのトークン、シークレット、API キーは静的時に暗号化されます。 - **マシン派生キー**:暗号化キーはデバイスアイデンティティから scrypt により派生されます。 - **平文保存なし**:トークンが平文で保存されることはありません。 ### 転送中のデータ - **TLS 1.3**:すべての API 通信は HTTPS で転送されます。 - **WebSocket Secure (WSS)**:リアルタイム Gateway 通信は暗号化されています。 - **HMAC 署名**:すべてのリクエストにノンスとタイムスタンプの署名が含まれます。 ### 環境シークレット - **二重暗号化**:ビルド時の環境暗号化は個別のキーを使用します。 - **ハードコードされたシークレットなし**:ソースコードに API キーやトークンはゼロです。 - **ログ編集**:機密データはログから自動的に除去されます。 ## デスクトップアプリセキュリティ ### Electron 強化 Neotask はデスクトップアプリケーションを保護するために厳格な Electron セキュリティ設定を適用します: - `sandbox: true` -- レンダラープロセスはサンドボックス環境で実行されます。 - `contextIsolation: true` -- UI からメインプロセスへの直接アクセスはありません。 - `nodeIntegration: false` -- UI に Node.js API は公開されません。 - `webSecurity: true` -- 同一オリジンポリシーが強制されます。 ### コンテンツセキュリティポリシー(CSP) - `default-src 'self'` -- アプリ自体からのリソースのみが読み込まれます。 - `script-src 'self'` -- 外部スクリプトは許可されません。 - ポップアップウィンドウはブロックされます。 - リダイレクト攻撃を防ぐためナビゲーションがブロックされます。 - 状態操作を防ぐためページリロードがブロックされます。 ### アプリの整合性 - **ASAR 整合性**:パッケージ化されたアプリの SHA-256 ハッシュ検証。 - **バージョン証明**:キルスイッチ機能付きのサーバー署名マニフェスト。 - **コード難読化**:本番ビルドで JavaScript 難読化が適用されます。 - **ハードフェイルモード**:いかなる整合性障害でもアプリは完全にブロックされます。 ## ネットワークセキュリティ ### Gateway の隔離 - Gateway は**ループバックのみ**(127.0.0.1)で実行され、外部ネットワークへの露出はゼロです。 - マシン外部からの着信接続は受け付けられません。 - セッション付与は10分の有効期間を持ち、デバイスにバインドされ、HMAC 署名されています。 ### 3ストライクロックアウト - 3回連続で Gateway 操作が失敗すると、すべての操作がブロックされます。 - アクセスを復元するには手動リセットが必要です。 - このメカニズムはブルートフォース攻撃を防止します。 ## API セキュリティ ### 認証方法 | 方法 | 用途 | セキュリティレベル | |--------|----------|----------------| | **JWT Bearer Token** | Web ダッシュボード、API 呼び出し | 標準(90日有効期限) | | **License HMAC** | デスクトップアプリ操作 | 高(デバイスごとのシークレット) | | **Session Grants** | Gateway 操作 | 非常に高い(10分、HMAC 署名) | | **TOTP** | ダッシュボードログイン | 追加要素 | ### レート制限 | エンドポイント | 制限 | |----------|-------| | お問い合わせフォーム | 15分あたり5リクエスト | | ログイン試行 | 15分あたり10リクエスト | | 分析/トラッキング | 60秒あたり30リクエスト | ### 入力検証 - すべての IPC パラメータは処理前に検証されます。 - すべての API 入力はサニタイズされます。 - SQL インジェクション、XSS、コマンドインジェクションに対する保護が実装されています。 ## プロバイダーキーセキュリティ(BYOK) Bring Your Own Key(BYOK)モード使用時、Neotask は API キーに追加の保護措置を適用します: - API キーは保存前に AES-256-GCM で暗号化されます。 - キーはログやエラーメッセージに記録または公開されることはありません。 - キーはダッシュボードでマスク表示されます(最後の4文字のみ表示)。 - キーが削除される際にセキュア削除が実行されます。 ## セーフモード Neotask にはエージェント用の実行サンドボックスを提供するセーフモード機能が含まれています: - エージェントごとの実行サンドボックスが各エージェントの操作を隔離します。 - 機密操作は実行前に明示的なユーザー承認を必要とします。 - マスタートグルによりセーフモードをグローバルに有効化または無効化できます。 - スケジュールに基づく自動再有効化により、一時的な変更後にセーフモードが再アクティベートされます。 - リアルタイムポリシー同期によりすべての接続間で設定が一貫して保たれます。 ## 監査とコンプライアンス - すべての設定変更はタイムスタンプ付きでログ記録されます。 - 設定ハッシュにより不正な変更が検出されます。 - 使用量テレメトリ(オプトイン)により異常検出が可能になります。 - CORS は承認されたドメインのみに制限されます。 - Helmet セキュリティヘッダーがすべての Web レスポンスに適用されます。 ## ベストプラクティス 1. ダッシュボードで二要素認証のために **TOTP を有効化**してください。 2. **バックアップコードをダウンロード**し、安全に保管してください。 3. 予期しない料金を防ぐために**日次予算を設定**してください。 4. API キーを完全に制御したい場合は **BYOK モードを使用**してください。 5. 自動更新にはセキュリティパッチが含まれるため、**アプリを最新の状態に保って**ください。 6. セーフモード設定で定期的に**エージェントの権限を確認**してください。