STARTTLS, şifresiz başlayan bir bağlantıyı aynı port üzerinde TLS'e yükselten bir komuttur. SMTP, IMAP, POP3, FTP ve XMPP gibi protokollerde kullanılır. Bunun karşıtı, bağlantının baştan TLS ile kurulduğu "örtük TLS"dir (implicit TLS).
Örtük TLS ve STARTTLS
- SMTP: 587 (submission, STARTTLS) ve 465 (örtük TLS); MTA'lar arası 25 (fırsatçı STARTTLS).
- IMAP: 143 (STARTTLS) ve 993 (örtük TLS).
- POP3: 110 (STARTTLS) ve 995 (örtük TLS).
Akış (SMTP örneği)
- İstemci bağlanır, sunucu karşılama mesajı verir.
- İstemci
EHLOgönderir; sunucu yetenekleri arasındaSTARTTLSbildirir. - İstemci
STARTTLSkomutunu verir, sunucu220 Ready to start TLSyanıtlar. - TLS el sıkışması yapılır, ardından EHLO yeniden gönderilir.
Zayıf nokta: düşürme saldırısı
STARTTLS'in ilk kısmı düz metindir. Araya giren biri "STARTTLS" yeteneğini yanıttan silerse, yapılandırma zorunlu kılmadığı sürece taraflar şifresiz devam edebilir (STRIPTLS). Bu nedenle kendi sunucularınızda şifrelemeyi zorunlu tutun.
Test ve yapılandırma
openssl s_client -starttls smtp -connect mail.alanadi.com:587 -servername mail.alanadi.com
openssl s_client -starttls imap -connect mail.alanadi.com:143
# Postfix: kullanıcı gönderimi için TLS zorunlu
smtpd_tls_security_level = encrypt
smtpd_tls_cert_file = /etc/ssl/mail.crt
smtpd_tls_key_file = /etc/ssl/mail.key
İpuçları
- Sertifikadaki alan adı, istemcinin bağlandığı mail sunucusu adıyla uyuşmalıdır.
- Sunucular arası posta trafiğinde MTA-STS ve DANE gibi mekanizmalar zorunlu TLS için kullanılabilir.
Mail sunucunuz için uygun sertifikayı SSL sertifikaları arasından seçebilir, genel kontrol için SSL denetleme aracını kullanabilirsiniz.