Bir destek uzmanı müşteri şikâyetini incelemek için üretim veritabanından birkaç satır ister. Sorunu çözmek için sipariş numarasına ve tarihine ihtiyacı vardır; müşterinin T.C. kimlik numarasına, telefonuna ve kart bilgisine ihtiyacı yoktur. Veri maskeleme, işi yapmak için gereken veriyi verip gerekmeyeni gizlemenin adıdır. Bu yazı maskeleme türlerini, tekniklerini, şifreleme ve anonimleştirmeden farkını ve KVKK açısından ne anlama geldiğini anlatır.

Veri Maskeleme Nedir?

Veri maskeleme, hassas bir değerin yerine biçimini koruyan ama gerçek değeri göstermeyen bir değer koymaktır. 12345678901 yerine 123******01, ayse@ornek.com yerine a***@ornek.com gösterilir. Kayıt kullanılabilir kalır; sıralama, sayma ve eşleştirme gibi işler çoğu zaman yapılabilir, ama değeri gören kişi gerçek kişisel veriye ulaşmaz.

Üç Tür: Statik, Dinamik, Sonuç Maskeleme

"Veri maskeleme" tek bir teknik değil; maskelemenin nerede ve ne zaman yapıldığına göre üç farklı yaklaşım vardır. Hangisinin gerektiği, verinin kime ve nasıl gittiğine bağlıdır.

Tür Ne zaman, nerede Tipik kullanım Sınırı
Statik maskeleme Verinin bir kopyası alınır, kopyadaki değerler kalıcı olarak değiştirilir Test ve geliştirme ortamı hazırlamak Kopyalama sürecinin kendisi üretim verisine dokunur; kopya güncelliğini kaybeder
Dinamik maskeleme Veri yerinde kalır, sorgu sonucu yetkiye göre maskelenmiş döner Uygulama ekranları, raporlama kullanıcıları Doğrudan sorgu yazabilen kullanıcı çıkarım yapabilir; yetkili kullanıcıyı korumaz
Sonuç maskeleme Üretimden alınan sorgu sonucu, teslim edilmeden önce kolon bazında maskelenir Destek, analiz ve denetim için tek seferlik veri talepleri Teslimden sonra dosyanın nereye gittiğini kontrol etmez

SQL Server'ın yerleşik dinamik veri maskelemesinin denetçiye neyi söylemediği dinamik veri maskeleme sınırları yazısında ayrıntılı anlatılıyor.

Maskeleme Teknikleri

  • Kısmi gizleme: Değerin bir kısmı görünür, kalanı yıldızla kapanır: 5312 **** **** 4410. Destek ekibinin kaydı tanıması için yeterlidir.
  • Sabit değer: Değerin tamamı aynı ifadeyle değiştirilir: [GİZLİ]. Kolon gerekmediğinde en güvenli seçenektir.
  • Yerine koyma: Gerçek isim gerçekçi ama sahte bir isimle değiştirilir. Test verisinde kullanılır.
  • Karıştırma: Kolondaki değerler satırlar arasında yer değiştirir; dağılım korunur, eşleşme bozulur.
  • Tarih kaydırma: Doğum tarihi gibi değerler belirli bir aralıkta kaydırılır; yaş grubu korunur.
  • Özetleme (hash): Değer tek yönlü bir özetle değiştirilir; aynı değer her yerde aynı özeti verdiği için tablolar arası eşleştirme yapılabilir. Kısa ve tahmin edilebilir değerlerde (kimlik numarası gibi) tek başına yeterli değildir, çünkü olası değerler denenerek geri bulunabilir.

Şifreleme ve Anonimleştirmeden Farkı

Üç kavram sık karıştırılır. Şifreleme veriyi anahtarı olmayana okunmaz yapar; anahtarı olan gerçek değere geri döner. Veritabanı diskte şifreli olsa bile yetkili bir sorgu açık değeri görür. Maskeleme gösterilen değeri değiştirir; amaç gerçek değeri hiç vermemektir. Anonimleştirme ise verinin, başka verilerle eşleştirilse bile belirli bir kişiyle ilişkilendirilemeyecek hale gelmesidir.

