Deterministic Masking — Aynı TC Her Seferinde Aynı Maskeli
Deterministic masking nedir, neden DLP'de tercih edilir? Forensic değer + KVKK uyumu dengesi.
Yazar: Mehmet Özbakır
DLP’de bir TC kimlik numarası maskeleme yapılırken aynı TC her zaman aynı sonuçla maskelensin mi? Bu basit görünen tercih aslında DLP felsefesini tanımlar.
İki yaklaşım:
- Deterministic: aynı input → aynı output (her zaman)
- Random/Non-deterministic: aynı input → her seferinde farklı output
VeritaDLP deterministic yaklaşımı seçer. Bu yazıda nedenini anlatıyoruz.
Random masking örneği
İlk olay: TC: 12345678901 → TC: ABC***DEF
İkinci olay: TC: 12345678901 → TC: XYZ***QRS
Her olayda farklı maskeli karakter. Maksimum gizlilik — aynı kişi 2 olay arasında bağlanamaz.
Pro:
- KVKK Madde 4 (veri minimumda) en sıkı yorumu
- Forensic analist bile kişiyi takip edemez
Kontra:
- Forensic değer sıfır — pattern analiz yapılamaz
- “Bu kullanıcı bugüne kadar kaç kez TC sızdırdı?” sorusu cevapsız
- KVKK denetiminde “olay tarihçesi” zayıf
Deterministic masking örneği
İlk olay: TC: 12345678901 → TC: 123******01
İkinci olay: TC: 12345678901 → TC: 123******01
Aynı sonuç her zaman. 2. olayda analist “aynı kişi” diye fark eder.
Pro:
- Forensic pattern analizi mümkün
- Kullanıcı bazlı risk skoru (aynı TC 5 kez sızdırılmış)
- KVKK denetiminde “olay tarihçesi” zengin
- Audit log’da olay korelasyonu
Kontra:
- Kimlik takibi mümkün — KVKK açısından tartışılır
- Forensic analist bilinçli kötü niyet kullanırsa kişi tanınabilir
VeritaDLP 2. yaklaşımı seçti — forensic değer KOBİ için kritik.
Teknik implementasyon
Deterministic mask basit kural set:
def mask_tc(tc: str) -> str:
"""Aynı TC her zaman aynı mask → ilk 3 + son 2."""
return tc[:3] + "*" * 6 + tc[-2:]
mask_tc("12345678901") == "123******01" # her zaman
Hashing değil — basit dönüşüm. Bu kasıtlı:
- Cryptographic hash (SHA256) yapsak: aynı input aynı output (det), ama 64 char hex çıktısı forensic’te işe yaramaz
- Format-preserving encryption: anahtara bağlı, anahtar sızarsa geri çevrilebilir
Basit pattern-mask hem deterministic hem format-preserving.
KVKK aydınlatma metninde belirtilir
Deterministic mask’in kimlik takip riski olduğu için KVKK aydınlatma metninde net açıklanır:
“VeritaDLP DLP yazılımı tespit ettiği TC kimlik, IBAN, kredi kartı gibi hassas verileri kısmi maskeleme (partial masking) ile kaydeder. Aynı veri farklı olaylarda aynı maskeli görüntü ile kaydedilir (deterministic masking). Bu durum:
- Olayların bağlamsal forensic analizi için gereklidir
- Kişiyi tanımlamak için yeterli bilgi içermez
- KVKK Madde 4 (veri minimumda) prensibi gözetilir
Forensic analist olaylar arasında pattern arayabilir ama maskelenen verilerden gerçek kimliği elde edemez. Bu kasıtlı bir tradeoff’tur — şirket güvenliği için forensic değer korunur.”
Bu metin VeritaDLP’de hazır şablon.
Forensic değer örneği — gerçek senaryo
Bir şirkette 3 ayrı olay:
Olay 1 (Pazartesi 14:00): Çalışan Ahmet, USB’ye dosya kopyaladı.
TC mask: 123******01.
Olay 2 (Çarşamba 09:30): Aynı çalışan, e-posta gönderdi. TC mask:
456******02.
Olay 3 (Cuma 18:00): Aynı çalışan, yazıcı çıktısı aldı. TC mask:
123******01 ve 789******03.
Forensic analist:
- Olay 1 + 3 — aynı
123******01TC görünüyor → muhtemelen aynı müşteri verisi - Olay 2 farklı TC → farklı müşteri
- Çalışan Ahmet’in 1 hafta içinde 3 müşteri verisi sızdırma denemesi
Pattern ortaya çıkar. Random mask olsaydı analist bunu hiç göremezdi.
Strict Privacy Mode — opsiyon
Bazı tenant’lar “deterministic risk istemiyorum” diyebilir. Strict Privacy Mode seçeneği:
- Mask kaydedilmiyor (masked summary tamamen disabled)
- Sadece PII sayım kaydedilir (“TC: 47, IBAN: 12 tespit edildi”)
- Olay olduğu bilinir ama içerik yok
Tenant ayarı content_summary.mode:
masked(default) — partial visibility + deterministicdisabled— Strict Privacy Mode
KOBİ %95 default’u kullanır. Hassas sektör (avukat, sağlık özel
kategori) disabled tercih edebilir.
Hash + salt yaklaşımı (alternatif)
Bazı DLP’ler hash + tenant salt kullanır:
mask = sha256(tc + tenant_salt)[:16]
Pro:
- Tek yönlü (cryptographic)
- Format-preserving değil ama “fake ID” üretir
Kontra:
- 16 char hex çıktısı (
a3f5c7d2b1e89f04) forensic’te insan okumaz - KVKK aydınlatma metninde anlatımı zor
VeritaDLP basit pattern-mask tercih eder — insan okur, deterministic, KVKK uyumu kolay anlatım.
Cross-tenant mask paylaşılmaz
Önemli not: deterministic mask tenant’a özel.
Tenant A: 12345678901 → 123******01
Tenant B: 12345678901 → 123******01 (rastlantı, aynı şablon)
Ama Tenant A operatörü Tenant B operatöründe aynı sonucu görse bile verisi paylaşılmıyor — sadece deterministic mask kuralı aynı. Şablon evrensel, içerik tenant izole.
KVKK için bu kritik: tenant’lar arası veri sızıntısı yok.
Yaygın yanılgı
“Deterministic mask = veri açıklanıyor”
Yanlış. Deterministic mask sadece aynı veri aynı şablonla gösteriliyor demektir. Maskeli haline bakarak gerçek değeri hesaplamak imkansız — orta 6 hane belirsiz, 1 milyon olası TC vardır.
Brute force yapmak isteyen birinin 10^6 = 1 milyon TC denemesi gerek, bu da pratik değil (KVKK Kurulu denetiminde de net).
Sonuç
Deterministic masking — forensic değer + KVKK uyumu dengesinde optimal seçim. Kişi tanınamaz ama olay pattern analizi mümkün. KOBİ DLP’leri için doğru tercih.
VeritaDLP deterministic + partial visibility default kullanır. Strict Privacy Mode opsiyon olarak sunulur (hassas sektör için).
Etiketler: #deterministic-masking #dlp #kvkk #forensic