SQL Server Column Data Encryption
Şirketlerde veritabanı veya yazılım geliştirme ile uğraşan kişilerin veritabanları üzerinde genellikle tüm verileri görme yetkisi olur. Evet muhtemelen bu cümle üzerine authentication ve authorization kavramları aklınıza gelebilir fakat gerçek hayata döküldüğünde malesef bu tanımlamaların çok az şirkette hakkının verilerek yapıldığını görüyoruz.
Hal böyle olunca özellikle şirket çalışanlarının verimliliklerini ölçme veya Human Resources departmanına özel hazırlanacak yapılarda genellikle işi sizden talep edecek kişiler direnç göstermektedir.
Bu dirençte ise aslında sonuna kadar haklılar çünkü olası kötü durum senaryolarda etkisi ciddi boyutlarda olabilir. Bu sebeple aslında bazı alanların şifreli şekilde veritabanında tutuluyor olması gerekir.
Elbette günümüzde birçok şifreleme yapısı şu anda kullanılıyor. Genellikle yazılım geliştiricilerden bu talep edildiğinde haliyle yazılım geliştirme fazında şifreleme yapılıp sonrasında o halde veritabanına aktarılıyor.
Fakat şu an itibariyle veritabanımda bulunan belli kolonların şifrelenmesini talep edebilirim. Örneğin bir e-ticaret firmasıyım ve müşterilerimin kredi kartı bilgilerini şifresiz bir şekilde veritabanımda tutuyordum. Sonrasında ise internal fraud olayından korkarak bunların şifrelenmesine karar verdik. Veritabanı fazında bunu yapmak istediğimizde aşağıda yer alan adımları izlememiz yeterli olacaktır.

Öncelikle veritabanında gerekli encryption işlemlerini yapmamız için key ve certification değerlerini tanımlamamız gerekiyor.

Örneğimizde kullandığımız AES (Advanced Encryption Standard), uluslararası olarak kullanılan bir şifreleme (kripto) sistemidir. SQL Server’ın desteklediği algoritmalar ise şunlardır:
•AES_128
•AES_192
•AES_256
•TRIPLE_DES_3KEY
Sonrasında ise veritabanımızda şifreli bilgilerimizi tutacağımız yeni alanımızı varbinary tipinde oluşturalım ve ilgili alanı oluşturduğumuz şifreleme ile güncelleyelim.

Veritabanımızda ilgili alanımız şifrelenmiş bir şekilde kullanıma hazır.
