אבטחה
7 שכבות הגנה — מבסיס הנתונים שלא נחשף לאינטרנט, דרך login throttle, JWT, ועד audit log עם hash chain שלא ניתן לערוך retroactive.
על המסך
7 שכבות הגנה
Database מבודד
PostgreSQL לא חשוף לאינטרנט. רק האפליקציה (בענן הפנימי) יכולה להתחבר.
סודות מוצפנים
טוקנים, סיסמאות, מפתחות API — כולם ב-AES-256-GCM, hardware-encrypted at rest.
JWT 15 דקות
Access token פג כל 15 דקות. Refresh token תקף 30 יום ומותר רק לאותה כתובת IP.
Login throttle
5 ניסיונות כושלים — IP נחסם ל-30 דקות. סופר-אדמין יכול להסיר ידנית.
Audit log עם hash chain
כל פעולה רגישה ב-log. כל רשומה כוללת hash של הקודמת — שינוי שובר את השרשרת.
Multi-tenant isolation
כל לקוח (tenant) ב-schema נפרד. שאילתות חוצות tenant — בלתי אפשריות.
RBAC מתקדם
תפקידים מובנים + הרשאות ברמת שדה. ניתן ליצור תפקיד מותאם.
גיבוי כפול
גיבוי בזמן-אמת בישראל + גיבוי offsite חוצה מדינה. RPO 30 דקות.
Audit log + hash chain
כל פעולה רגישה נכתבת ל-table audit_log. כל רשומה כוללת:
- id, user_id, action, payload, timestamp
- prev_hash — hash של הרשומה הקודמת
- hash — SHA-256(prev_hash + content)
אם מישהו ינסה לערוך / למחוק רשומה — ה-hash של הרשומה הבאה כבר לא יתאים, וביקורת תוכל לזהות. שרשרת ניתנת לאימות בקריאת API.
תאימות הוראות ניהול ספרים
טמית עומדת בכל הדרישות:
- ספרור רץ ללא פערים פר-doctype
- סגירת מסמך אטומית — אין עריכה בדיעבד
- חתימה דיגיטלית פר-מסמך
- ייצוא BKMV מוכן בכל זמן
- audit log עם hash chain (יותר ממה שמחייב החוק)
- שמירת נתונים 7 שנים מינימום
גיבוי וזמן התאוששות
RPO (recovery point — כמה נתונים יאבדו): 30 דקות. RTO (recovery time — כמה זמן עד שחזרנו): 4 שעות. נתונים גובים לישראל ו-offsite מחוץ למדינה (לאיום מקומי).
שגיאות נפוצות
- שגיאה: "ה-IP שלך נחסם — 30 דקות"
פתרון: הקפדה על 5 ניסיונות. אם זה היה אמיתי — חכה. אם זו טעות (מישהו מנסה לתקוף) — שלח את הלוג ל-support, ננתח. - שגיאה: "Audit chain broken at record 14982"
פתרון: זו שגיאה קיצונית שמראה ניסיון השחתה. הקפא את החשבון מיד וצור קשר עם תמיכה.