Mirror Trelvix
אבטחת מידע ודרישות רשת · למחלקות IT
תקציר
גרסת מסך 1.3 ומעלה · אפליקציית iOS 1.3 ומעלה · עודכן: 1 בנובמבר 2026
- אין ענן. אין שרת חיצוני, אין חשבונות משתמשים ואין איסוף מידע. השידור עובר ישירות מהאייפון למסך, בתוך הרשת המקומית של הארגון.
- הכל מוצפן. התיאום עם המסך עובר ב-HTTPS/WSS (TLS 1.2 ומעלה), והווידאו והקול ב-WebRTC עם DTLS-SRTP.
- נדרשת נוכחות פיזית. כדי לשדר צריך קוד חד-פעמי שמוצג רק על המסך עצמו ומתחלף אחרי כל שידור.
- המסך לא צריך אינטרנט. גם הרישוי עובד בלי אינטרנט, באמצעות חתימה דיגיטלית.
רכיבים וזרימת מידע
| רכיב | תפקיד |
|---|---|
| אפליקציית המסך | אפליקציית SI שמותקנת על מסך LG webOS. כוללת שירות רקע מקומי שמנהל את החיבורים, את הקוד החד-פעמי, את דף הניהול ואת הרישוי. התוכן מוצג על המסך ולא נשמר. |
| אפליקציית iOS | סורקת את קוד ה-QR שעל המסך ומשדרת את מסך האייפון והקול של האפליקציות באמצעות ReplayKit ו-WebRTC. המיקרופון לא נשלח. |
| אתר (אופציונלי) | משמש רק לרכישה ולהפעלת רישיון. אין לו גישה למסכים או לשידורים. ארגון בלי אינטרנט יכול להדביק רישיון ידנית. |
מסלול החיבור: האייפון פונה למסך ב-WSS, מאמת את תעודת המסך ושולח את הקוד החד-פעמי. אם הקוד נכון, נפתח חיבור WebRTC ישיר בין האייפון למסך. אין שרת ממסר (STUN/TURN), והשידור לא יוצא מהרשת המקומית.
הצפנה ואימות המסך
- תעודה למסך. בהתקנה הראשונה כל מסך מייצר לעצמו מפתח ECDSA P-256 ותעודת TLS. המפתח הפרטי לא יוצא מהמסך.
- הצמדת תעודה (Certificate Pinning). ה-QR שעל המסך כולל טביעת אצבע SHA-256 של התעודה. האפליקציה מתחברת רק אם התעודה שמוצגת לה זהה לטביעה הזו, כך שמכשיר שמתחזה למסך ברשת לא יכול להתחבר לטלפון. ה-QR עצמו מגיע ממסך פיזי, ולכן לא ניתן לזייף אותו מרחוק.
- שידור. WebRTC עם DTLS-SRTP. טביעות האצבע של DTLS מוחלפות בתוך ערוץ ה-TLS המאומת, ולכן לא ניתן להתערב בחיבור (Man-in-the-Middle).
- דף הניהול נגיש רק ב-HTTPS. HTTP רגיל מפנה ל-HTTPS ומשרת רק דף מידע ציבורי. טביעת האצבע של התעודה מופיעה בדף הניהול, לאימות מול האזהרה שהדפדפן מציג על תעודה עצמית.
בקרת גישה
| מנגנון | פירוט |
|---|---|
| קוד שידור | 4 ספרות, מוצג רק על המסך. מתחלף אחרי כל שידור, בכל פעם שמסך הקוד מוצג, ואחרי 5 ניסיונות שגויים מכל המכשירים יחד. |
| נעילת מכשיר | 5 קודים שגויים ממכשיר אחד נועלים אותו ל-20 דקות. שאר המכשירים לא מושפעים, כך שתוקף לא יכול לנעול את כולם בחוץ. |
| פתיחת מסך הקוד | רק פיזית, מהשלט של המסך: INPUT ← כניסת ההפעלה, או כפתור הבית ← Mirror Trelvix. אין רשימת מסכים באפליקציה, ואי אפשר להקפיץ מסך מרחוק או להציג את הקוד שלו מחדר אחר. הקוד תקף רק בזמן שהוא מוצג, ומתחלף כשהמסך חוזר ל-HDMI. |
| סיסמת מנהל | נשמרת כ-scrypt hash עם salt. ההגדרה הראשונה דורשת את הקוד שעל המסך. איפוס דורש הקשה של 999 בשלט הפיזי של המסך. 5 ניסיונות שגויים ממכשיר נועלים אותו ל-20 דקות. |
| סשן ניהול | Cookie אקראי עם HttpOnly, Secure ו-SameSite=Strict, בתוקף 12 שעות. שינוי סיסמה מנתק את כל הסשנים. |
| שידור מקביל | מסך אחד מקבל שידור אחד בכל רגע. בקשת קוד בזמן שידור נדחית. |
דרישות רשת
| פורט | כיוון | שימוש |
|---|---|---|
TCP 8443 | טלפון/דפדפן ← מסך | HTTPS ו-WSS: תיאום חיבור ודף ניהול. אם הפורט תפוס: 8444, 9443 או 18443. |
TCP 8090 | טלפון/דפדפן ← מסך | HTTP: הפניה ל-HTTPS ודף מידע בלבד. אם הפורט תפוס: 8091, 9090 או 18090. |
UDP 5353 | Multicast 224.0.0.251 | mDNS: רק לכתובת הקבועה של דף הניהול (mt-xxxx.local). המסך לא מכריז על עצמו כשירות. לא חובה: אפשר להיכנס לדף הניהול גם בכתובת ה-IP. |
UDP פורטים דינמיים | טלפון ↔ מסך | WebRTC: וידאו וקול, ישירות בין המכשירים (בדרך כלל 49152–65535). |
| אינטרנט | — | לא נדרש, לא למסך ולא לשידור. נדרש רק למי שמפעיל רישיון דרך האתר, ממכשיר כלשהו. |
רשת אורחים מופרדת
בארגונים רבים האורחים מתחברים לרשת Wi-Fi נפרדת, שמבודדת מהרשת שבה המסכים מחוברים. במצב כזה האורח לא יראה את המסך ולא יוכל להתחבר אליו עד שה-IT יאפשר זאת. אפשרויות:
- ניתוב מוגבל: לאפשר מרשת האורחים לכתובות המסכים בלבד את TCP 8443 ואת UDP לפורטים הדינמיים. זה כל מה שנדרש: אין צורך ב-mDNS או ב-Bonjour Gateway.
- Client Isolation: אם רשת האורחים חוסמת תקשורת בין מכשירים, צריך לאפשר חריגה לכתובות המסכים.
- חלופה: לחבר את המסכים לרשת שהעובדים מחוברים אליה, ולתת לאורחים לשדר רק דרך עובד.
מידע שנשמר
- על המסך: שם המסך, hash של סיסמת המנהל, הרישיון ותאריך תחילת הניסיון, המספר הסידורי והדגם, והמפתח והתעודה של TLS. לא נשמרים תוכן שידור, פרטי משתמשים או יומני שימוש.
- באייפון: הכתובת, טביעת התעודה והקוד של המסך האחרון, בתוך האפליקציה בלבד. אין אנליטיקס, מעקב או פרסומות. בתווית הפרטיות ב-App Store: "Data Not Collected".
רכיבי צד שלישי
| רכיב | גרסה | שימוש |
|---|---|---|
| WebRTC (Google, stasel/WebRTC) | M120+ | אפליקציית iOS: שידור |
| ws | 8.22.1 | מסך: WebSocket |
| multicast-dns, dns-packet, thunky, ip-codec | 7.2.5, 5.6.1, 1.1.0, 2.0.5 | מסך: כתובת .local לדף הניהול |
| qrcode-generator | — | מסך: יצירת QR מקומית |
ההצפנה במסך משתמשת במודול crypto המובנה של Node.js, ובאייפון ב-Security ו-CryptoKit של אפל.
רישוי ועדכונים
- הרישיון קשור למספר הסידורי של המסך ולמזהה ההתקנה, וחתום ב-Ed25519. המסך מאמת אותו בלי חיבור לאינטרנט.
- עדכון גרסה מותקן דרך דיסק און קי (SI Server Setting), ביוזמת הארגון בלבד. אין עדכון אוטומטי מרחוק.
מגבלות ידועות
- התעודה עצמית, ולכן בכניסה הראשונה לדף הניהול הדפדפן מציג אזהרה. אפשר לאמת את טביעת האצבע שמופיעה בדף.
- אפליקציות עם תוכן מוגן (DRM) חוסמות שיקוף. זו מגבלה של iOS.
לשאלות אבטחה ולשאלוני ספקים: trelvixsupport@gmail.com
Security & network overview (English)
Screen app 1.3+ · iOS app 1.3+ · Updated November 1, 2026
Summary
- No cloud. No external servers, no user accounts, no data collection. The stream goes directly from the iPhone to the display inside your network.
- Encrypted. Signaling over HTTPS/WSS (TLS 1.2+); audio and video over WebRTC DTLS-SRTP.
- Physical presence required. Broadcasting needs a one-time code shown only on the display, which changes after every session.
- No internet required for the display, including licensing (offline Ed25519-signed licenses).
Encryption and display authentication
Each display generates its own ECDSA P-256 key and TLS certificate on first start. The private key never leaves the display. The on-screen QR code carries the certificate's SHA-256 fingerprint, and the app pins it: it only connects if the presented certificate matches. WebRTC DTLS fingerprints are exchanged inside that authenticated channel, which prevents man-in-the-middle attacks. The admin page is HTTPS-only. Plain HTTP only redirects and serves a public info page.
Access control
- Broadcast code: 4 digits, shown only on the display. It changes after every session, whenever the code screen is shown, and after 5 wrong attempts across all devices.
- Per-device lockout: 5 wrong codes or admin passwords from one device lock that device for 20 minutes. Other devices are not affected.
- Opening the code screen: only physically, with the display's remote (INPUT → the trigger input, or Home → Mirror Trelvix). The app has no list of displays, and a display can't be woken or shown remotely from another room. The code is valid only while it is shown and changes when the display returns to HDMI.
- Admin password: stored as a salted scrypt hash. First setup requires the on-screen code, and reset requires pressing 9 9 9 on the display's physical remote. Sessions use HttpOnly, Secure, SameSite=Strict cookies valid for 12 hours.
Network requirements
| Port | Direction | Purpose |
|---|---|---|
TCP 8443 | phone/browser → display | HTTPS/WSS signaling and admin. Fallbacks: 8444, 9443, 18443. |
TCP 8090 | phone/browser → display | HTTP redirect and info page only. Fallbacks: 8091, 9090, 18090. |
UDP 5353 | multicast 224.0.0.251 | mDNS for the admin page's .local address only. The display is not advertised as a service. Optional: the admin page also works by IP address. |
UDP ephemeral | phone ↔ display | WebRTC media, direct peer-to-peer (typically 49152–65535). No STUN/TURN. |
| Internet | — | Not required. Used only to activate a license through the website, from any device. |
Segmented guest networks
If guests use an isolated Wi-Fi network, allow TCP 8443 and UDP to the display addresses, and exempt the displays from client isolation. No mDNS gateway is needed.
Stored data
The display stores its name, admin password hash, license and trial start, serial number and model, and TLS key and certificate. It stores no broadcast content, user data or usage logs. The iPhone stores only the last display's address, fingerprint and code, inside the app. There are no analytics or tracking, and the App Store privacy label is "Data Not Collected".
Third-party components
WebRTC (Google, M120+) on iOS. On the display: ws 8.22.1, multicast-dns 7.2.5, dns-packet 5.6.1, thunky 1.1.0, ip-codec 2.0.5 and qrcode-generator. Cryptography uses the Node.js built-in crypto module on the display, and Apple Security/CryptoKit on iOS.
Updates
Updates are installed only by the organization via USB (SI Server Setting). There are no remote or automatic updates.
Security questions and vendor questionnaires: trelvixsupport@gmail.com