Merhabalar,
Önceki makalemin devamı olan bu yazımda KVKK uyumlu yazılım geliştirmek için faydalı olabilecek analizlerimi paylaşıyor olacağım. Sonraki zamanda örnek bir implementasyon yayınlama imkanım olacak. Hali hazırda .NET Core 3.0’da katmanlı mimari ile Angular proje geliştirerek araştırmalarımı yapmaktayım.
Neden .NET Core 3.0?
.NET Core 3.0 IdentityServer4 apilerini içeren ve Angular/Ionic’le kolaylıkla entegre edebileceğiniz güvenli ve hazır bir üyelik sistemi ile geliyor. Bu üyelik sistemi bildiğim kadarıyla sadece SQL Server üzerinde çalıştığı için kullanıcılarımızın kişisel verilerini depolamak amacıyla SQL Server’ı kullanacağız.
KVKK ve Üyelik Sistemi
SQL Server’da MDF ve LOG dosyalarındaki verilerin herhangi bir çalınma durumunda kullanılamaması için TDE ile şifrelemenizi öneriyorum. Veri sorumlusu bu veritabanındaki verilere doğrudan veya uygulama üzerinden sadece süper adminlerin erişebildiğinden emin olmalıdır. Ayrıca veri hırsızlığını önleme ve/veya belirleme amacıyla bu veritabanındaki verilere erişimlerin loglanması gerekiyor.
GDPR Blockchain Logging
Gerek SQL Server’daki üyelik bilgilerinin gerek MongoDB’deki kişisel verilere yapılan erişimlerin (okumalar dahil) loglanması için append-only bir teknoloji olan Blockchain’den yararlanmak mantıklı olabilir.
MongoDB’de bir koleksiyonu blockchain ile audit logları kaydetmek için kullanabilirsiniz. Böylece logların değiştirilmediğinden emin olabilirsiniz. Tabi loglarda da kişisel veriler olacağı için log koleksiyonuna da sadece süper adminlerin erişebildiğinden hatta bu erişimlerinde de loglandığından emin olmalısınız.
MongoDB’de de genel bir şifreleme yapmanızı ve kritik koleksiyonlara sadece süper adminlerin erişmesine izin vermenizi öneririm.
MondoDB’deki kayıtlarda üyelik sistemindeki üyelerin mail adresleri yerine Guid bilgilerini kaydetmek daha güvenli olacaktır.
GDPR blockchain logging implementasyonu yerine basit bir çözüm olarak log koleksiyonunu update, delete ve truncate işlemlerine kapatmak da tercih edilebilir.
GDPR ve Yedekleme Güvenliği
MongoDB ve SQL Server yedeklerinizin güvenli bir hat üzerinden güvenli bir storage’ta depolandığından emin olmalısınız ve yedeklere sadece veri sorumlusunun belirleyeceği süper adminlerin erişebildiğinden emin olmanızı tavsiye ederim.
Kişisel Verilerin Yönetimi
Kullanıcılarınıza kişisel verilerine erişimlerin loglarını göstermeniz, onların kendilerini güvende hissetmesini sağlayabilir. .NET Core’daki hazır üyelik sistemi kişisel verilerin indirilmesi ve silinmesi gibi seçenekler sağlıyor. Ayrıca Microsoft Authenticator mobil uygulaması ile oturum açma ve 2-Faktörlü kimlik doğrulaması gibi ek güvenlik özellikleri içeriyor. Yetkilendirme ve izin sistemi de bulunuyor. Bu üyelik sistemini biraz modifiye ederek Audit Logging eklemek ve kullanıcıların ne zaman, hangi konumdan, hangi cihazdan oturum açtığını da loglamak iyi olacaktır.
Devam edecek…