TLS sürüm zorlama özellikleri artık Windows Server 2019'da sertifika bağlama başına kullanılabilir
Bu gönderiyi yazan kişi
Andrew Marshall, Sorumlu Güvenlik Programı Yöneticisi, Müşteri Güvenliği ve Güveni
Ayla Montenegro, Ana Program Yöneticisi, Çekirdek Ağ
Niranjan Inamdar, Üst Düzey Yazılım Mühendisi, Çekirdek Ağ
Michael Brown, Kıdemli Yazılım Mühendisi, Internet Information Services
Intel Pas çevirmeli, Ana Yazılım Mühendislik Müşteri Adayı, Çekirdek Ağ
Ağustos 2019
Dünya çapındaki mühendisler TLS 1.0'akendi bağımlılıklarını ortadan kaldırmaya çalışıyor olarak, müşterilerinin geçiş hazırlığıyla kendi güvenlik ihtiyaçlarını dengelemenin karmaşık bir zorluğuyla karşı karşıya olurlar. Bugüne kadar, istemciler tarafından zayıf TLS kullanımını saptamak için IIS'de yeni günlük biçimleri göndererek ve TLS 1.0bağımlılıklarını ortadan kaldırmaya yönelik en son teknik kılavuzu sağlayarak, DAHA eski işletim sistemlerine TLS1.2desteği ekleyerek müşterilerin bu sorunları gidermelerine yardımcı olduk.
Artık Microsoft, TLS 1.2+ dünyayla Windows dünyayla daha kolay bir şekilde geçiş yapmak için yeni ve güçlü özellikleri Windows duyurmaktan mutluluk ediyor. KB4490481'denbaşarak, Windows Server 2019 artık zayıf TLS sürümlerinin sizin belirli sertifikalarla kullanılmaktadır. Bu özelliği "Eski TLS'yi devre dışı bırak" olarak bilinen bu özellik, sizin istediğiniz tüm sertifikalarda TLS sürümünü ve şifreleme paketinin katının etkili bir şekilde zorunlu kılınıyor.
Eski TLS'yi devre dışı bırakmak, çevrimiçi bir hizmetin aynı donanımda iki ayrı uç nokta grubu sunarak olanak sağlar: bunlardan biri yalnızca TLS 1.2+ trafiğine ve eski TLS 1.0 trafiğine olanak sağlayan başka bir uç nokta grubu sağlar. Değişiklikler HTTP.sys'de uygulanır ve ek sertifikalar vermeyle birlikte, trafiğin uygun TLS sürümüyle yeni uç noktaya yönlendiril olmasına izin verme. Bu değişiklik öncesinde, bu tür becerilerin dağıtımında ek donanım yatırımı yapmak gerekir çünkü bu ayarlar yalnızca kayıt defteri aracılığıyla sistem genelinde yapılandırılabilirdi.
Özellik senaryosu ayrıntıları
Yaygın bir dağıtım senaryosunda, veri merkezinde müşterilerin karma gereksinimleri olan bir donanım kümesi vardır: bazıları şu anda zorunlu en düşük değer olarak TLS 1.2'ye ihtiyaç vardır ve diğerleri TLS 1.0 bağımlılıklarını kaldırmaz. Şekil 1, TLS sürüm seçimini ve sertifika bağlamayı ayrı eylemler olarak göstermektedir. Bu varsayılan işlevselliktir:

Şekil 1: Varsayılan TLS Sürümü seçimi ve Sertifika Bağlama İşlevselliği
https://secure.contoso.com Müşterileriniz yalnızca TLS 1.2 ve üzerini destekleyen bir hizmet uç noktasına yönlendirmektedir.
https://legacy.contoso.com Eski TLS 1.0 1.0 ihtiyaçlarını (TLS 1.2'ye hala olanlar gibi) sınırlı bir süre için TLS 1.0'i destekleyen bir uç noktasına yönlendirer. Bu, müşterilerin TLS 1.2 için hazırlık testini hizmet kesintisi olmadan ve TLS 1.2'ye hazır olan diğer müşterileri engellemeden bitirmesine olanak sağlar.
Geleneksel olarak, tüm trafiği işlemek için fiziksel olarak iki ayrı ana bilgisayar gerekir ve en düşük protokol sürümüne sahip TLS isteklerine hizmet verme, sistem genelindeki kayıt defteri ayarları aracılığıyla zayıf protokolleri devre dışı bırakmak için TLS sürüm zorlaması sağlar. Bu işlevi, TLS oturumunun sertifikaya bağlı olduğu yığının yukarı doğru kullanılabilir olması için belirli bir minimum TLS sürümünün aşağıdaki Şekil 2'de açıklandığı gibi atanabilir olması sağlanmıştır.

