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

Шифроване

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

КлючКакво прави
Ключът на хранилищетошифрова библиотеката и записите ѝ за членство
Ключът на кръга на всеки човекшифрова това, което човекът пази като лично: личната му история на слушане и плейлисти
Ключът на всеки файлшифрова един файл и пътува само в шифрованите промени на реда му
Двойката ключове за подпис на човекподписва всяка промяна, която устройствата му изпращат
Двойката ключове за запечатване на човекотваря ключовете, запечатани за този човек

Ключът на хранилището е случаен и се създава, когато библиотеката получи облачния си дом. Двойките ключове на човек се споделят от всичките му устройства. Частните ключове и ключовете на библиотеката живеят в ключодържателя на операционната система, никога във файл или в базата данни. Те стигат до устройство по два начина, и двата описани в Идентичност и членство: кодът за възстановяване носи собствените двойки ключове на човека, а администратор, който одобри покана, запечатва ключовете на хранилището за ключа за запечатване на новия човек.

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

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

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

Всеки обект в дома: промени, snapshot-и, записи за членство и файлове. Съдържанието се шифрова с XChaCha20-Poly1305, всяка промяна се подписва с Ed25519, а ключовете се запечатват за хората с X25519 запечатани кутии. Файловете се шифроват на парчета от 64 KiB, всяко удостоверено поотделно и вързано към позицията си, така че парче не може незабелязано да бъде променено, разменено или пренаредено. Разделянето на парчета е причината стриймингът да работи: плейърът може да дешифрира точно парчетата, които изтегля.

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

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

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

Ключодържателят

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

Отварянето на библиотека чете ключовете ѝ от ключодържателя на операционната система. Ключодържател, който в момента е заключен, заради заключена сесия или заспал екран, се различава от повреден: bae показва библиотеката като заключена и опитва отново след отключване, вместо да обяви библиотеката за неизползваема. Устройство може също да забрави ключа, което заключва библиотеката на това устройство, докато не бъде отключена отново.