Шифрування
Усе, що bae кладе в непрозорий хмарний дім, шифрується перед тим, як залишити пристрій. bae не реалізує власної криптографії: уся схема належить coven, а ця сторінка описує, як bae її використовує. Browsable homes відмовляються від усього цього; нижче описане до них не застосовується.
Ключ бібліотеки
Посилання на цей розділНепрозора бібліотека має один кореневий секрет: випадковий 256-bit key, створений під час створення дому. Він живе у сховищі ключів OS, ніколи у файлі; на платформах Apple запис сховища ключів синхронізується через iCloud Keychain. Конфігурація bae зберігає лише відбиток ключа, достатній, щоб відрізнити неправильний ключ від правильного під час розблокування, не тримаючи секрет.
Ключ переходить між пристроями двома способами, обидва описано в Ідентичності та участі: запечатаним для публічного ключа схваленого пристрою під час запрошення, і всередині коду відновлення.
Покоління
Посилання на цей розділКлюч бібліотеки насправді є keyring нумерованих поколінь. Видалення учасника додає нове покоління, якого видалений учасник ніколи не отримує: усе, записане після цього, використовує нове покоління й для нього нечитабельне, тоді як учасники, що лишилися, зберігають кожне покоління й можуть читати всю історію. Кожен запечатаний об’єкт відкрито записує, яке покоління його відкриває.
Що запечатується
Посилання на цей розділКожен об’єкт у домі: changesets, snapshots, аудіо blob-и, зображення, записи участі, керівні обʼєкти. Об’єкти запечатуються XChaCha20-Poly1305 у чанках по 64 KB, кожен чанк автентифікований і прив’язаний до свого контексту: запечатаний об’єкт розшифровується лише як той об’єкт, яким він був записаний, для цієї бібліотеки, з цим ключем. Чанкування пояснює, чому працює передавання: програвач може розшифрувати саме ті діапазони байтів, які забирає.
Що може бачити провайдер
Посилання на цей розділКількість об’єктів, розміри об’єктів, час завантажень і шаблони доступу. Не імена, не метадані, не аудіо, не обкладинки, не участь. Серверного відновлення немає: користувач, який утратив кожен пристрій і кожну копію ключа, назавжди втратив шифртекст бібліотеки; це і є задумана властивість.
Розблокування й блокування
Посилання на цей розділВідкриття бібліотеки читає ключ зі сховища ключів. Якщо бібліотека очікує ключ, а сховище ключів його не має, bae вважає бібліотеку заблокованою: просить ввести ключ перед відкриттям, перевіряючи введене за збереженим відбитком перед записом назад у сховище ключів. Блокування бібліотеки навмисно видаляє ключ зі сховища ключів; нічого в хмарному домі не можна прочитати або записати, доки його не введено знову.