Aracılığıyla paylaş


Microsoft.Data.SqlClient'da şifreleme ve sertifika doğrulama

ADO.NET indirin

SQL Server her zaman oturum açma ile ilişkili ağ paketlerini şifreler. Başlatıldığında sunucuda hiçbir sertifika sağlanmamışsa, SQL Server oturum açma paketlerini şifrelemek için kullanılan otomatik olarak imzalanan bir sertifika oluşturur.

Bir istemci ile sunucu arasında yüksek düzeyde şifreleme, verilerin yalnızca istemci ve sunucu tarafından okunabilir olmasını sağlar. Şifreleme işleminin önemli bir parçası sunucu sertifikası doğrulamasıdır. Sunucu sertifikası doğrulaması, istemcinin sunucunun söylediği kişi olduğundan emin olmasını sağlar. Sertifika süre sonu, güven zinciri ve sertifikadaki adın istemcinin bağlanmakta olduğu sunucunun adıyla eşleşip eşleşmediğini doğrular. Daha fazla bilgi için bkz . Aktarım Katmanı Güvenliği ve dijital sertifikalar.

Güvenli bağlantı için SQL Server'da doğrulanabilir bir sertifika sağlamanız kesinlikle önerilir. Aktarım Güvenlik Katmanı (TLS) yalnızca sertifika doğrulaması ile güvenli hale getirilebilir.

Uygulamalar, bağlantı dizesi anahtar sözcüğünü veya bağlantı özelliğini kullanarak tüm ağ trafiğinin Encrypt şifrelenmesini isteyebilir. Varsayılan olarak, bir bağlantı için tüm ağ trafiğinin şifrelenmesinin sunucuda bir sertifika sağlanması gerekir. İstemcinizi sunucudaki sertifikaya güvenecek şekilde ayarlayarak ortadaki adam saldırılarına karşı savunmasız hale gelebilirsiniz. Sunucuya doğrulanabilir bir sertifika dağıtırsanız, istemci Encrypt ayarlarının ve Trust Server Certificate ayarlarının olduğundan TrueFalseemin olun.

Sunucuda Encrypt bir sertifika sağlanmamışsa şifrelemenin kullanılmasını sağlamak için ve Trust Server Certificate istemci ayarları kullanılabilir. Bu durumda şifreleme, istemci tarafından doğrulanmadan otomatik olarak imzalanan bir sunucu sertifikası kullanır. Bu yapılandırma bağlantıyı şifreler, ancak istemci ile sunucu arasındaki cihazların bağlantıyı kesmesini ve şifrelemeye ara sunucu oluşturmasını engellemez.

Şifreleme ve sertifika doğrulama davranışındaki değişiklikler

Microsoft.Data.SqlClient'ın 4.0 sürümü, şifreleme ayarlarında hataya neden olan değişiklikler içeriyor. Encrypt şimdi varsayılan olarak olur True.

Microsoft.Data.SqlClient sürüm 2.0, ayarın davranışında hataya neden olan Trust Server Certificate değişiklikler sunar. Daha önce, olarak ayarlandıysa EncryptFalse, sunucu sertifikası ayarından Trust Server Certificate bağımsız olarak doğrulanmıyordu. Şimdi sunucu sertifikası, sunucu olarak ayarlanmış olsa Encrypt bile şifrelemeyi zorlarsa ayarına Falsegöre Trust Server Certificate doğrulanır.

Sürüm 4.0

Aşağıdaki tabloda, şifreleme ve sertifika ayarları için şifreleme ve doğrulama sonucu açıklanmaktadır:

