Fundamentals ·

Entropy Nedir? Kripto Güvenliğinin Ardındaki Rastgelelik


Her kripto para cüzdanı rastgele bir sayıyla başlar. Seçtiğiniz bir şifre değil, tasarladığınız bir desen değil, fiziksel dünyadan alınan ham rastgelelik. Bu rastgelelik entropi olarak adlandırılır ve kripto varlıklarınızın güvenli mi yoksa savunmasız mı olduğunu belirleyen en önemli tek faktördür.

Cüzdanınızın arkasındaki entropi güçlüyse, bir saldırganın anahtarlarınızı bulmak için gözlemlenebilir evrendeki atom sayısından daha fazla kombinasyonu araması gerekir. Entropi zayıfsa, fonlarınız saniyeler içinde çalınabilir. Ara bir durum yoktur.

Entropi Tanımı

Kriptografide entropi, verilerin öngörülemezliğini ölçer. Bit cinsinden nicelleştirilir. Bir bit entropi tek bir ikili seçimi temsil eder: yazı veya tura, 0 veya 1. İki bit entropi dört olası sonuç verir. Üç bit sekiz verir. Her ek bit olasılık sayısını ikiye katlar.

Formül basittir: n bit entropi 2^n olası değer üretir.

Bu üstel büyüme entropiyi çok güçlü kılar. Küçük sayılarda olasılıklar yönetilebilir görünür. Kripto parada kullanılan bit sayılarında anlaşılamayacak kadar büyük olurlar.

Kripto bağlamında entropi bir metafor veya soyut kavram değildir. Tohum ifadenizi, özel anahtarlarınızı ve sonuçta adreslerinizi üretmek için deterministik algoritmalara beslenen belirli, ölçülebilir bir rastgelelik miktarıdır. İlk entropinin altında kalan her şey matematiksel olarak türetilir. Entropinin kendisi gerçekten rastgele olması gereken tek kısımdır.

128 Bit vs 256 Bit

Tohum ifadelerinin nasıl üretildiğini tanımlayan BIP39 standardı iki temel entropi uzunluğunu destekler:

128 bit (12 kelimelik tohum ifadesi)

  • 2^128 olası tohum ifadesi üretir
  • Bu 340.282.366.920.938.463.463.374.607.431.768.211.456 kombinasyondur
  • Yaklaşık 3,4 x 10^38

256 bit (24 kelimelik tohum ifadesi)

  • 2^256 olası tohum ifadesi üretir
  • Bu yaklaşık 1,16 x 10^77 kombinasyondur
  • Gözlemlenebilir evrendeki tahmini atom sayısından fazla

Her iki seviye de mevcut teknolojiye karşı güvenli kabul edilir. 128 bit entropi çoğu tüketici cüzdanı için standarttır ve bilinen hiçbir hesaplama yöntemi 2^128 olasılığı pratik bir zaman diliminde tarayamaz. 256 bit seçeneği, maksimum koruma isteyen veya gelecekteki bilgisayar ilerlemelerinden endişe duyan kullanıcılar için ek güvenlik marjı sağlar. Ayrıntılı karşılaştırma için Tohum İfadesi Ne Kadar Hızlı Kırılabilir? bölümüne bakın.

Entropi bitleri ve kelime sayısı arasındaki ilişki basit bir kurala uyar: her 11 bit entropi BIP39 kelime listesinden bir kelimeye eşlenir (2.048 kelime ve 2^11 = 2.048). 12 kelimelik bir ifade 128 bit entropi artı 4 bit checksum kodlar. 24 kelimelik bir ifade 256 bit entropi artı 8 bit checksum kodlar. Bu sürecin tam dökümü için BIP39 Açıklaması okuyun.

Rastgelelik Kaynakları: Donanım RNG ve Web Crypto API

Kritik soru şudur: entropi nereden geliyor? Tüm rastgele sayı üreteçleri eşit yaratılmamıştır.

Sözde Rastgele vs Kriptografik Olarak Güvenli

