Yazan: Liam 'Akiba' Wright
Saoirse, Foresight News
Donanım cüzdanın ağa bağlanmasından önce bile cüzdanın güvenlik duvarı tehlikeye girebilir. Bir air-gapped donanım cüzdanı, özel anahtarları yıllarca internetten izole edebilir, ancak kurtarma ifadesi oluşturulduğu anda risk zaten yerini almıştır.
Coldcard'ın son zamanlarda açıkladığı rastgele sayı açığı, bu güvenlik tuzağının mükemmel bir kanıtını sunuyor. Açığın etkilediği cüzdanlar, tamamen normal görünen 12 veya 24 kelimelik kurtarma mnemonikleri oluşturabilir; kullanıcılar bu mnemonikleri güvenli bir şekilde saklayabilir ve işlemlerini çevrimdışı olarak imzalayabilir. Ancak temeldeki rastgele sayı üreticisinin olası aralığı aslında büyük ölçüde daralmıştır. Saldırganlar, diğer cihazlarda tüm olası tohum kombinasyonlarını deneyerek aday tohumları geri kazanabilir; ardından Bitcoin'in açık defterine başvurarak gerçek adreslerle eşleşen geçerli tohumları filtreleyebilir.
Benim görüşüme göre, cüzdanın güvenliği, seed'in oluşturulduğu anda belirlenir. PIN kodu, çelik mnemonic yedek levhası, değiştirilmeye karşı korumalı torba, hava izolasyonu gibi koruma yöntemleri etkinleşmeden önce, seed gerçek bir rastgele kaynaktan üretilmelidir.
Kaliteli bir modern rastgele sayı üreteci, yeterli entropi üretir. Ancak bir saldırgan, rastgele sayı üretecinin çalışma mantığını bilirse, tüm üretimi tersine mühendislik yoluyla çıkarabilir.
El ile zar atmak, kullanıcılara rastgele bir kaynak sunar, rastgeellik görsel olarak kontrol edilebilir ve üreticinin yazdığı kodlardan bağımsızdır.
Bitcoin cüzdan güvenliğinin gizli zayıf noktaları
Coldcard tohum üretimi gizli güvenlik açıklarına sahiptir. Saldırganlar, cihazın dışından aday tohumlar üretebilir, bunları genel anahtar adreslerine dönüştürebilir ve bunları Bitcoin genel defterindeki adres işlemlerine uygun olarak tarayarak saldırı gerçekleştirebilir.
Bir hata, teknik kökeni o kadar küçük ki korkutucu. 1 Mart 2021'de yapılan bir kod değişikliği, Coldcard'un tohum oluşturma işlevini tamamen yeni bir kod tabanına taşıdı. Seri üretim firmware'inde MICROPY_HW_ENABLE_RNG yapılandırma anahtarı 0 olarak ayarlandı, bu da donanım rastgele sayı üretecinin devre dışı bırakıldığını gösteriyordu; ancak kod entegrasyon mantığı, bu yapılandırma anahtarının var olup olmadığını kontrol ediyordu, değerini okumuyordu. Bu yapılandırma anahtarı varsa, sistem donanım rastgele sayı üretecinin yerine MicroPython'daki belirleyici algoritma Yasmarang'ı yedek olarak etkinleştiriyordu. Block'un ortak analiz raporuna göre, bu hatalı mantık, 4.0.0 sürümü firmware ile 17 Mart'ta resmen yayınlandı.
Oluşturulan hatırlatma kelimesi görünüşte hiçbir sorun yok gibi görünüyor, ancak arkasında kalan kaba kuvvet arama uzayı ciddi şekilde daralmıştır. Coinkite'nin ilk hesaplamalarına göre, etkilenen Mk2 ve Mk3 modellerinin tohum etkili arama uzayı yaklaşık 40 bit; etkilenen Mk4, Mk5 ve Q serisi modellerinin tohum etkili arama uzayı yaklaşık 72 bit'tir.
Block ekibi, sonraki cihazlar için özel kısıtlamalar öneriyor: yedek algoritma durumu ve çağrı geçmişi sabit olduğunda, en fazla 2^32 farklı rastgele akış mevcuttur. Coinkite tarafından verilen veriler, saldırganın tarayabilecek geçerli arama aralığını tahmin eder.
İki analiz raporu da, firmware onarımı öncesi son dönem cihazların tümünün risk aralığında olduğunu doğrulamıştır. Coinkite güvenlik duyurusuna göre, standart 5.6.0 sürümünden önceki Mk4 ve Mk5 firmware'leri; standart 1.5.0Q sürümünden önceki Q serisi firmware'leri etkilenmiştir. Mk2 ve Mk3 için Coinkite, riskli sürümleri 4.0.1 ile 4.1.9 arasında belirtmiştir; ancak Block ekibi, açığın 4.0.0 sürümünden beri var olduğunu düşünmektedir. Bu tartışmalı sürüm sınırı için kullanıcıların konservatif davranmaları önerilir.
Bu olay, yalnızca yeni firmware'yi yüklemenin mevcut cüzdanların güvenlik açıklarını düzeltmeyeceğini açıkça göstermektedir. Düzeltme sürümüne yükseltmek, yalnızca sonraki yeni oluşturulan tohumların güvenliğini sağlar; zaten oluşturulan tüm eski tohumlar, oluşturuldukları anda elde edilen entropi değerini korur ve bu tohumlardan türetilen tüm adresler aynı temel anahtarı paylaşır.
Risk firmware sürümünü kullanan tüm kullanıcılar resmi güvenlik duyurusunu incelemelidir. Çekirdeğin yeterli sayıda el ile zar atılarak oluşturulduğundan emin değilseniz, onarılmış firmware'i kullanmalı, güvenilir rastgele kaynaktan yeni bir çekirdek oluşturmalı ve varlıklarınızı yeni cüzdanınıza aktarmalısınız. Eski mnemonic kelime setini kullanarak yeni adresler oluşturmak, mevcut güvenlik açıklarını aynen korur.
Bitcoin Optech, 31 Temmuz'da yayınladığı dinamik tahmin verilerine göre tehdit altındaki varlıkların miktarı 1.000 Bitcoin'i aştı. 2 Ağustos itibarıyla Galaxy Research, toplamda 4.585 adrese ait yaklaşık 1.367 Bitcoin'in tehdit altında olduğunu tahmin ediyor. X platformunda Graham_Quantum takma adını kullanan bir kullanıcı, 29 Temmuz'da ilgili cüzdanlardan 18,25245043 Bitcoin'in aktarıldığını belirtti.
Sızıntı haberi yayınlandıktan sonra, kullanıcılar büyük ölçüde güvenlik nedeniyle varlıklarını taşıdı ve daha büyük bir sermaye akışı ortaya çıktı. Açığa çıkarılan güvenlik açıklarından sonra, 77.402 BTC eski harcanmamış işlem çıktıları (UTXO) havuzundan taşındı.
İki tür veri ayırt edilmelidir:

