דילוג לתוכן

הצפנה

כל מה ש-bae שם בבית ענן מוצפן לפני שהוא עוזב את המכשיר; אין מצב לא מוצפן. bae לא מממש קריפטוגרפיה משלו: כל הסכמה היא של coven, והדף הזה מתאר איך bae משתמש בה.

מפתחמה הוא עושה
מפתח המאגרמצפין את הספרייה ואת רשומות החברות שלה
מפתח המעגל של כל אדםמצפין את מה שהאדם שומר כפרטי: היסטוריית ההאזנה הפרטית ורשימות ההשמעה הפרטיות שלו
המפתח של כל קובץמצפין קובץ אחד, ועובר רק בתוך השינויים המוצפנים של השורה שלו
זוג מפתחות החתימה של אדםחותם על כל שינוי שהמכשירים שלו שולחים
זוג מפתחות האטימה של אדםפותח מפתחות שנאטמו עבור האדם הזה

מפתח המאגר אקראי, ונוצר כשהספרייה מקבלת את בית הענן שלה. זוגות המפתחות של אדם משותפים לכל המכשירים שלו. מפתחות פרטיים ומפתחות הספרייה חיים במחזיק המפתחות של מערכת ההפעלה, לעולם לא בקובץ או במסד הנתונים. הם מגיעים למכשיר בשתי דרכים, שתיהן מתוארות ב-זהות וחברות: קוד שחזור נושא את זוגות המפתחות של האדם עצמו, ומנהל שמאשר הזמנה אוטם את מפתחות המאגר עבור מפתח האטימה של האדם החדש.

מפתח לעולם לא משתנה במקומו; נוסף מפתח חדש. אחרי שאדם מוסר, המכשיר של חבר שנשאר מוסיף מפתח מאגר חדש, ומפתח חדש לכל מעגל שהאדם היה בו, לפני שהוא כותב שם עוד נתונים: כל מה שנכתב אחר כך אינו קריא עבורו, בעוד החברים שנשארו שומרים כל מפתח ישן יותר ויכולים לקרוא את כל ההיסטוריה. הסרת מכשיר אחד לא מחליפה דבר, כי המכשירים האחרים של האדם חולקים את המפתחות שלו; מרגע ההסרה, מה שהמכשיר הזה שולח לא נספר.

כל אובייקט בבית: שינויים, snapshots, רשומות חברות וקבצים. התוכן מוצפן עם XChaCha20-Poly1305, כל שינוי נחתם עם Ed25519, ומפתחות נאטמים עבור אנשים עם קופסאות אטומות של X25519. קבצים מוצפנים במקטעים של 64 KiB, כל אחד מאומת בנפרד וקשור למיקום שלו, כך שאי אפשר לשנות, להחליף או לסדר מחדש מקטע בלי שיורגש. חלוקה למקטעים היא הסיבה שהזרמה עובדת: הנגן יכול לפענח בדיוק את המקטעים שהוא מושך.

מה הספק יכול לראות

קישור למקטע הזה

מספר אובייקטים, גדלי אובייקטים, זמני העלאה, איזה חשבון כותב כל אובייקט ואיזה מכשיר העלה כל קובץ ו-snapshot, כי הנתיבים שלהם נוקבים בשם המכשיר. לא שמות, לא מטא־נתונים, לא שמע, לא אמנות. קבצים נמצאים תחת שמות אקראיים, לעולם לא תחת גיבוב של התוכן שלהם. אין שחזור בצד שרת: אם כל אדם מאבד כל מכשיר וכל קוד שחזור, הספרייה אבודה, וזה התכנון בפעולה.

מחזיק המפתחות

קישור למקטע הזה

פתיחת ספרייה קוראת את המפתחות שלה ממחזיק המפתחות של מערכת ההפעלה. מחזיק מפתחות שנעול כרגע, בגלל הפעלה נעולה או מסך במצב שינה, מובחן ממחזיק תקול: bae מציג את הספרייה כנעולה ומנסה שוב אחרי פתיחת הנעילה, במקום לדווח שהספרייה לא שמישה. מכשיר יכול גם לשכוח את המפתח, מה שנועל את הספרייה במכשיר הזה עד שהיא נפתחת שוב.