איך אנחנו שומרים על הנתונים שלכם
Teaching מחזיקה שמות וטלפונים של תלמידים והורים, שיעורים ותשלומים. הדף הזה מפרט מה אנחנו עושים כדי להגן עליהם, בלי הבטחות שאי אפשר לבדוק. כל משפט כאן נשען על בדיקה אוטומטית או על הקוד, ומה שעדיין לא עשינו כתוב במפורש.
כל מורה רואה רק את הנתונים שלו
- הנתונים של כל מורה ושל כל בית ספר יושבים באותו מסד נתונים, אבל ההפרדה נאכפת במסד עצמו: הגנה ברמת השורה (row level security) מופעלת ונאכפת בכל טבלה שמחזיקה נתוני לקוח, ולכן שאילתה שנעשתה עבור מורה אחת לא יכולה להחזיר שורה של מורה אחרת.
- זהות המורה נלקחת רק מההתחברות המאומתת בשרת. ערך שהדפדפן שולח על "מי אני" אינו נקרא בכלל.
- בדיקה אוטומטית חוסמת כל שינוי שמוסיף טבלת נתונים בלי ההגנה הזו, ובדיקות נוספות מנסות בפועל לקרוא נתונים של מורה אחת בשם מורה אחרת ומצפות לא למצוא דבר.
- הפורטל הציבורי קורא רק תצוגה של פרופילים שפורסמו. כתובת מדויקת, טלפון ומייל של מורה אינם בה, והם נחשפים רק אחרי שהמבקר עבר שלב חשיפה מבוקר.
כניסה והרשאות
- סיסמאות נשמרות רק כגיבוב argon2id עם מלח, אף פעם לא כטקסט. ניסיונות כניסה כושלים מואטים לפי כתובת ולפי חשבון.
- אסימון הגישה תקף 15 דקות. הישארות מחוברים נמשכת עד 30 ימים ונגמרת ביציאה או באיפוס סיסמה.
- מורי בית ספר נכנסים בקישור אישי חד-פעמי, ותלמידים של מורה פרטי בקישור אישי שהמורה יכולה לבטל. בשני המקרים נשמר רק גיבוב של הקישור. כניסה של מורה בית ספר תקפה 12 שעות.
- כניסה עם Google היא אפשרות בלבד, והסיסמה שלכם ב-Google לא מגיעה אלינו.
- הכניסה של הבעלים ללוח הניהול היא מערכת נפרדת עם הגנה משלה, וכל ניסיון כניסה אליה נרשם ביומן שנשמר 90 ימים.
אילו נתונים אנחנו מחזיקים, ולכמה זמן
- מורה פרטית מזינה שמות ופרטי קשר של תלמידים והורים, שיעורים ותשלומים. הנתונים האלה שלה: אנחנו מעבדים אותם עבורה.
- Teaching School בנויה סביב מורים, כיתות ומערכת שעות. אין בה שדות או רשומות של תלמידים, ובדיקה אוטומטית מוודאת שבאף טבלה של בית הספר אין עמודה של תלמיד.
- חיפושים בפורטל נשמרים 90 ימים, ושיחות עם עוזר התמיכה 90 ימים.
- כשמוחקים חשבון הוא ננעל מיד, והמידע האישי והעסקי נמחק לצמיתות אחרי 30 ימים. רישומי חיוב נשארים בלי פרטים אישיים, כפי שהחוק דורש.
- מורה יכולה לייצא את הנתונים שלה לקובץ בכל רגע.
תשלומים
- Teaching לא שומרת מספרי כרטיס אשראי מלאים. התשלום בכרטיס מתבצע בדף של ספק הסליקה (iCount), ואצלנו נשמרים רק הסכום, הסטטוס ומספר החשבונית.
- תשלום של תלמיד למורה (ביט, פייבוקס, מזומן) לא עובר דרכנו. Teaching רושמת מה שהמורה מסמנת כשולם ולא מזיזה כסף.
- מפתחות החיבור לספקים (תשלום, מייל, בינה מלאכותית) נשמרים מוצפנים ומוצגים מוסתרים, ואף מפתח לא נכתב בקוד או ביומנים.
אחסון, הצפנה ותשתית
- התקשורת עם האתר מוצפנת (HTTPS), וכותרות אבטחה מופעלות: מדיניות תוכן (CSP) ואיסור להטמיע את הדפים במסגרות.
- המערכת רצה בענן של Amazon באזור ישראל (תל אביב).
- מפתחות האינטגרציות מוצפנים בהצפנת AES-256-GCM, והמפתח שמצפין אותם נשמר בנפרד ממסד הנתונים.
- תפקידי מסד הנתונים מוגבלים: האפליקציה מתחברת בתפקיד בלי הרשאות על ובלי בעלות על הטבלאות, והפורטל הציבורי משתמש בתפקיד נפרד שיכול רק לכתוב חיפושים ולקרוא תצוגה אחת.
תכונות בינה מלאכותית
- עוזר התמיכה וקריאת האילוצים של בית הספר משתמשים בספקי בינה מלאכותית חיצוניים, ששמותיהם במדיניות הפרטיות. הטקסט נשלח לספק לעיבוד וייתכן שיעובד מחוץ לישראל.
- עוזר התמיכה רואה רק את מדריך המוצר ואת המספרים של המורה ששואלת. בבדיקות האוטומטיות שלנו הוא לא חושף נתונים של מורה אחרת, גם כשדוחפים אותו לכך.
- אילוץ שהבינה המלאכותית קראה מטקסט של בית ספר ממתין לאישור של בית הספר. שום אילוץ לא נכנס לחישוב לפני שאדם אישר אותו.
ניטור ותקלות
- שגיאות נאספות אוטומטית ומקובצות לפי טביעת אצבע, ותקלה קריטית מתריעה לבעלים מיד.
- דף המצב מציג את מצב המערכת עכשיו ו-90 ימים אחורה. הוא מחושב מנתוני אמת של המערכת ולא נערך ביד.
- תקלה שפגעה בשירות מופיעה בדף המצב עם שעת התחלה ושעת סיום.
מה אנחנו לא טוענים
- אין לנו תעודת אבטחת מידע פורמלית (כמו ISO 27001 או SOC 2), ואנחנו לא מציגים סמלים שרומזים אחרת.
- הרישום כספק מאושר בגפ"ן של משרד החינוך נמצא בתהליך ולא הושלם. עד אז בתי ספר מצטרפים ישירות.
- אין מערכת חסינה. כשמשהו משתבש אנחנו מתעדים, מתקנים, ומפרסמים בדף המצב כל תקלה שפגעה בשירות.
מצאתם בעיית אבטחה?
- אם מצאתם חולשה, כתבו לנו לפני שאתם מפרסמים אותה. כל דיווח נקרא על ידי אדם.
- עד שכתובת הדיווח תפורסם כאן, כתבו לנו דרך צ'אט התמיכה בפינת הדף.