- Melalui riset ditemukan lebih dari 1.700 kunci DKIM publik di bawah 1.024-bit. RSA di bawah 1.024-bit rentan secara keamanan, dan penggunaannya dihentikan sejak RFC 8301 pada tahun 2018
- Tujuan eksperimen: mengekstraksi kunci privat dari kunci publik RSA 512-bit yang dipublikasikan, lalu memeriksa apakah verifikasi DKIM lolos di layanan email utama (Gmail, Outlook, Yahoo Mail, dll)
- Mencoba menandatangani sehingga seolah-olah email dikirim oleh pengirim aslinya
Dekode Kunci Publik RSA dan Pembuatan Kunci
- Kunci yang digunakan adalah kunci RSA 512-bit untuk domain
Redfin.com, yang dienkode dalam format ASN.1 DER dan tambahan dienkode lagi dengan Base64
- Proses dekripsi kunci
- Mendekode kunci publik yang dienkode Base64 di tag
p menggunakan Python
- Ekstraksi
n (modulus) dan e (eksponen publik)
- Faktorisasi modulus RSA
- Menggunakan CADO-NFS: berbasis algoritme Number Field Sieve
- Spesifikasi server cloud: 8 vCPU, 32GB RAM (menggunakan Hetzner)
- Menjalankan CADO-NFS setelah mengatur tambahan swap 32GB
- Hasil: setelah sekitar 86 jam, berhasil memfaktorkan
n menjadi dua faktor p dan q
- Pembuatan kunci privat RSA
- Membuat kunci privat RSA dari
p dan q
- Menggunakan Python dan pustaka PyCryptodome untuk mengeluarkan kunci privat dalam format PEM
Pengujian Tanda Tangan DKIM
- Mengirim email setelah mengintegrasikan kunci privat ke OpenDKIM
- Memeriksa hasil verifikasi DKIM di beberapa layanan hosting email
- Hasil uji:
- DKIM lolos: Yahoo Mail, Mailfence, Tuta
- DKIM gagal: Gmail, Outlook, Zoho, Fastmail, dll
- Yahoo, Mailfence, dan Tuta menganggapnya lolos karena tidak menyadari bahwa kunci 512-bit tersebut lemah
Kesimpulan
- Kerentanan kunci RSA 512-bit
- Tugas yang pada 30 tahun lalu hanya mungkin dilakukan dengan superkomputer, kini bisa dilakukan di server cloud dalam waktu beberapa jam dengan biaya di bawah $8
- Saat menandatangani DKIM, jangan pernah menggunakan kunci di bawah 1.024-bit
- Rekomendasi
- Penyedia email harus secara otomatis menolak tanda tangan DKIM yang menggunakan kunci RSA di bawah 1.024-bit
- Pemilik domain perlu memeriksa record DKIM dan memperbaruinya menjadi minimal 1.024-bit
- Panjang string Base64 bisa digunakan untuk memeriksa kunci DKIM: kunci 1.024-bit minimal 216 karakter
1 komentar
Komentar Hacker News
Empat belas tahun lalu, saya menulis tentang pekerjaan yang masih bisa dilakukan dengan kunci 512 bit. Saat orang-orang mulai menelusuri bilangan prima atau bitcoin, mereka bertanya apakah ada perpustakaan "jalan pintas" untuk mengurangi ruang pencarian. Saya mempertanyakan apakah hal ini berdampak pada desain layanan enkripsi.
Ada usulan untuk mencoba membuat kunci DKIM 4096 bit sebagai eksperimen menarik. Kebanyakan pemeriksa DKIM/SPF daring tidak menemukan masalah saat mengecek DNS, tetapi ketika mengirim email uji, hasilnya ditandai gagal. Saya mempelajari bahwa meskipun kunci 2048 bit ke atas diizinkan, tidak perlu diproses.
Ada pertanyaan tentang mengapa ukuran kunci tidak diperbesar secara drastis dalam kriptografi secara umum. Walaupun daya komputasi berkembang sangat cepat dan diskusi tentang komputasi kuantum terus berlangsung, penasaran mengapa pertahanan tidak memakai kunci yang lebih besar.
Kami memecahkan kunci RSA DKIM 512 bit dalam 28 jam menggunakan CADO-NFS dengan komputer desktop. Dinyatakan bahwa kunci 1024 bit masih sulit untuk level hobi, tetapi kemungkinan dapat dilakukan dalam lingkungan akademis.
Judulnya sedikit diubah. Judul aslinya adalah "How We Cracked a 512-Bit DKIM Key for Less Than $8 in the Cloud".
Beberapa penyedia DNS membatasi agar hanya dapat menetapkan kunci 1024 bit, contohnya wordpress.com.
Hover tidak mendukung record TXT lebih dari 255 karakter sehingga manajemen DNS harus dihentikan. Masalah ini diselesaikan dengan menggunakan Digital Ocean. Saya berharap kriptografi kurva elips menjadi standar.
Sebagian besar penyedia menganggap kunci 512 bit tidak aman dan menolak tanda tangan DKIM, tetapi Yahoo Mail, Mailfence, dan Tuta melaporkan hasil dkim=pass. Timbul pertanyaan apakah Google gagal karena tanda tangan DKIM atau karena kegagalan SPF.
Ada pujian untuk pendekatan yang praktis. Tidak jelas seberapa lama artikel ini akan bertahan, tetapi karena didasarkan pada kiriman sebelumnya oleh penulis, diperkirakan ini ditulis hari ini