Bu güvenlik olayı aynı anda iki büyük etkiyi tetikledi: birincisi, hakerlerin varlıkları çalmak; ikincisi, kullanıcıların kendilerini korumak için daha büyük ölçekli istekli taşınma dalgası.
Coldcard, yaklaşık 89 milyon dolarlık bir cüzdan açıklığı nedeniyle, FTX çöküşünden bu yana gerçekleşen en büyük Bitcoin zincir üstü varlık transferini tetikledi ve pazar sinyallerinin yorumlanmasını ciddi şekilde bozdu. On binlerce kullanıcı, eski cüzdanlarındaki Bitcoin'leri acilen taşıdı ve bu da temel zincir üstü göstergelerin düşüş sinyallerini ayırt etmeyi zorlaştırdı.
El ile zar atmak hangi değişiklikleri getirebilir
Coldcard resmi zar belgelerine göre hesaplamalar: Dengeli bir altı yüzlü zar, her bağımsız atışta yaklaşık 2,585 bit entropi üretir. 50 atış, yaklaşık 129,25 bit ilk entropi üretir ve yaygın 128-bit güvenlik standardını karşılar; 99 atış, yaklaşık 255,91 bit ilk entropi üretir ve neredeyse 256-bit güvenlik standardını sağlar (bu değer cüzdan içindeki dönüştürme algoritmaları tarafından işlenmemiştir).
Bu değerler, yaygın olarak kullanılan BIP-39 hatırlatma kelime standardıyla uyumludur: 12 kelimelik hatırlatma, 128 bit entropi ve 4 bit kontrol toplamı kodlar; 24 kelimelik hatırlatma, 256 bit entropi ve 8 bit kontrol toplamı kodlar.