Encrypt istemci ayarı Trust Server Certificate istemci ayarı Force encryption sunucu ayarı Result
Yanlış False (varsayılan) Hayı Şifreleme yalnızca LOGIN paketleri için gerçekleşir. Sertifika doğrulanmamış.
Yanlış False (varsayılan) Yes (Davranış, sürüm 1.0'dan 2.0'a değişir) Tüm ağ trafiğinin şifrelenmesinin gerçekleşmesi için doğrulanabilir bir sunucu sertifikası olması gerekir, aksi takdirde bağlantı girişimi başarısız olur.
Yanlış Doğru Yes Tüm ağ trafiğinin şifrelemesi gerçekleşir ve sertifika doğrulanmaz.
True (yeni varsayılan) False (varsayılan) Mevcut Değil Tüm ağ trafiğinin şifrelenmesinin gerçekleşmesi için doğrulanabilir bir sunucu sertifikası olması gerekir, aksi takdirde bağlantı girişimi başarısız olur.
True (yeni varsayılan) Doğru Mevcut Değil Tüm ağ trafiğinin şifrelemesi gerçekleşir, ancak sertifika doğrulanmaz.
Strict (sürüm 5.0'a eklendi) Mevcut Değil Mevcut Değil Tüm ağ trafiğinin şifrelenmesinin TDS 8.0 kullanılarak gerçekleşmesi için doğrulanabilir bir sunucu sertifikası olması gerekir, aksi takdirde bağlantı girişimi başarısız olur.

Dikkat

Yukarıdaki tabloda yalnızca farklı yapılandırmalar altındaki sistem davranışıyla ilgili bir kılavuz sağlanır. Güvenli bağlantı için hem istemcinin hem de sunucunun şifreleme gerektirdiğinden emin olun. Ayrıca sunucunun doğrulanabilir bir sertifikası olduğundan ve istemcideki ayarın TrustServerCertificate olarak Falseayarlandığından emin olun.

Microsoft.Data.SqlClient'ın HostNameInCertificate 5.0 sürümünden başlayarak yeni bir bağlantı seçeneğidir. Sunucu sertifikası doğrulaması, sertifikadaki Ortak Ad (CN) veya Konu Diğer Adı'nın (SAN) bağlı olan sunucu adıyla eşleşmesini sağlar. DNS diğer adları gibi bazı durumlarda sunucu adı CN veya SAN ile eşleşmeyebilir. HostNameInCertificate Değer, sunucu sertifikasında farklı, beklenen bir CN veya SAN belirtmek için kullanılabilir.

Sürüm 2.0

2.0 sürümünden başlayarak, sunucu şifrelemeyi zorladığında istemci, ayardan bağımsız olarak sunucu sertifikasını Trust Server CertificateEncrypt ayara göre doğrular.

Aşağıdaki tabloda, şifreleme ve sertifika ayarları için şifreleme ve doğrulama sonucu açıklanmaktadır:

Encrypt istemci ayarı Trust Server Certificate istemci ayarı Force encryption sunucu ayarı Result
False (varsayılan) False (varsayılan) Hayı Şifreleme yalnızca LOGIN paketleri için gerçekleşir. Sertifika doğrulanmamış.
False (varsayılan) False (varsayılan) Yes (Davranış değişikliği) Tüm ağ trafiğinin şifrelenmesinin gerçekleşmesi için doğrulanabilir bir sunucu sertifikası olması gerekir, aksi takdirde bağlantı girişimi başarısız olur.
False (varsayılan) Doğru Yes Tüm ağ trafiğinin şifrelemesi gerçekleşir ve sertifika doğrulanmaz.
Doğru False (varsayılan) Mevcut Değil Tüm ağ trafiğinin şifrelenmesinin gerçekleşmesi için doğrulanabilir bir sunucu sertifikası olması gerekir, aksi takdirde bağlantı girişimi başarısız olur.
Doğru Doğru Mevcut Değil Tüm ağ trafiğinin şifrelemesi gerçekleşir, ancak sertifika doğrulanmaz.

Dikkat

Yukarıdaki tabloda yalnızca farklı yapılandırmalar altındaki sistem davranışıyla ilgili bir kılavuz sağlanır. Güvenli bağlantı için hem istemcinin hem de sunucunun şifreleme gerektirdiğinden emin olun. Ayrıca sunucunun doğrulanabilir bir sertifikası olduğundan ve istemcideki ayarın TrustServerCertificate olarak Falseayarlandığından emin olun.

Sürüm 1.0

Aşağıdaki tabloda, şifreleme ve sertifika ayarları için şifreleme ve doğrulama sonucu açıklanmaktadır:

Encrypt istemci ayarı Trust Server Certificate istemci ayarı Force encryption sunucu ayarı Result
False (varsayılan) False (varsayılan) Hayı Şifreleme yalnızca LOGIN paketleri için gerçekleşir. Sertifika doğrulanmamış.
False (varsayılan) False (varsayılan) Yes Tüm ağ trafiğinin şifrelemesi gerçekleşir, ancak sertifika doğrulanmaz.
False (varsayılan) Doğru Yes Tüm ağ trafiğinin şifrelemesi gerçekleşir ve sertifika doğrulanmaz.
Doğru False (varsayılan) Mevcut Değil Tüm ağ trafiğinin şifrelenmesinin gerçekleşmesi için doğrulanabilir bir sunucu sertifikası olması gerekir, aksi takdirde bağlantı girişimi başarısız olur.
Doğru Doğru Mevcut Değil Tüm ağ trafiğinin şifrelemesi gerçekleşir, ancak sertifika doğrulanmaz.

Ayrıca bakınız

Bağlantı dizeleri
Bağlantı dizesi söz dizimi