Шифроване
Всичко, което bae поставя в облачен дом, се шифрова преди да напусне устройството; режим без шифроване няма. bae не реализира собствена криптография: цялата схема е на coven, а тази страница описва как bae я използва.
Ключовете
Връзка към този раздел| Ключ | Какво прави |
|---|---|
| Ключът на хранилището | шифрова библиотеката и записите ѝ за членство |
| Ключът на кръга на всеки човек | шифрова това, което човекът пази като лично: личната му история на слушане и плейлисти |
| Ключът на всеки файл | шифрова един файл и пътува само в шифрованите промени на реда му |
| Двойката ключове за подпис на човек | подписва всяка промяна, която устройствата му изпращат |
| Двойката ключове за запечатване на човек | отваря ключовете, запечатани за този човек |
Ключът на хранилището е случаен и се създава, когато библиотеката получи облачния си дом. Двойките ключове на човек се споделят от всичките му устройства. Частните ключове и ключовете на библиотеката живеят в ключодържателя на операционната система, никога във файл или в базата данни. Те стигат до устройство по два начина, и двата описани в Идентичност и членство: кодът за възстановяване носи собствените двойки ключове на човека, а администратор, който одобри покана, запечатва ключовете на хранилището за ключа за запечатване на новия човек.
Ротация
Връзка към този разделКлюч никога не се променя на място; добавя се нов. След премахване на човек устройството на оставащ член добавя нов ключ на хранилището и нов ключ за всеки кръг, в който е бил, преди да запише още данни там: всичко, записано след това, е нечетимо за него, докато останалите членове пазят всеки по-стар ключ и могат да четат цялата история. Премахването на едно устройство не сменя нищо, защото другите устройства на човека споделят ключовете му; от премахването нататък това, което то изпраща, не се брои.
Какво се запечатва
Връзка към този разделВсеки обект в дома: промени, snapshot-и, записи за членство и файлове. Съдържанието се шифрова с XChaCha20-Poly1305, всяка промяна се подписва с Ed25519, а ключовете се запечатват за хората с X25519 запечатани кутии. Файловете се шифроват на парчета от 64 KiB, всяко удостоверено поотделно и вързано към позицията си, така че парче не може незабелязано да бъде променено, разменено или пренаредено. Разделянето на парчета е причината стриймингът да работи: плейърът може да дешифрира точно парчетата, които изтегля.
Какво може да види доставчикът
Връзка към този разделБрой обекти, размери на обекти, време на качване, кой акаунт записва всеки обект и кое устройство е качило всеки файл и snapshot, защото пътищата им назовават устройството. Не имена, не метаданни, не аудио, не изображения. Файловете стоят под случайни имена, никога под хеш на съдържанието си. Няма сървърно възстановяване: ако всеки човек загуби всяко устройство и всеки код за възстановяване, библиотеката е загубена, което е предвиденото поведение.
Ключодържателят
Връзка към този разделОтварянето на библиотека чете ключовете ѝ от ключодържателя на операционната система. Ключодържател, който в момента е заключен, заради заключена сесия или заспал екран, се различава от повреден: bae показва библиотеката като заключена и опитва отново след отключване, вместо да обяви библиотеката за неизползваема. Устройство може също да забрави ключа, което заключва библиотеката на това устройство, докато не бъде отключена отново.