Apa Itu DKIM Record?
DKIM (DomainKeys Identified Mail, RFC 6376) menambahkan tanda tangan digital ke setiap pesan yang dikirim server Anda. Tanda tangan dibuat dengan kunci privat yang tetap berada di server. Kunci publik pasangannya dipublikasikan di DNS sebagai record TXT di selector._domainkey.yourdomain.com, dan penerima mengambilnya untuk memastikan pesan benar-benar berasal dari domain Anda dan tidak diubah di perjalanan.
Selector hanyalah label yang Anda pilih, misalnya default atau s1. Dengan selector, satu domain bisa mempublikasikan beberapa kunci sekaligus, satu per layanan atau per generasi kunci. Tanda tangan DKIM yang valid dari domain Anda sendiri juga yang membuat email tetap lolos DMARC saat SPF tidak bisa selaras, misalnya setelah email diteruskan.

Apakah Anda Perlu Membuat Kunci DKIM Sendiri?
Sering kali tidak. Google Workspace membuatkan kunci untuk Anda (Admin console, Apps, Google Workspace, Gmail, Authenticate email), dan Microsoft 365 memakai dua record CNAME, selector1._domainkey dan selector2._domainkey, yang menunjuk ke kunci yang dikelola Microsoft. Sebagian besar layanan newsletter dan email transaksional juga memberikan record mereka sendiri.
Anda perlu pasangan kunci sendiri saat Anda menjalankan server email sendiri, misalnya Postfix dengan OpenDKIM atau rspamd, atau Exim, atau saat sebuah aplikasi atau relay meminta Anda mengunggah kunci privat. Untuk itulah generator ini dibuat.
Advertisement
Cara Generate Kunci DKIM dan Mempublikasikan Record-nya
Selector boleh berupa apa saja yang terdiri dari huruf, angka, dan tanda hubung. Selector berbasis tanggal, seperti s2026, memudahkan Anda melacak rotasi kunci.
RSA 2048-bit adalah pilihan yang tepat untuk hampir semua orang. Pasangan kunci dibuat di browser Anda begitu halaman dimuat, dan dibuat ulang saat Anda mengganti tipenya.
Unduh lalu pasang di server email Anda. Kunci ini tidak disimpan di mana pun, jadi jika hilang, Anda butuh pasangan kunci baru.
Tambahkan record TXT dengan host selector._domainkey dan nilai yang dihasilkan, kirim pesan ke diri sendiri, lalu periksa dengan Cek DKIM.
Sintaks DKIM Record
Record kunci DKIM adalah daftar pasangan tag=nilai yang dipisahkan titik koma. Hanya p= yang wajib, tetapi publikasikan juga v dan k.
Menandai record sebagai kunci DKIM. Jika ada, tag ini harus berada di urutan pertama.
Algoritma kunci. rsa menjadi bawaan jika tag ini tidak ada.
Kunci publik dalam base64. p= yang kosong berarti kunci telah dicabut dan tanda tangan yang dibuat dengannya gagal.
Meminta penerima memperlakukan domain sebagai domain yang sedang menguji DKIM. Hapus setelah tanda tangan terverifikasi.
Mode ketat: identitas i= dalam tanda tangan harus memakai domain d= secara persis, bukan subdomainnya.
Membatasi algoritma hash (h=sha256) atau layanan yang memakai kunci (s=email). Sebagian besar record tidak menyertakannya.
Advertisement
RSA 2048 vs 1024 vs 4096 vs Ed25519
RSA 2048-bit: ukuran yang disarankan. RFC 8301 menyatakan penanda tangan sebaiknya memakai minimal 2048 bit. Nilai TXT-nya sekitar 410 karakter.
RSA 1024-bit: masih diverifikasi dan merupakan batas minimum yang diterima penerima, tetapi lemah menurut standar saat ini. Tanda tangan dari kunci yang lebih pendek tidak dihitung valid. Gunakan hanya jika DNS host Anda tidak bisa menyimpan nilai yang lebih panjang.
RSA 4096-bit: penerima wajib memverifikasi kunci hingga 4096 bit, tetapi nilainya sekitar 750 karakter, dan beberapa panel DNS serta sistem lama kurang baik menanganinya. Keuntungannya kecil dibanding 2048.
Ed25519: kunci modern yang jauh lebih pendek (seluruh record sekitar 66 karakter, RFC 8463). Belum semua penerima memverifikasinya, jadi tanda tangani juga dengan kunci RSA di bawah selector kedua.
Mengapa DKIM Record Saya Dipecah Menjadi Beberapa String?
Satu string TXT maksimal menampung 255 karakter, sedangkan nilai DKIM 2048-bit lebih panjang dari itu. DNS mengatasinya dengan menyimpan nilai sebagai beberapa string bertanda kutip yang digabungkan kembali oleh penerima.
Sebagian besar dashboard DNS menerima nilai panjang apa adanya dan memecahnya untuk Anda. Amazon Route 53 dan zone file BIND mengharuskan Anda memasukkan bentuk yang sudah dipecah, dan itulah yang diberikan tombol zone file (di Route 53, tempel hanya string bertanda kutip, dalam satu baris). Jangan menambahkan spasi atau baris baru di dalam kunci, dan jangan memasukkan tiap bagian ke record terpisah.
Advertisement
Pasang Kunci di Server Email Anda
Simpan kunci privat sebagai default.private (dengan selector Anda sendiri), atur agar hanya bisa dibaca oleh layanan penanda tangan, lalu arahkan signer ke file tersebut. Contoh OpenDKIM untuk example.com dengan selector default:
sudo mkdir -p /etc/opendkim/keys/example.com
sudo mv default.private /etc/opendkim/keys/example.com/
sudo chown opendkim:opendkim /etc/opendkim/keys/example.com/default.private
sudo chmod 600 /etc/opendkim/keys/example.com/default.privatedefault._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com/default.private*@example.com default._domainkey.example.comopenssl genrsa -out default.private 2048
openssl rsa -in default.private -pubout -out default.publicopendkim-genkey -b 2048 -d example.com -s defaultCara Merotasi Kunci DKIM
Buat pasangan kunci baru di bawah selector baru, misalnya s2027.
Publikasikan record TXT baru dan tunggu hingga bisa di-resolve di mana pun.
Ubah server email agar menandatangani dengan selector baru.
Pertahankan record lama sekitar satu minggu, hingga email yang ditandatangani dengannya sudah terkirim dan dicek.
Setelah itu hapus record lama, atau publikasikan dengan
p=kosong untuk mencabutnya.
Advertisement
Alat Autentikasi Email Lainnya
DKIM adalah salah satu dari tiga record yang dicek penerima. Lengkapi semuanya:
Cari kunci yang dipublikasikan berdasarkan selector dan periksa sintaks serta ukurannya.
Susun SPF record untuk penyedia Anda dengan hitungan lookup langsung.
Buat kebijakan DMARC yang memakai hasil SPF dan DKIM Anda.
Lihat apakah pesan sungguhan lolos DKIM, SPF, dan DMARC.