Tangem, Özel Anahtarlar İçin Entropiyi Nasıl Üretir?

Author logo
Patrick Dike-Ndulue
Post image

Seedless modunda, Tangem Wallet'lar, Alman BSI PTG.2 (AIS 31) standardına göre sertifikalı olan, Secure Element içine gömülü donanım True Random Number Generator (Gerçek Rastgele Sayı Üreteci) üzerinden entropi elde eder.


Seed phrase kullanmayı tercih ederseniz, entropi denetlenmiş rastgele sayı üretim yöntemleriyle oluşturulur:

  • Android'de, SecureRandom kullanılır. Bu, çıktısı BoringSSL/Conscrypt üzerinden çekirdek entropi havuzuna aktarılan, kriptografik olarak güvenli bir sahte rastgele sayı üretecidir (CSPRNG). Bu havuz, kesme zamanlaması, sensörler ve SoC’nin donanım TRNG’sinden beslenir. Bu sayede bir saldırgan anahtar materyalinizi öngöremez veya yeniden oluşturamaz.
     
  • iOS'ta, sistemin sunduğu SecRandomCopyBytes API’si kullanılır. Bu API, kriptografik anahtar üretimine uygun, kriptografik olarak güvenli rastgele baytlar üretir. Entropi, Secure Enclave’in donanım tabanlı true random number generator (TRNG) biriminden alınır.
     

Kripto cüzdanlarda entropi nedir?

Entropi, bir cüzdanın özel anahtar oluşturmak için kullandığı ham rastgeleliktir. Bit cinsinden ölçülür; daha fazla bit, olası anahtarlar için daha geniş bir alan demektir.

Bir cüzdan, entropiyi kurulumda bir kez üretir. Sonraki tüm anahtarlar, adresler ve imzalar sabit matematiksel kurallarla türetilir; sisteme yeni bir rastgelelik eklenmez.

Bu nedenle, üretim adımı kalıcıdır. Entropi düşükse, türetilen mnemonic’i güçlendirmek mümkün değildir.
 

Bir özel anahtar ne kadar entropiye ihtiyaç duyar?

Yeterli entropi yoksa, bir saldırgan anahtar üretim sürecindeki kalıpları veya önyargıları kullanarak, tam matematiksel alanı kaba kuvvetle denemekten çok daha verimli şekilde anahtarı tahmin edebilir. 


Bir özel anahtar, herhangi bir saldırgan açısından tamamen rastgele görünmelidir; düşük entropi, etkin arama alanını dramatik şekilde küçültür ve astronomik derecede zor bir problemi, yeterli hesaplama gücü veya akıllı analizle çözülebilir hale getirir.

Pratikte bu rastgelelik, kriptografik olarak güvenli rastgele sayı üretecini besleyen yüksek kaliteli entropi kaynaklarından gelir. Kaynak zayıfsa (örneğin zaman damgalarına, işlem kimliklerine veya yetersiz sistem gürültüsüne dayanıyorsa), oluşan özel anahtarın gizli bir yapısı olur. 

Saldırganlar, tam da bu tür durumları gerçek olaylarda istismar etmiştir; örneğin, cihazlarda zayıf tohumlanmış RNG’lerden Bitcoin özel anahtarlarını kurtarmışlardır. Bu gibi durumlarda etkin entropi 32 bit’e kadar düşmüş ve toplu anahtar hırsızlığı mümkün olmuştur.

Yeterli entropi, anahtarın güvenliğinin, kullanılan algoritmanın gücüyle uyumlu olmasını sağlar. Bitcoin ve benzeri birçok sistemde kullanılan secp256k1 gibi eliptik eğri anahtarlarında, eğri yaklaşık 128 bit matematiksel güvenlik sunar; bu nedenle özel anahtarın en az bu kadar entropiye sahip olması gerekir ki zayıf halka olmasın.

Tangem, seedless modda anahtarlar için entropiyi nasıl üretir?

