Test verisi hazırlamanın iki yolu vardır: veriyi sıfırdan üretmek ya da eldeki gerçek veriyi değiştirmek. Bu yazıda sentetik veri ve anonimleştirme arasındaki farkı, gerçek veriden adı silmenin neden yeterli olmadığını, anonim bir kümenin nasıl yeniden kişiye bağlanabildiğini ve hangi durumda hangi yaklaşımın seçilmesi gerektiğini bulacaksınız.
Sentetik veri, anonimleştirme ve maskeleme arasındaki fark nedir?
Bu üç kavram günlük konuşmada birbirinin yerine kullanılır ama aralarında temel bir fark vardır: verinin kaynağı. Ayrımı netleştirmek, doğru yöntemi seçmenin ilk adımıdır.
| Yöntem | Veri nereden gelir | Gerçek kişiyle ilişkisi | Test için uygunluk |
|---|---|---|---|
| Sentetik | Algoritma tarafından sıfırdan üretilir | Hiçbir kayda dayanmaz | Yüksek |
| Anonimleştirme | Gerçek kayıtlardan türetilir | Bağ koparılmaya çalışılır | Koşullu |
| Takma adlı | Gerçek kayıtlardan türetilir | Bağ ayrı bir anahtarla korunur | Düşük |
| Maskeleme | Gerçek kayıtlardan türetilir | Yalnızca görünüm değişir | Düşük |
Sentetik veri gerçek bir kaydı temel almaz. Bir dağılıma, bir kural kümesine ya da bir şablona göre üretilir; bu yüzden hiçbir gerçek kişiye karşılık gelmez. Anonimleştirme ise tam tersi yönde ilerler: elinizde gerçek kayıtlar vardır ve bu kayıtların kişiyle bağını koparmaya çalışırsınız.
Takma adlı veride bağ koparılmaz, yalnızca gizlenir. Kayıt yine bir kişiye aittir; hangi kişi olduğu ayrı bir anahtarla bulunabilir. Maskelemede ise değerin görünümü değişir, kendisi değişmez. Her iki yöntem de gerçek kişiyle bağı sürdürdüğü için test ortamına taşınması risklidir.
Gerçek veriden adı silmek neden yeterli değildir?
En yaygın yanılgı, kayıttan ad ve soyadı çıkarıldığında verinin artık kişisel olmadığıdır. Bu doğru değildir; çünkü bir kişiyi tanımlamak için ad tek başına gerekli değildir.
Bir kaydın kişiye bağlanmasını sağlayan şey, alanların birleşimidir. Doğum tarihi, posta kodu ve cinsiyet üçlüsü, çok sayıda kişi içeren bir kümede bile küçük bir grubu işaret edebilir. Bu üç alanın birlikte kaldığı bir kayıt, adı silinmiş olsa da hâlâ bir kişiye yakındır.
İkinci sorun, geriye kalan alanların niteliğidir. Telefon numarası çoğu ülkede doğrudan bir kişiye kayıtlıdır; e-posta adresi benzer şekilde tektir. Bu alanlardan biri kayıtta duruyorsa, diğer alanların silinmesi koruma sağlamaz. Aynı şey açık adres için de geçerlidir: bir sokak ve kapı numarası, orada yaşayan kişi sayısı kadar dar bir kümeye işaret eder.
Üçüncü sorun, küçük kümelerdir. Veri kümesi yeterince küçükse, her satır zaten tek bir kişiye karşılık gelir; bu durumda adı silmek hiçbir şey ifade etmez. Nadir görülen bir meslek ya da sıra dışı bir doğum ülkesi, tek başına kişiyi işaret etmeye yetebilir. Bu nedenle anonimliği verinin kendisinden değil, kümenin bütününden değerlendirmek gerekir.
Sitenin ürettiği kayıtlar bu tuzağın dışındadır: alanlar bir algoritma tarafından sentetik olarak üretilir, gerçek bir kayıttan türetilmez ve yalnızca test amaçlıdır. Üretilen bir kimlik verisi gerçek bir kişiyi taklit etmek, kimlik doğrulamasından geçmek ya da hesap açmak için kullanılamaz.
Anonim veri nasıl yeniden kişiye bağlanabilir?
Bir kümenin anonim sayılması, o kümenin sonsuza dek anonim kalacağı anlamına gelmez. Bağ kurma, çoğu zaman elde başka bir veri olduğunda gerçekleşir.
İlk yol, kümenin dışarıdaki bir listeyle eşleştirilmesidir. Elinizde ad ve doğum tarihi içeren açık bir liste varsa, anonim sandığınız kümedeki doğum tarihleri bu listeyle karşılaştırılabilir. Eşleşme sayısı arttıkça kayıtlar tek tek çözülür.
İkinci yol, kümelerin birbiriyle birleştirilmesidir. Aynı kişilerin farklı amaçlarla toplanmış iki kümede bulunduğu durumda, iki kümenin ortak alanları bir anahtar gibi çalışır. Tek başına zararsız görünen alanlar, birleştiklerinde kişiyi işaret eder.
Üçüncü yol, zaman içindeki değişimdir. Verinin toplandığı dönemde anonim olan bir küme, yıllar sonra başka kayıtlarla karşılaştırılabilir hâle gelebilir. Bu yüzden anonimleştirme kararı, verinin ömrü boyunca yeniden değerlendirilmesi gereken bir karardır.
Bu nedenlerle, gerçek kayıtlardan türetilen bir kümenin test ortamında kullanılması, çoğu zaman düşünüldüğünden daha risklidir. Kişisel verilerin işlenmesine ilişkin genel çerçeveyi GDPR ve test kimlik verisi yazısında ele alıyoruz.
Hangi durumda hangi yöntem seçilir?
Seçim, verinin nerede kullanılacağına bağlıdır. Aynı proje içinde farklı ihtiyaçlar için farklı yöntemler bir arada kullanılabilir.
Gerçek kişiye ait veri yalnızca üretim ortamında bulunmalıdır. Test ve geliştirme ortamlarında gerçek kayıtların bulunması, veri sızıntısı riskini ortam sayısı kadar çoğaltır. Bu ortamlarda beklenen yaklaşım, sentetik veri üretmektir.
Ancak sentetik verinin de bir sınırı vardır. Üretilen kayıtlar gerçek dağılımı yansıtmıyorsa, testler geçer ama üretimde beklenmedik hatalar çıkar. Örneğin adres alanları her zaman aynı uzunlukta üretilirse, uzun adreslerde ortaya çıkan kırpma hatası hiç görünmez. Bu yüzden üretim kurallarının gerçek dünyadaki çeşitliliği temsil etmesi gerekir.
Üçüncü seçenek, gerçek veriye hiç başvurmadan kural tabanlı üretimdir. Bu yaklaşımda her alan, ülkeye ve biçime göre ayrı kurallarla üretilir; böylece hem çeşitlilik sağlanır hem de kayıtların gerçek kişilere denk gelmediği baştan garanti edilir. Sitenin ürettiği kayıtlar bu yöntemle oluşturulur ve alanlar birbiriyle tutarlı tutulur.
Kimlik anahtarı ve tekrarlanabilirlik neden önemlidir?
Sentetik üretimin en sık dile getirilen eksikliği, kayıtların her seferinde değişmesidir. Bir test kırmızıya döndüğünde elinizde yalnızca o anki çıktı kalır ve hatayı yeniden görmek için aynı kaydı yeniden üretmeniz gerekir.
Bu sorunun çözümü, üretimi bir anahtara bağlamaktır. Aynı anahtar verildiğinde aynı kayıt üretilirse, testler kararlı hâle gelir ve hata tekrar üretilebilir olur. Aynı yaklaşım, test kümelerini hazırlamayı da kolaylaştırır: kaydı bir kez üretip sabit bir dosyaya yazabilir, yıllar sonra aynı anahtarla aynı sonucu doğrulayabilirsiniz.
Tekrarlanabilirlik, kayıtların birbirinden bağımsız üretilmesini de sağlar. Her alan kendi kuralına göre üretilirse, aynı kayıt içinde doğum tarihi ile yaş, adres ile ülke arasında tutarlılık korunur. Bu tutarlılığın neden kritik olduğunu kimlik verisi tutarlılığı yazısında ayrıntılı olarak ele alıyoruz.
Geliştiriciler için: veri kaynağını kanıtlamak
Bir veri kümesinin sentetik olduğunu iddia etmek yetmez; bunun denetlenebilir olması gerekir. Bunun en pratik yolu, kümenin nasıl üretildiğini ve hangi kurallara dayandığını kayıt altına almaktır.
Üretim sürecinin belgelenmesi, sonradan yapılacak bir denetimde ilk başvurulacak kaynaktır. Hangi alanların hangi kurallarla üretildiği, hangi ülkelerin ve biçimlerin kapsandığı, üretimin tekrarlanabilir olup olmadığı bu belgede yer almalıdır. Gerçek bir kaynaktan türetilmiş veri varsa, bu durumun da açıkça belirtilmesi gerekir.
Sentetik kayıtların gerçek kişilere denk gelme olasılığı sıfır değildir; rastgele üretilen bir isim ve tarih birleşimi bir gün gerçek bir kişiye benzeyebilir. Bu olasılığı ortadan kaldırmak mümkün değildir, ancak zararını sınırlamak mümkündür: kayıtların test amaçlı olduğunu her yerde açıkça belirtmek ve bu verileri kimlik doğrulaması gerektiren akışlarda kullanmamak gerekir.
Küçük ayrıntılar da fark yaratır. Üretilen verinin bir dosyada birikmesi yerine gerektiğinde yeniden üretilmesi, hem depolama yükünü azaltır hem de eski kayıtların yanlışlıkla gerçek sanılmasını önler. Aynı şekilde test çıktılarının ekran görüntülerinde görünen kayıtların da test verisi olduğunun anlaşılması gerekir. Bu kayıtların test ortamında nasıl saklanacağını test fixture içinde kimlik verisi yazısında anlatıyoruz. Sentetik verinin ne olduğunu daha geniş çerçevede görmek için test kimlik verisi yazısına bakabilirsiniz.
Sonraki adımlar
Test ortamınıza gerçek kayıtların hiç girmediğinden emin olun; bu kural, anonimleştirme tartışmasının tamamını gereksiz kılar. Ardından üretim kurallarınızın gerçek çeşitliliği temsil edip etmediğini kontrol edin ve sınır örneklerini kümenize ekleyin. Kendi test kayıtlarınızı üretmek için kimlik üreticisi sayfasında bir ülke ve biçim seçip sonucu doğrudan kullanabilirsiniz.