Personal Blog Sugihartono

Teknik Security Email menggunakkan SPF, DKIM, dan DMARC telah menjadi standar industri internet dan dipakai oleh provider besar seperti Yahoo,Google,AOL,MSN

Email Security Issue

Masalah security selalu menjadi concern dunia teknologi. Semakin berkembangnya teknologi selalu diikuti dengan perkembangan kejahatan dibaliknya, atau yang lebih dikenal dengan nama cyber crime. Issue pada kejahatan ini sebagian besar adalah penyalahgunaan akun oleh orang yang tidak berhak. Misalnya email, seharusnya hanya orang yang mempunyai akun yang bisa mengirim pesan atas alamat emailnya. Kenyataannya sekarang ini banyak email spam yang mampu mengatasnamakan orang lain untuk mengirim email yang isinya biasanya link yang sifatnya menjebak. Dengan judul link yang menarik perhatian dan biasanya disembunyikan dengan pemendek URL (bit.ly, adf.ly, goo.gl, dan layanan sejenis). Pengguna email yang kurang aware akan security issue, biasanya langsung meng-klik link yang ada di email. Halaman akhir dari link yang disertakan biasanya ada 3:

  • Halaman scam (pencurian identitas) --> biasanya adalah tiruan halaman login Email (untuk mencuri username dan password), halaman internet banking (mencuri username dan PIN), dan variasi sejenis lain.
  • Halaman Iklan --> pengguna dibawa ke website yang isinya promosi produk atau iklan
  • Malware/Virus --> kalau pas apes, pengguna bisa dapet malware atau virus setelah menuju link yang diklik

Rekayasa penjahat sangat bagus, link yang asli diperpendek lebih dari satu kali, sehingga ketika diklik seolah olah seperti membuka banyak link secara langsung ditandai dengan terbukanya banyak window browser. Untuk menghindari hal ini, kita bisa gunakan layanan LongURL yang merupakan layanan untuk menunjukkan kemana link asli sebuah URL yang telah diperpendek, dengan mengetahui link aslinya, maka kita tidak tertipu.

Meningkatnya aksi penipuan berbasis email, memaksa provider email (Yahoo, Gmail, Hotmail, dll) meningkatkan standar security mereka. Dengan peningkatan standar security, diharapkan bisa meminimalisir adanya spam.

Meningkatkan Security Email

Konsep dasar security email adalah kerjasama domain pengirim dan domain penerima. Domain pengirim mempublish security email mereka dengan record TXT pada setting DNS. Nantinya domain penerima ketika menerima email, akan mencocokkan header email dengan record TXT DNS domain pengirim. Jika lolos pengecekan, maka email tersebut dikirim oleh orang yang benar-benar memiliki akun tersebut. Jika tidak lolos, maka bisa diindikasikan sebagai spam. Domain penerima bisa saja me-reject email tersebut atau menerima email sebagai email spam, tergantung security setting yang berlaku.

Teknik Security Email

Teknik security email yang dipakai secara global dan juga diterapkan oleh provider-provider besar ada 3:

  • SPF
  • DKIM
  • DMARC

Teknik SPF

Teknik ini dilakukan dengan cara DNS admin mempublish host/IP yang valid untuk mengirim email atas domain yang dikelola. Ketika domain tujuan menerima email, server bisa melakukan verifikasi SPF Record ke domain pengirim. Jika Email dikirim dari server yang valid berdasarkan SPF record, maka email tersebut adalah email yang valid. Bagi para pengguna Gmail / Google Aps, SPF record ini bisa dilihat dari detail email setelah tulisan “to me” (kotak segitiga kebawah). Email yang lolos pengecekan SPF record ditandai dengan “Mailed by: sugihartono.com”.

Untuk belajar lebih jauh tentang SPF Record bisa langsung ke Sender Policy Framework Website. Untuk spf setting pengguna Google Aps cukup simple yaitu “v=spf1 include:_spf.google.com ~all”. Panduan lengkapnya ada di: Configure SPF records to work with Google Apps

Teknik DKIM

DKIM (DomainKeys Identified Mail) adalah penggabungan DomainKeys (awalnya didevelop oleh Yahoo) dan Identified Internet Mail. Inti dari teknik ini adalah adanya signature berbasis Hash yang disertakan dalam header email dan tersedia di TXT record domain pengirim. Server penerima email akan mencocokkan informasi header email dengan TXT record DKIM. Jika hasilnya cocok, maka email tersebut berasal dari domain yang bersangkutan dan tidak ada perubahan apapun dalam perjalanannya sampai ke server penerima.