Seedless modda, Tangem Card, özel anahtarı güvenli element çipinin içinde üretir. Çipte, termal gürültü ve osilatör jitter gibi fiziksel süreçlerden rastgelelik üreten bir donanım true random number generator (TRNG) bulunur. İşlem adım adım şöyledir:
 

Adım 1: TRNG fiziksel gürültüyü örnekler. 

Donanım true random number generator, entropiyi silikon içindeki öngörülemeyen değişimlerden toplar; bunlar arasında transistor seviyesinde termal gürültü, kuantum etkilerinden kaynaklanan elektronik gürültü ve yüksek frekanslı osilatörlerin zamanlamasındaki jitter bulunur. Bu aşamadaki çıktı, önyargı ve korelasyon içeren ham bir bit akışıdır.
 

Adım 2: Koşullandırma önyargıyı giderir. TRNG, kalıpları ortadan kaldırmak ve tüm olası değerler üzerinde eşit dağılım sağlamak için kriptografik bir hash veya beyazlatma işlemi gibi koşullandırma algoritması uygular. Ayrıca ham akış üzerinde sürekli sağlık testleri gerçekleştirir ve gürültü kaynağı bozulursa işlemi durdurur. Bu adım, CC EAL sertifikalı ve çiple birlikte gelen, asla değiştirilmeyen bir kütüphane ile yapılır.
 

Adım 3: Çip 256 bit çıkarır. Koşullandırılmış çıktının içinden 256 bitlik bir dizi alınır. Bu değer, aday özel anahtardır ve başka bir işlevi yoktur.
 

Adım 4: Çip, adayı eğri düzenine göre doğrular. Eliptik eğri özel anahtarının, belirli bir aralıkta geçerli bir skaler olması gerekir. Secp256k1 için anahtar, 1 ile n-1 arasında bir tamsayı olmalıdır; burada n, temel noktanın düzenidir ve 2^256’nın biraz altındadır.

Aday sıfırsa veya n’e eşit ya da büyükse geçersizdir. Çip bu değeri atar ve tekrar çeker; bunun olasılığı yaklaşık 2^-128’dir.
 

Adım 5: Değer ana anahtar olur. Bu adım, yöntemi seedless yapan noktadır. 256 bit doğrudan ana özel anahtar olarak anahtar hiyerarşisine girer; mnemonic yoktur. 

Adım 6: Çip, genel anahtarı hesaplar. Genel anahtar, özel anahtarın secp256k1’in G üretici noktasıyla çarpılmasıyla elde edilir; bu tek yönlü, geri döndürülemez bir işlemdir.

Adım 7: Adresler, genel anahtarlardan türetilir. Bitcoin’de, belirli bir yoldaki sıkıştırılmış genel anahtar önce SHA-256’dan, ardından RIPEMD-160’tan geçirilerek 20 baytlık bir hash elde edilir. Bu hash’in kodlaması, adres tipini belirler.

BIP-84 yolundaki bir anahtar, bech32 kodlamalı P2WPKH adresi olur. BIP-44 yolundaki anahtar ise Base58Check kodlamalı P2PKH adresi olur. Bu iki yol farklı anahtarlar ürettiği için, farklı adreslere karşılık gelir.
 

Adım 9: Özel anahtar korumalı bellekte kalır. Özel anahtar, tüm yaşamı boyunca güvenli element çipinin içinde kalır. Çip, işlemleri kendi içinde imzalar ve yalnızca imzaları dışarıya verir; anahtar asla telefona, uygulamaya veya internete ulaşmaz.
 

Tangem, seed phrase için entropiyi nasıl üretir?

Seed phrase modunda, Tangem uygulaması mnemonic’i telefonda üretir. Uygulama, platformun kriptografik rastgele sayı üretecinden rastgele baytlar ister; iOS’ta SecRandomCopyBytes, Android’de ise SecureRandom kullanılır.

Her iki arayüz de kriptografik olarak güvenli sahte rastgele üreteçlerdir. Her biri, tohumunu işletim sistemi entropi havuzundan alır; bu havuz cihaz tarafından açılışta ve kullanım sırasında donanım entropi kaynaklarından doldurulur.

