セキュリティ概要 / Security Overview
ライブアシストがデータをどう守っているかの概要です。運営: 株式会社インスパイア。最終更新: 2026年10月19日。
1. 構成とデータの流れ
- ユーザーはライブアシスト(Railway上のNext.js、HTTPSのみ)にログインします。
- ユーザーがOAuth 2.0(認可コードフロー)でZoomを連携します。トークンは暗号化して保存します。
- ユーザーが会議を選ぶと、サーバーがZoom APIを読み取り専用で呼び出して文字起こしを取得します。録画ファイルは再生時にブラウザへ中継し、当社のサーバーには保存しません。
- 文字起こしなどのテキストはAnthropicのAPIに送信して分析・レポートを作成し、結果はそのユーザーのデータとして永続ボリュームに保存します。
2. Zoomデータへのアクセス
- スコープ:
user:read:user、cloud_recording:read:list_user_recordings、cloud_recording:read:list_recording_files(いずれも読み取りのみ)。 - ユーザーが明示的に選んだ会議だけを処理します。広告・販売・プロファイリングには使用しません。
- OAuthの
state は、HMAC署名・ログイン中のユーザーとサービスへの紐付け・10分の有効期限により、CSRFを防ぎます。
3. データの保護
- 通信: HTTPS(HSTS)。
- OAuthトークン: AES-256-GCMで暗号化して保存。鍵はサーバーの環境変数にあり、データとは別に管理します。
- パスワード: ソルト付きscryptハッシュ。
- 面接データ・アカウント情報: データベースのファイル(アカウント、候補者、取り込んだ文字起こし、レポート)と、ブラウザで録音した音声は、ホスティング事業者の永続ボリュームに書き込む前に、アプリ側でAES-256-GCMにより暗号化して保存します。データの鍵はサーバーの環境変数で与え、ボリュームには保存しません。データはアカウントごとに分け、全てのAPIで、ログイン中のユーザーのデータかを検証します。
- 完全性: ファイルはGCMで認証され、改ざんされたファイルや鍵が違うファイルは拒否し、上書きしません。書き込みは原子的に行います。
- セッション: HMAC署名のCookie(HttpOnly、Secure、SameSite=Lax)。ログイン試行は回数制限があります。
- ブラウザ向けヘッダー: Strict-Transport-Security、Content-Security-Policy、X-Content-Type-Options、Referrer-Policy、X-Frame-Options、Permissions-Policy。
4. 委託先
- Railway Corp. — ホスティング。
- Anthropic, PBC — AI分析(文字起こしと書類のテキストを受け取ります)。
5. 保存期間と削除
データは、ユーザーが削除するまで保存します。面接・候補者・アカウントはアプリ内でいつでも削除でき、データと保存済みの音声ファイルが即時に削除されます。連携を解除するとトークンが削除されます。ユーザーがZoom側でアプリを削除した場合は、Zoomから署名つきの通知(アプリのシークレットトークンによるHMAC-SHA256検証、リプレイ対策つき)が届き、保存しているZoomのトークンを自動で削除します。Zoomから「データを保持しない」と通知された場合は、Zoomから取り込んだ面接データも削除します。プライバシーポリシーもご覧ください。
6. 現状(正直にお伝えします)
- SOC 2・ISO 27001の認証は取得しておらず、第三者によるペネトレーションテストも未実施です。
- 正式な安全な開発プロセスや、静的・動的なセキュリティテストの自動実行は、現時点ではありません。
- 暗号鍵は運営者が環境変数で管理しており、鍵の自動ローテーションはまだありません。
7. 脆弱性・インシデントの連絡
yuichiro_iwashita@insp.co.jp までご連絡ください。受領の連絡、調査、必要な場合の影響を受けるユーザーへの通知を行います。