הצפנה מקצה לקצה (E2E)
כל התקשורת בין ה-Client ל-Agent מוצפנת מקצה לקצה. השרת לא יכול לקרוא את תוכן ההודעות - הוא רק מעביר נתונים מוצפנים. גם אם השרת נפרץ, המידע נשאר מוגן.
אלגוריתמים בשימוש
החלפת מפתחות:
X25519 (Curve25519 ECDH)
החלפת מפתחות אליפטית מאובטחת - 128 bit security level
הצפנה סימטרית:
XChaCha20-Poly1305
AEAD cipher עם 256 bit key ו-192 bit nonce
תהליך יצירת Session מאובטח
אימות והרשאות (JWT)
המערכת משתמשת באימות מבוסס JWT (JSON Web Tokens) עם מנגנון Refresh Token לשמירה על אבטחה מקסימלית תוך שמירה על חוויית משתמש נוחה.
Access Token
- תוקף קצר: 15 דקות
- מכיל: User ID, Roles, Permissions
- חתימה: HMAC-SHA256
- נשלח בכל בקשה ב-Header
Refresh Token
- תוקף ארוך: 7 ימים
- נשמר בצורה מאובטחת במסד הנתונים
- Token rotation בכל חידוש
- יכולת ביטול מיידי (Revocation)
מבנה ה-JWT
הגבלת קצב ואימות נתונים
המערכת מיישמת מנגנוני הגנה רבים כנגד ניצול לרעה והתקפות DoS.
הגבלת קצב (Rate Limiting)
| פקודות קלט | 1,000 / שנייה |
| גודל פריים מקסימלי | 10 MB |
| גודל קובץ מקסימלי | 10 GB |
| Timeout ל-Session | 60 דקות |
אימות נתונים
- בדיקת גודל פריימים לפני עיבוד
- אימות Session ID בכל בקשה
- בדיקת Checksum להעברות קבצים
- סניטיזציה של נתיבי קבצים
הגנה מפני Path Traversal
שירות העברת הקבצים מיישם הגנה מקיפה מפני התקפות Directory Traversal שמטרתן לגשת לקבצים מחוץ לתיקיות המורשות.
בדיקות שמבוצעות
- המרה לנתיב מלא (GetFullPath)
- בדיקה שהנתיב בתיקיה מורשית
- חסימת רצפי ".."
- בדיקת תווים לא חוקיים
- חסימת null bytes
מודל איומים והגנות
| איום | חומרה | הגנה | סטטוס |
|---|---|---|---|
| Man-in-the-Middle | גבוהה | TLS 1.3 + E2E Encryption | מוגן |
| Replay Attack | גבוהה | Nonce ייחודי לכל הודעה | מוגן |
| Session Hijacking | גבוהה | JWT + Session validation | מוגן |
| Brute Force | בינונית | Rate limiting + Account lockout | מוגן |
| DoS Attack | בינונית | Rate limiting + Frame size validation | מוגן |
| Path Traversal | גבוהה | Path sanitization + Allowed roots | מוגן |
| Token Theft | בינונית | Short-lived tokens + Refresh rotation | מוגן |
| Server Compromise | גבוהה | E2E encryption - server can't read data | מוגן |
המלצות אבטחה
לשרת
- השתמש ב-HTTPS עם תעודה תקפה
- הגדר JWT secret חזק (256+ bit)
- הפעל logging לכל הפעולות הרגישות
- עדכן תלויות באופן שוטף
- הגבל גישת רשת לפורטים נדרשים בלבד
ל-Agent
- הרץ עם הרשאות מינימליות
- הגבל תיקיות מורשות להעברת קבצים
- וודא שהשרת מזוהה נכון (Certificate pinning)
- השבת גישה כש-Agent לא בשימוש
- שמור logs מקומיים לביקורת