Commit: 97624dc
Version: 1.0.1 (Build 116)
IPA SHA-256: 8b5b9f0256b1071b77b6d436c14be037497800fb14c7bf0f89008a1661cef90c
Bu release, App Store Connect'e yüklenen IPA'nın bu commit'ten, herkese açık GitHub Actions üzerinde derlendiğinin kriptografik kanıtını içerir (Sigstore imzalı SLSA build provenance):
| Dosya | Açıklama |
|---|---|
VerifyBlind.ipa |
Apple'a yüklenen imzalı paket (FairPlay şifrelemesi ÖNCESİ hali) |
ipa-hashes.json |
IPA'nın ve paket içindeki her dosyanın SHA-256 özeti |
attestation.sigstore.json |
Sigstore attestation — hangi repo/commit/workflow'un ürettiğinin imzalı kanıtı |
Doğrulama
Otomatik: verify-ios.ps1 (Windows) · verify-ios.sh (macOS / Linux)
Manuel (cosign ≥ 2.4 ile):
cosign verify-blob-attestation \
--bundle attestation.sigstore.json --new-bundle-format \
--certificate-oidc-issuer="https://token.actions.githubusercontent.com" \
--certificate-identity-regexp="^https://github.com/VerifyBlind/VerifyBlind-iOS/.github/workflows/ios-dev.yml@" \
VerifyBlind.ipaiOS'ta doğrulama Android'den neden farklı?
Android'de telefonunuzdaki APK'yı USB ile çekip hash'lerini GitHub'dakiyle bit-bit karşılaştırabilirsiniz. iOS'ta bu mümkün değil: Apple'ın FairPlay DRM'i App Store'dan inen her uygulamanın binary'sini şifreler ve stok bir iPhone'dan karşılaştırılabilir kopya çıkarılamaz. Bu, VerifyBlind'e özgü değil, platform kısıtıdır (Telegram dahil tüm iOS uygulamaları için geçerlidir). iOS'ta güven zinciri şöyle kapanır:
- Bu attestation — Apple'a Build 116 olarak yüklenen IPA'nın yukarıdaki commit'ten derlendiğini matematiksel olarak kanıtlar. İmza, GitHub Actions'ın OIDC kimliğine (
VerifyBlind/VerifyBlind-iOS/.github/workflows/ios-dev.yml) bağlıdır; bu repo dışında kimse üretemez. - Apple kod imzalama zorunluluğu — stok iOS yalnızca Apple'ın imzaladığı App Store kopyasını çalıştırır; değiştirilmiş bir uygulama cihazda hiç açılmaz. Aynı build numarası App Store Connect'te yalnızca bir kez var olabilir.
- App Attest — VerifyBlind sunucusu her kayıtta, cihazdaki uygulamanın gerçek App Store build'i olduğunu Apple üzerinden doğrular.
Telefonunuzda hangi build'in kurulu olduğunu Ayarlar ekranının en altındaki sürüm satırında görebilirsiniz: 1.0.1 (116) · 97624dc — satıra dokunmak bu sayfayı açar.
English
This release contains cryptographic proof that the IPA uploaded to App Store Connect was built from this commit on public GitHub Actions (Sigstore-signed SLSA build provenance):
| File | Description |
|---|---|
VerifyBlind.ipa |
The signed package uploaded to Apple (BEFORE FairPlay encryption) |
ipa-hashes.json |
SHA-256 of the IPA and of every file inside the bundle |
attestation.sigstore.json |
Sigstore attestation — signed proof of which repo/commit/workflow produced it |
Verify
Automatic: verify-ios.ps1 (Windows) · verify-ios.sh (macOS / Linux)
Manual (with cosign ≥ 2.4):
cosign verify-blob-attestation \
--bundle attestation.sigstore.json --new-bundle-format \
--certificate-oidc-issuer="https://token.actions.githubusercontent.com" \
--certificate-identity-regexp="^https://github.com/VerifyBlind/VerifyBlind-iOS/.github/workflows/ios-dev.yml@" \
VerifyBlind.ipaWhy is iOS verification different from Android?
On Android you can pull the APK off your phone over USB and compare its hashes bit-for-bit with GitHub. On iOS this is impossible: Apple's FairPlay DRM encrypts the binary of every App Store download, so no comparable copy can be extracted from a stock iPhone. This is not specific to VerifyBlind — it is a platform constraint (it applies to every iOS app, Telegram included). On iOS the chain of trust closes as follows:
- This attestation mathematically proves that the IPA uploaded to Apple as Build 116 was built from the commit above. The signature is bound to the GitHub Actions OIDC identity (
VerifyBlind/VerifyBlind-iOS/.github/workflows/ios-dev.yml); no one outside this repo can produce it. - Apple code-signing enforcement — stock iOS only runs the App Store copy signed by Apple; a modified app will not even launch on the device. The same build number can exist only once in App Store Connect.
- App Attest — on every registration the VerifyBlind server verifies, via Apple, that the app on the device is the genuine App Store build.
You can see which build is installed on the version line at the bottom of the Settings screen: 1.0.1 (116) · 97624dc — tapping it opens this page.