אחסון מוצפן מפריד בין בתי הקובץ לבין היכולת לפענח אותו, אבל נמענים, מטא־נתונים ועותקים מקומיים נשארים חלק ממודל האיומים.
אפשר לאחסן קובץ מצורף המוצפן מקצה לקצה בשרת בלי לתת לשרת את הקובץ הגלוי. תכנון נפוץ מצפין את הקובץ במכשיר השולח במפתח תוכן חדש, מעלה את טקסט ההצפנה ושולח את המפתח לנמענים המיועדים בתוך הודעה מוצפנת ומאומתת.
ההפרדה מועילה, אבל ״אחסון באפס ידיעה״ אינו מפרט מלא. עדיין צריך לשאול איך מטפלים במפתחות, בהפניות לקבצים, בשמות קבצים, בבקרות גישה ובעותקים שהורדו.
מחזור החיים של קובץ מצורף
- הכנת הקובץ. השולח בוחר תמונה, סרטון או מסמך. הסרת מטא־נתונים או המרת קידוד היא שלב נפרד; הצפנה לבדה אינה מסירה EXIF או מאפייני מסמך.
- יצירת חומר ההצפנה. מימוש בטוח מייצר את חומר המפתח וה־nonce הנדרש לפי השיטה שנבחרה.
- הצפנה לפני העלאה. שירות האחסון מקבל בתים מוצפנים במקום התוכן המקורי.
- מסירת הפניה מאומתת. הודעת הצ׳אט המוצפנת נושאת את המידע שהנמענים צריכים, כגון מצביע למיקום הקובץ, מפתח פענוח ומטא־נתוני שלמות רלוונטיים.
- שליפה ואימות. לקוח הנמען שולף את ה־blob ובודק את האימות לפני שהוא מתייחס לתוצאה כתוכן תקין.
- ניהול עותקים מקומיים. הצגה, ייצוא, עריכה או שמירה בגלריה עלולים ליצור עותקים מחוץ לגבול האחסון המוצפן המקורי.
המפתח עשוי לעבור בתשתית של אותו ספק בתוך מעטפה מוצפנת. הכינוי ״מחוץ לערוץ״ עלול להטעות: הוא מופרד לוגית מאחסון ה־blob, אך לא בהכרח נמסר בערוץ תקשורת עצמאי.
מה מוסיפה הצפנה מאומתת
שיטת הצפנה מאומתת מגינה על הסודיות ומזהה שינויים לא מורשים בתחום שהיא מאמתת. מפרט GCM של NIST מגדיר מבנה כזה ואת דרישותיו. טיפול נכון במפתח/nonce ובדיקת תוצאת האימות חיוניים; שם של אלגוריתם מוכר אינו הופך כל מימוש לבטוח.
היישום צריך גם לקשור את הקובץ להודעה ולשיחה הנכונות. blob מוצפן תקין אינו מוכיח כשלעצמו שהוא שייך לצ׳אט המסוים הזה. מזהי קבצים, הגודל הצפוי, סדר המקטעים ומטא־נתוני הקובץ המצורף צריכים תכנון מאומת מתאים.
מה שירות האחסון עדיין עשוי ללמוד
| מידע | האם הצפנת התוכן לבדה מסתירה אותו? |
|---|---|
| הבתים המקוריים של הקובץ | היא נועדה להסתיר אותם מצדדים שאין להם מפתח |
| הגודל המוצפן המשוער | בדרך כלל לא |
| תזמון ההעלאה וההורדה | בדרך כלל לא |
| איזה חשבון מבקש קובץ | תלוי בתכנון הניתוב ובקרת הגישה |
| שם הקובץ והכיתוב | רק אם הפרוטוקול מגן גם עליהם |
| עותק שנמען שמר | לא; לנמען כבר יש גישה לתוכן הגלוי |
בקרות גישה עדיין חשובות גם כשה־blobs מוצפנים. הן יכולות להגביל הורדות לא רצויות, שימוש לרעה וחשיפת מזהים. הצפנה אינה תחליף להרשאות, למדיניות שמירה או לזמינות.
קבצים גדולים דורשים יותר מסיסמה
תכנון לקבצים גדולים עשוי להזרים נתונים או לפצל אותם למקטעים מאומתים. כך אפשר להפחית שימוש בזיכרון, אך יש להגדיר מספור מקטעים, אורך סופי, ניסיונות חוזרים וטיפול בקטיעה. אין להמציא נתוני ביצועים או לטעון שהכנסת קובץ להודעה בהכרח גורמת ל״התנפחות מצב ratchet״; התוצאות האלה תלויות במימוש.
בדיקה מועילה כוללת קובץ תקין, בית ששונה, הורדה שנקטעה, מקטע שסדרו שונה וניסיון שליפה ללא הרשאה. בצעו בדיקות כאלה רק בסביבת בדיקות מורשית עם קבצים לא רגישים. תעדו אם הלקוח דוחה נתונים לא תקינים לפני פתיחתם.
מה Livara מתעדת
עמוד האבטחה של Livara מתאר הצפנה לפני העלאה, מפתח אקראי לכל קובץ המועבר בתוך ההפעלה המוגנת, והגנה על שמות קבצים וכיתובים בשיחות שבהן E2EE פעיל, לרבות קבוצות פרטיות תואמות. קבוצות ישנות שאינן תואמות מוחרגות במפורש מהכיסוי הזה. הוא מבחין בין שיחות מוגנות לערוצי שידור ציבוריים. אלה טענות מוצר מתועדות, לא ביקורת מימוש חדשה במאמר הזה.
מודל האיומים מכיר גם בכך שנמען או מכשיר שנפרץ יכולים לחשוף תוכן קריא. לכן אחסון מוצפן אינו יכול להבטיח שתמונה תיעלם מכל מכשיר כשמוחקים את הודעת הצ׳אט שלה.
שאלות לפני שיתוף קבצים רגישים
בדקו אם סוג השיחה תומך ב־E2EE, אם כל הנמענים המיועדים מהימנים, ואם הקובץ עצמו מכיל מטא־נתונים מזהים. בדקו בנפרד שמירה אוטומטית בגלריה וגיבוי תמונות בענן. במסמך, שקלו אם צריך להסיר הערות, היסטוריית שינויים או מאפיינים מוטמעים לפני השליחה.
לבסוף, הבינו את המחיקה והשחזור. הסרת blob מהשרת יכולה לעצור הורדה עתידית, אבל לא להחזיר עותק שכבר נמצא אצל נמען. אובדן המפתח הדרוש עלול להפוך קובץ מוצפן שנותר לבלתי קריא. תכנון טוב של קבצים מצורפים מסביר את שתי התוצאות בפשטות.



