Sıfır bilgi mimarisi: sunucu dosyalarınızı neden göremez
Sıfır bilgi mimarisinin hizmet sağlayıcının bile dosyalarınıza erişememesini nasıl sağladığını öğrenin.
Sıfır bilgi mimarisi, hizmet sağlayıcının dosyalarınızı okumak için teknik bir kapasitesinin olmadığı anlamına gelir; şifreleme anahtarları hiçbir zaman sunucularına ulaşmaz, ana anahtar yoktur, arka kapı yoktur ve "bize güvenin" gerekmez. Tarayıcınız, yerel olarak oluşturduğu bir anahtarla dosyaları yüklemeden önce AES-256-GCM ile şifreler; bu anahtar alıcıya yalnızca URL parçasındaki # işaretinden sonraki kısım üzerinden ulaşır ki tarayıcılar bu kısmı sunuculara hiçbir zaman iletmez. Geçerli bir mahkeme celbi altında bile sağlayıcı yalnızca şifreli metin üretebilir. Bu model Tresorit, Proton, SwissTransfer ve HexaTransfer tarafından kullanılır; "beklemedeyken şifreli" ifadesinden matematiksel olarak farklıdır.
Kanıt, sunucunun üretebileceklerindedir
Sıfır bilginin en temiz testi: şirket zorlandığında ne teslim edebilir? Geleneksel bulut depolamada (Google Drive, Dropbox, OneDrive) yanıt: dosyalarınızı, düz metin olarak. Google'ın 2023 şeffaflık raporu, yasal olarak gerektiğinde kullanıcı içeriği dahil olmak üzere ABD hükümeti veri taleplerinin %83'üne uydukları göstermektedir. Bu, Google'ın güvenliğinde bir başarısızlık değildir; mimarinin bu şekilde çalışmasıdır.
Sıfır bilgiyle şirket şunları üretebilir:
- Şifreli dosya blob'ları (anahtarsız işe yaramaz)
- Hesap meta verileri (e-posta, kayıt IP'si)
- Yükleme ve indirme IP adresleri ile zaman damgaları
- Uygulanabilirse ödeme bilgileri
Şunları üretemez: dosya adlarını, içerikleri, alıcı kimliğini veya şifre çözme anahtarlarını. Reddettikleri için değil; sahip olmadıkları için.
URL parçası hilesi tam olarak açıklandı
Temel teknik hamle, URL parçasını gizli bir anahtar kanalı olarak kullanmaktır. Bir tarayıcı https://hexatransfer.com/d/xyz789#k=BASE64ANAHTAR adresini istediğinde sunucuya yalnızca GET /d/xyz789 gönderir. Parça tarayıcının adres çubuğunda kalır. JavaScript ardından window.location.hash ile anahtarı okur ve crypto.subtle.decrypt() işlevine iletir.
Bu yöntem Mega.nz tarafından 2013 civarında öncülük edildi ve Mozilla'nın 2020'de kapatmadan önce Firefox Send tarafından geliştirildi. Desen artık standarttır. nginx veya Caddy'deki erişim günlükleri de dahil olmak üzere sunucu tarafı günlükleri, HTTP RFC 3986 parçayı yalnızca istemci tarafı olarak tanımladığından parçayı hiçbir zaman yakalamaz.
Bir sağlayıcı teorik olarak istemci tarafı JavaScript aracılığıyla parçayı günlüğe kaydedebilir; bu nedenle sıfır bilgi hizmetleri, istemci kodlarını inceleme için yayımlar ve çoğu zaman ayrı bir kaynaktan sunulan imzalı statik varlıklar olarak gönderir.
Bu, "beklemedeyken şifreli"den nasıl farklıdır
Her bulut sağlayıcısı dosyaları beklemedeyken şifreler; bu temel gerekliliktir ve genellikle SOC 2 Tip II ile ISO 27001 sertifikaları için zorunludur. Ancak sağlayıcının elinde tuttuğu anahtarlarla "beklemedeyken şifreli" ifadesi, şifrelemenin çalınan disklerden korunduğu ve sağlayıcının talep üzerine otomatik şifre çözümü gerçekleştirebildiği anlamına gelir.
Sıfır bilgi, anahtar gözetimini tersine çevirir: anahtarı siz tutarsınız, şifreli metni sağlayıcı tutar. Sağlayıcı şifreyi çözerek hiçbir şey kazanamaz; çünkü çözemez. Bu, üç özel tehdit altında önem kazanır:
- Hileli çalışanlar. Veritabanı erişimi olan bir sağlayıcı çalışanı yalnızca şifreli metin görür.
- Hükümet talepleri. GDPR Madde 48 ve ABD CLOUD Yasası talepleri ifşayı zorunlu kılabilir; ancak sahip olmadığınız şeyi ifşa edemezsiniz. Türkiye'deki kullanıcılar için ayrıca KVKK (Kişisel Verileri Koruma Kanunu) veri taleplerine de aynı kural geçerlidir.
- Sunucu ihlalleri. 2021 LastPass ihlali, şifreli kasaları açığa çıkardı; zayıf ana parolalar hâlâ kırıldı, ancak sıfır bilgi tasarımı toplu düz metin ifşasını önledi.
Şifreli olan ve meta veri olan
Naif bir uygulama dosya içeriğini şifreler ama dosya adlarını, boyutlarını ve klasör yapısını görünür bırakır. Gerçek sıfır bilgi, dosya adını da şifreler; genellikle AES-GCM şifrelemesinden önce dosya baytlarına {"name": "Q4-finansallar.pdf", "type": "application/pdf"} gibi JSON başlığını ekleyerek.
Gizlenmesi zor meta veriler:
- Dosya boyutu — şifreli metin uzunluğu düz metin uzunluğuna yakındır. Sabit kovalara doldurmak (1 MB, 10 MB, 100 MB, 1 GB) bunu gizler ama bant genişliği harcar.
- Yükleme zamanlaması — zaman damgalarını diğer verilerle ilişkilendirmek hâlâ bilgi sızdırabilir.
- IP adresleri — sağlayıcı, kimin yüklediğini ve indirdiğini görür. Bu önemliyse Tor veya güvenilir bir VPN ile eşleştirin.
Proton ve Tresorit ayrıntılı meta veri ifşa matrisleri yayımlar. SwissTransfer ve HexaTransfer daha basit bir yaklaşım benimser: minimal meta veri, kısa saklama süresi (24 saat ila 7 gün) ve ücretsiz aktarımlar için hesap bağlantısı yok.
Kimlik doğrulama sorunu
Sıfır bilgi bir zorluk yaratır: sunucu dosyalarınızı şifreleyemiyorsa, yabancıların indirmesini önlemek için sizi nasıl doğrular? Üç yaygın desen:
- Link tabanlı kimlik doğrulama. URL'nin (ve parçanın) sahipliği, yetkilendirmedir. SwissTransfer, HexaTransfer ve Tresorit Send tarafından kullanılır. Basit, hesap gerektirmez.
- Parola korumalı linkler. URL parçası bir tuz içerir; gerçek anahtar, parola üzerinden PBKDF2 ile türetilir. Sunucu, yanlış tahminleri hızlıca reddetmek için bir doğrulayıcı (anahtarın karması) saklar.
- Hesaba bağlı sıfır bilgi. Proton ve Tresorit, giriş parolanızdan Argon2id aracılığıyla ana anahtarınızı türetir, ardından bunu sunucuda şifreli olarak saklanan dosya başına anahtarları açmak için kullanır.
Her birinin takası vardır. Link tabanlı en basit olanıdır ama URL'yi alan herkese anahtarı sızdırır. Parola korumalı ikinci bir faktör ekler. Hesaba bağlı, istemci kodunun ana anahtarı dışarıya sızdırmamasına güvenmeyi gerektirir.
Sıfır bilgiyi bozan uygulama tuzakları
Bilmeye değer birkaç gerçek dünya başarısızlığı:
- Sunucu tarafı dosya önizlemeleri. Sağlayıcı küçük resim oluşturursa veya arama için metin çıkarırsa düz metne ihtiyaç duyar. Sıfır bilgi hizmetleri bu özellikleri şifreli içerikte sunamaz.
- Eşitleme çakışması çözümü. Cihazlar arasında dosya içeriğini karşılaştırmak normalde düz metin gerektirir. Syncthing ve Cryptomator bunu istemci tarafı farklarıyla halleder.
- Analitik SDK'ları. Google Analytics veya Segment'ten gelen üçüncü taraf komut dosyaları istemci kodunda
window.location.hash'i okuyabilir. Sıfır bilgi hizmetleri ya analitiği kendisi barındırır ya da parça erişimini kaldırır. - Parola sıfırlama. Sağlayıcı parolanızı sıfırlayabilir ve hâlâ eski dosyalara erişim sağlayabiliyorsa bir kurtarma anahtarı tutması gerekir; bu da sıfır bilgiyi bozar. Proton, parola sıfırlamanın şifreli veri kaybı anlamına geldiğini açıkça belirtir.
Gerçekten sıfır bilgi sunan hizmetler
Üçüncü taraf denetimlerle (Cure53, NCC Group, Trail of Bits) doğrulanmış güvenilir sıfır bilgi iddiaları olan hizmetlerin kısa listesi:
- Tresorit — İsviçreli, SOC 2 Tip II, sıfır bilgi dosya eşitleme ve Send.
- Proton Drive — İsviçreli, Proton Mail kriptografi modeline dayanır.
- SwissTransfer — Infomaniak tarafından çalıştırılan, isteğe bağlı E2EE ile ücretsiz katman.
- Mega.nz — Yeni Zelanda, yayımlanmış kriptografi teknik belgesi.
- HexaTransfer — tarayıcı tabanlı, hesap gerektirmez, aktarım başına 10 GB.
Şifreli ama sıfır bilgi olmayan hizmetler: Google Drive, Dropbox, OneDrive, Box, iCloud (Gelişmiş Veri Koruması katmanı hariç) ve WeTransfer standart katmanı.
Pratiğe geçiş
Hassas dosyalara güvenmeden önce şu kontrol listesini çalıştırın:
- Gizlilik politikası, sağlayıcının dosyalarınızı okuyamadığını belirtiyor mu?
- AES-256-GCM ve KDF'i adlandıran yayımlanmış bir güvenlik teknik belgesi var mı?
- Paylaşım URL'si bir parça içeriyor mu (
#işaretinden sonraki metin)? - Son 24 ay içinde üçüncü taraf denetim raporları var mı?
- İstemci kodu açık kaynak veya en azından denetlenebilir mi?
Dört evet bulduysanız bir sıfır bilgi hizmeti buldunuz. Üç veya daha az evet, sağlayıcının dosyalarınızı görebildiği anlamına gelir.
hexatransfer.com'da deneyin — ücretsiz, hesap gerekmez, 10 GB'a kadar.
Uçtan uca şifreleme ile büyük dosyaları güvenle gönderin
Uçtan uca şifreleme ile 10 GB'a kadar dosya ücretsiz aktarın. Hesap gerekmez. Dosyalarınız yüklenmeden önce tarayıcınızda şifrelenir — başka kimse okuyamaz.
Dosya gönder