Към съдържанието

Шифроване

Всичко, което bae поставя в непрозрачен облачен дом, се шифрова преди да напусне устройството. bae не реализира собствена криптография: цялата схема е на coven, а тази страница описва как bae я използва. Прегледните домове се отказват от всичко това; нищо по-долу не важи за тях.

Ключът на библиотеката

Връзка към този раздел

Непрозрачната библиотека има една коренна тайна: случаен 256-битов ключ, създаден при създаването на дома. Той живее в ключодържателя на операционната система, никога във файл; на Apple платформи записът в ключодържателя се синхронизира през iCloud Keychain. Конфигурацията на bae пази само отпечатък на ключа, достатъчен да различи грешен ключ от правилен при отключване, без да държи самата тайна.

Ключът пътува между устройства по два начина, и двата описани в Идентичност и членство: запечатан към публичния ключ на одобрено устройство по време на покана и пренесен вътре в код за възстановяване.

Ключът на библиотеката всъщност е ключодържател от номерирани поколения. Премахването на член добавя ново поколение, което премахнатият член никога не получава: всичко записано след това използва новото поколение и е нечетимо за него, докато останалите членове пазят всяко поколение и могат да четат цялата история. Всеки запечатан обект записва в открит вид кое поколение го отваря.

Какво се запечатва

Връзка към този раздел

Всеки обект в дома: changeset-и, snapshot-и, аудио blob-ове, изображения, записи за членство, управляващи обекти. Обектите се запечатват с XChaCha20-Poly1305 на парчета от 64 KB, всяко парче удостоверено и вързано към контекста си: запечатан обект се дешифрира само като обекта, който е трябвало да бъде, за тази библиотека, с този ключ. Разделянето на парчета е причината стриймингът да работи: плейърът може да дешифрира точно диапазоните от байтове, които изтегля.

Какво може да види доставчикът

Връзка към този раздел

Брой обекти, размери на обекти, време на качване и модели на достъп. Не имена, не метаданни, не аудио, не изображения, не членство. Няма сървърно възстановяване: потребител, който загуби всяко устройство и всяко копие на ключа, е загубил шифротекста на библиотеката завинаги, което е предвиденото поведение.

Отключване и заключване

Връзка към този раздел

Отварянето на библиотека чете ключа от ключодържателя. Ако библиотеката очаква ключ, а ключодържателят го няма, bae третира библиотеката като заключена: подканва за ключа преди отваряне, проверява въведеното срещу записания отпечатък и чак тогава го запазва обратно в ключодържателя. Заключването на библиотека нарочно премахва ключа от ключодържателя; нищо в облачния дом не може да се чете или пише, докато той не бъде въведен отново.