זהות וחברות
אין מערכת חשבונות בשום מקום ב-bae. זהות של מכשיר היא זוג מפתחות Ed25519 שהוא יוצר לעצמו ושומר במחזיק המפתחות של מערכת ההפעלה; המפתח הציבורי הוא הזהות. מי שייך לספרייה הוא אוסף רשומות חתומות בבית הענן, ניתנות לאימות על ידי כל מי שמחזיק אותן, בלי שרת מנפיק. המנגנון הוא של coven; הדף הזה מתאר איך bae משתמש בו.
רשומות חברות
קישור למקטע הזהכל בעלים כותב לבית הענן זרם הוספה בלבד של רשומות חברות חתומות: מפתח זה נוסף בתפקיד זה, מפתח זה הוסר. כל רשומה מקשרת לקודמת, וכל בעלים חותם על ראש שמצהיר על קצה הזרם שלו, כך שספק שמשמיט או משנה סדר רשומות מזוהה במקום שיאמינו לו. מה שהספרייה מקבלת הוא האיחוד של כל זרם בעלים מאומת.
בכל משיכה, מחבר כל changeset נבדק מול הרשומה הזאת: חתום על ידי חבר נוכחי, עם תפקיד שמותר לו לכתוב. Changesets ממכשירים שהוסרו, ממפתחות שמעולם לא נוספו או עם חתימות לא תקפות אינם מוחלים. הספק מאחסן את הרשומות אבל לא יכול לזייף אותן; רק מחזיקי מפתחות בעלים יכולים לשנות חברות.
תפקידים
קישור למקטע הזהOwner ו-Member קוראים וכותבים בספרייה; בעלים בנוסף מאשרים ומסירים מכשירים. המכשיר המייסד של bae הוא בעלים וכל מכשיר שהוא מאשר מצטרף כחבר. (תפקיד שלישי קיים במנגנון שמתחת, עוקב לקריאה בלבד, ש-bae לא מקצה כרגע.)
לחיצת היד להצטרפות
קישור למקטע הזההוספת מכשיר היא חילופי שני קודים עם אימות אנושי מפורש באמצע:
- המכשיר המצטרף יוצר זוג מפתחות ומציג join request: המפתח הציבורי שלו, טביעת אצבע קצרה שלו, ו(עבור ספקי OAuth) חשבון הענן שאיתו לשתף את התיקייה.
- בעלים מפענח את הבקשה, ושני המסכים מציגים אותה טביעת אצבע. האדם בודק שהן תואמות; זה הצעד שמונע מפתח מוחלף.
- אישור עושה שלושה דברים יחד: מעניק לחשבון של המצטרף גישה לבית הענן (שיתוף תיקייה בענני צרכן, אישורים מוטמעים ב-S3, שיתוף CloudKit ב-iCloud), אוטם את מפתח הספרייה למפתח הציבורי של המצטרף, וחותם על רשומת חברות שמוסיפה אותו. כל זה נארז בתוך invite code.
- המכשיר המצטרף צורך את ההזמנה, פותח את המפתח, מאתחל מה-snapshot האחרון ומסתנכרן.
ההזמנה נאטמת למפתח המבקש: יירוט שלה לא מעניק דבר.
שלילה
קישור למקטע הזההסרת חבר מוסיפה הסרה חתומה ומחליפה את מפתח הספרייה לדור חדש שהמפתח שהוסר לעולם לא מקבל (ראה הצפנה). באחסון שיכול לבטל גישה, גם הגישה נמשכת בחזרה. מה שכבר סונכרן למכשיר שהוסר נשאר אצלו; אי אפשר לבטל שליחת נתונים. כל מה שאחרי החלפת הדור מחוץ להישג ידו.
קודי שחזור
קישור למקטע הזהקוד שחזור עוקף חברות בכוונה: הוא נקודות הציון של בית הענן ועוד מפתח הספרייה, במחרוזת bearer אחת, לשחזור הספרייה שלך בלי מאשר ששרד. הוא נוצר לפי דרישה, נשמר אוטומטית ב-iCloud Keychain בפלטפורמות Apple, ורגיש בדיוק כמו הספרייה עצמה.