1. Ana Sayfa
  2. SQL Server
  3. SQL 2016 Always Encrypted Nedir?

SQL 2016 Always Encrypted Nedir?

Nedir? Microsoft SQL Server Encription metotları konusunda yeni bir atak yaptı ve Always Encrypted adı altında veri şifreleme alanında kolon bazlı veri şifrelemeyi SQL Server tablolarında yazılım bağımsız yapılabilir bir duruma getirdi.

Aslında SQL Server veri şifrelemede TDE(Transparent Data Encryption) özelliği ile Veritabanı dosyalarını bulunduğu disklerde şifreleyebiliyor, bu sayede de veri hırsızlığı sonucu çalınan datanın kullanılamaz olacağını garanti altına alabiliyordu. Bu yöntemde oluşturulan Key ve sertifika olmaksızın Veritabanı backup ya da MDF, LDF dosyalarının açılması ve anlamlı bir veri elde dilebilmesi imkansız hale geliyordu. Fakat bu yöntem verinin tümünü diskte şifrelediğinden araya sızmalara karşı korumasızdı. Ayrıca belki de gerekli olmadığı halde tüm veriyi de şifrelemekteydi.

Dolayısı ile ihtiyacı tam anlamıyla hedefleyip ona göre çıkartılan bu yeni özellik sayesinde sadece gerekli görülen tablo kolon verileri şifrelenebilmekte, bu sayede de hem disk hem de network üzerinden geçen veri şifreli olmakta.

Aslında aşina olduğumuz ve yazılımcıların uygulamalarında geliştirdikleri kodla bunu yapmaları mümkün. Yani bir kullanıcının şifresini Veritabanında Encrypted olarak tutulabilir. Ancak Microsoft artık bunu yazılım bağımsız olarak direk Veritabanı kolonlarında yapabilir hale geldi.

Yani artık kullanıcıların kredi kartı, kimlik numaraları veya maaş bilgileri gibi hassas verileri bir Veritabanı yöneticisi ya da bir yazılımcının bile SQL sorguları ile ulaşamayacağı şekilde şifrelenebilir durumda.

Şimdi bu yöntemi biraz daha detaylı olarak irdelemeye başlayalım.

SQL 2016 Always Encrypted nasıl yapılır?

Aslında yapılması gereken işlem basit. Bunun için şifrelemek istediğiniz Veritabanı üzerinde sağ tıklayıp Tasks menüsünden Encrypt Columns seçmeniz yeterli.


Resim-1

Bu işlemin ardından karşınıza aşağıdaki gibi bir Wizard gelecektir.


Resim-2

İkinci adımda Veritabanındaki tablolar ve uygun kolonlar karşınıza çıkacak.

Burada bilmeniz gereken şey bir Key ile birden fazla kolon şifreleyebileceğiniz gibi her kolon için ayrı bir Key de kullanabilirsiniz.


Resim-3


Resim-4

Bir sonraki bölümde seçtiğiniz kolonun Encryption Type’ını seçmeniz istenecek. Burada seçebileceğiniz iki seçenek bulunmakta.

Deterministic seçeneği aynı olan hücrelerin şifrelenmiş Verisininde aynı olacağı anlamına gelmekte. Yani bir hücredeki veri 1234 olsun bunun şifrelenmiş hali ise ABCD olsun. Aynı kolonda başka bir hücrede de 1234 verisi varsa o da ABCD olarak şifrelenecek anlamına gelmekte.

Randomized seçeneğinde ise her hücre aynı ya da farklı veri içersin tamamıyla Random olarak şifrelenecek anlamına gelmekte. Yani 1234 verisi bir hücrede ABCD olarak şifrelenirken başka bir hücredeki 1234 verisi bundan farklı olarak KLMN olarak şifrelenecektir.

Bu noktada biraz farklı ilerleyeceğim ve aşağıdaki ekranda seçiminize sunulan Encryption Key konusuna değineceğim.


Resim-5

Bu adımda yeni bir Key ya da eski oluşturduğunuz Key’lerden birini seçip ilerleyebilirsiniz. Wizard otomatik olarak konfigürasyonunuzu oluşturacaktır. Fakat bunlar asıl nerde tutuluyor ve kontrollü olarak nasıl oluşturulur onu da göstermek istiyorum.

Veritabanında Security bölümünde Always Encrypted Keys bölümünü göreceksiniz. İşte bu bölümde Master Key ve Encryption Key bölümlerinde tutulmakta. İsterseniz Master Key ve Encryption Key alanlarından kendiniz de oluşturabilirsiniz.


Resim-6

Column Selection işleminden sonraki aşamada ise size sertifika yaratmanız için seçenekler sunulmaktadır.


Resim-7

Wizard ile otomatik oluşturduğunuzda sizden Windows ya da Azure Key Vault seçmeniz istenmektedir.

Fakat Master Key’i Security bölümünden oluşturmak istediğinizde Key Store olarak aşağıdaki ekrandaki gibi seçenekleri de görebilirsiniz.


Resim-8

Ve son bölümde işlemlerimizi tamamlıyoruz.


Resim-9


Resim-10


Resim-11

Sonuç olarak tablomuzdaki PasaportNumber kolonunu şifrelemiş bulunuyoruz.


Resim-12


Resim-13

Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

https://www.mshowto.org

https://msdn.microsoft.com/en-us/library/mt163865.aspx

 

TAGs : SQL 2016 Always Encrypted, SQL 2016 Always Encrypted nedir, , , , , , , , , ,

Yorum Yap

Yazar Hakkında

Soma doğumludur. Ankara üniversitesi. Fen Fakültesi Matematik Ana Bilim Dalı mezunudur. Bilişim sektöründe çeşitli firmalarda Veritabanı Uzmanı, Sistem Yöneticisi ve Yazılımcı olarak çalışmıştır. Şu anda Netaş şirketinde kurumsal danışman olarak görev yapmaktadır. MSSQL ürün ailesi ve Azure teknolojileri ile ilgilenmektedir.

Yorum Yap

Yorumlar (1)

  1. Hocam ellerinize sağlık çok güzel bir yazı olmuş