Nasıl çalışır

Burada teknik terimler var. Uygulamanın hiçbir yerinde yok, sadece bu sayfada. Merak edersen diye.

1. Anahtarın

Uygulama kriptografik güvenli bir rastgele sayı üreteciyle 95 bitlik bir değer üretir ve bunu okunabilir 20 karaktere çevirir. Alfabe Crockford Base32: I, L, O ve U yok, çünkü 1 ve 0 ile karışırlar. Son karakter bir kontrol karakteridir. Tek bir harfi yanlış yazdığında ya da iki harfin yerini değiştirdiğinde bunu %100 yakalar.

2. Ana sır

Anahtarın Argon2id’den geçer (64 MiB bellek, 3 tur). Argon2id, parola türetmede bugünkü standart: bellek-zorlu olduğu için özel donanımla hızlandırılması zordur. Sonuç 32 baytlık bir ana sırdır ve bellekten başka hiçbir yere yazılmaz.

3. Site şifresi

Ana sır ile site adı, kullanıcı adı ve sayaç HMAC-SHA256’den geçirilir. Çıkan değer HKDF ile bir bayt akışına genişletilir. Karakterler bu akıştan rejection sampling ile seçilir. Yani "baytı karakter sayısına böl, kalanı al" kestirmesi kullanılmaz, çünkü o kestirme bazı karakterleri diğerlerinden daha olası yapar.

4. Dünyan

Gezegenin anahtarının metninden SHA-256 ile türetilir: rengi, yüzeyi, halkası, uydu sayısı. Bu hesap hızlıdır, çünkü sen yazarken her tuşta yeniden çalışması gerekir. Gördüğün önizleme gerçek dünyandır, bir taklidi değil. Hızlı olması güvenliği zedelemez: anahtarının 95 bitini tahmin etmek, saniyede yüz trilyon deneme hızında bile milyonlarca yıl sürer.

5. Kasan

Cihazında tutulan site listesi XChaCha20-Poly1305 ile şifrelenir. Şifreleme anahtarı ana sırdan HKDF ile türetilir. Kasanın içinde şifre yoktur. Yalnızca hangi siteyi hangi ayarlarla ürettiğin yazar.

Neden bu seçimler?

Hiçbirini biz icat etmedik. Argon2id RFC 9106, HMAC-SHA256 FIPS 180-4, HKDF RFC 5869, XChaCha20-Poly1305 ise yaygın olarak denetlenmiş bir yapı. Kendi şifreleme algoritmanı yazmak, güvenlikte yapabileceğin en kötü şeydir.

Doğrulayabilirsin

Algoritmanın tamamı SPEC.md dosyasında yazılı ve 47 test vektörüyle birlikte geliyor. Web sürümü de Android sürümü de bu vektörlerin hepsinden geçmek zorunda. Yani iki platform aynı anahtardan bit bit aynı şifreyi üretiyor.

Vektörleri tarayıcında çalıştır

Uygulamayı açŞifre oluşturucu