Şekil 2: Seçili bir sertifika için minimum TLS sürümünü zorlayarak Eski TLS özelliğini devre dışı Secure.contoso.com.
Özellik dağıtım kılavuzu
Eski TLS'yi Devre Dışı Bırak özelliği, Internet Information Services (IIS) Sunucu Arabirimi üzerinden, PowerShell komutları veya C++ komutlar ve API'ler aracılığıyla HTTP.sys dağıtılabilir.
1. Seçenek: IIS kullanıcı arabirimi yapılandırması (Nisan 2020'de kullanılabilir)
Aşağıda gösterildiği gibi SSL Sertifikası "secure.contoso.com" için site bağlaması oluşturun, "Eski TLS'yi devre dışı bırak" seçeneğini işaretleyin ve Tamam'a tıklayın.

2. Seçenek: PowerShell (Nisan 2020)
PowerShell'de, ssl bayrakları için şu şekilde başvurabilirsiniz:
[Microsoft.Web.Administration.SslFlags]::DisableLegacyTLS
Onlar için daha kısa adlandırılmış değişkenler oluşturmak kullanışlı bir uygulamadır:
$Sni = [Microsoft.Web.Administration.SslFlags]::Sni
$Sni\_CCS = [Microsoft.Web.Administration.SslFlags]::Sni + [Microsoft.Web.Administration.SslFlags]::CentralCertStore
$CCS = [Microsoft.Web.Administration.SslFlags]::CentralCertStore
$DisableLegacyTLS = [Microsoft.Web.Administration.SslFlags]::DisableLegacyTLS
$storeLocation = "Cert:\\LocalMachine\\My"
Yeni bir siteye site bağlama ve eski TLS'yi devre dışı bırakma örneği:
$BindingInformation = "\*:443:"
$siteName = "contoso"
$Thumbprint = $certificate.ThumbPrint
New-IISSite Sslflag DisableLegacyTLS özellik değeriyle birlikte:
New-IISSite $siteName "$env:systemdrive\\inetpub\\wwwroot" "\*:443:secure.contoso.com" https $certificate.Thumbprint $DisableLegacyTLS $storeLocation -passthru
Mevcut bir siteye site bağlama ve eski TLS'yi devre dışı bırakma örneği:
New-IISSiteBinding -Name "Default Web Site" -BindingInformation $BindingInformation -CertificateThumbPrint $certificate.Thumbprint -Protocol https -SslFlag $DisableLegacyTLS, $CCS -Force -verbose
Buna ek olarak, netsh ile bu özelliğin sorunlarını giderin ve sınayın:
Yeni bağlama ekleme:
netsh http add sslcert < regular parameters > disablelegacytls=enable
Var olan bağlamayı güncelleştirme:
netsh http update sslcert < regular parameters > disablelegacytls=enable
Bağlamada ayar olup olmadığını denetleme:
netsh http show sslcert < regular parameters>
Eski TLS Sürümlerini Devre Dışı Bırak : Set/Ayarlanmaz
3. Seçenek: C++ HTTP.sys API'leri (Şu anda Kullanılabilir)
Eski TLS'yi devre dışı bırakma seçeneğiyle birlikte, bu programlara aşağıdaki HTTP.sys:
HTTP_SERVICE_CONFIG_SSL_PARAM. DefaultFlags artık aşağıdaki yeni değerleri destekler:
HTTP_SERVICE_CONFIG_SSL_FLAG_ENABLE_SESSION_TICKET: Belirli bir SSL uç noktası için Oturum Bileti'nin Etkinleştir/Devre Dışı Bırak.
HTTP_SERVICE_CONFIG_SSL_FLAG_LOG_EXTENDED_EVENTS: Belirli bir SSL uç noktası için genişletilmiş olay günlüğünü etkinleştir/devre dışı bırak. Ek olaylar, Olay Günlüğüne Windows kaydedilir. Şu andan kadar desteklenen tek bir olay var ve SSL el sıkışması başarısız olduğunda günlüğe kaydedilir.
HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_LEGACY_TLS: Belirli bir SSL uç noktası için eski TLS sürümlerini etkinleştirme/devre dışı bırakma. Bu bayrağın ayarı, bu uç nokta için TLS1.0/1.1'i devre dışı bırakır ve HTTP2 şifreleme paketleri için kullanılan şifreleme paketlerini de kısıtlar.
HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_TLS12 : Belirli bir SSL uç noktası için TLS1.2'yi etkinleştir/devre dışı bırak.
HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_HTTP2: Belirli bir SSL uç noktası için HTTP/2'yi etkinleştir/devre dışı bırak.
C++ içinde sertifika başına bu işlevi etkinleştirmenin/devre dışı bırakmanın en basit yolu, HttpSetServiceConfiguration HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_LEGACY_TLS API'si tarafından sağlanan HTTP.sys bayrağıdır.
Eski TLS'yi devre dışı bırak ayarlanırken aşağıdaki kısıtlamalar uygulanır:
SSL2, SSL3, TLS1.0 ve TLS1.1 protokollerini devre dışı bırak.
Şifreleme şifrelemesini devre dışı bırakma DES, 3DES ve RC4 (dolayısıyla yalnızca AES kullanılır).
Şifreleme şifreleme AES'yi CBC zincirleme moduyla devre dışı bırak (dolayısıyla yalnızca AES GCM kullanılır).
RSA anahtar değişimini devre dışı bırakma.
2048'den küçük anahtar boyutuyla DH anahtarı değişimini devre dışı bırak.
224'den küçük anahtar boyutuyla ECDH anahtar alışverişlerini devre dışı bırak.
Bu değişikliklerin resmi belgeleri önümüzdeki docs.Microsoft.com gelecek.
TLS sürüm zorlaması için sonraki adımlar
Eski TLS'yi devre dışı bırak, belirli sertifika/uç nokta bağlamalarında TLS sürümünü/şifreleme paketinin katlarını zorlamaya yönelik güçlü yeni özellikler sağlar. Ayrıca, bu işlev etkin olarak verilen sertifikaların adlandırmasını planlamanız da gerekir. Dikkate alınacak bazı noktalar şunlardır:
Hizmet uç noktam için varsayılan yolun BUGÜN TLS 1.2'yi zorunlu kılınarak, TLS 1.0'a ihtiyacı olan kullanıcılara yedek bir "eski" erişim noktası olarak farklı bir sertifika sağlamasını istiyor musunuz?
Varsayılan olarak, zaten eski TLS'yi devre dışı www.contoso.com sertifikasını zaten kullansın mı? Bu durumda, özel bir sertifika sağlamam legacy.contoso.com bunu TLS 1.0'a izin veren bir uç noktayla bağlamam gerekir.
Bu sertifikaların önerilen kullanımını müşterilerime en iyi nasıl ilet olabilirim?
TLS 1.2+ kullanma yükümlülüğü bulunan ve ek donanım harcamaları olmadan TLS 1.0'dan geçiş üzerinde çalışmaya devam eden büyük müşteri gruplarının ihtiyaçlarını karşılamak için bu özellikten yararlanabilirsiniz. Windows Server 2019'da sertifika başına TLS sürüm bağlama özelliğinin mevcutluğuna ek olarak Microsoft, müşteri talebine bağlı olarak eski TLS'yi çevrimiçi hizmetlerde devre dışı bırakma özelliğinin kullanılabilirliğini de göz atacak.