İçeriğe geç

Şifreleme

bae’in bulut evine koyduğu her şey aygıttan çıkmadan önce şifrelenir; şifresiz mod yoktur. bae kendi kriptografisini uygulamaz: düzenin tamamı coven’e aittir ve bu sayfa bae’in onu nasıl kullandığını açıklar.

AnahtarNe yapar
Depo anahtarıkitaplığı ve üyelik kayıtlarını şifreler
Her kişinin çember anahtarıo kişinin özel tuttuklarını şifreler: özel çalma geçmişini ve çalma listelerini
Her dosyanın anahtarıtek bir dosyayı şifreler ve yalnızca satırının şifreli değişiklikleri içinde taşınır
Bir kişinin imza anahtar çiftiaygıtlarının gönderdiği her değişikliği imzalar
Bir kişinin mühürleme anahtar çiftio kişiye mühürlenmiş anahtarları açar

Depo anahtarı rastgeledir ve kitaplık bulut evine kavuştuğunda üretilir. Bir kişinin anahtar çiftleri tüm aygıtlarınca paylaşılır. Özel anahtarlar ve kitaplık anahtarları OS keyring içinde yaşar, asla bir dosyada veya veritabanında değil. Bir aygıta iki yoldan ulaşırlar, ikisi de Kimlik ve üyelik’te açıklanır: geri yükleme kodu bir kişinin kendi anahtar çiftlerini taşır ve daveti onaylayan yönetici depo anahtarlarını yeni kişinin mühürleme anahtarına mühürler.

Bir anahtar asla yerinde değiştirilmez; yenisi eklenir. Bir kişi kaldırıldıktan sonra kalan bir üyenin aygıtı, oraya daha fazla veri yazmadan önce yeni bir depo anahtarı ve kişinin bulunduğu her çember için yeni bir anahtar ekler: sonrasında yazılan her şey onun için okunamaz olur, kalan üyeler ise her eski anahtarı tutar ve tüm geçmişi okuyabilir. Tek bir aygıtı kaldırmak hiçbir şeyi döndürmez, çünkü kişinin diğer aygıtları onun anahtarlarını paylaşır; kaldırmadan itibaren o aygıtın gönderdiği sayılmaz.

Ne mühürlenir

Bu bölüme bağlantı

Evdeki her nesne: değişiklikler, snapshot’lar, üyelik kayıtları ve dosyalar. İçerik XChaCha20-Poly1305 ile şifrelenir, her değişiklik Ed25519 ile imzalanır ve anahtarlar kişilere X25519 mühürlü kutularla mühürlenir. Dosyalar 64 KiB parçalar halinde şifrelenir; her parça ayrı doğrulanır ve konumuna bağlanır, böylece bir parça fark edilmeden değiştirilemez, takas edilemez veya yeniden sıralanamaz. Parçalama akışın çalışmasının nedenidir: çalar tam olarak aldığı parçaları çözebilir.

Sağlayıcı ne görebilir

Bu bölüme bağlantı

Nesne sayısı, nesne boyutları, yükleme zamanlaması, her nesneyi hangi hesabın yazdığı ve her dosyayı ve snapshot’ı hangi aygıtın yüklediği, çünkü yolları aygıtı adlandırır. Adlar değil, üst veri değil, ses değil, görsel değil. Dosyalar rastgele adlar altında durur, asla içeriklerinin karması altında değil. Sunucu taraflı kurtarma yoktur: herkes her aygıtını ve her geri yükleme kodunu kaybederse kitaplık kaybolur; tasarımın amaçladığı budur.

Bir kitaplığı açmak anahtarlarını OS keyring’den okur. O anda kilitli olan bir anahtarlık, kilitli bir oturum veya uyuyan bir ekran yüzünden, bozuk olandan ayrılır: bae kitaplığı kitaplık kullanılamaz demek yerine kilitli gösterir ve kilit açıldıktan sonra yeniden dener. Bir aygıt anahtarı unutabilir de; bu, kitaplığı o aygıtta yeniden açılana kadar kilitler.