Önemli sonuç şudur: bir kolonu maskelemek kaydı kendiliğinden anonim yapmaz. Kimlik numarası gizlenmiş ama adı, doğum tarihi ve ilçesi açık kalan bir satır çoğu zaman hâlâ belirli bir kişiyi gösterir ve hâlâ kişisel veridir. Maskeleme kararı tek kolona değil, sonuçtaki kolonların birlikte ne gösterdiğine bakılarak verilmelidir.

KVKK Açısından Veri Maskeleme

Kanun veri sorumlusundan kişisel verilerin hukuka aykırı erişilmesini önlemek için uygun güvenlik düzeyini sağlayan tedbirleri almasını ister. Maskeleme bu tedbirlerden biridir: üretim verisine erişmesi gereken ama kişisel veriyi görmesi gerekmeyen herkes için erişimi daraltır. Kurulun rehberleri erişimin ihtiyaçla sınırlandırılmasını ve kişisel verinin gerekenden fazla işlenmemesini ilke olarak koyar; maskeleme bu ilkenin veritabanındaki uygulamasıdır.

Denetimde sorulan ise maskelemenin var olup olmadığı değil, kararın nasıl verildiğidir: hangi kolon neden maskelendi, hangisi neden açık bırakıldı, açık bırakma kararını kim onayladı? Bu sorulara cevap veren yöntem maskeleme kararı nasıl verilir yazısında anlatılıyor.

Veri Maskeleme Nasıl Yapılır?

  1. Hassas kolonları bulun: Kolon adlarından (TCKN, telefon, e-posta, IBAN) ve içerikten (geçerli kimlik numarası, kart numarası) tarayın. Yalnız ada bakmak yetmez; "Aciklama" adlı bir kolonda kimlik numarası durabilir.
  2. Teknik seçin: Her kolon türü için kullanılacak tekniği belirleyin; gerekmeyen kolon için sabit değer, tanınması gereken için kısmi gizleme.
  3. Varsayılanı maskeli yapın: Açık görmek istisna olmalı; gerekçe ve onay istemelidir.
  4. Teslimi güvenceye alın: Sonuç e-posta ekiyle değil, şifreli ve yalnız onaylı alıcının açabileceği biçimde gitmelidir.
  5. Kayda geçirin: Hangi kolonun neden maskelendiği ve kimin açık gördüğü her talep için saklanmalıdır.

SQL Change Guard sonuç maskeleme yaklaşımını üretimden veri taleplerine uygular: kolonlar veri okunmadan şema üzerinden önizlenir, hassas olanlar ad desenleri ve içerik doğrulayıcılarıyla (kimlik numarası, kart, IBAN) bulunup maskelenir, maskesiz istenen kolon gerekçe ve onay ister, sonuç parolalı ve şifreli paketle onaylı alıcıya gider. Ürün test veritabanı hazırlamaz; statik maskeleme gerekiyorsa o iş ayrı bir araçla yapılır.

Sık Sorulan Sorular

Veri maskeleme ile veri şifreleme aynı şey mi?

Hayır. Şifrelemede anahtarı olan gerçek değeri geri alır; maskelemede gösterilen değer gerçek değeri hiç taşımaz. İkisi birbirinin yerine değil, birlikte kullanılır.

Maskelenmiş veri kişisel veri sayılır mı?

Çoğu zaman evet. Kayıttaki diğer kolonlarla birlikte belirli bir kişiyi göstermeye devam ediyorsa kişisel veridir. Kişisel veri sayılmaması için verinin anonim hale gelmesi, yani hiçbir şekilde bir kişiyle ilişkilendirilememesi gerekir.

SQL Server'da veri maskeleme nasıl yapılır?

SQL Server kolona MASKED WITH (FUNCTION = 'partial(...)') gibi bir tanım ekleyerek dinamik maskeleme sunar; UNMASK yetkisi olmayan kullanıcı maskelenmiş değeri görür. Bu yöntem yetkili kullanıcıyı ve doğrudan sorgu yazabilen kullanıcının çıkarımını kapsamaz.

Test ortamında gerçek veri kullanmak için maskeleme yeterli mi?

Test için statik maskeleme gerekir ve kolonların birlikte kişiyi göstermemesi sağlanmalıdır. Konunun riskleri test ortamında gerçek veri yazısında anlatılıyor.

Üretimden veri talebini maskeli ve kayıtlı yürütün

Bir veri talebinin kolon önizlemesinden şifreli teslimine kadar adımlarını kendi şemanız üzerinde gösterelim.

Demo Planlayın →