Donanım cüzdanların çevrimdışı izolasyon mekanizması, yalnızca oluşturulduktan sonra olan anahtar cümlesini korur; oluşturulma sürecindeki zayıf rastgelelik açıklarını düzeltmez. Güvenli bir BIP-39 anahtar cümlesi oluşturmak için gizli zar atma yöntemiyle bağımsız entropi elde edilmelidir.
Checksum, sadece mnemonic kelime yazım hatalarını tanımlamak için kullanılır. Gerçek güvenlik, altta yatan orijinal rastgele verilerle belirlenir. Hash işlemi ve standart formatlama, düşük entropili girdileri görsel olarak iyileştirebilir, ancak anahtarların olası tüm kombinasyonlarının toplam uzayı genişletmez. Görünüşte güven veren 12 kelime, çok küçük bir rastgele havuzdan gelebilir.
El ile zar atmanın koruma işlevini yerine getirmesi için cüzdanın dahili işlemi, zar tarafından oluşturulan rastgele verileri doğru şekilde kabul etmelidir. Zar kendisi uygun olmalı, her atış gerçek olmalı ve birbirinden bağımsız olmalı, atış dizisi tamamen gizli tutulmalıdır. Atış desenlerinin tekrarlanması, kayıt altına alınması, bulut sunucuda dizinin saklanması veya ağ bağlantılı bir bilgisayarda sonuçların girilmesi, rastgeleliğin bağımsızlığını ve gizliliğini bozar.
Bu Coldcard güvenlik olayı ile ilgili Coinkite, kullanıcıların varlıklarını taşımadan önce son tohumun oluşturulması sırasında en az 50 adet adil, bağımsız ve gizli zar atımı yaptığını kanıtlayabilmeleri gerektiğini belirtti; herhangi bir belirsizlik durumunda, resmi olarak varlıkların taşınmasını öneriyor.
Benim için el ile zar atmanın temel değeri, cihazın dahili rastgele sayılarına dayanmak; bu da donanım, firmware, derleme süreci ve entegre kod zincirine tamamen güvenmeniz gerektiği anlamına gelir.
Düzenli zar girişi süreci, bu güven zincirinden bağımsız olarak kullanıcı tarafından kontrol edilen bir entropi sağlar. Yaklaşık 50 adet adil zar atışı 128 bit güvenlik seviyesine, 99 adet ise 256 bit güvenlik seviyesine karşılık gelir. Ancak kullanıcılar, rastgele sayı dönüşümü için kendi çözümlerini tasarlamadan, cihazın resmi kullanım yönergelerini kesinlikle takip etmelidir.
Güçlü ve benzersiz bir BIP-39 geçiş şifresi ayarlamak, saldırı eşiğini başka bir boyutta artırır. Geçiş şifresi, bağımsız bir anahtara eşdeğerdir; saldırgan birisi kurtarma ifadesini ele geçirse bile, varlıkları kullanabilmek için geçiş şifresini de kırmalıdır. Dikkat: Kurtarma ifadesinin kendisinin entropisi, geçiş şifresi eklenmesiyle artmaz. Herhangi bir geçiş şifresi (hatta bir karakter bile yanlış girilse) legítim bir cüzdan adresi kümesi üretir; geçiş şifresi kaybedilirse varlıklar kalıcı olarak kilitli kalır. Donanımsal cüzdan PIN kodunun işlevi, geçiş şifresiyle tamamen farklıdır.
Geçiş şifresini etkinleştirmek kendisi bir denge gerektirir: Eğer geçiş şifresini doğru şekilde koruyup tam olarak tekrarlayabiliyorsanız, güçlü bir ikinci koruma katmanı oluşturur; ancak yedekleme yönteminiz yetersizse, bu özellik varlıklarınıza tamamen erişmenizi engelleyebilir.
Zayıf rastgelelik sorunu tekrar tekrar ortaya çıkıyor
Coldcard açıklığı, tüm kullanıcıları yeniden uyardı: Bitcoin cüzdanlarının güvenlik temeli, tohumun oluşturulduğu anda yeterli derecede güçlü rastgelelik sağlamaktır. Benzer temel hatalar, önceki yıllarda farklı cüzdan ürünlerinde ardışık olarak ortaya çıkmıştır.
2023 yılında Ledger Donjon, belirli bir versiyon Trust Wallet tarayıcı eklentisinin WebAssembly çalışma yolunda 32-bit Mason rotate algoritmasını kullanarak rastgele tohum ürettiğini açıkladı. Bu görünüşte normal olan hatırlatma kelimeleri, yaklaşık 4 milyar başlangıç değeri kümesinden türetilmiştir. Risk aralığı açıkça belirtilmiştir: 0.0.172 ile 0.0.182 arasındaki Trust Wallet Core sürümünden önceki sürümler. ABD Ulusal Zafiyet Veritabanı, bu zafiyetin 2022 Aralık ve 2023 Mart'ta istismar edildiğini kaydetmiştir.
「Milk Sad açıklaması」 olayı, benzer riskleri doğrudan göstermektedir. Libbitcoin Explorer 3.x'in bx seed komutu, sistem saatiyle tohumlanan 32-bit Mersenne Twister algoritmasını kullanır; aynı saat koşullarında, yazılım tamamen aynı bir hatırlatma cümlesi üretebilir. Saldırgan, tohumun oluşturulma zamanını yaklaşık olarak bilirse, brute force arama alanı, hatırlatma cümlenin görünür olarak ima ettiği alandan çok daha küçük olacaktır.
Araştırmacılar, risk aralığında 2.600'den fazla hâlâ aktif olan Bitcoin cüzdanı tespit etti; 2023 Ağustosu fiyatlarına göre, ilgili çalınan varlıkların değeri birden fazla zincirde 900.000 ABD dolarını aştı. Bunlardan 2.550'den fazla cüzdan, otomatikleştirilmiş işlemler gösteriyor ve muhtemelen aynı sahipe ait. Araştırmacılar, bazı varlık çalınma olaylarının diğer güvenlik açıklarıyla birlikte gerçekleştiğini de belirtti.
Bu tür açıklar her seferinde farklı bir görünüme bürünür: Coldcard, donanım yazılımı yedek rastgele algoritmasını yanlışlıkla tetikler; Trust Wallet tarayıcı eklentisi ve Libbitcoin komut satırı aracı ise sistem saatine bağımlı kalır ve zayıf rastgele sayılar üretir. Sonuçta oluşturulan cüzdan anahtarları görünürde hiçbir kusur göstermez, ancak taranabilir anahtar havuzunun boyutu ölümcül bir risk taşır.
Piyasadaki çoğu Bitcoin saklama önerisi, seed oluşturulduktan sonra uygulanır: seed'leri çevrimdışı saklamak, dayanıklı yedekleme araçları kullanmak, yetki izolasyonu, kurtarma süreçlerini test etmek. Bu önlemler hâlâ değerlidir. Ancak Coldcard olayı, güvenlik önlemlerinin bir adım öne taşınması gerektiğini hatırlatıyor.
Hava izolasyonu, cihazınıza zaten kaydedilmiş anahtarları koruyabilir. Bu nedenle, Bitcoin cüzdan güvenliği, güvenilir bir rastgele kaynaktan başlamalıdır.

