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