MsSql

SQL Server Always Encrypted ile Hassas Veri Güvenliği

· 7 dakika okuma · 2
SQL Server Always Encrypted ile Hassas Veri Güvenliği

Merhaba,

Kurumsal veritabanlarında veri güvenliği her geçen yıl daha kritik hale geliyor. SQL Server Always Encrypted özelliği, veritabanı yöneticisi dahil kimsenin şifreli veriyi açık metin olarak göremeyeceği bir şifreleme katmanı sunuyor. Gelin ayrıntılı inceleyelim arkadaşlar.

Always Encrypted Nedir?

Always Encrypted, SQL Server 2016 ile gelen ve SQL Server 2022'de olgunlaşan bir güvenlik özelliği. Temel prensibi: veriler hem veritabanında hem de ağ trafiğinde şifreli kalır. Şifre çözme sadece istemci tarafında, uygulama katmanında gerçekleşir. DBA bile plaintext veriyi göremez.

Hangi Veri Türleri İçin?

Tüm sütunları şifrelemek ne pratik ne de gerekli. Always Encrypted şunlar için ideal:

  • TC kimlik numaraları
  • Kredi kartı ve banka hesap numaraları
  • Maaş ve finansal veriler
  • Sağlık verileri (KVKK/GDPR kapsamında)
  • Parola ve PIN hash'leri

Şifreleme Türleri

İki şifreleme tipi var ve seçim önemli:

  • Deterministic Encryption: Aynı değer her zaman aynı şifreli değeri üretir. Eşitlik sorguları (WHERE, JOIN) çalışır ama değer dağılımı analiz edilebilir.
  • Randomized Encryption: Her seferinde farklı şifreli değer. Daha güvenli ama sadece basit SELECT sorgularında kullanılabilir, filtreleme yapılamaz.

Always Encrypted with Secure Enclaves (SQL Server 2022)

SQL Server 2022'nin en önemli Always Encrypted geliştirmesi: Secure Enclaves desteği. Bu özellikle Randomized Encrypted sütunlarda da LIKE, aralık sorguları ve JOIN yapılabiliyor. Fiziksel olarak izole edilmiş bir işlem ortamında (enclave) şifre çözme ve sorgulama gerçekleşiyor.

Anahtar Yönetimi

Always Encrypted iki anahtar katmanı kullanıyor:

  • Column Master Key (CMK): Kolon şifreleme anahtarlarını koruyan üst anahtar. Azure Key Vault, Windows Certificate Store veya HSM'de saklanabilir.
  • Column Encryption Key (CEK): Veriyi doğrudan şifreleyen anahtar. CMK ile şifrelenmiş olarak veritabanında saklanıyor.

Azure Key Vault entegrasyonu kurumsal kullanım için önerilen yaklaşım anahtar rotasyonu ve erişim kontrolü merkezi yönetilebiliyor.

Uygulama Tarafı Değişiklikler

Always Encrypted şeffaf çalışıyor ama connection string'de Column Encryption Setting=enabled parametresi gerekiyor. .NET uygulamalarında Microsoft.Data.SqlClient paketi bu özelliği native destekliyor.

Dikkat Edilmesi Gerekenler

  • Şifreli sütunlarda aggregate fonksiyonlar (SUM, AVG) çalışmaz
  • Şifreli veri üzerinde sunucu taraflı hesaplama yapılamaz
  • Anahtar yönetimi planı kritik CMK kaybolursa veri kalıcı olarak erişilemez
  • SSMS ile şifreli sütun sorgulaması için Always Encrypted parametreleme gerekir

Sonuç

Always Encrypted, KVKK ve PCI-DSS gibi regülasyonların hassas veri şifreleme gereksinimlerini karşılamanın en güçlü SQL Server yöntemi. Secure Enclaves ile SQL Server 2022'de kullanım kısıtlamaları da büyük ölçüde kalktı :)

İyi Günler Dilerim,

Bu yazıyı paylaş: