Açık Kaynak,
Tamamen Doğrulanabilir.
"Bize güvenin" demiyoruz. Kullandığınız mobil uygulamanın ve verilerinizi işleyen sunucunun, GitHub'da gördüğünüz kodla birebir aynı olduğunu kendiniz doğrulayabilirsiniz.
1. Enclave Doğrulaması
Sunucularımızda çalışan kodun değiştirilmediğini kanıtlamak için Remote Attestation teknolojisini kullanıyoruz.
Adım: PCR Değerleri
GitHub'daki kod derlendiğinde ortaya "PCR0" denilen eşsiz bir parmak izi çıkar. Kodda tek bir karakter değişse bu parmak izi tamamen farklı olur.
Adım: Donanım Kanıtı
AWS Nitro donanımı, çalışan kodu tarar ve altına kendi dijital imzasını atarak bir "Attestation Document" (Doğrulama Belgesi) üretir.
Kendi Başınıza Nasıl Kontrol Edersiniz?
- 1GitHub depomuzu klonlayın ve Dockerfile üzerinden kendi imajınızı derleyin.
- 2Derleme sonucunda çıkan PCR0 değerini not edin.
- 3Canlı Attestation Document'i indirin ve içindeki PCR0 değeriyle karşılaştırın. Eşleşiyorsa, kod birebir aynıdır.
Bağlantı Kanıtı: Public Key Binding
Peki ya birisi size başka bir Enclave'e ait eski bir dökümanı gösterirse? İşte burada Public Key Binding devreye girer.
Enclave her oturumda yeni bir anahtar üretir ve bu anahtarı AWS Nitro'ya göndererek Attestation Belgesinin içine "mühürlettirir".
Telefonunuz, dökümanın içindeki anahtar ile kendisine gönderilen bağlantı anahtarını karşılaştırır. Mühür uyuşmuyorsa, bağlantıyı anında kopartır.
2. Android Kod Şeffaflığı
Android tarafında VerifyBlind, Belirlenimci Derleme (Deterministic Build) altyapısı kullanır. Telefonunuzdaki uygulamanın kodlarının, açık kaynak depodaki kodlarla bayt seviyesine kadar aynı olduğunu kanıtlıyoruz.
Çevrimdışı Kriptografik Mühür
GitHub'da derlenen Android paketi, Google Play'e yüklenmeden önce izole ortamımızda 3072-bitlik bir şeffaflık imzasıyla mühürlenir. Kodlara müdahale edilirse bu mühür anında kırılır.
Birebir Çıktı Karşılaştırması
Github Action raporlarındaki derleme hash'lerini bizzat telefonunuzdaki dosyaların hash'leriyle kıyaslayarak güven zincirini doğrulayabilirsiniz.
$ java -jar bundletool.jar check-transparency --mode=connected_device --package-name=com.verifyblind.mobile
A9 89 BA D4 84 4E 36 AC D2 E4 76 8C 86 B4 59 A2 87 7D F7 90...
3. iOS Kod Doğrulama
iOS tarafında Apple'ın FairPlay şifrelemesi, uygulamayı cihazdan bayt-bayt yeniden üretip karşılaştırmayı engeller (tüm Apple uygulamaları için geçerli platform kısıtı). Bunun yerine, Apple üzerinden dağıtılan (App Store/TestFlight) sürümün GitHub'daki açık koddan derlendiğini kriptografik bir köken kanıtıyla (build provenance) doğruluyoruz.
İmzalı Köken (Sigstore)
Her sürüm, GitHub Actions iş akışında üretilirken Sigstore/cosign ile imzalanır; bu imza, dağıtılan yapıyı tam olarak hangi commit'ten ve hangi iş akışından çıktığına bağlar. Mac'inizde verify-ios.sh ile çevrimdışı doğrulayabilirsiniz.
Apple İmzası + App Attest
Stok iOS yalnızca Apple imzalı kopyayı çalıştırır; ayrıca her kayıtta uygulamanın gerçekliği Apple App Attest ile sunucumuza kanıtlanır. Bu üç halka birlikte 'çalışan uygulama = yayımlanan kod' zincirini kurar.
$ ./verify-ios.sh
commit: a1b2c3d4 · workflow: ios-prod.yml@refs/tags/build-N