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

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

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

Уся історія бібліотеки в хмарному домі — одна нумерована послідовність, і кожен пристрій застосовує її в тому самому порядку. Зміна участі чи налаштувань — це адміністративний запис у цій послідовності, підписаний ключем автора й оцінений за станом безпосередньо перед ним, тож кожен пристрій сам доходить того самого вердикту. Запис враховується, лише якщо автор має право його зробити, а бібліотека завжди зберігає принаймні одного адміністратора.

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

Адміністратор і Учасник обидва читають і записують бібліотеку: coven не перевіряє дозволів на записи в бібліотеку, тож роль лише для читання не втрималася б. Адміністратори додатково запрошують і вилучають людей, змінюють ролі й перейменовують бібліотеку. Хто дає бібліотеці хмарний дім, той її перший адміністратор.

ДіяХто
Запросити людинуадміністратор
Додати пристрійсама людина, з нового пристрою, зі своїм кодом відновлення
Вилучити пристріййого людина або будь-який адміністратор
Вилучити людинуадміністратор
Перейменувати бібліотекуадміністратор

Профіль, оцінки, історія й плейлисти людини — це рядки власника: змінювати їх можуть лише пристрої цієї людини, тож оцінка, приписана комусь, справді від нього.

Додавання власного пристрою

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

Код відновлення доводить, що пристрій належить своїй людині, тож схвалення не потрібне:

  1. Новий пристрій отримує код, скануючи QR-код, який показує інший пристрій цієї людини, з В’язки ключів iCloud на пристроях Apple або через введення вручну.
  2. Він дістається до сховища: у Dropbox і OneDrive через вхід у власний обліковий запис людини, у S3 з її ключем доступу, який QR-код несе поруч із кодом.
  3. Він завантажує бібліотеку, перевіряє, що ключі з коду належать поточному учаснику, і реєструє себе як новий пристрій записом, підписаним цими ключами.

Код, ключі якого з того часу замінено, не спрацює. Відновлення завжди створює новий пристрій; воно не рятує ненадіслані редагування іншої інсталяції.

Запрошення людини

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

Відхилення запрошення або його спливання забирає доступ у провайдера, який воно надало.

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

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

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

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