FlashDesk Security
FlashDesk is designed to handle the communication, connection approval, device verification, and operational management required for remote control. Screen video and control data are encrypted per session, and access to the destination can be controlled through manual approval or a password.
Per-session encryption
FlashDesk media communication and control data are encrypted with keys generated when a session starts. Key exchange uses ECDH P-256, key derivation uses HKDF-SHA256, and encryption uses AES-256-GCM.
Each packet includes a sequence number and authentication tag so tampering and replayed old packets can be detected.
P2P first, relay when needed
During a session, video and control data are sent directly between devices whenever possible. If the network environment prevents direct connection, FlashDesk switches to relay routing, while media and control payloads continue to be sent encrypted with the session key.
Explicit permission on the destination side
On the destination side, access can be allowed through manual approval or password-based authorization. Manual approval can allow a connection only once, or allow it for a selected amount of time. Time-limited sessions disconnect automatically when the limit is reached.
Device fingerprint verification
FlashDesk creates a device identity key for each installation and derives a fingerprint from its public key. If the fingerprint of a previously trusted destination changes, FlashDesk warns so you can check whether the destination device has changed.
Signaling and license communication
FlashDesk uses WebSocket over TLS (wss://) to start connections and exchange candidate information. API communication such as license verification uses HTTPS. The signaling server relays the information needed to start a connection, while media communication is handled by the encrypted session after it is established.
External TLS certificate
FlashDesk signaling communication uses WebSocket over HTTPS / TLS. The following is the public TLS certificate information.
- Domains
- Loading certificate information...
- Issuer
- Loading certificate information...
- SHA-256 fingerprint
- Loading certificate information...
- Expires
- Loading certificate information...
If certificate details do not load, please verify the current TLS certificate from your browser before entering sensitive information.
External Security Testing
FlashDesk has completed security testing of its public website and related endpoints using OWASP ZAP. We have also confirmed ratings of A or higher on Mozilla Observatory, SSL Labs, and Security Headers.
OS permissions and local protection
FlashDesk follows the permission flows required by each OS, such as macOS Screen Recording and Accessibility permissions, and Linux Wayland screen sharing permissions. Saved connection information is processed to avoid plaintext storage.
Data handled by FlashDesk servers
FlashDesk servers may handle the following information as needed for service operation, abuse prevention, support, billing, and team administration.
| Data | Purpose | Stored or temporary | Notes |
|---|---|---|---|
| FlashDesk ID / device identifier | Connection start, device lookup, license association | Stored where needed | Used to identify devices and route requests. |
| Device fingerprint public information | Device verification and ID binding | Stored as a hash where applicable | The server stores fingerprint-related hashes, not the private identity key. |
| App version and OS type | Compatibility, support, and operational analysis | Stored or updated with client status | Shown in admin and support contexts where applicable. |
| Connection status and path status | Connection maintenance, seat control, admin visibility | Temporary during sessions; selected audit records for Pro | Includes whether a session is direct, relay, or probing when reported. |
| IP address and network metadata | Service operation, abuse prevention, diagnostics | Stored in operational records where needed | May include last seen IP, download tracking, and WebSocket diagnostic metadata. |
| License / subscription status | License verification, billing, seat management | Stored where needed | Payment card details are handled by the payment provider, not by FlashDesk. |
| Error logs or operational logs | Support, outage investigation, abuse prevention | Stored as operational logs; server logs are automatically deleted after 30 days | WebSocket logs redact ssh_tunnel_data payloads; other metadata may be logged for diagnostics. |
| Admin console activity for Pro users | Team administration, license and session review | Stored as admin records | Includes organization, user, license, seat, and session audit records. |
Data not stored by FlashDesk servers
FlashDesk servers do not store the following information during ordinary remote connections:
- remote screen video contents
- keyboard input contents
- mouse operation contents
- file transfer contents
- SSH tunnel payload contents handled as ssh_tunnel_data
- recorded session video contents
Network endpoints and protocols
The following table summarizes communication that administrators may want to review before deployment.
| Purpose | Protocol | Port | Typical destination | Notes |
|---|---|---|---|---|
| Website / download | HTTPS | 443/TCP | FlashDesk official servers | Download pages show the version and SHA-256 checksum for official release files. |
| Signaling | WebSocket over TLS (wss://) | 443/TCP | flashdesk.io/ws | Used to start sessions and exchange candidate information. |
| API / license check | HTTPS | 443/TCP | flashdesk.io/api/license/verify | Used when checking a registered license key and seat status. |
| Update check | HTTPS | 443/TCP | flashdesk.io/data/latest.json and package paths | The app periodically checks the update manifest over HTTPS, downloads update packages from official servers, and verifies the expected SHA-256 hash before applying an update. |
| STUN / P2P candidate check | UDP | 3478/UDP | FlashDesk official servers | Used to discover a reachable network endpoint before attempting direct P2P. |
| Direct P2P connection | UDP media/control path | Dynamic UDP ports on peer devices | Peer device network endpoints | Direct connection is preferred when NAT/firewall conditions allow it. |
| Relay connection | Encrypted media/control payloads over the relay path | 40020/UDP in the current desktop app | FlashDesk relay server | Used when a direct device-to-device path is not available. SDK relayws responses use 443/TCP. |
Relay server behavior
FlashDesk first attempts a direct device-to-device path. Because NAT, firewall, VPN, and mobile-network conditions can prevent direct UDP communication, sessions may continue through a relay path when needed.
When relay routing is used, the relay server forwards packets for the session. Media and control payloads continue to be encrypted with the per-session key, and packets include authentication data used to detect tampering or replayed old packets.
Installation and background behavior
FlashDesk can run in the background and can start automatically with the OS when the setting is enabled. The current default setting enables OS startup.
- Windows: startup is managed through a user logon scheduled task named FlashDesk_Autostart, with a legacy Run-key fallback check.
- macOS: startup is managed through a LaunchAgent plist.
- Linux: startup is managed through XDG Autostart.
OS permissions are requested only as needed for features. macOS may require Screen Recording for screen capture and Accessibility for remote input control. Linux Wayland sessions use the desktop portal / PipeWire screen-sharing flow. FlashDesk periodically checks an HTTPS update manifest, downloads update packages from official servers, and verifies the expected SHA-256 hash before applying an update.
Local settings are stored under the user's application data folder in FlashDesk/flashdesk_settings.json. Local app logs are written under the user's local application data folder in FlashDesk/logs with a 7-day retention setting in the current app code. Local screen recordings, when enabled by the user, are stored under FlashDesk/recording on the user's device.
File authenticity and code signing
Download pages show the version and SHA-256 checksum for official release files. Before installation, users can compare the downloaded file's SHA-256 checksum with the value published on the download page.
- Windows: FlashDesk .exe files are signed with Authenticode. You can check the signature from file Properties > Digital Signatures, or run
Get-AuthenticodeSignature .\FlashDesk.exein PowerShell. - macOS: FlashDesk .pkg and .app distributions are signed with Apple Developer ID certificates and notarized by Apple.
- Linux: verify the published SHA-256 checksum for .deb, .rpm, and AppImage downloads.
Vulnerability reporting
For security issues, please use the Contact page with [Security] in the subject.
Please include the affected version, OS, reproduction steps, logs if available, and screenshots if relevant.
Operational recommendations
We recommend avoiding saved passwords on shared PCs, deleting destinations you no longer need, not approving fingerprint changes you do not recognize, and using time limits or automatic disconnect for long-running sessions.