Standart bir programlama random fonksiyonu (JavaScript'in Math.random() gibi) sözde rastgeledir. Rastgele görünen sayılar üretmek için matematiksel bir formül kullanır ama tamamen deterministiktir. Aynı başlangıç tohumu verildiğinde her seferinde aynı diziyi üretir. Bu, kripto para anahtarları üretmek için felaket derecesinde uygunsuz.

Kriptografik olarak güvenli rastgele sayı üreteçleri (CSPRNG'ler) donanım kaynaklarından gerçek fiziksel rastgeleliği dahil ederek bunu çözer.

Donanım Rastgele Sayı Üreteçleri

Modern CPU'lar fiziksel olgulardan entropi toplayan özel donanım rastgele sayı üreteçleri içerir:

  • Intel RDRAND/RDSEED: Silikon devrelerdeki termal gürültüyü kullanır
  • ARM TrustZone TRNG: Donanım düzeyinde rastgele bit üretimini kullanır
  • İşletim sistemi düzeyinde entropi havuzları: Linux'un /dev/urandom, Windows CryptGenRandom ve macOS SecRandomCopyBytes kesme zamanlama, disk arama varyasyonları ve ağ paketi varış zamanları gibi donanım olaylarıyla beslenen entropi havuzlarını korur

Web Crypto API

Tarayıcı tabanlı araçlar için Web Crypto API, crypto.getRandomValues() aracılığıyla işletim sisteminin kriptografik rastgele sayı üretecine erişim sağlar. Bu fonksiyon W3C tarafından belirtilmiş ve tüm modern tarayıcılarda uygulanmıştır.

SafeSeed tüm anahtar üretimi için Web Crypto API kullanır. Bitcoin Tohum İfadesi Üreticisi veya Ethereum Tohum İfadesi Üreticisi kullandığınızda, entropi doğrudan cihazınızın donanımından kriptografik olarak güvenli rastgele baytlar sağlayan crypto.getRandomValues() aracılığıyla elde edilir. Sunucuda hiçbir şey üretilmez; her şey tarayıcınızda çalışır.

Entropiden Tohum İfadesine

Ham entropiden tohum ifadesine yolculuk BIP39 spesifikasyonu tarafından tanımlanan kesin, deterministik bir yolu izler:

Adım 1: Rastgele baytlar üret

CSPRNG 16 bayt (128 bit) veya 32 bayt (256 bit) rastgele veri üretir.

Adım 2: Checksum hesapla

Entropinin SHA-256 hash'i hesaplanır. Bu hash'in ilk 4 biti (128-bit entropi için) veya 8 biti (256-bit entropi için) checksum olarak entropiye eklenir.

Adım 3: 11-bitlik gruplara böl

Birleştirilmiş entropi + checksum bitleri 11 bitlik gruplara bölünür. 12 kelimelik bir ifade için: 128 + 4 = 132 bit, 12 gruba bölünür.

Adım 4: Kelimelere eşle

Her 11-bit değer (0-2047) BIP39 kelime listesindeki (2.048 kelime) bir dizin olarak kullanılır. Sonuç anımsatıcı ifadenizdir.

Adım 5: Tohumu türet

Anımsatıcı ifade 2.048 yineleme ile PBKDF2-HMAC-SHA512'den geçirilir ve 512-bit bir tohum üretir. Bu tohum daha sonra BIP44 türetme yollarını izleyerek HD cüzdan ağacınızı türetmek için kullanılır.

Adım 1'den sonraki her adım deterministiktir. Aynı 128 bit entropi her zaman aynı 12 kelimeyi, aynı tohumu ve aynı adresleri üretir. Sistemin tüm güvenliği bu başlangıç rastgele baytlarının öngörülemezliğine dayanır.

Zayıf Entropi Çalınan Fonlara Yol Açtığında

Zayıf entropinin sonuçları teorik değildir. Rastgelelik başarısız olduğunda ne olduğunu gösteren birden fazla gerçek dünya olayı mevcuttur.

Android SecureRandom güvenlik açığı (2013)

Ağustos 2013'te Android'in SecureRandom uygulamasında bir kusur keşfedildi. Android'deki Java kriptografi kütüphanesi rastgele sayı üretecini düzgün şekilde tohumlamıyordu ve bazı Bitcoin cüzdanlarının yetersiz entropili özel anahtarlar üretmesine neden oluyordu. Saldırganlar bunu istismar ederek etkilenen cüzdanlardan bitcoin çaldı.

Blockchain Bandit (öngörülebilir anahtarlar)

Güvenlik araştırmacısı Adrian Bednarek, saldırganların zayıf özel anahtarlardan türetilen adresler için Ethereum blokzincirini sistematik olarak taradığı bir vakayı belgeledi. 0x0000...0001 (sayı 1) gibi anahtarlar veya basit ifadelerden türetilen anahtarlar, entropiyi anlamayan insanlar tarafından kullanılmıştı. Otomatik botlar bu adresleri izledi ve yatırılan fonları saniyeler içinde çaldı.

Beyin cüzdanı saldırıları

Beyin cüzdanları — özel anahtarın ezberlenen bir paroladan türetildiği cüzdanlar — insan tarafından seçilen ifadelerin insanların varsaydığından çok daha az entropiye sahip olması nedeniyle tekrar tekrar ele geçirilmiştir. Saldırganlar, beyin cüzdanlarının kullandığı aynı türetme fonksiyonunu ifadeler, şarkı sözleri, kitap alıntıları ve yaygın şifrelerden oluşan devasa sözlüklerle çalıştırır.

Bu olaylar ortak bir ders paylaşır: kriptografik algoritmaların kendileri (SHA-256, secp256k1, ECDSA) kırılmamıştır. Bunlara beslenen entropi yetersizdi.

Entropi Kalitesinin Test Edilmesi

Bir rastgele sayı üretecinin kaliteli entropi üretip üretmediğini nasıl doğrulayabilirsiniz? Çeşitli istatistiksel testler mevcuttur:

NIST SP 800-22

Ulusal Standartlar ve Teknoloji Enstitüsü rastgelelik için bir istatistiksel test paketi yayımlamaktadır. Bunlar frekans testleri, koşu testleri ve matris sıra testlerini içerir.

Pratik doğrulama

Son kullanıcılar için en pratik doğrulama, crypto.getRandomValues() veya eşdeğer bir OS düzeyinde CSPRNG'ye dayanan iyi denetlenmiş bir araç kullandığınızdan emin olmaktır. Kendi "rastgeleliğinizi" eklemeye çalışmamalısınız (kelimeleri kendiniz seçmek gibi), çünkü insan seçimleri hissedilenden çok daha az rastgeledir.

SafeSeed'in araçları açık kaynaklıdır, yani herkes entropi kaynağının crypto.getRandomValues() olduğunu ve daha zayıf bir alternatif olmadığını doğrulayabilir. İstemci tarafı üretimin neden önemli olduğuna dair daha geniş bir tartışma için Çevrimiçi Tohum Üreteçleri Güvenli mi? bölümüne bakın.

Entropi ve Güvenlik Duruşunuz

Entropiyi anlamak, kripto güvenliğine bakış açınızı değiştirir. 12 kelimelik tohum ifadeniz sadece uygun bir yedekleme mekanizması değildir; evrenin tüm olasılıkları aramak için yeterli enerji içermediği kadar büyük bir rastgele sayının insan tarafından okunabilir kodlamasıdır.

Ama bu koruma yalnızca orijinal rastgele sayı gerçekten rastgele ise geçerlidir. Cüzdanınızı üretecek araçları seçerken:

  1. Entropi kaynağını doğrulayın: Araç crypto.getRandomValues(), /dev/urandom veya eşdeğer donanım destekli rastgelelik kullanmalıdır.
  2. Özel entropiden kaçının: Kendi kelimelerinizi seçmeyin, önyargılı bir yöntemle zar atmayın veya "yeterince iyi" hissettiğiniz herhangi bir rastgelelik kaynağı kullanmayın.
  3. Yerleşik standartları kullanın: BIP39 2013'ten beri savaşta test edilmiştir. SafeSeed'in Solana Tohum İfadesi Üreticisi gibi BIP39'u tam olarak izleyen araçlar on yıllık güvenlik incelemesini miras alır.
  4. Mümkünse çevrimdışı üretin: Güçlü entropiyle bile, hava boşluklu veya çevrimdışı bir cihazda anahtar üretmek ağ tabanlı saldırı vektörlerini ortadan kaldırır. Pratik kılavuz için Bitcoin Tohum İfadesini Çevrimdışı Nasıl Üretilir bölümüne bakın.

Entropi görünmezdir. Göremez, hissedemez veya çıktıya bakarak doğrulayamazsınız. Zayıf entropiden üretilen bir tohum ifadesi güçlü entropiden üretilene tıpatıp benzer. Güvenliğinizi sağlamanın tek yolu sürece güvenmektir: donanım destekli rastgele sayı üreteçlerinden yararlanan denetlenmiş, açık kaynak araçlar kullanın ve bu temel üzerinde asla taviz vermeyin.