İçeriğe geç

Kimlik ve üyelik

bae içinde hiçbir yerde hesap sistemi yoktur. Bir aygıtın kimliği, kendisi için ürettiği ve OS keyring içinde tuttuğu bir Ed25519 keypair’dir; public key kimliğin kendisidir. Bir kitaplığa kimlerin ait olduğu, bulut evindeki imzalı kayıt kümesidir; onları elinde tutan herkes doğrulayabilir ve hiçbir sunucu tarafından verilmez. Mekanizma coven’indir; bu sayfa bae’in onu nasıl kullandığını anlatır.

Üyelik kayıtları

Bu bölüme bağlantı

Her owner bulut evine yalnızca eklenen imzalı üyelik girdilerinden oluşan bir akış yazar: bu anahtar bu rolle eklendi, bu anahtar kaldırıldı. Her girdi öncekine bağlanır ve her owner akışının ucunu bildiren bir head imzalar; böylece kayıtları düşüren veya yeniden sıralayan sağlayıcıya inanmak yerine durum saptanır. Kitaplığın kabul ettiği şey, her owner’ın doğrulanmış akışının birleşimidir.

Her çekmede, her changeset’in yazarı bu kayda göre denetlenir: güncel member tarafından imzalanmış mı, yazabilecek role sahip mi. Kaldırılmış aygıtlardan, hiç eklenmemiş anahtarlardan veya geçersiz imzalarla gelen changeset’ler uygulanmaz. Sağlayıcı kayıtları saklar ama sahtesini üretemez; yalnızca owner anahtarlarını elinde tutanlar üyeliği değiştirebilir.

Owner ve Member kitaplığı hem okur hem yazar; owners ayrıca aygıtları onaylar ve kaldırır. bae’in kurucu aygıtı owner’dır ve onun onayladığı her aygıt member olarak katılır. (Alttaki mekanizmada üçüncü bir rol, salt okunur follower, vardır; bae şu anda bunu atamaz.)

Katılma el sıkışması

Bu bölüme bağlantı

Cihaz eklemek, açık bir insan doğrulaması ile yerel bir eşleştirme oturumudur:

  1. Bir sahip Cihaz ekle cihazını başlatır. bae yerel ağı kısaca dinler ve bir eşleştirme kodunu gösterir. Dinleyici adreslerini, geçici bir oturum anahtarını, kitaplık adını, sağlayıcıyı ve son kullanma tarihini içerir; kitaplık anahtarı veya kalıcı depolama kimlik bilgileri yoktur.
  2. Katılan cihaz kodu tarar, cihaz anahtar çiftini oluşturur, gerektiğinde sağlayıcıda oturum açar ve imzalanmış genel anahtarını ve sağlayıcı hesap kimliğini şifrelenmiş yerel bağlantı üzerinden gönderir. Her iki cihaz da aynı parmak izini gösteriyor.
  3. Sahibi parmak izlerini karşılaştırır ve bu kesin kimliği onaylar. Onay, gerektiğinde bulut hesabına erişim izni verir, üyelik girişini imzalar ve kitaplık anahtarını ve yeni cihazın genel anahtarına son depolama erişimini mühürler.
  4. Mühürlü paket aynı kimliği doğrulanmış yerel bağlantı üzerinden geri döner. Katılan cihaz onu açar, bulut depolama alanından önyükleme yapar ve senkronizasyona başlar.

Süresi dolmuş, kesintiye uğramış veya reddedilmiş bir eşleştirme hiçbir şey sağlamaz.

Bir member’ı kaldırmak imzalı kaldırma ekler ve kitaplık anahtarını, kaldırılan anahtarın asla almadığı yeni bir kuşağa döndürür (Şifreleme bölümüne bakın). Erişimi geri alabilen depolamada erişim de çekilir. Kaldırılan aygıta daha önce eşzamanlanan şey onda kalır; veri geri gönderilemez. Döndürmeden sonraki her şey onun erişiminin dışındadır.

Kurtarma kodları

Bu bölüme bağlantı

Kurtarma kodu üyeliği bilerek atlar: hayatta kalan onaylayıcı olmadan kendi kitaplığınızı geri yüklemek için bulut evi koordinatları ve kitaplık anahtarını tek bearer dizgesinde taşır. İstek üzerine üretilir, Apple platformlarında iCloud Keychain içinde otomatik saklanır ve kitaplığın kendisi kadar hassastır.