SQL Server Always Encrypted: Secure Enclave'ler Sorgu Desteğini Nasıl Değiştirir
Always Encrypted, SQL Server sütunlarını istemci tarafında şifreler ve veritabanı motorunun düz metni görmesini engeller. Secure enclave'ler ise korunan bir ortamda bazı sorguların çalışmasına izin verir. Makale, şifreleme türü seçimini, sütun tanımını ve .NET bağlantı ayarlarını adım adım ele alıyor.
Kilit noktalar
- Randomized şifreleme, eşitlik sorgularını deterministic şifrelemedeki gibi desteklemez; sızıntıyı azaltmak istediğinizde tercih edilir.
- Deterministic şifreleme eşitlik aramasına izin verir ama aynı değerlerin satırlar arasında eşleşmesi bilgi sızdırabilir.
- Secure enclave ile aralık karşılaştırması, LIKE ve sıralama gibi işlemler desteklenen yapılandırmalarda mümkün olabilir.
- Sütun tanımı için column encryption key ve column master key önceden hazır olmalı.
- Bağlantı dizesinde Column Encryption Setting=Enabled enclave'leri tek başına etkinleştirmez.
- Sorguları parametreli yazın ve enclave gerektiren işlemler için sürüm, anahtar deposu ve attestation gereksinimlerini doğrulayın.
Always Encrypted, seçili SQL Server sütunlarını istemci tarafında şifreli tutar; böylece veritabanı motoru bu değerlerin düz metnini hiç görmez. Bedeli, klasik deterministic ve randomized şifrelemede sorgu biçimlerinin dar kalmasıdır; aralık karşılaştırmaları, LIKE tarzı desen eşleştirme ve sıralama genellikle mümkün değildir. Makale, secure enclave'lerin bu sınırı nasıl esnettiğini anlatıyor: SQL Server, korunan bir çalışma ortamında çözülmüş veri üzerinde desteklenen işlemleri yapabiliyor ve düz metin normal motorun erişiminden uzak kalıyor.
Yazı; her sütun için deterministic ya da randomized şifreleme seçimini, sütunun bir column encryption key ile tanımlanmasını ve bir Microsoft.Data.SqlClient bağlantı dizesinde Column Encryption Setting ayarının açılmasını ele alıyor. Yazar, bu ayarın tek başına enclave'leri yapılandırmadığını vurguluyor; SQL Server sürümü, anahtar deposu, attestation ve sürücü ayrı ayrı doğrulanmalı. Şifreli sütunları sorgulamanın en öngörülebilir yolu ise parametreli sorgular.
Gerçek dünyada kullanımı
- Kimlik numarası, IBAN veya sağlık kaydı gibi hassas alanları DBA'ların bile okuyamayacağı bir ASP.NET Core API'sinde saklamak.
- Bir müşteri bakiyesi aralığına göre filtreleme yapması gereken finans uygulamasında şifreli sayısal sütunları sorgulamak.
- Mevcut bir SQL Server veritabanındaki PII sütunlarını Microsoft.Data.SqlClient üzerinden şifrelemeye geçirmek.
Neden önemli
Şifreli sütunlarda hangi sorguların çalışacağı şifreleme türüne ve enclave yapılandırmasına bağlıdır; bunu şemayı tasarlarken belirlemek gerekir. Sadece bağlantı ayarını açmak yeterli değildir.
Benzer haberler
- .NET ile MCP sunucusunda tek kullanımlık sipariş onayıDEV Community: #csharp5 gün önce
- ASP.NET Core'da Stripe webhook'larını idempotent yapmakDEV Community: #csharp5 gün önce
- Visual Studio Ekim güncellemesi: commit'leri çalışma alanıyla karşılaştırma ve toplu conflict çözümüVisual Studio Blog6 gün önce