2025-08-03'te SSP Wallet v1.25.0, birlikte alındığında cüzdan dağıtımının en eski sessiz zayıflıklarından birini düzelten iki değişiklik yayımladı: mağazadaki ikili dosyanın depodaki ikili dosya olduğuna artık güvenmek zorunda değilsiniz. Yayınlar artık Docker içinde deterministik biçimde derleniyor ve GPG ile imzalanıyor. Herkes — sadece biz değil, sadece bir denetçi değil — kaynak koddan yeniden derleyebilir ve aldığı şeyin, bayt bayt, yayımladığımızla aynı olduğunu doğrulayabilir.
Güvenme, doğrula — cüzdan ikili dosyalarına uygulanmış hâli
Bitcoin'in «güvenme, doğrula» mottosu genellikle işlemler için söylenir. Aynı güçle, onları imzalayan yazılım için de geçerlidir. Bir cüzdanın kodu açık ve denetlenmiş olabilir ve yine de tehlikeye atılmış bir ikili dosya gönderilebilir, çünkü kodtan ikiliye giden yol bir build sunucusundan, bir paketleme adımından, bir kod imzalama anahtarından ve bir mağaza yüklemesinden geçer. Halkalardan herhangi biri zehirlenebilir. Sızdırılmış bir CI token'ı, pipeline'da değiştirilmiş bir ikili, kurcalanmış bir build ajanı — bunların hiçbiri kamuya açık depoya dokunmaz ve hiçbiri git log'tan görünmez.
Bu tehdit modeline savunmacı yanıt şudur: ikili dosyanın kendisi doğrulanabilir olmalı. «Söz veriyoruz» doğrulanabilir değil. Yabancılarca yeniden üretilebilir doğrulanabilir.
Docker ile deterministik derlemeler
v1.25.0'ın getirdiği tam olarak budur. Her SSP yayını artık sabitlenmiş bir taban imajı, sabitlenmiş toolchain sürümleri ve tamamen izole bir ortam içeren bir Docker konteynerinde derleniyor. Build, ihtiyaç duymadığı yerde ağ erişimi olmadan, host dosya sistemini sızdırmadan, çıktıya zaman damgaları veya makineye özgü yollar gömmeden çalışır. Çıktı, girdilerin deterministik bir fonksiyonudur.
Pratik sonuç: aynı kaynak kodu, eşleşen sağlama toplamlarıyla aynı ikilileri üretir. Etiketi al, makinende belgelenen konteynerda derle ve bizimle aynı SHA-256'yı elde edersin. Etmiyorsan, etiket ile yayımlanmış ikili arasında bir şey ayrıştı — ve istediğin sinyal tam olarak budur, çünkü tek dürüst sonuç «ikili kodla eşleşiyor» ya da «eşleşmiyor»dur.
Bu, tedarik zinciri saldırı azaltmasıdır. Build sunucusunun dürüst olduğunu varsaymaz. Geliştiricinin dizüstünün temiz olduğunu varsaymaz. Hiçbir şey varsaymaz ve yabancılara kontrol araçlarını verir.
GPG ile imzalı yayınlar
Yeniden üretilebilirlik bir ikilinin bir kaynak ağacına karşılık geldiğini söyler. Tek başına hangi kaynak ağacının gerçek olduğunu söylemez. GPG imzasının çözdüğü şey budur.
Her v1.25.0 artefaktı — uzantı paketleri, sağlama toplamı dosyası — SSP yayın anahtarıyla imzalanmıştır. İmza, GitHub'da yayının yanında yayımlanır. Bir indirmeyi doğrulamak için ortak anahtarı bir kez içe aktarırsın, imza üzerinde gpg --verify çalıştırırsın, ve araç dosyanın bütünlüğünün ve imzalayan anahtarın beklediğin anahtar olup olmadığını söyler.
İki mekanizma bileşkedir. GPG imzası «bu, SSP'nin yayımladığı dosyadır» ifadesini kanıtlar. Deterministik build «bu dosya bu commit'e karşılık gelir» ifadesini kanıtlar. Birlikte commit ile kurulum arasındaki güven boşluğunu ortadan kaldırırlar.
Bir yayını kendin nasıl doğrularsın
GitHub'daki yayın sayfası, tam adımların yetkili kaynağıdır — ortak anahtarın parmak izi, imza dosyalarının isimleri, bir build'i yeniden üretmek için Docker komutu. Kısa versiyonu: SSP yayın anahtarını içe aktar, sağlama toplamı dosyasını ve imzasını indir, imza üzerinde gpg --verify çalıştır, sonra indirdiğin ikiliye karşı sağlama toplamlarıyla sha256sum -c yap. İkisi de geçerse artefakt bütündür ve özgündür.
Daha ileri gitmek isteyen güçlü kullanıcılar etiketi klonlayabilir, belgelenen Docker build'ini çalıştırabilir ve elde edilen SHA-256'nın yayımlanan sağlama toplamıyla eşleştiğini doğrulayabilir. Çoğu kullanıcı bunu hiç yapmaz. Önemli olan bazılarının yapması ve bunlardan herhangi birinin bir uyumsuzluk bulması durumunda saldırının anında yüzeye çıkmasıdır.
Bunun değiştirdiği şey
SSP, v1.0.0'dan bu yana açık kaynak ve 2025 başında yayımlanan tam inceleme ile uçtan uca Halborn tarafından denetlenmiştir. v1.25.0 o üçgenin üçüncü kenarını kapatıyor. Açık kaynak kodu okuyabileceğin anlamına gelir; denetlenmiş, uzmanların onu incelediği anlamına gelir; yeniden üretilebilir artı imzalı, makinendeki şeyin gerçekten okuduğun kod olduğu anlamına gelir.
Üç garanti bağımsızdır ve bileşkedir. Yeniden üretilemeyen açık kaynak bir ikili hâlâ build pipeline'ında bir uzlaşmayı gizleyebilir. Yeniden üretilemeyen denetlenmiş bir proje hâlâ denetçilerin görmediği kurcalanmış bir ikili gönderebilir. v1.25.0 ile «kurmadan önce doğrula» bir özlem olmaktan çıkar ve somut bir kontrol listesi olur.
İşte bir self-custody cüzdanın tedarik zinciri hikâyesi, dürüstçe anlatılabileceği tek biçimde anlatıldı.