Şifreleme Detayları
PratikYedek zero-knowledge modelde çalışır: sunucu yöneticileri (Berhan dahil) dosya içeriğinizi hiçbir zaman göremez. Bunu sağlayan kriptografi mimarisi aşağıda.
Master parola → Master Key (Argon2id)
- Hesap oluşturma sırasında master parola belirlersiniz (hesap şifresinden ayrı)
- Argon2id algoritması ile parola → 32-byte master key türetilir
- Parametreler:
iterations=3, memory=64MB, parallelism=4(OWASP 2024 önerisi) - Salt: hesap_id (KDF anti-rainbow attack)
- Master key sadece cihazınızda üretilir; sunucuya gönderilmez
Master parola kaybı
Master parola kaybı = veri kaybı. PratikYedek kurtarma garantisi vermez (zero-knowledge). Bu yüzden:
- Master parolayı şifre yöneticisinde saklayın (1Password, Bitwarden)
- Recovery key (24 kelime) basıp güvenli yere kaldırın
- Kurumsal pakette SuperAdmin recovery opsiyonu var (ekip yönetiminde)
Dosya şifreleme (AES-256-GCM)
- Master key → HKDF-SHA256 ile dosya başına unique key türetilir
- Her dosya AES-256-GCM ile şifrelenir
- GCM modu: confidentiality + integrity (auth tag); manipulation tespit edilir
- IV (nonce): 96-bit random; her chunk için yeni IV
- Chunk size: 4 MB; büyük dosyalar parçalanır → her chunk ayrı şifreli
Kopia repository şifreleme
PratikYedek dahili olarak Kopia kullanır (content-addressed storage). Kopia repository AES-256-CTR-POLY ile şifrelidir; repository password:
- Master key → HKDF-SHA256 (info:
kopia-repo-password.v1, length: 32B) - Base64URL encode → 43 karakter
- Kopia repository init/connect'te kullanılır
- Cihaz başına aynı master parola → aynı repository password → cihazlar arası tutarlı
Detay: ADR-026 (browser Argon2id) + crypto package wire-format test.
Recovery key — 24 kelime
Master parola kaybına karşı:
- Hesap kurulumunda 24 kelime BIP39 mnemonic üretilir
- AES-256-GCM ile master key'in wrapped versiyonu sunucuda saklanır
- Recovery key → wrapped master key unwrap → erişim geri kazanılır
- Recovery key sunucuya gönderilmez; sadece wrap/unwrap için yerel kullanılır
Şifre güvenliği (server-side)
Master parola dışında, hesap şifresi ve diğer credentialler:
| Veri | Saklama |
|---|---|
| Hesap şifresi | bcrypt hash (plaintext yok; cost factor 12) |
| 2FA TOTP secret | encrypted-at-rest (server master key) |
| SMS OTP | bcrypt hash (5 dk TTL) |
| OAuth token (BYOS) | encrypted-at-rest, refresh rotation |
| Master parola | HİÇBİR YERDE SAKLANMAZ (sadece cihazda) |
TLS — wire-level
Sunucu ile cihaz arası tüm trafik TLS 1.3 + Perfect Forward Secrecy. Cert: Let's Encrypt (auto-renew 60g). HSTS preload + CSP strict.
Algoritma seçimleri (özet)
| Amaç | Algoritma | Parametre |
|---|---|---|
| Parola → key | Argon2id | 3 iter / 64MB / 4 par |
| Dosya şifreleme | AES-256-GCM | 256-bit key, 96-bit IV |
| Key derivation | HKDF-SHA256 | info per-use |
| Kopia repo | AES-256-CTR-POLY | Kopia default |
| Hash (audit chain) | SHA-256 | rolling hash |
| Şifre hash | bcrypt | cost 12 |
| TLS | TLS 1.3 | PFS zorunlu |
KVKK § 12 uyumu
KVKK Veri Güvenliği Tedbirleri Tebliği "şifreleme" zorunluluğu için PratikYedek:
- ✅ Veri at-rest şifreli (AES-256-GCM)
- ✅ Veri in-transit şifreli (TLS 1.3)
- ✅ Veri in-use şifreli (memory-zeroing master key)
- ✅ Algoritma OWASP/NIST güncel önerilerine uyumlu
- ✅ Anahtarlar zero-knowledge (sunucu yöneticisi okuyamaz)
Sıkça sorulanlar
AES-256 mı, AES-128 mi yeter? AES-128 zaten 2050'lere kadar güvenli kabul ediliyor (NIST). PratikYedek AES-256 kullanır — kuantum sonrası geçiş için fazladan margin.
Quantum-resistant şifreleme var mı? Şu an yok. NIST PQC algoritmaları (Kyber, Dilithium) standardize oldu; Faz 5+ değerlendirilecek.
Şifreleme performans cezası ne kadar? AES-NI donanım hızlandırması ile modern CPU'da %2-5 yavaşlama. Argon2id parametreleri ilk login'de 2-3 saniye alır (kasıtlı yavaş — brute-force koruma).
Master parolamı değiştirmek istiyorum, dosyalar yeniden mi şifrelenir? Hayır. Master parola → master key türetiminin wrapped versiyonu güncellenir. Dosya şifreleme katmanı dokunulmaz (rotation pahalı olurdu). Master parola wrap key'in derivation source'udur.

