Güvenlik

Dijital yaşamınız için banka düzeyinde şifreleme

Zero-Knowledge Mimarisi

ByteGuard, Zero-Knowledge güvenlik modeli üzerine inşa edilmiştir. Şifreleme anahtarlarınızı asla görmez, erişmez veya saklamayız.

  • Ana Şifre: Uygulamayı açmak için kişisel anahtarınız. Asla iletilmez, asla uzaktan saklanmaz.
  • Gizli Anahtar (Secret Key): Kasanızı oluştururken üretilen 12 kelimelik kurtarma ifadesi (BIP39). Maksimum güvenlik için ana şifrenizle birleştirilir.
  • Yerel Anahtar Türetme: 64 MB bellek maliyeti ve 3 yinelemeyle Argon2id ana anahtarı yerel olarak türetir. HKDF-SHA256 anahtar hiyerarşisini oluşturur.
  • Arka Kapı Yok: Hem ana şifrenizi hem de gizli anahtarınızı kaybederseniz verilerinizi kurtaramayız. Bu tasarım gereğidir.

Şifreleme Ayrıntıları

Birden fazla şifreleme katmanı her hassas veriyi korur.

  • Alan Düzeyinde Şifreleme: Her hassas alan (şifreler, kart numaraları, API anahtarları) AES-256-GCM ile ayrı ayrı şifrelenir.
  • Anahtar Hiyerarşisi: Ana Anahtar → Anahtar Şifreleme Anahtarı (KEK) → Veri Şifreleme Anahtarı (DEK). Her öğenin kendi DEK'i vardır.
  • Benzersiz IV'ler: Her şifreleme işlemi benzersiz bir başlatma vektörü kullanır, aynı düz metnin farklı şifreli metin üretmesini sağlar.

Veri Depolama

Verileriniz cihazınızda kalır. Bulut senkronizasyonu isteğe bağlıdır ve her zaman şifrelidir.

  • Önce Yerel: Tüm veriler cihazınızdaki şifreli yerel veritabanında saklanır.
  • İsteğe Bağlı iCloud Senkronizasyonu: Etkinleştirildiğinde veriler, CloudKit aracılığıyla özel iCloud kapsayıcınıza yüklenmeden önce cihazda şifrelenir.
  • Biyometrik Koruma: Secure Enclave aracılığıyla Face ID ve Touch ID. Biyometrik veriler iOS tarafından yönetilir, uygulama erişemez.

Yapamayacağımız Şeyler

Zero-Knowledge mimarimiz şu anlama gelir:

  • Saklanan verilerinizi görüntüleyemez, erişemez veya şifresini çözemeyiz
  • Ana şifrenizi sıfırlayamayız
  • Gizli anahtarınız olmadan kasanızı kurtaramayız
  • Verilerinizi hiç kimseyle paylaşamayız — kolluk kuvvetleri dahil
  • Şifrelemeye arka kapı ekleyemeyiz

Cihaz Güvenliği Uyumluluğu

ByteGuard, Apple'ın yerleşik güvenlik özellikleriyle sorunsuz çalışmak üzere tasarlanmıştır.

  • Apple Lockdown Mode: Apple'ın en yüksek güvenlik korumasıyla tam uyumlu. Kilitleme Modu etkinleştirildiğinde AutoFill, iCloud senkronizasyonu ve widget'lar dahil tüm özellikler normal şekilde çalışır.
  • WebView Bağımlılığı Yok: ByteGuard herhangi bir web oluşturma motoru kullanmaz. Kasa verileriniz asla WebKit üzerinden işlenmez, böylece tarayıcı tabanlı saldırı vektörlerinin tamamı ortadan kalkar.
  • Secure Enclave Entegrasyonu: Biyometrik kimlik doğrulama tamamen iOS Secure Enclave tarafından gerçekleştirilir. ByteGuard biyometrik verilere asla erişmez veya bunları saklamaz.

Device-Level Protection

The biometric quick-unlock boundary is maintained jointly by iOS Keychain and Secure Enclave. The application never holds any Face ID/Touch ID-derived key.

  • iOS Keychain ACL: A copy of the Vault DEK is stored in Keychain with kSecAttrAccessibleWhenUnlockedThisDeviceOnly + kSecAccessControlBiometryCurrentSet. Unreadable when the device is locked or Face ID has not authenticated.
  • Secure Enclave Takes Over: The Keychain entry is encrypted by a device key inside Secure Enclave. When the app calls SecItemCopyMatching, iOS triggers Face ID; on success SE decrypts and returns the plaintext DEK — the app never touches any SE key.
  • Auto-Invalidation on Face ID Re-enrollment: biometryCurrentSet semantics: when the user removes/re-enrolls Face ID in system settings, iOS automatically deletes the Keychain entry. ByteGuard detects the invalidation at launch and forces Master Password re-entry.
  • Strict Mode (No Fallback): If biometryCurrentSet is unavailable (simulators, no enrolled biometrics), the DEK cache simply fails — never falls back to a less-protected Keychain entry. Fallback would be weaker than not enabling Face ID at all and would violate user intent.
  • Memory Zeroing (Vault DEK): On lock, suspension, or vault switch, the Vault DEK is overwritten three times (zero → random → zero) with a memory barrier defeating compiler optimization. Master Key / KEK are local variables inside the unlock function, released by Swift ARC (not explicitly zeroed). Argon2 internal buffers are zeroed by libsodium via sodium_memzero.
App Store'dan İndir