Şifreleme teknik olarak nasıl çalışır
Nudje'nin sıfır-bilgi eşitlemesinin ardındaki gerçek kriptografik tasarım: anahtarlar, algoritmalar, sunucularımızın gördükleri ve asla yapamayacaklarımız.
Son güncelleme
Nudje+ eşitlemesi XChaCha20-Poly1305 ile uçtan uca şifrelidir; verini çözebilen tek anahtarın kökü kurtarma kodundur ve o kod cihazından asla çıkmaz. Bu sayfa, iddianın mühendislik diliyle yazılmış hâli — bizim sözümüze güvenmek yerine sen (ya da güvendiğin teknik biri) kendin değerlendirebilesin diye.
Tehdit modeli
Eşitlemeyi, sunucunun en iyi ihtimalle meraklı, en kötü ihtimalle ele geçirilmiş olduğunu varsayarak tasarladık. Somut olarak: biri yarın tüm veritabanımızı alıp gitse, elinde çözemeyeceği şifreli veri olurdu — çünkü anahtarlar çalınabilecekleri sunucuya hiç gitmedi. Buradaki “sıfır-bilgi” bunu ifade eder: bir politika değil, bir yapı.
Anahtar hiyerarşisi
- Kurtarma kodu — 32 karakterlik Crockford base32 (4’erli 8 grup); cihazında, sistemin güvenli rastgele kaynağından üretilir. Sana yalnızca bir kez gösterilir ve başka hiçbir yerde saklanmaz.
- Ana anahtar — kurtarma kodundan cihaz üzerinde Argon2id ile türetilir (libsodium’un MODERATE parametreleri): tahmin etmeyi pahalı kılmak için tasarlanmış, bellek-ağırlıklı bir fonksiyon.
- Veri şifreleme anahtarı (DEK) — hatırlatmalarını fiilen şifreleyen rastgele simetrik anahtar. DEK, ana anahtarla sarmalanır (şifrelenir) ve sunucuya yalnızca bu sarmalanmış hâli ulaşır.
- Cihaz başına anahtar çiftleri — her cihaz bir X25519 anahtar çifti tutar; DEK’ler yeni cihazlara ve bakım verenlere libsodium sealed box ile iletilir — hibeyi yalnızca hedef alıcının özel anahtarı açabilir.
Verinin izlediği yol
Her hatırlatma telefonunda serileştirilir, DEK altında taze rastgele nonce ile XChaCha20-Poly1305 kullanılarak şifrelenir (doğrulamalı şifreleme — müdahale gizlenmez, tespit edilir) ve ancak ondan sonra yüklenir. Sunucu şifreli veriyi, nonce’u ve çakışma çözümü için bir sürüm numarasını saklar. Çözme yalnızca senin cihazlarında gerçekleşir.
Sunucunun gördükleri
Dürüstlük, metaveri listesini de gerektirir: sağlayıcı kimliğin (Apple/Google öznesi ya da e-postanın tuzlanmış özeti — adresin kendisi asla), şifreli veri boyutları ve zaman damgaları, kayıt sayıları, cihaz sayısı ve abonelik durumu. Başlıkları, cümleleri, programları, notları, serileri — bir hatırlatmanın içindeki hiçbir şeyi göremez.
Bize anahtar vermeden paylaşmak
Bakım ve aile profilleri, profilin DEK’ini karşı tarafın açık anahtarı için sarmalayarak çalışır — hibeyi yalnızca onlar açabilir. İki taraf da araya giren bir sahtekârı fark etmek için güvenlik numaralarını (ilgili anahtarların kısa parmak izleri) karşılaştırabilir. Rıza açıktır, görünürdür ve iki uçtan da geri alınabilir.
Asla yapamayacaklarımız
Verini kurtaran bir parola sıfırlama yok (sıfırlanacak bir şey yok), “destek kilidi açma” yok, hiçbir gerekçeyle — yasal talep dahil — hatırlatmalarını okuma yok; çünkü teslim edilebilecek tek şey şifreli veri. Oturum açık bir cihazın yokken kurtarma kodunu kaybedersen, eşitlenmiş verin yapı gereği kurtarılamaz. Bunu açıkça söylüyoruz, çünkü tasarımın dürüst bedeli bu.
İddialarımızı doğrulamak
iPhone ve Android’de birebir aynı olan yedek biçimi Yedekleme ve geri yükleme sayfasında belgelidir; gizlilik davranışı (ATT istemi yok, reklam kimliği yok) uygulamada dışarıdan gözlemlenebilir. Kriptografik tasarımın bağımsız incelemesi lansman kontrol listemizde; tamamlandığında bulgular bu sayfadan bağlanacak.
Bu tasarımda bir açık mı buldun? [email protected] — gerçekten bilmek isteriz.