امنیت FlashDesk
FlashDesk برای مدیریت امن ارتباط، تأیید، راستیآزمایی دستگاه و مدیریت عملیاتی کنترل از راه دور طراحی شده است. ویدئوی صفحه و دادههای کنترل برای هر نشست رمزنگاری میشوند.
رمزنگاری برای هر نشست
رسانه و دادههای کنترل با کلیدهای تولیدشده در شروع نشست رمزنگاری میشوند. FlashDesk از ECDH P-256، HKDF-SHA256 و AES-256-GCM استفاده میکند.
شماره توالی و برچسب احراز اصالت به تشخیص دستکاری و بستههای قدیمی کمک میکند.
ابتدا P2P، سپس رله در صورت نیاز
در صورت امکان، ویدئو و دادههای کنترل مستقیم بین دستگاهها ارسال میشوند. اگر اتصال مستقیم ممکن نباشد، رله استفاده میشود و دادهها همچنان رمزنگاریشده میمانند.
اجازه صریح در مقصد
دسترسی با تأیید دستی یا گذرواژه مجاز میشود. تأیید دستی میتواند یکبار یا برای مدت مشخص باشد و پس از پایان زمان بهطور خودکار قطع شود.
راستیآزمایی اثرانگشت دستگاه
FlashDesk برای هر نصب هویت دستگاه ایجاد میکند. اگر اثرانگشت مقصد مورد اعتماد تغییر کند، برای بررسی هشدار میدهد.
سیگنالینگ و ارتباط مجوز
FlashDesk برای شروع اتصال از WebSocket over TLS (wss://) و برای APIهایی مانند بررسی مجوز از HTTPS استفاده میکند. رسانه پس از برقراری در نشست رمزنگاریشده مدیریت میشود.
گواهی TLS خارجی
ارتباط سیگنالینگ FlashDesk از WebSocket روی HTTPS / TLS استفاده میکند. اطلاعات گواهی TLS عمومی زیر از سمت سرور دریافت میشود و هنگام تغییر گواهی بهطور خودکار بهروزرسانی میشود.
- دامنهها
- در حال بارگذاری اطلاعات گواهی...
- صادرکننده
- در حال بارگذاری اطلاعات گواهی...
- اثر انگشت SHA-256
- در حال بارگذاری اطلاعات گواهی...
- تاریخ انقضا
- در حال بارگذاری اطلاعات گواهی...
اطلاعات گواهی موقتا در دسترس نیست.
آزمون امنیتی خارجی
FlashDesk آزمون امنیتی وبسایت عمومی و نقاط پایانی مرتبط خود را با استفاده از OWASP ZAP انجام داده است. همچنین رتبه A یا بالاتر را در Mozilla Observatory، SSL Labs و Security Headers تأیید کردهایم.
مجوزهای سیستمعامل و حفاظت محلی
FlashDesk جریان مجوزهای macOS، Linux Wayland و سایر سیستمها را دنبال میکند. اطلاعات اتصال و گذرواژههای ذخیرهشده برای جلوگیری از ذخیره متن ساده پردازش میشوند.
دادههایی که سرورهای FlashDesk پردازش میکنند
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. |
دادههایی که در سرورهای FlashDesk ذخیره نمیشوند
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
مقصدهای شبکه و پروتکلها
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
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.
نصب و رفتار پسزمینه
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.
اصالت فایل و امضای کد
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.
گزارش آسیبپذیری
برای مسائل امنیتی از صفحه تماس استفاده کنید و [Security] را در موضوع بنویسید.
Please include the affected version, OS, reproduction steps, logs if available, and screenshots if relevant.
توصیههای عملیاتی
در رایانههای مشترک گذرواژه ذخیره نکنید، مقصدهای غیرضروری را حذف کنید، تغییر اثرانگشت ناشناس را تأیید نکنید و برای نشستهای طولانی محدودیت زمانی بگذارید.