FlashDesk のセキュリティ
FlashDesk は、遠隔操作に必要な通信、接続承認、端末確認、運用管理を安全に扱えるよう設計されています。画面映像や操作データはセッションごとに暗号化され、接続先では手動承認またはパスワードによってアクセスを制御できます。
セッションごとの暗号化
FlashDesk のメディア通信と操作データは、セッション開始時に生成される鍵で暗号化されます。鍵交換には ECDH P-256、鍵導出には HKDF-SHA256、暗号化には AES-256-GCM を使用しています。
各パケットにはシーケンス番号と認証タグが含まれ、改ざんや再送された古いパケットを検出できるようにしています。
P2P 優先、必要に応じてリレー
接続中の映像や操作データは、可能な場合は端末間で直接送受信します。ネットワーク環境により直接接続できない場合はリレー経由に切り替わりますが、メディアと操作データのペイロードはセッション鍵で暗号化された状態で送受信されます。
接続先での明示的な許可
接続先では、手動承認またはパスワードによる接続許可を選べます。手動承認では、接続を 1 回だけ許可する方法と、指定した時間だけ許可する方法を選択できます。時間制限付きの接続は、期限に達すると自動的に切断されます。
端末フィンガープリントによる確認
FlashDesk はインストールごとに端末識別用の鍵を作成し、その公開鍵からフィンガープリントを生成します。一度信頼した接続先のフィンガープリントが変わった場合は、別の端末になりすましていないか確認できるよう警告します。
シグナリングとライセンス通信
接続の開始や候補情報の交換には WebSocket over TLS(wss://)を使用します。ライセンス確認などの API 通信も HTTPS 経由で行われます。シグナリングサーバーは接続開始に必要な情報を中継し、メディア通信は確立後の暗号化されたセッションで扱われます。
外部向けTLS証明書
FlashDeskのシグナリング通信は HTTPS / TLS 上の WebSocket を使用しています。以下が公開TLS証明書情報です。
- 対象ドメイン
- 証明書情報を取得しています...
- Issuer
- 証明書情報を取得しています...
- SHA-256 Fingerprint
- 証明書情報を取得しています...
- 有効期限
- 証明書情報を取得しています...
証明書情報が読み込まれない場合は、機密情報を入力する前にブラウザから現在のTLS証明書を確認してください。
外部セキュリティ診断
FlashDesk は、公開Webサイトおよび関連エンドポイントに対して OWASP ZAP によるセキュリティ診断を実施済みです。加えて、Mozilla Observatory、SSL Labs、Security Headers において A 以上の評価を確認しています。
OS 権限とローカル保護
FlashDeskは、macOSのScreen RecordingやAccessibility権限、Linux Waylandの画面共有権限など、各OSで必要な権限フローに従います。保存された接続情報は平文保存を避ける処理を行っています。
FlashDeskサーバで扱うデータ
FlashDeskサーバは、サービス運用、不正利用防止、サポート、請求、チーム管理に必要な範囲で、以下の情報を扱う場合があります。
| データ | 用途 | 保存の扱い | 補足 |
|---|---|---|---|
| FlashDesk ID / device identifier | 接続開始、端末検索、ライセンス紐付け | 必要な範囲で保存 | 端末の識別と接続要求の配送に使います。 |
| Device fingerprint public information | 端末確認、ID紐付け | 該当する場合はハッシュとして保存 | サーバはfingerprint関連のハッシュを保存します。端末の秘密鍵は保存しません。 |
| App version and OS type | 互換性確認、サポート、運用分析 | クライアント状態として保存または更新 | 管理画面やサポートで必要な場合に参照します。 |
| Connection status and path status | 接続維持、シート制御、管理画面表示 | セッション中は一時的。Proでは一部を監査記録として保存 | 報告された場合、direct、relay、probingなどの状態を含みます。 |
| IP address and network metadata | サービス運用、不正利用防止、障害調査 | 必要な範囲で運用記録に保存 | last seen IP、ダウンロード計測、WebSocket診断メタデータを含む場合があります。 |
| License / subscription status | ライセンス確認、請求、シート管理 | 必要な範囲で保存 | カード番号などの決済詳細は決済事業者が扱い、FlashDeskでは保存しません。 |
| Error logs or operational logs | サポート、障害調査、不正利用防止 | 運用ログとして保存。サーバログは30日で自動削除されます | WebSocketログでは ssh_tunnel_data のpayloadをマスクします。診断用メタデータは記録される場合があります。 |
| Admin console activity for Pro users | チーム管理、ライセンスとセッションの確認 | 管理記録として保存 | 組織、ユーザー、ライセンス、シート、セッション監査の記録を含みます。 |
FlashDeskサーバに保存しない情報
FlashDeskサーバは、通常のリモート接続において以下の情報を保存しません。
- リモート画面の映像内容
- キーボード入力内容
- マウス操作内容
- ファイル転送の中身
- ssh_tunnel_data として扱われるSSH tunnel payload内容
- 録画セッション映像
通信先とプロトコル
導入前に確認しやすいよう、主な通信を用途別にまとめます。
| 用途 | プロトコル | 主なポート | 主な通信先 | 補足 |
|---|---|---|---|---|
| Webサイト / ダウンロード | HTTPS | 443/TCP | FlashDesk公式サーバ | 公式配布ファイルのバージョンとSHA-256 checksumを表示します。 |
| シグナリング | WebSocket over TLS (wss://) | 443/TCP | flashdesk.io/ws | 接続開始とcandidate情報の交換に使用します。 |
| API / ライセンス確認 | HTTPS | 443/TCP | flashdesk.io/api/license/verify | 登録済みライセンスキーとシート状態の確認に使用します。 |
| 更新確認 | HTTPS | 443/TCP | flashdesk.io/data/latest.json とパッケージパス | アプリはHTTPSで更新manifestを定期確認し、公式サーバから更新パッケージを取得し、適用前に想定SHA-256 hashを検証します。 |
| STUN / P2P候補確認 | UDP | 3478/UDP | FlashDesk公式サーバ | 直接P2P接続を試す前に到達可能なネットワークendpointを確認します。 |
| 直接P2P接続 | UDP media/control path | 相手端末側の動的UDPポート | 相手端末のネットワークendpoint | NAT/firewall条件が許す場合は直接接続を優先します。 |
| リレー接続 | リレー経路上の暗号化済みmedia/control payload | 現行desktop appでは40020/UDP | FlashDesk relay server | 端末間の直接経路が利用できない場合に使用します。SDK relayws responseでは443/TCPを使用します。 |
リレーサーバ経由時の扱い
FlashDeskはまず端末間の直接経路を試します。NAT、firewall、VPN、モバイルネットワークなどの条件により直接UDP通信ができない場合、必要に応じてリレー経路でセッションを継続することがあります。
リレー経路を使う場合、リレーサーバはセッションのpacketを転送します。media/control payloadは引き続きセッションごとの鍵で暗号化され、packetには改ざんや古いpacketの再送を検出するための認証情報が含まれます。
インストール後の挙動
FlashDeskはバックグラウンドで動作でき、設定が有効な場合はOS起動時に自動起動できます。OS別の主な仕組みは以下です。
- Windows: FlashDesk_Autostart などの自動起動設定を使う場合があります。
- macOS: LaunchAgent plistを使う場合があります。
- Linux: XDG Autostartを使う場合があります。
OS権限が必要な機能があります。macOSでは画面共有にScreen Recording権限、操作にAccessibility権限が必要です。Linux Waylandでは desktop portal / PipeWire による画面共有権限が必要になる場合があります。FlashDeskはHTTPSで更新manifestを定期的に確認し、公式サーバから更新パッケージを取得し、適用前に想定SHA-256 hashを検証します。
ローカル設定やログはユーザー端末上のFlashDeskデータディレクトリに保存されます。設定は flashdesk_settings.json、ログは FlashDesk/logs、録画を利用する場合は FlashDesk/recording に保存されます。ローカルログは通常7日分を保持する設計です。
ファイルの真正性と署名
公式ダウンロードページでは、公式リリースファイルのバージョンとSHA-256 checksumを表示します。インストール前に、ダウンロードしたファイルのSHA-256を公開値と比較できます。
- Windows: FlashDeskの .exe は Authenticode コード署名済みです。ファイルのプロパティ > デジタル署名、または PowerShell の
Get-AuthenticodeSignature .\FlashDesk.exeで確認できます。 - macOS: FlashDeskの .pkg / .app は Apple Developer ID 証明書で署名され、Appleによるnotarization済みです。
- Linux: .deb、.rpm、AppImage は公開されたSHA-256 checksumを確認してください。
脆弱性報告
セキュリティ上の問題は 連絡先ページ から件名に [Security] を付けて連絡してください。
可能であれば、対象バージョン、OS、再現手順、利用可能なログ、関連するスクリーンショットを含めてください。
運用上のおすすめ
共有 PC ではパスワード保存を避ける、不要になった接続先は削除する、身に覚えのないフィンガープリント変更は承認しない、長時間の接続には時間制限や自動切断を使う、といった運用を推奨します。