Uygulama, bu baytları BIP-39 standardına göre kelimelere dönüştürür. Bir denetim toplamı ekler, sonucu 11 bitlik gruplara böler ve her grubu 2048 kelimelik listeden bir kelimeye eşler. On iki kelime 128 bit entropiyi, yirmi dört kelime ise 256 bit entropiyi kodlar.

 

Seedless mod, kayıp riskinin en büyük nedenini — birinin bulup fotoğrafını çekebileceği veya yok edebileceği yazılı bir ifadeyi — ortadan kaldırır. Seed phrase modu ise anahtarın çip dışına kopyasını oluşturma pahasına, diğer cüzdanlara taşınabilirlik sağlar.


Kullanıcılar kendi entropilerini neden test edemez?

40 bit entropiyle üretilen bir anahtar, 256 bit entropiyle üretilen bir anahtarla aynı görünür. Her ikisi de geçerli bir adres üretir ve aynı formatta aynı sayıda kelime döndürür.
 

Evde bir kullanıcının çalıştırabileceği bir test yoktur. Bu yüzden entropi hataları, piyasaya sürülen ürünlerde yıllarca fark edilmeden kalabilir. Doğrulama bu nedenle satın alma öncesinde, yayınlanan denetimler ve üreticiden alınan teknik yanıtlarla yapılmalıdır.
 

Entropi saldırıları nasıl çalışır?

Bir saldırgan, genel adresten özel anahtarı hesaplayamaz. Bu, ayrık logaritma problemini çözmeyi gerektirir ve pratikte mümkün değildir.


Zayıf entropi, bu hesaplamaya gerek bırakmaz. Saldırgan, bozuk üretecin üretebileceği anahtarların daraltılmış kümesini arar, her aday için adresleri türetir ve ardından bu adresleri blok zincirinde bakiyesi olup olmadığına göre kontrol eder.

Adres, arama hedefi olarak kullanılır. Entropi saldırılarının fonlu cüzdanları bulmasının ve boş olanları görmezden gelmesinin nedeni budur.

 

Cüzdan seçerken nelere dikkat etmeli?

Bir donanım cüzdanı seçerken, özel anahtarlarınızın öngörülemezliğini belirleyen en kritik unsur olduğu için güçlü ve doğrulanabilir entropi üretimine sahip cihazları önceliklendirin. 


Yakın zamanda yaşanan entropi saldırısı olayı, açık kaynaklı firmware’in otomatik olarak daha güvenli olduğu anlamına gelmediğinin iyi bir örneğidir. Çoğu kullanıcı kaynak kodunu denetleyemezken, ileri düzey saldırganlar kodu inceleyip ince ayrıntılardaki açıkları tespit edebilir ve bunlardan faydalanabilir.

En güçlü yaklaşım, kritik firmware’in gereksiz şekilde ifşa edilmesini en aza indirirken, onu tanınmış güvenlik uzmanlarının bağımsız denetimlerine tabi tutmaktır. Sonuçta güvenlik, güçlü mimari, kapsamlı testler ve bağımsız doğrulama ile sağlanır. - Andrey Lazutkin, CTO.

Sertifikalı Secure Element ile bağımsız denetimli firmware’e sahip donanım cüzdanlarını kullanmayı düşünün. Bu firmware, Secure Element’in kullanımını yönlendirir ve uygulamadaki hatalar, en güvenli donanımı bile tehlikeye atabilir. Bu nedenle her firmware güncellemesi, güvenilir uzmanlar tarafından gözden geçirilmelidir. 

Tangem’in güvenlik tasarımı, Kudelski Security, Riscure ve Cure53 gibi önde gelen laboratuvarlar tarafından bağımsız olarak incelenmiş ve cüzdanımızın genel güvenliği konusunda güvence sağlamıştır.

Author logo
Yazar Patrick Dike-Ndulue

Senior editor covering crypto, onchain equities, and technology.

Author logo
İnceleyen: Andrey Lazutkin

Chief Technology Officer at Tangem.