SQL Server Kolon Düzeyinde Şifreleme Örneği – SQL Server Column Level Encryption Example

By | 15 Mayıs 2017

Finansal firmalar, kredi kartı numaraları, sosyal güvenlik numaraları, finansal geçmiş vb. Gibi hassas verilere sahiptir. Verilerin hassasiyetine dayanarak bunun güvence altına alınması ve yetkisiz erişime karşı korunması gerekir. Tablolarda saklanan verilerle, verileri korumak için birkaç seçeneğiniz vardır.İlk olarak verileri view ile gösterebilirsiniz. İkinci olarak kullanıcılara column bazında yetki atayabilirsiniz. Başka seçenekler var mı? Veritabanı şifrelemesini kullanabilir miyim? Tablomda yalnızca bir sütunu şifreleyebilir miyim yoksa tüm veritabanını şifrelemek mi gerekiyor? Sütun seviyesi şifrelemesi hakkında daha fazla bilgi edinmek için bu makalenin devamını okuyabilirsiniz…

Yetkisiz veri erişimini kısıtlarken göz önüne alınması gereken önemli bir seçenek, verileri şifrelemektir; böylece birileri verilere erişebilse bile, basit bir sorgu ile ayırt edilemez. Bu konuda, SQL Server simetrik anahtar şifrelemesi kullanarak XYZ şirketinin müşterilerinin kredi kartı bilgilerini içeren bir tablodaki bir sütunun şifrelenmesi süreçlerini inceleyeceğiz.

1. Adım – Örnek bir SQL Server tablosu oluşturun

Müşteriler için kredi kartı bilgilerini içeren dbo.Customer_data tablosunu oluşturduğumuz bir örnek kullanalım. Görevimiz, kredi kartı numarasını içeren sütunu şifreleyerek bu verileri korumaktır. Aşağıda gösterildiği gibi bazı örnek veriler yer alacaktır.

Dataları kontrol ediyoruz

Adım 2 – SQL Server Service Master Key

Master Key ,SQL Server şifreleme hiyerarşisinin köküdür. Örnek oluşturulurken oluşturulur. Aşağıdaki sorguyu kullanarak varlığını doğrulayın. Eğer yoksa manuel olarak oluşturmamız gerekir.

Adım 3 – SQL Server Database Master Key

Sonraki adım, bir veritabanı için master key oluşturmaktır. Bu, CREATE MASTER KEY yöntemini kullanarak gerçekleştirilir. “Parola ile şifreleme” bağımsız değişkeni gerekir ve anahtarı şifrelemek için kullanılan parolayı tanımlar. DMK (database master key) doğrudan verileri şifrelemez, ancak veri şifreleme için kullanılan tuşları oluşturma olanağı sağlar. Şifreleme parolasını güvenli bir yerde tutmanız ve / veya SQL Server database master key yedeklerini tutmanız önemlidir.

Adım 4 – Sertifika oluşturma

Bir sonraki adım, veritabanı master key tarafından korunan kendinden imzalı bir sertifika oluşturmaktır. Sertifika, SQL Server için genel (ve isteğe bağlı olarak bir özel) anahtarı içeren dijital olarak imzalanmış bir güvenlik nesnesidir.

Adım 5 – SQL Server Symmetric Key

Simetrik bir anahtar, hem şifreleme hem de şifre çözme için kullanılan bir anahtartır. Simetrik bir anahtar kullanarak şifreleme ve şifre çözme hızlıdır ve veritabanındaki hassas verilerle rutin kullanım için uygundur.

6. Adım – Schema Değişilikleri

Bir Şifreli sütun yalnızca veri türü varbinary olabilir ve şifrelemek istediğimiz sütun veri türü varchar olduğundan, yeni bir sütun oluşturmalı ve şifrelenmiş değerlerle doldurmalıyız.

7. Adım – Yeni oluşturulan Kolonun şifrelenmesi

Dataları kontrol ediyoruz.

8. Adım – Eski sütunu kaldırın

Bu işlemi sonlandırmak için, eski sütunu kaldırarak tabloyu yalnızca şifrelenmiş verilerle bırakalım

Adım 9 – SQL Server Şifreli Verilerin Okunması

Anahtarla şifre çözme seçeneğini kullanarak veri okuma örneğine bir göz atalım. Daha önce belirttiğimiz gibi, simetrik anahtarın daha önce gösterildiği gibi açılıp kapatıldığından emin olun

İşte Sorgudan elde ettiğimiz sonuç ;

Adım 10 – Tabloya Kayıt Ekleme

Aşağıda, yeni oluşturulan şifreli sütuna değerleri eklemek için kullanılan örnek kod bulunmaktadır.

Insert sonrasında tablomuzun son durumu..

Adım 11 – Şifrelenmiş Verilere İzin Verin

Aşağıdaki komutları kullanarak verilerin şifresini çözmek ve okumak için bir dizi kullanıcıya izinler verilebilir.

Oluşturduğunuz Key bilgilerine ise aşağıdaki sorgu ile ulaşabilirsiniz.

Bir sonraki makalede görüşmek üzere..

Share

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir