Ідентичність та участь
У bae ніде немає системи облікових записів. Ідентичність пристрою — це пара ключів Ed25519, який він створює для себе й тримає у сховищі ключів OS; публічний ключ і є ідентичністю. Хто належить до бібліотеки — це набір підписаних записів у хмарному домі, перевірний будь-ким, хто їх має, без жодного сервера, який їх видає. Механіка належить coven; ця сторінка описує, як bae її використовує.
Записи участі
Посилання на цей розділКожен власник пише потік лише для додавання підписаних записів участі в хмарний дім: цей ключ додано з цією роллю, цей ключ видалено. Кожен запис посилається на попередній, і кожен власник підписує заголовок, який оголошує кінець свого потоку, тож провайдер, який викидає або переставляє записи, виявляється, а не приймається на віру. Бібліотека приймає обʼєднання кожного перевіреного потоку власника.
Під час кожного pull автор кожного changeset перевіряється за цим записом: підписаний поточним учасником із роллю, яка може писати. Changesets від видалених пристроїв, від ключів, які ніколи не додавалися, або з недійсними підписами не застосовуються. Провайдер зберігає записи, але не може їх підробити; лише власники owner keys можуть змінювати участь.
Owner і Member обидва читають і записують бібліотеку; owners додатково схвалюють і видаляють пристрої. Початковий пристрій bae є owner, а кожен пристрій, який він схвалює, приєднується як member. (У нижчій механіці існує третя роль, read-only follower, яку bae наразі не призначає.)
Обмін приєднання
Посилання на цей розділДодавання пристрою — це один локальний сеанс сполучення з явною перевіркою людиною:
- Власник запускає Додайте пристрій. bae коротко прослуховує локальну мережу та показує один код сполучення. Він містить адреси слухачів, тимчасовий ключ сеансу, ім’я бібліотеки, постачальника та термін дії — без ключа бібліотеки чи облікових даних тривалого зберігання.
- Приєднуваний пристрій сканує код, створює свою пару ключів пристрою, входить до постачальника, коли потрібно, і надсилає свій підписаний відкритий ключ і обліковий запис постачальника через зашифроване локальне з’єднання. На обох пристроях відображається однаковий відбиток пальця.
- Власник порівнює відбитки пальців і підтверджує точну особу. Схвалення надає доступ до хмарного облікового запису, якщо потрібно, підписує запис про членство та запечатує ключ бібліотеки та остаточний доступ до сховища відкритого ключа нового пристрою.
- Запечатаний пакет повертається через те саме автентифіковане локальне з’єднання. Пристрій, що приєднується, відкриває його, завантажується з хмарного сховища та починає синхронізацію.
Прострочений, перерваний або відхилений зв’язок нічого не дає.
Відкликання
Посилання на цей розділВидалення учасника додає підписане видалення й обертає ключ бібліотеки до нового покоління, якого видалений ключ ніколи не отримує (див. Шифрування). У сховищі, що може відкликати доступ, доступ також забирається. Те, що вже синхронізувалося на видалений пристрій, лишається в нього; дані неможливо відіслати назад. Усе після обертання поза його досяжністю.
Коди відновлення
Посилання на цей розділКод відновлення навмисно обходить участь: це координати хмарного дому плюс ключ бібліотеки в одному рядку носія, для відновлення власної бібліотеки без живого схвалювача. Він генерується на вимогу, автоматично зберігається в iCloud Keychain на платформах Apple і є таким самим чутливим, як сама бібліотека.