Exchange sunucusunda ve Exchange Online'da DNSSEC ve DANE desteği


Geçmişte, e-posta güvenliğini artırmak amacıyla Exchange sunucusunda e-posta kimlik doğrulaması için SPF, DKIM ve DMARC hakkında yazmıştım. Güvenliği artırmaya yönelik ek konular arasında güvenli DNS (DNSSEC) ve Adlandırılmış Varlıkların DNS Tabanlı Kimlik Doğrulaması (DANE) yer alır. SPF, DKIM ve DMARC, e-posta iletilerine ve bunların geldiği gönderen ana bilgisayarlara daha çok odaklanırken, DANE, posta sunucuları arasında TLS bağlantısını kurmaya daha fazla odaklanıyor. DANE'nin DNSSEC'ye bağımlılığı var ancak odak noktam Exchange ve Exchange Online olduğundan, DNSSEC'yi tartışmıyorum ve bunu sağlayıcıma bırakıyorum (DANE yalnızca DNSSEC etkinleştirildiğinde çalışır).

İki posta sunucusu bir bağlantı kurduğunda, ortak bir TLS protokolü üzerinde anlaşırlar ve bu el sıkışma, diğer adıyla şifresizdir. Bu nedenle, bu el sıkışma ortadaki adam veya sürüm düşürme saldırılarına karşı savunmasızdır.

DANE, bir kuruluşun posta sunucusundaki sertifikaya ilişkin bilgileri ve dolayısıyla mevcut TLS seçeneklerini yayınlayabildiği özel bir DNS kaydı (bir TLSA kaydı, Aktarım Katmanı Güvenlik Kimlik Doğrulaması) kullanıyor.

Kendi etki alanıma ait TLSA kaydı aşağıdaki örnekte gösterilmektedir:

_25._tcp.smtphost.exchangelabs.nl IN TLSA 3 1 1 50167c478a2f536a88ee9ec232b14b0d223c2d5bdc837451eee104c153376cbe

Bir posta sunucusu Exchange ortamıma e-posta göndermek istediğinde ilk olarak smtphost.exchangelabs.nl olan MX kaydını alır (bu, sunucu adıyla eşleşen Digicert sertifikasına sahip bir Exchange 2019 Edge aktarım sunucusudur). Alıcı etki alanında DNSSEC kullanılmadığında fırsatçı TLS kullanılır. Alıcı etki alanında DNSSEC kullanıldığında, DANE özellikli bir posta sunucusu TLSA kaydını kontrol edecektir.

Bir TLSA kaydı bulunup alındığında, gönderen sunucu, alıcı sunucuyla bir TLS bağlantısı kurar ve bu da sertifikanın parmak izini döndürür. Gönderen sunucu, parmak izini DNS'de bulunan bilgilerle karşılaştırır ve eşleştiğinde bağlantı kurulur ve iki sunucu arasındaki iletişim devam eder ve e-posta gönderilir.

Peki TLSA kaydını nasıl oluşturacaksınız? TLSA kayıtları oluşturabilen, halka açık web sunucuları vardır. Shumon Huque, Washington DC'de yaşayan ve TLSA kayıtları oluşturabilen bir siteye sahip bir yazılım mühendisi ve teknoloji uzmanıdır. Bonus olarak sitesi TLSA kayıtlarını da kontrol edebiliyor.

Yeni bir TLSA kaydı oluşturmak için https://www.huque.com/bin/gen_tlsa adresindeki web sitesine gidin ve aşağıdaki ekran görüntüsünde gösterildiği gibi gerekli bilgileri doldurun:

PEM biçiminde X.509 sertifikası oluşturmanın en kolay yolu MMC sertifikası ek bileşenini kullanmaktır. Sertifikanızı seçin ve dışa aktarın. 'Hayır, özel anahtarı dışa aktarma' seçeneğini seçin, 'Base-64 kodlu X.509 (CER)' seçeneğini seçin ve sertifikayı dışa aktarın. Sertifika dışa aktarımını açmak için Not Defteri'ni kullanabilir ve bunu PEM formatındaki X.509 metin kutusuna kopyalayıp yapıştırabilirsiniz.

Bağlantı noktası numarasını (25) ve protokolü (TCP, SMTP değil) seçin ve alan adını girin. Bu, alıcı sunucunun FQDN'sidir, yani benim örneğimde smtphost.exchangelabs.nl'dir ve Oluştur'u tıklayın.

Aşağıdaki ekran görüntüsünde gösterildiği gibi sertifika bilgileri de dahil olmak üzere oluşturulan TLSA kaydını gösterecektir:

Etki alanım için aşağıdaki TLSA kaydı oluşturuldu:

_25._tcp.smtphost.exchangelabs.nl. IN TLSA 3 1 1 a63d74fc7ec1acad702017d13479a1b60b36f234ccb96b90f97c9619ba2c91ab

Bu TLSA kaydı nasıl yapılandırılmıştır?

TCP bağlantı noktası 25 ve sunucunun FQDN'si bu TLSA kaydının ilk bölümünü oluşturur.