Email yang lolos pengecekan DKIM ditandai dengan “Signed by: sugihartono.com”. Untuk belajar lebih jauh tentang DKIM bisa langsung ke Website DKIM. Untuk DKIM setting pengguna Google Aps Ada 3 langkah:

  • Create DKIM di Admin Panel Google Aps
  • Create TXT record di DNS Domain, dengan nilai dari langkah sebelumnya
  • Enable Authentication di Admin Panel Google Aps

Untuk detail langkah, bisa mengikuti petunjuk yang cukup detail di : Authenticate email with DKIM

Teknik DMARC

DMARC(Domain-based Message Authentication, Reporting & Conformance) adalah teknik security yang menggabungkan SPF dan DKIM. Konsep DMARC adalah administrator domain mempublikasikan policy mereka terkait email yang dikirim dengan domain yang dikelola. Jika pengecekan lewat SPF atau DKIM gagal, maka domain penerima dapat mengacu pada policy domain pengirim dalam memperlakukan email yang masuk. Policy yang tersedia adalah:

  • none - Tidak melakukan aksi apapun
  • quarantine - Email ditandai sebagai SPAM
  • reject - Reject email yang masuk

Setiap hari, server penerima email mengirimkan summary aksi DMARC yang dilakukan terhadap email yang masuk ke domain penerima. Policy bisa setiap saat diubah oleh admministrator domain melalui TXT record pada setting DNS. Untuk lebih detail tentang setting DMARC, bisa baca artikel Prevent outgoing spam with DMARC dan official DMARC website

Apply SPF, DKIM, DMARC pada domain sugihartono.com

Sesuai dengan saran-saran yang ada diforum dan referensi yang dibaca, maka ketiga teknik security email tersebut diterapkan pada domain sugihartono.com melalui setting TXT record DNS. Setelah setting selesai,maka tinggal di verifikasi hasilnya.
Verifikasi penerapan security email dapat dilakukan dengan 2 cara:

1. DNS Online tools

Di internet banyak website yang menyediakan tools untuk pengecekan setting DNS. Biasanya mereka juga menyediakan tools untuk verifikasi SPF, DKIM, dan DMARC. Dari tools tersebut bisa kita cek setting2 pada DNS, khususnya validitas 3 record DNS.

2. Kirim email ke verifikator

Kita bisa mengecek validitas setting yang kita lakukan dengan cara mengirimkan email kosong ke alamat email yang menyediakan fasilitas pengecekan security email. Nanti setelah beberapa menit(tergantung verifikator), akan ada email balasan yang isinya hasil pengecekan security email kita. Email kosong tanpa subject dikirimkan ke alamat:

  • auth-results@verifier.port25.com

This message is an automatic response from Port25's authentication verifier service at verifier.port25.com. The service allows email senders to perform a simple check of various sender authentication mechanisms. It is provided free of charge, in the hope that it is useful to the email community. While it is not officially supported, we welcome any feedback you may have at verifier-feedback@port25.com.

Thank you for using the verifier,

The Port25 Solutions, Inc. team

\======================================================== Summary of Results \======================================================== SPF check: pass DomainKeys check: neutral DKIM check: pass Sender-ID check: pass SpamAssassin check: ham

\======================================================== Details: \========================================================

  • checkmyauth@auth.returnpath.net

Return Path DKIM/SPF Reflector Report \=================================== Source IP = xxx.xxx.xxx.xxx Mail From = {{Email_Address}}

Identity Alignment Results \====================== SPF Domain Alignment Result = PASS The From domain 'sugihartono.com' is an exact match with the SPF domain 'sugihartono.com'. Note that no alignment policy was defined in a DMARC record, so the policy defaulted to relaxed.

DKIM Domain Alignment Results: Result for DNS Record: google._domainkey.sugihartono.com = PASS The From domain 'sugihartono.com' is an exact match with the DKIM domain 'sugihartono.com'. Note that no alignment policy was defined in a DMARC record, so the policy defaulted to relaxed.

DKIM Results \========== Result = pass Domain = sugihartono.com Selector = google DNS Record(s) =google._domainkey.sugihartono.com TXT v=DKIM1; k=rsa; p={{KEY}} Public Key Length = 1024

DomainKeys Results \================ No DomainKeys signature(s) found.

SPF Results \======= Result = pass Domain = sugihartono.com DNS Record(s) = sugihartono.com TXT v=spf1 include:_spf.google.com ~all

DMARC Results \=========== Domain = dmarc.sugihartono.com DNS Record = _dmarc.sugihartono.com TXT v=DMARC1; p=none; rua=mailto: {{EmailAddress}}; ruf=mailto: {{Email_Address}}; rf=afrf; pct=100;

DMARC Record Validation Results \=============================== DMARC Errors Detected: None. Non-DMARC flags encountered (skipped): None.

Sugihartono

About the author: Sugihartono