- Araştırmada, 1.024 bitten küçük 1.700'den fazla açık DKIM anahtarı bulundu.
- RSA anahtarı 1.024 bitten küçükse güvenlik açısından zayıftır ve 2018 sonrası RFC 8301 ile birlikte kullanımından vazgeçildi.
- Araştırma hedefi: 512 bit RSA açık anahtardan özel anahtarı çıkarıp, Gmail, Outlook, Yahoo Mail gibi ana e-posta servislerinde DKIM doğrulamasını geçip geçmediğini doğrulamak.
- İmzanın orijinal gönderici gibi taklit edilip edilemeyeceği test edildi.
RSA Açık Anahtarının Kodunun Çözülmesi ve Anahtar Oluşturma
Redfin.com etki alanı için 512 bit RSA anahtarı; ASN.1 DER formatında kodlandı ve üzerine Base64 ile ek kodlama uygulanmıştı.
- Anahtar çözme süreci
p etiketinde yer alan Base64 kodlu açık anahtar Python ile decode edildi.
n (modül) ve e (genel üs) çıkarıldı.
- RSA modülünün çarpanlarına ayrılması
- CADO-NFS kullanıldı: Number Field Sieve algoritmasına dayalı
- Bulut sunucu yapılandırması: 8 vCPU, 32 GB RAM (Hetzner)
- Ek olarak 32 GB swap alanı eklenip CADO-NFS çalıştırıldı
- Sonuç: Yaklaşık 86 saat sonunda
n, iki asal çarpan olan p ve q olarak başarıyla ayrıştırıldı.
- RSA özel anahtarı oluşturma
p ve q ile RSA özel anahtarı oluşturuldu.
- Python ve PyCryptodome kütüphaneleri kullanılarak özel anahtar PEM formatında çıktı olarak alındı.
DKIM İmza Testi
- OpenDKIM ile özel anahtar entegre edilerek e-postalar gönderildi.
- Birden fazla e-posta hosting hizmetinde DKIM doğrulama sonuçları kontrol edildi.
- Test sonuçları:
- DKIM geçmiş: Yahoo Mail, Mailfence, Tuta
- DKIM başarısız: Gmail, Outlook, Zoho, Fastmail vb.
- Yahoo, Mailfence ve Tuta; 512 bit anahtarın kırılganlığını fark etmeden kabul edip geçti.
Nihai Sonuç
- 512 bit RSA anahtarının zayıflığı
- 30 yıl önce yalnızca süper bilgisayarlarla yapılabilen işlem, bugün bulut sunucuda birkaç saatte 8 USD'nin altında gerçekleştirilebilir hale geldi.
- DKIM imzalarında 1.024 bitten daha küçük anahtarlar kesinlikle kullanılmamalıdır.
- Öneriler
- E-posta sağlayıcıları, 1.024 bitten küçük RSA anahtarlarıyla oluşturulan DKIM imzalarını otomatik olarak reddetmelidir.
- Etki alanı sahipleri DKIM kayıtlarını kontrol etmeli ve 1.024 bitin üstüne güncellemelidir.
- Base64 dizesinin uzunluğu ile DKIM anahtarı denetlenebilir: 1.024 bitlik bir anahtar en az 216 karakter olmalıdır.
1 yorum
Hacker News Yorumları
14 yıl önce, 512 bit anahtarla da mümkün olduğuna dair bir şeyler yazmıştı. İnsanların asal sayı veya Bitcoin ararken arama alanını daraltmak için bir tür "kestirme" kütüphanesi olup olmadığını merak etmiş; bu tür kütüphanelerin şifreleme hizmeti tasarımını etkileyip etkilemeyeceğini de sorgulamış.
Eğlenceli bir deney olarak 4096 bit DKIM anahtarı ayarlamayı önermiş. Çoğu çevrimiçi DKIM/SPF denetleyicisi DNS kontrolünde sorun görmediğini gösterirken, test bir e-posta gönderildiğinde başarısız olarak işaretleniyor. 2048 bit ve üzeri anahtarların kullanılmasına izin verildiğini ama bununla uğraşmanın gerekmeyen bir şey olduğunu öğrenmiş.
Şifreleme genelinde anahtar boyutlarını neden bu kadar hızla artırmadıklarına dair bir soru var. İşlem gücü hızla büyürken ve kuantum bilişim tartışmaları sürerken, savunmada neden daha büyük anahtarlar kullanılmadığını merak ediyor.
CADO-NFS ile 512 bitlik bir RSA DKIM anahtarını 28 saatte bir masaüstü bilgisayar kullanarak kırmış. 1024 bitlik anahtarlar yine de hobi düzeyinde zor kalmaya devam ediyor ama akademik ortamda mümkün olacağı belirtilmiş.
Başlık biraz değiştirilmişti. Orijinal başlık "How We Cracked a 512-Bit DKIM Key for Less Than $8 in the Cloud" idi.
Bazı DNS sağlayıcıları yalnızca 1024 bit anahtar ayarlamaya izin vererek kısıtlama getiriyor; buna örnek wordpress.com.
Hover, 255 karakterden uzun TXT kayıtlarını desteklemediği için DNS yönetimini durdurmak zorunda kalmış. Sorun, Digital Ocean ile çözülmüş. Eliptik eğri kriptografisinin bir standart haline gelmesini umuyor.
Çoğu sağlayıcı 512 bit anahtarı güvensiz sayarak DKIM imzasını reddetmiş, ancak Yahoo Mail, Mailfence ve Tuta dkim=pass sonucunu rapor etmiş. Google’ın DKIM imzası yüzünden mi yoksa SPF hatası yüzünden mi başarısız olduğunu merak ediyor.
Pratik yaklaşım takdir edilmiş. Bu makalenin ne kadar eski olduğunu bilmiyoruz, ancak bugün yazarın önceki gönderilerinden biri temel alınarak yazılmış gibi görünüyor.