Saya memiliki server foo.example.com di 192.0.2.1
Ini menjalankan exim untuk menerima email untuk beberapa domain saya.
Domain saya masing-masing memiliki catatan MX yang menunjuk ke mx.example.com, yang dipecahkan menjadi 192.0.2.1
Jika saya ingin membuat eksim menawarkan enkripsi TLS untuk koneksi email masuk, nama host apa yang harus saya masukkan ke dalam sertifikat SSL?
- foo.example.com karena itu yang akan dikatakan server di HELO?
- mx.example.com karena itulah nama host yang akan disambungkan oleh klien?
http://www.checktls.com menyarankan bahwa yang terakhir benar, tetapi saya tidak dapat menemukan jawaban yang pasti.
ssl
smtp
certificate
exim
David North
sumber
sumber
Jawaban:
Ini sebenarnya tidak didefinisikan secara eksplisit di mana saja, dan apakah server harus "dipercaya" atau tidak tergantung pada klien (yang tentu saja bisa menjadi server email lain) yang terhubung dengannya; mengutip dari RFC yang relevan ( RFC 2487 ):
Apa artinya ini pada dasarnya adalah, ketika server menawarkan enkripsi TLS menggunakan sertifikat yang diberikan, keputusan untuk menerima atau menolak sepenuhnya tergantung pada bagian lain, yang mungkin ingin nama pada sertifikat itu sama dengan yang terhubung, tetapi dapat menerimanya dengan sangat baik bahkan jika itu tidak cocok.
Tapi tunggu, masih ada lagi. Mengutip lagi dari RFC yang sama:
Jadi, apa yang dikatakan server sebagai tanggapan terhadap HELO / EHLO sebelum jabat tangan TLS tampaknya tidak penting sama sekali.
Dalam pengalaman saya, sertifikat yang ditandatangani sendiri berfungsi cukup baik di server surat yang menghadap Internet, yang berarti server surat lain bahkan tidak repot-repot memvalidasi mereka, mereka hanya akan dengan senang hati menerima apa pun yang dapat memberikan enkripsi TLS, terlepas dari penerbitan nama otoritas atau subjek.
sumber
MTA yang mengirimkan surat ke domain Anda akan mencari data MX (yang akan menghasilkan nama host), dan kemudian mencari data A untuk nama host itu. Hostname yang terhubung dengan itu adalah nama host MX, dan itulah yang akan diverifikasi terhadap nama umum sertifikat SSL. Memverifikasi nama host HELO tidak masuk akal karena server dapat memberikan nama host HELO yang diinginkan - itu tidak memberikan keamanan tambahan.
Karena itu, memverifikasi sertifikat SSL secara ketat ketika mengirimkan surat tidak terlalu berguna saat ini, karena MTA akan (hampir selalu) mundur ke pengiriman non-SSL, karena itulah cara kerja SMTP saat ini. Oleh karena itu, konfigurasi yang masuk akal adalah menggunakan SSL jika server MX menawarkannya, terlepas dari apakah sertifikat SSL memverifikasi atau tidak (karena enkripsi tanpa otentikasi lebih baik daripada tidak ada enkripsi dan tidak ada otentikasi). Karena itu Anda sebaiknya menggunakan sertifikat yang ditandatangani sendiri untuk tujuan ini.
sumber
Tugas memverifikasi sertifikat server dan cocok dengan nama host server adalah murni peran klien, untuk protokol apa pun yang menggunakan SSL / TLS.
Dengan demikian, nama host dalam sertifikat harus cocok dengan nama yang coba diakses oleh klien.
Ketika koneksi SSL / TLS dimulai di depan (SMTPS), server tidak memiliki cara untuk melihat apa yang dikatakan pesan HELO sebelum koneksi dibuat, jadi ia harus menggunakan yang dengannya ia membuat permintaan.
Ketika menggunakan SSL / TLS setelahnya
STARTTLS
, klien masih berniat untuk berbicara dengan server yang sudah dikonfigurasi, jadi itu yang masih harus diperiksa. Gagal yang memungkinkan serangan MITM:Dalam kedua kasus, itu adalah alamat MX yang harus digunakan.
Aturan pencocokan nama host baru-baru ini telah dikumpulkan lintas protokol di RFC 6125 , tetapi beberapa klien mengimplementasikannya secara penuh (ini lebih merupakan praktik terbaik RFC daripada perubahan lengkap, dan itu masih sangat baru).
Dalam lampirannya , ini meringkas apa yang ada tentang SMTP sebelumnya (diambil dari RFC 3207 dan RFC 4954 ). Khususnya " Klien TIDAK HARUS menggunakan segala bentuk nama host server yang berasal dari sumber jarak jauh yang tidak aman (misalnya, pencarian DNS tidak aman). " (Yang berlaku untuk spanduk server tentu saja). Terlepas dari ini, aturan warisan SMTP sedikit lebih santai daripada HTTPS tentang Nama Alternatif Subjek ( harus bukannya harus digunakan).
Cara modern jelas menempatkan nama host dalam entri DNS Alternatif Nama Subjek. Penggunaan wildcard juga tidak disarankan .
sumber
Saya pikir yang terbaik adalah menyalin apa yang dilakukan dalam praktek. Saya telah memeriksa alamat email yahoo.com menggunakan http://checktls.com Semoga di yahoo, mereka menggunakan domain yang berbeda untuk nama host mereka dan untuk domain mx mereka. Jadi, nama host mereka adalah yahoo.com dan domain mx mereka berakhir dengan yahoodns.net
Hasil checktls: sertifikat SSL CN = MX domain (* .yahoodns.net)
Saya melakukan hal yang sama dengan cisco dan saya mendapatkan hasil yang sama.
sumber
Ke dalam enkripsi SSL / TLS, klien selalu memeriksa korespondensi antara nama host "nyata" / "dideklarasikan" pada mesin jarak jauh dan informasi yang ada di dalam sertifikat.
Jadi, Anda mungkin harus mengatur foo.example.com atau membuat sertifikat wildcard ;-)
sumber