セキュリティモデル
CASTOVIA が運用、データ、subscriber、インフラをどのように保護するか。
プラットフォームのセキュリティ
SaaS Control Plane: Castovia は managed SaaS です。ソースコードは提供されません。self-hosting オプションもありません。インフラは Castovia が管理します。
Tenant Isolation: 各 provider は論理的に分離された tenant で運用されます。provider は他の provider のデータ、subscriber、stream、設定にアクセスできません。
RBAC (Role-Based Access Control): 4 つの役割があります:super_admin、admin (provider)、supplier、viewer。各役割には厳密に範囲が限定された権限があります。
Plan Enforcement: API レベルの soft + hard enforcement を備えた 7 段階のプランモデルです。重要な商用ルートでは hard enforcement が有効です。
認証とアクセス
Password Security: パスワードは bcrypt でハッシュ化されます。admin/supplier アカウントに平文保存はありません。
Node Authentication: provider node は、admin dashboard とは独立してローテーション可能な、スコープ付きのノード別 server token で認証します。
Rate Limiting: ログイン、サインアップ、問い合わせフォーム、API endpoint は IP ごとに rate limit され、ブルートフォース攻撃を防ぎます。
Session Management: JWT ベースのセッションで、24 時間で失効します。
Suspicious Activity Detection: 疑わしいログインパターンを自動検出し、記録します。
データ保護
No sourceUrl Exposure: 内部の stream source URL がエンドユーザーデバイスやクライアント側コードに公開されることはありません。
No storagePath Exposure: 内部の storage path はサーバー側のみに保持されます。
Signed Playback URLs: 再生 URL は有効期限付きで、暗号学的に署名されます。期限切れの URL は拒否されます。
Signed Playback Metadata: エンドユーザーデバイスには安全な metadata のみが渡されます。内部インフラの詳細は含まれません。
Audit Logs: 管理操作は責任追跡のために記録されます。
CDN/DRM 認証情報のセキュリティ
CDN API Keys: データベース内で暗号化して保存されます。API 応答で返されることはありません。UI ではマスクされます。
DRM Secrets: 暗号化して保存されます。クライアントデバイスに公開されることはありません。アプリケーションログに生の license secret は残しません。
No Origin Secret Exposure: CDN origin secret がエンドユーザーデバイスに公開されることはありません。
Stripe と請求のセキュリティ
Stripe Secret Key: サーバー側のみに置かれます。クライアント側コードや API 応答には公開されません。
Webhook Signature Verification: すべての Stripe webhook イベントは、処理前に HMAC 署名で検証されます。
Idempotent Processing: 重複処理を防ぐため、webhook イベントは重複排除されます。
Publishable Key: クライアント側の checkout フローでは、公開可能な key(読み取り専用)のみを使用します。
法的位置づけと不正利用防止
No Content Provision: Castovia は TV/video コンテンツを提供、ホスト、配信しません。コンテンツの法的権利はプロバイダーが全面的に責任を負います。
Abuse Reporting: 公開の不正利用報告メカニズムがあります。報告は確認され、対応されます。
Account Suspension: Castovia は、違法にコンテンツを配信するアカウントを停止する権利を留保します。
Log Preservation: 関連ログは、法令上必要な場合、コンプライアンスのために保持されることがあります。
Acceptable Use Policy: すべての provider は同意する必要があります。違反があれば即時停止となる場合があります。