Minimum macOS 15.0; yerel SwiftUI uygulaması.
B Safe Teknik Detaylar
B Safe 2.1’in kasa biçimi, kriptografi, dosya sistemi kontrolleri, lisans doğrulaması, güncelleme altyapısı ve çalışma limitleri.
Ana uygulama yalnızca aktif v11 kasa biçimini açar.
İçerik ve gizli tanımlayıcılar authenticated encryption ile korunur.
64/128/256 MiB bellek, 3 tur ve paralellik 2 seçenekleri.
İmzalı appcast ve yayın dosyası doğrulaması kullanılır.
Çalışma ortamı ve uygulama sınırları
B Safe 2.1 build 3 için minimum işletim sistemi macOS 15.0’dır. Uygulama SwiftUI ile geliştirilir; App Sandbox, hardened runtime, kullanıcı seçimiyle dosya okuma/yazma ve app-scope security bookmark yetkileri kullanılır.
Ağ istemci yetkisi lisans doğrulaması, cihaz engel durumu, isteğe bağlı anonim kullanım istatistiği ve Sparkle güncelleme kontrolü için kullanılır. Kasa dosyası içeriği normal lisans veya telemetri akışında sunucuya gönderilmez.
Kasa biçimi ve kriptografik yapı
Aktif konteyner magic değeri BSAR, biçim sürümü v11’dir. Ana uygulama desteklenmeyen eski biçimleri sessizce açmaz. Header; biçim, şifreleme bayrağı, salt, Argon2id parametreleri, gizli bölüm tanımlayıcısı ve önizleme katalog uzunluğu gibi alanları taşır.
İçerik 32 baytlık anahtarla AES-256-GCM kullanılarak mühürlenir. Ayrı bütünlük anahtarıyla HMAC-SHA512 üretilir. Rastgele salt ve diğer kriptografik baytlar SecRandomCopyBytes üzerinden oluşturulur.
Argon2id ve keyfile parametreleri
Argon2id çıktısı 96 bayttır; ilk 32 bayt şifreleme anahtarına, kalan 64 bayt HMAC anahtarına ayrılır. Standart, yüksek ve maksimum modlar sırasıyla 64, 128 ve 256 MiB bellek kullanır; üç modda da iteration 3 ve parallelism 2’dir.
Header’dan okunan Argon2id değerleri kullanılmadan önce 32-256 MiB bellek, 2-8 iteration ve en fazla 8 paralellik sınırlarına karşı doğrulanır. Keyfile SHA-512 ile 1 MiB parçalar halinde okunur ve digest parola sırrına eklenir.
Gizli bölüm, header ve manifest kontrolleri
Gizli bölüm tanımlayıcısı ayrı paroladan türetilen anahtarla AES-GCM kullanılarak korunur. Ana kasa parolası ile gizli bölüm parolasının aynı olması reddedilir.
Kasa açılmadan önce header uzunlukları, Argon2id parametreleri, katalog boyutu, payload sınırları ve beklenmeyen taşmalar kontrol edilir. Path traversal, mutlak path, Windows ayırıcıları, aşırı path derinliği ve şüpheli manifest girdileri reddedilir.
Dosya sistemi, çıkarma ve çalışma limitleri
Çıkarma sınırları 10.000 dosya, dosya başına 1 GiB ve toplam 8 GiB’dir. Önizleme verisi ve önizleme kataloğu ayrı ayrı 16 MiB ile, metin indeksleme dosya başına 256 KiB ve en fazla 500 dosya ile sınırlandırılır.
Büyük dosya akışları streaming I/O kullanır. Güvenli silme symlink takip etmez; hardlink durumunda paylaşılan veriyi ezmeden yalnız ilgili path kaldırılır ve inode kontrolüyle TOCTOU riski azaltılır.
Lisans, cihaz engeli ve ağ doğrulaması
Lisans yanıtları Ed25519 imzalı token ile doğrulanır. Lisans sunucusu HTTPS üzerinden kullanılır ve uygulama tanımlı SHA-256 sertifika pinlerini kontrol eder.
Cihaz eşleştirmesi kalıcı cihaz UUID’si ile donanım tabanlı SHA-256 fingerprint’i birlikte değerlendirir. Aktif cihaz engeli uygulamada yerel olarak saklanır; sunucu izin verdiğini doğruladığında kaldırılır.
Güncelleme zinciri ve yayın doğrulaması
Uygulama Sparkle 2.9.1 üzerinden appcast kontrolü yapar. Appcast içindeki sürüm, build, minimum sistem sürümü, dosya boyutu ve EdDSA imzası yayın dosyasıyla birlikte doğrulanır.
Yayınlanan 2.1 paketi minimum macOS 15.0.0 değeriyle hazırlanmalıdır. DMG üretiminden önce Release build, codesign, notarization ve staple doğrulaması yapılması gerekir.