E-posta göndermek, metin içeriği yazmak ve “Gönder” butonuna basmak kadar basittir. Ancak arka plandaki işlemler o kadar da basit değildir. Bu e-postayı diğer uca güvenli bir şekilde ulaştırmak için çok sayıda donanım, yazılım, ağ ve protokol gerekir.
SPF, DKIM ve DMARC gibi e-posta kimlik doğrulama mekanizmaları, spam ve sahte e-postalar filtrelenirken yalnızca meşru e-postaların son hedeflerine ulaşmasını sağlamada önemli bir rol oynar. Ancak bunlar uçtan uca e-posta güvenliğini sağlamaz, çünkü e-postalar SMTP kullanan posta sunucuları arasında aktarılırken Ortadaki Adam saldırılarına karşı savunmasızdır.
Bu amaçla, Mail Transfer Agent – Strict Transport Security (MTA-STS) olarak bilinen nispeten daha yeni bir teknoloji tanıtılmıştır.
Peki MTA-STS teknolojisi tam olarak nedir?
MTA-STS Nedir?
Mail Transfer Agent Strict Transport Security (MTA-STS), SMTP üzerinden e-posta iletimlerini şifrelemek için tasarlanmış bir güvenlik standardıdır. Yerel güvenlik özelliklerinden yoksun olan geleneksel SMTP’nin aksine MTA-STS, sunucu kimliklerini doğrulayarak ve TLS şifrelemesini kullanarak e-posta iletimi için güvenli bir kanal sağlar.
Tarihçe
SMTP ilk olarak 1982 yılında herhangi bir yerleşik güvenlik özelliği olmadan kullanıma sunulmuştur. STARTTLS 1999 yılında bir miktar şifreleme sağlamak için eklenmiş olsa da, Ortadaki Adam (MITM) saldırılarını önlemek için daha fazlasına ihtiyaç vardı. Bu da e-postayı şifreleyen ve sunucunun kimliğini doğrulayan MTA-STS’nin geliştirilmesine yol açtı.
MTA-STS’ye Neden İhtiyaç Duyulur?
MTA-STS, posta sunucusunun bir bilgisayar korsanı ile değil, e-postayı aktarma yetkisine sahip yetkili SMTP sunucusuyla iletişim kurmasını sağlar. Bu aynı zamanda postanın içeriğinin değiştirilmemiş olmasını da sağlar (DKIM’in dijital imzası tarafından doğrulanır).
Hiçbir güvenlik önlemi %100 kusursuz olmasa da, MTA-STS, TLS raporlama ile birleştiğinde ekstra bir güvenlik katmanı ekler. MTA-STS’nin yerine kullanılan eski protokol olan STARTTLS, her bağlantı için TLS şifrelemesini her zaman sağlamadığı için bilgisayar korsanlarına hareket alanı bırakıyordu. Fakat MTA-STS bu sorunu çözerek sürüm düşürme saldırılarının önüne geçmiştir.
Ayrıca, Man-in-the-Middle saldırılarını da ortadan kaldırır ve postanın içeriğini ve göndericisini gizli ve istismar edilmemiş tutar. Ek olarak, süresi dolmuş TLS sertifikaları sorununu da ele alır.
Öte yandan, TLS raporlaması da birkaç avantaj sağlar. TLS raporlama, başarılı veya başarısız olan e-posta bağlantıları hakkında sizi bilgilendirir ve TLS anlaşmasıyla ilgili sorunların teşhis edilmesine yardımcı olur.
MTA-STS için Gereklilikler
Bir e-posta güvenlik teknolojisi olmasına rağmen herkes kendi alan adı için MTA-STS’yi yapılandıramaz. MTA-STS’yi yapılandırabilmeniz için posta sunucusu tarafından belirli koşulların karşılanması gerekir, bunlar aşağıdaki gibidir:
- TLS bağlantısı üzerinden posta transferlerini kabul edebilen bir sunucu
- En azından TLS sürüm 1.2’yi kullanır.
- TLS sertifikaları güncel olmalıdır ve MX kayıtlarınızda belirtilen sunuculara sahip olmalıdır.
- Kök sertifika yetkilisi tarafından güvenilir olmalıdır.
Posta sunucunuz bu gereksinimleri karşılıyorsa, e-posta güvenliğinizi artırmak için üzerinde MTA-STS yapılandırabilirsiniz.
MTA-STS Nasıl Çalışır?
MTA-STS bir DNS kaydı ve tanımlanmış bir politika ile birlikte çalışır. Ancak, göründüğünden daha fazlasıdır.
Doğru yapılandırılmış bir MTA-STS standardının 3 parçası vardır:
- Bir MTA-STS politikasının yapılandırıldığını tanımlayan bir DNS TXT kaydı.
- Bir DNS TXT kaydı, başarısız TLS bağlantıları için raporların alınacağı e-posta adresini tanımlar. Bu TXT kaydının isteğe bağlı olduğunu ve yalnızca TLS raporlaması istiyorsanız gerekli olduğunu unutmayın.
- TLS bağlantısı olmadan teslim edilen e-postaların nasıl işleneceğini kontrol eden, herkese açık olan ve DNS sunucusu yerine barındırma üzerinde tanımlanan düz metin dosyası.
Posta sunucunuz bir e-posta aldığında, başlığını kullanarak gönderen alan adı için bir DNS kaydı araması gerçekleştirir. Alan adının bir TLS bağlantısını desteklediğini bulur ve bir TLS el sıkışması başlatır. Aynı anda, MTA-STS DNS kaydı posta sunucusunun bir kural dosyasını nereden alabileceğini belirtir. Kural dosyası HTTPS aracılığıyla getirilir ve sertifikalarla doğrulanır.
Kural dosyası alındığında, gönderen SMTP sunucusu alıcı alan adının MTA-STS kuralını kontrol eder. TLS bağlantısı başarılıysa ve kural izin veriyorsa, e-posta alıcının gelen kutusuna iletilir. TLS bağlantısı başarısız olursa ve kural bunu reddedecek şekilde yapılandırılmışsa, e-posta reddedilir.
Bu arada, TLS raporları başarılı ve başarısız bağlantılar hakkında geri bildirim sağlamaya devam eder ve yapılandırılmışsa yöneticilerin sorunları tanımlamasına yardımcı olur.
Bu, MTA-STS’nin topolojik işlevini açıklar. Alan adınız için MTA-STS’yi yapılandırmaya çalıştığınızda bu daha da netleşir.
MTA-STS DNS Kayıtları Nasıl Yapılandırılır?
MTA-STS iki parçalı bir DNS kaydına sahiptir. Biri sunucunun TLS bağlantısını desteklediğini tanımlarken, diğeri isteğe bağlı olan TLS raporlarının nereye gönderileceğini belirtir.
Sunucunun TLS bağlantılarını desteklediğini tanımlayan ilk DNS kaydı aşağıdaki gibi adlandırılmıştır:
_mta-sts.alanadiniz.com
“_mta.sts“, değerini tanımlamak için kullanılan aşağıdaki etiketlere sahiptir:
Etiket | Açıklama |
v | MTA-STS sürümünü tanımlar. Şu anda geçerli olan tek sürüm ”STSv1” |
id | Politikayı izlemek için kullanılan 32 alfanümerik uzunluğa kadar alfanümerik bir dizedir. E-posta hizmet sağlayıcınız tarafından sağlanmadıysa, benzersiz bir sayı oluşturabilir veya bir MTA-STS kayıt oluşturucu kullanabilirsiniz. |
TLS raporlamasını ayarlamak için kullanılan diğer MTA-STS DNS kaydı aşağıdaki isimlendirmeye sahiptir:
_smtp.tls.alanadiniz.com
“_smtp.tls“, değerlerini tanımlamak için aşağıdaki etiketlere sahiptir:
Etiket | Açıklama |
v | TLS rapor sürümünü tanımlar. Şu anda geçerli olan tek sürüm ”TLSRPTv1”dir. |
rua | TLS raporlarının alınacağı e-posta adresini tanımlar. ”rua” kelimesinin ardından ”mailto:” gelir ve bunu e-posta adresi takip eder. |
Bunları DNS’inizde yapılandırmak için aşağıdaki basit adımları kullanabilirsiniz:
Not: DNS sunucusu herkes için farklı olabilir, bu nedenle adımlar ve ekran görüntüleri değişiklik gösterebilir. Bununla birlikte, aynı mantık geçerlidir.
1. DNS sunucunuzda yönetici olarak oturum açın.
2. “Kayıt Ekle (Add Record)“ye ve ardından “TXT Kaydı Ekle (Add TXT Record)“ye tıklayın.
3. Alan adınızı kullanarak MTA-STS kaydı için aşağıdaki gibi bir ad girin:
_mta-sts.alanadiniz.com
4. Şimdi değişkenleri değiştirirken aşağıdaki sözdizimini kullanın ve Kayıt (Record) alanına yapıştırın.
“YourID” kısmına e-posta servis sağlayıcınız tarafından sağlanan bir ID koymayı veya kendiniz bir ID oluşturmayı unutmayın.
v=STSv1; id=[YourID]
5. Kaydın ne kadar süreyle önbelleğe alınacağını gösteren Time To Live (TTL) değerini ayarlayabilirsiniz. [İsteğe bağlı]
6. İşiniz bittiğinde Save Record’a (Kaydı Kaydet) tıklayın.
7. [İsteğe bağlı] Yukarıdaki adımları tekrarlayabilir ve TLS raporu DNS kaydı oluşturmak için aşağıdaki TXT dosya adını ve değerlerini kullanabilirsiniz:
Name:
_smtp.tls.alanadiniz.com
Value (Değer):
v=TLSRPv1; rua=mailto:[Email Adresi]
8. İşiniz bittiğinde “Save Record (Kaydı Kaydet)”e tıklayın.
Bu adımları tamamladığınızda, alan adınız için MTA-STS kayıtlarını başarıyla yapılandırmış olacaksınız. Ancak yine de hosting üzerinde MTA-STS politikasını yapılandırmanız gerekir.
MTA-STS Kural Metin Dosyası Nasıl Yapılandırılır?
MTA-STS kayıtları TLS kuralını alan adınızın sunucusunda depolanan düz metin dosyasından alır. Bu dosyayı yapılandırmadan önce anlamanız gereken birkaç kural vardır:
- MTA-STS kural dosyası şu isimlendirmeye sahiptir: “mta-sts.txt“
- Kural dosyası her zaman şu adreste saklanır/oluşturulur: https://mta-sts.alanadiniz.com/.well-known/mta-sts.txt
Bu kurallara uymak için henüz mevcut değilse “mta-sts.alanadi.com” alt alan adını oluşturmanız gerekebilir. Ayrıca, henüz mevcut değilse, alt alan adında “.well-known” klasörünü de oluşturmanız gerekebilir.
Bu koşulların her ikisi de sağlandıktan sonra MTA-STS politikasını tanımlayan düz metin dosyasını oluşturmaya devam edebilirsiniz. Bunu yapmadan önce kural içinde kullanılan etiketleri ve ne anlama geldiklerini aşağıdaki tabloda bulabilirsiniz:
Etiket | Örnek | Açıklama |
Versiyon | versiyon: STSv1 | STS sürümünü tanımlar. Şu anda sadece “STSv1” geçerli bir değerdir. |
mode | mode: enforce | TLS olmayan ortam üzerinden alınan e-postalarla nasıl başa çıkılacağını tanımlar. Kabul edilebilir seçenekler none, enforce ve testtir. |
mx | sirketadi.com | Alan adınız için Mail Exchange sunucusunu tanımlar. Birden fazla mx kaydı varsa birden fazla mx girişi ekleyebilirsiniz. |
max_age | max_age: 86400 | Bir güncelleme gerekli olduktan sonra kural için önbelleğe alınan süreyi belirtir. Sayı saniye cinsinden ifade edilir ve test modu için 604.800 ile 1.209.600 (1-2 hafta) arasında; zorlama modu için 24 saat (86.400 saniye) ile 31.557.600 (bir yıl) arasında olmalıdır. |
MTA-STS kural dosyası için etiketlerin çoğu, “mode” etiketinin değerleri hariç yukarıdaki tablo kullanılarak açıklanabilir. Bu değerlerin her birinin anlamı budur:
- test: TLS’yi geçemeyen e-postalar engellenmez, ancak TLS raporlarını kullanarak bunlar hakkında veri toplayabilirsiniz.
- enforce: Bu modda, TLS’nin başarısız olması e-postaların reddedileceği anlamına gelir. Yapılandırılmışsa TLS raporları almaya devam edersiniz.
- none: MTA-STS dosyanızdaki none kuralı, kuralın tamamen devre dışı bırakılması anlamına gelir.
Bu bilgilerle, artık MTA-STS politikanızı yapılandırabilmeniz gerekir; bu politika aşağıdaki gibi görünmelidir:
version: STSv1
mode: enforce
mx: sirketadi.com
max_age: 86400
Hem MTA-STS DNS kayıtlarını hem de kuralı yapılandırdıktan sonra yapılandırmanın yayılması için bir süre bekleyin. Bu süre sonunda kaydın doğru şekilde yapılandırılması gerekir.