Nasıl çalışır
Hiçbir icat yok - yalnızca iyi incelenmiş yapı taşları: BIP-39, X25519, HKDF-SHA256, XChaCha20-Poly1305. İşte tüm yol, sade bir dille.
12 kelime kimliğin tamamıdır
Bir profil, BIP-39 tohum ifadesiyle başlar - 128 bit entropi taşıyan 12 İngilizce kelime. Kelimeler bir tohuma genişletilir; HKDF, şifreleme anahtar çiftini bu tohumdan türetir. Aynı kelimeler herhangi bir cihazda aynı anahtarları geri getirir: kurtarılacak bir «hesap» yoktur, yalnızca ifade vardır.
Adres, açık anahtarın kendisidir
sk önekiyle bech32 olarak kodlanmış X25519 açık anahtarınız adresinizdir - sk1 ile başlayan yaklaşık 60 karakter. Metin veya QR kod olarak paylaşın. Kayıt olunacak bir dizin de, isimleri kişilerle eşleştiren bir sunucu da yoktur.
sk1qsva3e52awafjvedj5ethvc5hs9j4t0ml26m83kn6kycsh9m46rejzha
Mesaj bir zarfa dönüşür
Metin, rastgele bir mesaj anahtarıyla XChaCha20-Poly1305 kullanılarak bir kez şifrelenir. Ardından bu anahtar her alıcı için bir yuvaya sarılır - ve her zaman sizin için bir yuvaya daha. Bu yüzden gönderdiğiniz mesajlar okunabilir kalır: geçmişinizi çözmek, gelen mesajları okumakla aynı işlemdir.
Yuvalar anonimdir ve karıştırılmıştır: zarf hiçbir adres taşımaz, dışarıdan bakan yalnızca boyutları görür. Her yuvanın anahtarı iki X25519 el sıkışmasıyla kararlaştırılır - biri bu zarf için üretilen geçici anahtarla (forward secrecy), diğeri gönderenin kalıcı anahtarıyla (gönderen doğrulaması).
Zarf düz metin olarak yolculuk eder
İkili zarf, base64 ile zırhlı bir bloğa sarılır. Kendi kendine yeter: bir mesajlaşma uygulamasına, e-postaya, forum gönderisine veya dosyaya yapıştırın - metin ileten her kanal Secret Keeper mesajlarını da iletir.
-----BEGIN SECRET MESSAGE V1----- AlXhZ0Qq7bfPj…base64…M42kLBi6p4Jro -----END SECRET MESSAGE V1-----
Dosyalar: .skf kapsayıcısı
Dosyalar aynı yuva şemasını kullanır, ancak gövde parçalar hâlinde şifrelenir - birkaç gigabaytlık bir video belleğe yüklenmeden akıp geçer. Parça nonce’ları STREAM yapısını izler (age ve Tink’teki gibi): bir sayaç yeniden sıralamayı ve tekrarları, son bayt ise kesilmeyi yakalar. Dosya adı bile şifreli başlığın içindedir.
Yedekler
Yedek bir .skb dosyasıdır: ayarlar, kişiler ve geçmiş, kendinize şifrelenmiş tek bir kapsayıcıda - şifreli dosyalarla aynı şema; dışarıdan hiçbir şey okunamaz, kişilerin adresleri bile. Tohum ifadesi asla yedeğin içinde olmaz - profil 12 kelimeyle geri yüklenir, yedek ise onun çevresindeki her şeyi geri getirir.
Bunun kazandırdıkları
- Forward secrecy
- her zarf için yepyeni bir geçici anahtar
- Gönderen okuyabilir
- gönderdiğiniz her zarfta size ait bir yuva
- Durum yok
- ikili oturumlar yok, sunucularda hiçbir şey saklanmıyor
- Kullanıcı kimliği yok
- adres, açık anahtarın kendisidir
- İki gerçekleme
- uygulamada Dart, uzantıda @noble - ortak test vektörleriyle çapraz doğrulanır
Doğrulamak ister misiniz?
Bayt düzeyindeki eksiksiz spesifikasyon herkese açık - uygulama ve uzantı aynı belgeye karşı test ediliyor: