דילוג לתוכן

זהות וחברות

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

רשומות חברות

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

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

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

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

פעולהמי
הזמנת אדםמנהל
הוספת מכשירהאדם עצמו, מהמכשיר החדש, עם קוד השחזור שלו
הסרת מכשירהאדם שלו, או כל מנהל
הסרת אדםמנהל
שינוי שם הספרייהמנהל

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

הוספת מכשיר משלך

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

קוד שחזור מוכיח שמכשיר שייך לאדם שלו, ולכן הוא לא צריך אישור:

  1. המכשיר החדש מקבל את הקוד בסריקת קוד ה-QR שמכשיר אחר של האדם מציג, ממחזיק המפתחות של iCloud במכשירי Apple, או בהקלדה.
  2. הוא מגיע לאחסון: ב-Dropbox וב-OneDrive בכניסה לחשבון של האדם עצמו, ב-S3 עם מפתח הגישה שלו, שקוד ה-QR נושא לצד הקוד.
  3. הוא טוען את הספרייה, בודק שהמפתחות שבקוד שייכים לחבר נוכחי, ורושם את עצמו כמכשיר חדש ברשומה שנחתמה במפתחות האלה.

קוד שהמפתחות שלו הוחלפו מאז נכשל. שחזור תמיד יוצר מכשיר חדש; הוא לא מציל עריכות שלא נשלחו של התקנה אחרת.

  1. מנהל מזין את חשבון הספק של האדם ובוחר את התפקיד שלו. bae משתף את תיקיית הספרייה עם החשבון הזה, או ב-S3 יוצר עבורו מפתח גישה, ומציג הזמנה: קוד QR שמכיל את מיקום הספרייה, את מזהה החבר שנבחר לאדם, סוד חד־פעמי ואת השם הנוכחי של הספרייה. היא פגה יום אחרי שנוצרה.
  2. המכשיר של האדם סורק אותה, נכנס לחשבון שלו, יוצר את זוגות המפתחות שלו וכותב לאחסון בקשת הצטרפות, מוצפנת במפתח שנגזר מהסוד של ההזמנה וחתומה במפתח החדש שלו.
  3. המכשיר של המנהל, היחיד שמחזיק בסוד, מציג את הבקשה, והמנהל מאשר אותה.
  4. האישור אוטם כל מפתח מאגר עבור מפתח האטימה החדש של האדם, ואז מוסיף את הרשומה שמקבלת אותו.
  5. המכשיר החדש פותח את המפתחות שלו, טוען את הספרייה, רושם את עצמו וכותב את הפרופיל של האדם עם השם שהקליד.

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

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

קודי שחזור

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

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