Перейти до вмісту

Ідентичність та участь

У bae ніде немає системи облікових записів. Ідентичність пристрою — це пара ключів Ed25519, який він створює для себе й тримає у сховищі ключів OS; публічний ключ і є ідентичністю. Хто належить до бібліотеки — це набір підписаних записів у хмарному домі, перевірний будь-ким, хто їх має, без жодного сервера, який їх видає. Механіка належить coven; ця сторінка описує, як bae її використовує.

Кожен власник пише потік лише для додавання підписаних записів участі в хмарний дім: цей ключ додано з цією роллю, цей ключ видалено. Кожен запис посилається на попередній, і кожен власник підписує заголовок, який оголошує кінець свого потоку, тож провайдер, який викидає або переставляє записи, виявляється, а не приймається на віру. Бібліотека приймає обʼєднання кожного перевіреного потоку власника.

Під час кожного pull автор кожного changeset перевіряється за цим записом: підписаний поточним учасником із роллю, яка може писати. Changesets від видалених пристроїв, від ключів, які ніколи не додавалися, або з недійсними підписами не застосовуються. Провайдер зберігає записи, але не може їх підробити; лише власники owner keys можуть змінювати участь.

Owner і Member обидва читають і записують бібліотеку; owners додатково схвалюють і видаляють пристрої. Початковий пристрій bae є owner, а кожен пристрій, який він схвалює, приєднується як member. (У нижчій механіці існує третя роль, read-only follower, яку bae наразі не призначає.)

Обмін приєднання

Посилання на цей розділ

Додавання пристрою — це один локальний сеанс сполучення з явною перевіркою людиною:

  1. Власник запускає Додайте пристрій. bae коротко прослуховує локальну мережу та показує один код сполучення. Він містить адреси слухачів, тимчасовий ключ сеансу, ім’я бібліотеки, постачальника та термін дії — без ключа бібліотеки чи облікових даних тривалого зберігання.
  2. Приєднуваний пристрій сканує код, створює свою пару ключів пристрою, входить до постачальника, коли потрібно, і надсилає свій підписаний відкритий ключ і обліковий запис постачальника через зашифроване локальне з’єднання. На обох пристроях відображається однаковий відбиток пальця.
  3. Власник порівнює відбитки пальців і підтверджує точну особу. Схвалення надає доступ до хмарного облікового запису, якщо потрібно, підписує запис про членство та запечатує ключ бібліотеки та остаточний доступ до сховища відкритого ключа нового пристрою.
  4. Запечатаний пакет повертається через те саме автентифіковане локальне з’єднання. Пристрій, що приєднується, відкриває його, завантажується з хмарного сховища та починає синхронізацію.

Прострочений, перерваний або відхилений зв’язок нічого не дає.

Видалення учасника додає підписане видалення й обертає ключ бібліотеки до нового покоління, якого видалений ключ ніколи не отримує (див. Шифрування). У сховищі, що може відкликати доступ, доступ також забирається. Те, що вже синхронізувалося на видалений пристрій, лишається в нього; дані неможливо відіслати назад. Усе після обертання поза його досяжністю.

Коди відновлення

Посилання на цей розділ

Код відновлення навмисно обходить участь: це координати хмарного дому плюс ключ бібліотеки в одному рядку носія, для відновлення власної бібліотеки без живого схвалювача. Він генерується на вимогу, автоматично зберігається в iCloud Keychain на платформах Apple і є таким самим чутливим, як сама бібліотека.