
Kurtarma ifadenizdeki sağlama kelimesi: BIP-39 hataları nasıl yakalar
Bir kurtarma ifadesi, rastgele seçilmiş gündelik kelimelerden oluşan bir liste gibi görünür. Aslında kodlanmış bir sayıdır ve son kelimenin ek bir görevi vardır: cüzdan yazılımının, ifadenin yanlış kopyalandığını fark etmesini sağlayan bir sağlama toplamı (checksum) taşır.
Bunun nasıl çalıştığını bilmek, bir yazım hatasının neden genellikle reddedildiğini, neden asla kendi ifadenizi uydurmamanız gerektiğini ve "seed oluşturucu" web sitelerinin neden kötü bir fikir olduğunu açıklar.
İfade, kılık değiştirmiş bir sayıdır
SSP dahil çoğu cüzdan BIP-39 adlı bir standardı izler. Her şey entropiyle başlar: cihazınızın ürettiği rastgele bir sayı. 12 kelimelik bir ifade 128 bit entropi, 24 kelimelik bir ifade ise 256 bit entropi kodlar.
Kelime listesinde tam olarak 2.048 kelime vardır ve 2.048, 2¹¹'e eşittir; yani her kelime 11 biti temsil eder. Ancak hesap tam tutmaz: 12 kelime × 11 bit = 132 bit eder, 128 değil; 24 kelime × 11 bit = 264 bit eder, 256 değil.
Fazladan gelen 4 veya 8 bit, sağlama toplamıdır.
Sağlama toplamı nereden gelir
Cüzdan, entropiyi SHA-256'dan geçirir ve sonucun ilk bitlerini alır: her 32 bit entropi için bir sağlama biti. Bu, 12 kelime için 4 bit, 24 kelime için 8 bit demektir. (SHA-256 sizin için yeniyse hash fonksiyonları açıklandı yazısı temel bilgileri anlatır.)
Bu bitler entropinin sonuna eklenir ve dizinin tamamı, her biri bir kelimeye karşılık gelen 11 bitlik parçalara bölünür. Dolayısıyla son kelime bir karışımdır:
- 12 kelime: 7 bit entropi artı 4 bit sağlama toplamı.
- 24 kelime: 3 bit entropi artı 8 bit sağlama toplamı.
Bu yüzden belirli bir ifadeyi yalnızca bazı kelimeler bitirebilir. Herhangi bir ilk 11 kelime için 2.048 kelimeden yalnızca 128'i geçerli bir 12. kelime oluşturur. Herhangi bir ilk 23 kelime için ise yalnızca 8'i.
Sağlama toplamı neyi yakalar, neyi yakalamaz
Geri yükleme sırasında yazılım, yazdığınız kelimelerden sağlama toplamını yeniden hesaplar ve karşılaştırır. Bir kelime rastgele başka bir kelimeyle değiştirilirse, yanlış ifadenin yine de kontrolden geçme olasılığı yaklaşık olarak şöyledir:
- 12 kelimede 16'da 1 (2⁴)
- 24 kelimede 256'da 1 (2⁸)
Yani tek kelimelik hataların çoğu yakalanır. SSP'nin kullandığı kütüphaneyle rastgele değişiklikleri test ettiğimizde, teoriyle uyumlu olarak yaklaşık %6,4 ve %0,4 geçme oranları elde ettik.
İki sınır kalır. Sağlama toplamı size ifadenin hatalı olduğunu söyler, hangi kelimenin yanlış olduğunu söylemez. Ayrıca kontrolden geçen bir ifade sizin ifadeniz olmayabilir. Şanslı bir yazım hatası farklı, geçerli ve boş bir cüzdanı geri yükler. Geri yüklemeden sonra bakiye sıfır görünüyorsa, her şeyden önce kelimelerinizi yeniden kontrol edin.
Dört harf kuralı
İngilizce kelime listesi, her kelimenin ilk dört harfi benzersiz olacak şekilde seçilmiştir; "act" ve "add" gibi kısa kelimeler de kendi başlarına benzersizdir. Yani metal bir plakaya her kelimenin yalnızca ilk dört harfini kazıyabilir ve hiçbir şey kaybetmezsiniz. Seed ifadesi için en iyi uygulamalar bu kopyanın nasıl saklanacağını anlatır.
Asla kendi ifadenizi uydurmayın
Kelimeleri kendiniz seçmek iki nedenle tehlikelidir.
Rastgele değildir. Güvenlik tamamen entropiye dayanır. İnsanların seçtiği kelimeler, örneğin sevdiğiniz şeyler ya da bir şarkı sözü, saldırganların tarayabileceği kalıplar izler ve botlar bu tür "brain wallet" ifadelerini sürekli tarar.
Muhtemelen geçerli bile değildir. Elle seçilmiş 12 kelimelik bir liste, sağlama kontrolünden yalnızca yaklaşık 16'da 1 oranında geçer. Bu da insanları son kelimeyi "düzeltmeye" ya da ilk kelimeler için zar atıp ardından geçerli bir son kelime aramaya iter.
Son kelimeyi kendiniz seçmek tek başına pek risk taşımaz, çünkü yalnızca 7 veya 3 bit entropi içerir. Tehlike, geçerli seçeneklerin nasıl bulunduğundadır. SHA-256'yı elle hesaplamak pratik değildir, bu yüzden insanlar kelimelerini bir "sağlama toplamı hesaplayıcı" web sitesine yapıştırır. O anda ifade sizin kontrolünüzden çıkmıştır. Sayfa onu kaydedebilir, site bir kopya olabilir ya da bir tarayıcı uzantısı onu okuyabilir.
İfade oluşturmanın güvenli yolu, iyi test edilmiş cüzdan yazılımının onu kendi cihazınızda üretmesine izin vermektir.
SSP bunu nasıl ele alıyor
SSP Wallet ve SSP Key, İngilizce kelime listesiyle açık kaynaklı @scure/bip39 kütüphanesini kullanır. Her iki uygulama da yeni cüzdanlar için 24 kelimelik ifadeler (256 bit) üretir; böylece her ifade 8 bitlik sağlama toplamının tamamını taşır.
Geri yükleme sırasında her iki uygulama da devam etmeden önce ifadeyi kontrol eder. İfade kontrolü geçemez ama standart bir uzunluğa (12, 15, 18, 21 veya 24 kelime) sahipse, basit bir hata yerine ifadenin standart olmadığına dair bir uyarı görürsünüz. Uyarı, İngilizce kelime listesinde olmayan kelimeleri belirtir ya da ifadenin BIP-39 sağlama toplamını geçemediğini söyler ve SSP'nin hiçbir zaman böyle ifadeler oluşturmadığını hatırlatır. Açık bir onaydan sonra geri yüklemeye yine de devam edebilirsiniz. Bu seçenek, başka bir dilin kelime listesinden olanlar gibi, başka cüzdanlardan getirilen ifadeler için vardır. Uyarıyı SSP'nin size verdiği bir ifade için görüyorsanız durun ve ifadeyi yeniden kontrol edin: neredeyse kesinlikle yanlış ya da yer değiştirmiş bir kelime vardır ve yine de geri yüklemek, başka ve boş bir cüzdan açar.
SSP 2'de 2 yapısındadır; yani SSP Wallet ve SSP Key'in her birinin kendi ifadesi vardır. Seed ifadesi, özel anahtar ve xpub her birinin neler yapabildiğini açıklar.
SSP Key ayrıca Ayarlar → Güvenlik altında Seed yedeğini doğrula seçeneği sunar ve bir "Yedek kontrolü" kartı bunu her 30 günde bir önerir. Biyometri veya parolayla kilidi açtıktan sonra, rastgele konumlardaki üç seed kelimenizi aynı listeden alınmış yem kelimeler arasından seçersiniz. SSP Wallet'ta da tek kelimelik benzer bir kontrol vardır. İkisi de ifadeyi ekranda göstermez. Tam bir geri yükleme testi yine de en güçlü kontroldür ve yedeğinizi test etmek yazısı size adım adım yol gösterir.
Dürüst özet
Kurtarma ifadeniz, 11 bitlik kelimelerle yazılmış rastgele bir sayıdır. Son kelime, 12 kelimede 4 bit, 24 kelimede 8 bitlik bir SHA-256 sağlama toplamı içerir. Kopyalama hatalarının çoğunu yakalar ama hepsini değil, ve hangi kelimenin yanlış olduğunu asla söylemez.
İfadeyi cüzdanınızın üretmesine izin verin, dikkatle yazın (kelime başına dört harf yeterlidir) ve onu "tamamlamak" ya da "kontrol etmek" için asla bir web sitesine girmeyin. SSP 24 kelimelik ifadeler üretir, standart olmayan bir ifadeyi geri yüklemeden önce sizi uyarır ve yedeklerinizi ekranda göstermeden onaylamanıza olanak tanır.


