prompt-relay は LAN / VPN / Tailscale 等の信頼できるネットワーク内 での個人利用を想定しています。
- HTTPS による通信の暗号化: サーバは自己署名証明書を自動生成し、HTTPS (ポート 3940) を提供します。Tailscale 証明書や Let's Encrypt 証明書の利用も可能です
- ルームキーによるデータ分離: クライアントが送信する Bearer トークン(ルームキー)ごとにデータ空間が分離され、異なるキーのクライアントは互いのリクエストにアクセスできません
- 揮発性ストレージ: 全データはインメモリで保持され、サーバ再起動で消去されます。ディスクへの永続化は行いません
- 通知の取り違え防止: 古い通知から応答しても、サーバ側でキャンセル済みリクエストとして拒否されます
- ルームキーの正当性検証: サーバは任意のキーでルームを作成できます。事前に登録されたキーとの照合は行いません。そのため、インターネットに直接公開すると第三者がルームを作成・参照できます
- E2E 暗号化: プロンプト内容や選択肢のテキストはサーバ上で平文として保持されます。通信経路は HTTPS で暗号化されますが、サーバ自体が侵害された場合にはデータを保護できません
- 認証の強度: ルームキーはパスワード的な文字列であり、レート制限やアカウントロックアウト等の総当たり対策は実装していません
- 監査ログ: アクセスログはコンソール出力のみで、永続的な監査証跡は残りません
以下のファイルは .gitignore で除外されており、リポジトリにコミットされません:
server/.env— サーバ設定(VAPID キー、APNs 設定等)server/certs/*.p8— APNs 秘密鍵server/certs/*.pem— HTTPS 証明書・秘密鍵
- サーバはファイアウォールや VPN の内側で運用してください
- ルームキーは十分な長さ(16 文字以上推奨)のランダム文字列を使い、他のサービスのパスワードと使い回さないでください
- 複数人で 1 つのサーバを共有する場合は、ユーザーごとに異なるルームキーを使用してください
セキュリティ上の問題を発見した場合は、Issue で報告してください。