TLSA metninden sonraki ilk sayı sertifika doğrulaması veya sunucudaki sertifika kullanımı'dır ve bu sayının 4 değeri olabilir:

  • 0 - CA Kısıtlaması. TLS bağlantısı kurulurken sağlanan sertifikanın, listelenen kök CA veya onun ara Sertifika Yetkililerinden biri tarafından verilmiş olması gerekir.
  • 1 - Hizmet Sertifikası kısıtlaması. - Kullanılan sertifikanın TLSA kaydıyla eşleşmesi ve ayrıca sertifika yolu doğrulamasını güvenilir bir kök CA'ya geçirmesi gerekir.
  • 2 - Çapa İddiasına Güvenin. TLSA kaydının, kök CA'nın sertifikasıyla veya posta sunucusu tarafından kullanılan sertifikanın ara CA'larından biriyle eşleşmesi gerekir.
  • 3 - Alan Adı Tarafından Verilen Sertifika. TLSA kaydı, kullanılan sertifikanın kendisiyle eşleşir. Sertifikanın diğer taraflarca imzalanması gerekmez ve bu nedenle kendinden imzalı bir sertifika kullanılabilir (bu bir Exchange sunucusunda ilginçtir).

TLSA kaydımda sertifika kullanımı için 3 değeri kullanılıyor, dolayısıyla TLSA kaydının Exchange 2019 sunucusundaki sertifikayla eşleşmesi gerekiyor.

Kullanılan ikinci sayı seçicidir. Seçicinin iki değeri olabilir:

  • 0 - Sertifikanın tamamı eşleştirme için kullanılır.
  • 1 - Eşleştirme için yalnızca sertifikanın ortak anahtarı kullanılır.

TLSA kaydımda seçicinin değeri 1 olduğundan yalnızca genel anahtar kullanılıyor.

Kullanılan üçüncü sayı eşleme türüdür. Eşleşen türün üç değeri olabilir:

  • 0 - tüm bilgi seçimi, sertifikayla ilişkili verilerde mevcuttur (TLSA kaydındaki son metin dizesi)
  • 1 - Sertifikanın genel anahtarının SHA-256 karması, sertifikayla ilişkili verilerle eşleşmelidir.
  • 2 - Sertifikanın genel anahtarının SHA-512 karması, sertifikayla ilişkili verilerle eşleşmelidir.

TLSA kaydımda eşleştirme için 1 değeri kullanılıyor, Exchange sunucusu sertifikasının ortak anahtarının SHA-256 ile TLSA kaydındaki verilerle eşleşmesi gerekiyor.

Bir sonraki adım, oluşturulan TLSA kaydını DNS'ye eklemek ve eklendikten sonra TLSA kaydını kontrol etmektir.

TLSA kaydını kontrol etmek için aynı siteyi (https://www.huque.com/bin/danecheck-smtp) kullanabilirsiniz. Site, alan adınız için MX kaydını sorgular ve beraberindeki TLSA kaydını kontrol eder. Sonuç aşağıdaki ekran görüntüsünde gösterilmektedir:

Ancak TLSA kayıtlarınızı kontrol edebilecek daha fazla site var. Örneğin Mailhardener (https://www.mailhardener.com/tools/dane-validator), aşağıdaki ekran görüntüsünde gösterilenin aynısını yapabilir:

Bu blogda posta sunucusu için DANE'den bahsediyorum ancak diğer hizmetler için de kullanılabilir. Bir web sitesi için TLSA kaydı şunlar olabilir:

_443._tcp.www.exchangelabs.nl. IN TLSA 3 1 1 a63d74fc7ec1acad702017d13479a1b60b36f234ccb96b90f97c9619ba2c91ab

Veya IMAP için şunlar olabilir:

_995._tcp.mail.exchangelabs.nl. IN TLSA 3 1 1 a63d74fc7ec1acad702017d13479a1b60b36f234ccb96b90f97c9619ba2c91ab

İşin çirkin kısmı, Exchange 2019'un DANE'i kutudan çıktığı gibi desteklememesidir. Gelen postalar için TLSA kaydını Exchange (Edge Transport) sunucusunda yüklü olan sertifikaya göre yapılandırabilirsiniz. DANE özellikli bir posta sunucusu, TLSA kaydını otomatik olarak kontrol eder ve mümkün olduğunda TLS bağlantısını kurmak için bunu kullanın.

Öte yandan Exchange Online, yazının yazıldığı sırada yalnızca giden bağlantılar için DANE'yi desteklemektedir. Exchange Online müşterisi olarak yapılandırmanız gereken hiçbir şey yoktur; herkes tarafından kullanılabilir. Gelen postalar için DANE gelecekte kullanıma sunulacak, ancak ne zaman olacağı belli değil. Microsoft'a göre bu 'yakın gelecek' ama ne yazık ki bu durum uzun süredir böyle.

Son (ve çok önemli) bir kapanış notu: (Gelen) Exchange sunucunuz için bir TLSA kaydı yapılandırdığınızda, Exchange sertifikasını yenilerken TLSA kaydınızı güncellemeniz GEREKİR. Exchange Online bir TLSA kaydını kontrol edeceğinden, Exchange sunucusu karma bir yapılandırmada kullanıldığında da bunu yapmanız gerekir. Exchange Online'dan Exchange 2019'a posta akışı durdurulacak ve Exchange Online mesaj izlemesinde aşağıdaki hata mesajı gösteriliyor:

Reason: [{LED=450 4.7.323 tlsa-invalid: The domain failed DANE validation [Message=450 4.7.323 tlsa-invalid: The domain failed DANE validation] [LastAttemptedServerName=smtphost.exchangelabs.nl] [LastAttemptedIP=185.116.41.45:25] [SmtpSecurity=11;-1] [HE1EUR01FT069.eop-EUR01.prod.protection.outlook.com 2023-06-06T10:23:06.0. OutboundProxyTargetIP: 185.116.41.45. OutboundProxyTargetHostName: smtphost.exchangelabs.nl

Bu sorun, DNS'de yeni bir TLSA kaydı oluşturulduğunda ve yayınlandığında çözülür.

İlgili makaleler