Skip to content

VerifyBlind iOS v1.0.1 (Build 113)

Choose a tag to compare

@github-actions github-actions released this 28 Jun 17:58

Commit: 8b9ccd0
Version: 1.0.1 (Build 113)
IPA SHA-256: c5a9c3aca15a932c3a2d1cd5c8cccf3575d9ddf25b458bf83611919088e46115


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-prod.yml@" \
  VerifyBlind.ipa

iOS'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:

  1. Bu attestation — Apple'a Build 113 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-prod.yml) bağlıdır; bu repo dışında kimse üretemez.
  2. 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.
  3. 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 (113) · 8b9ccd0 — 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-prod.yml@" \
  VerifyBlind.ipa

Why 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:

  1. This attestation mathematically proves that the IPA uploaded to Apple as Build 113 was built from the commit above. The signature is bound to the GitHub Actions OIDC identity (VerifyBlind/VerifyBlind-iOS/.github/workflows/ios-prod.yml); no one outside this repo can produce it.
  2. 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.
  3. 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 (113) · 8b9ccd0 — tapping it opens this page.