Ok Google, publikasikan kunci pribadi DKIM Anda





Internet adalah tempat yang berbahaya bahkan di tahun-tahun terbaiknya. Terkadang arsitek Internet menemukan cara untuk mengurangi ancaman, terkadang gagal. Namun, ada situasi berulang di mana perusahaan Internet besar menemukan solusi yang sebenarnya membuat situasi menjadi lebih buruk bagi hampir semua orang. Hari ini saya ingin berbicara tentang satu kasus seperti itu, dan juga bagaimana perusahaan besar seperti Google dapat menemukan cara untuk memperbaikinya.



Posting ini mencakup Domain Keys Identified Mail (DKIM), protokol anti-spam kecil yang tidak berbahaya yang entah bagaimana telah berubah menjadi monster. Permintaan saya sederhana, dapat diringkas sebagai berikut:



Google yang terhormat: Harap terapkan rotasi berkala dan publikasi kunci pribadi DKIM Anda. Ini akan membuat seluruh Internet jauh lebih aman, karena penjahat akan kehilangan insentif kuat untuk mencuri email dan mengatur kebocoran mereka. Perbaikannya hampir tidak memerlukan biaya apa pun dan akan menjatuhkan alat yang ampuh dari tangan pencuri.



Ini adalah versi singkatnya. Informasi lebih rinci disajikan di bawah ini.



Apa DKIM ini dan bagaimana cara melindungi email saya?



Email dibuat pada hari-hari ketika Internet masih disebut ARPANET . Ini adalah hari-hari yang jauh lebih tenang, ketika langkah-langkah keamanan modern, dan sejujurnya, gagasan bahwa Internet akan membutuhkan keamanan, tetap menjadi masa depan sci-fi yang jauh. Protokol email



pertama (seperti SMTP) bekerja atas dasar sistem kepercayaan. Email mungkin masuk ke server email Anda langsung dari server email pengirim atau dikirim melalui perantara. Namun, jika surat itu menyatakan bahwa itu dari teman Anda Alice, maka Anda yakin bahwa itu memang dari Alice. Mengapa ada orang yang berbohong tentang ini?



Penggunaan email secara luas telah menunjukkan bahwa sikap ini telah gagal total. Hanya dalam beberapa tahun, netizen telah mengetahui bahwa ada banyak orang yang rela berbohong tentang siapa mereka. Kebanyakan dari mereka adalah pengirim spam email yang senang bahwa SMTP memungkinkan mereka untuk meniru hampir semua pengirim - teman Anda Alice, bos Anda, kantor pajak, pangeran Nigeria yang ramah. Tanpa mekanisme yang dapat diandalkan untuk mencegah spam tersebut dikirim, email terbukti sangat rentan terhadap spoofing.



Untuk kredit penyedia email, mereka segera menyadari bahwa email tanpa otentikasi pengirim pada dasarnya tidak dapat digunakan. Untuk memfilter email dengan benar, mereka membutuhkannyasetidaknya periksa dari server mana email itu berasal. Properti ini memiliki nama teknis dan disebut otorisasi sumber .



Solusi untuk masalah otorisasi sumber, seperti hampir semua perbaikan protokol Internet dasar lainnya, mirip dengan memperbaiki dengan lakban. Penyedia layanan email telah diminta untuk memasukkan ekstensi kriptografik baru (opsional) yang disebut Domain Keys Identified Mail , atau DKIM. DKIM memasukkan tanda tangan digital ke dalam setiap email yang dikirim oleh server email . Saat server email penerima menerima surat bertanda DKIM yang menyatakan bahwa, misalnya, berasal dari Google, server tersebut terlebih dahulu menggunakan Sistem Nama Domain(DNS) menemukan kunci publik Google. Penerima sekarang dapat memverifikasi tanda tangan untuk memastikan bahwa pesan tersebut asli dan tidak diubah, karena tanda tangan dikaitkan dengan konten dan sebagian besar header. Pengetahuan ini kemudian dapat digunakan sebagai masukan untuk memfilter spam. (Jaminan semacam itu disediakan oleh protokol serupa yang disebut ARC.)



Tentu saja, solusi seperti itu tidak ideal. Karena DKIM bersifat opsional, perantara yang berniat jahat dapat menghapus tanda tangan DKIM dari surat untuk meyakinkan penerima bahwa itu tidak pernah ditandatangani oleh DKIM. Protokol serupa, yang disebut DMARC , menggunakan DNS untuk memungkinkan pengirim email mengkomunikasikan preferensi mereka, yang memaksamemverifikasi tanda tangan email mereka. Menggunakan kedua protokol ini secara bersamaan, pada dasarnya, harus sepenuhnya menghilangkan spoofing dari Internet.





Contoh tanda tangan DKIM untuk salah satu email otomatis yang saya terima hari ini.



Apa masalah DKIM / ARC / DMARC dan apa itu "tantangan"?



Sebagai tindakan anti-spam, DKIM, ARC, dan DMARC tidak memiliki masalah khusus. Bagian yang rumit adalah bahwa penandatanganan DKIM memiliki efek samping yang tidak terduga yang melampaui tugas pemfilteran spam asli. Singkatnya:



DKIM memberikan jaminan seumur hidup atas keaslian email, yang dapat digunakan siapa saja untuk memverifikasi otentikasi email yang dicuri secara kriptografis bahkan bertahun-tahun setelah dikirim.



Fitur non-pembatalan baru ini awalnya tidak dimaksudkan sebagai tujuan DKIM. Para desainer tidak merencanakannya, tidak ada yang membahas apakah itu ide yang bagus, dan sebagian besar terkejut. Lebih buruk lagi, fitur yang tidak terduga ini memiliki konsekuensi yang sangat serius: membuat kita lebih rentan terhadap pemerasan dan pemerasan.



Untuk memahami apa masalahnya, ada baiknya mempertimbangkan tujuan dari DKIM.



Tujuan utama DKIM adalah untuk mencegah pemalsuan surat oleh spammer selama transmisi . Ini berarti bahwa server penerima harus benar-benar dapat memverifikasi bahwa email itu dikirim dari server email sumber mengklaim, bahkan jika email berjalan melalui banyak server tidak dipercaya sepanjang jalan.



Namun, setelah transfer surat selesai, target DKIM selesai. Artinya, jaminan keaslian sebaiknya hanya dipertahankan untuk jangka waktu yang singkat. Karena surat biasanya hanya membutuhkan beberapa menit untuk diterima (dalam kasus yang jarang terjadi, berjam-jam), jaminan keaslian seharusnya tidakberlangsung selama bertahun-tahun, dan tanda tangan ini tidak boleh diungkapkan kepada pengguna. Namun, inilah yang terjadi.



Sampai saat ini, tidak ada yang memikirkannya. Faktanya, konfigurasi DKIM awal terdengar seperti lelucon yang buruk: penyedia layanan email memilih kunci penandatanganan DKIM yang sangat mudah diretas oleh penyerang yang termotivasi. Pada 2012, peneliti keamanan Zachary Harris menemukan bahwa Google dan banyak perusahaan lain menggunakan RSA 512-bit untuk penandatanganan DKIM. Dia menunjukkan bahwa kunci seperti itu pada peralatan cloud sewaan dapat diretas dalam hitungan jam, dan kemudian digunakan untuk memalsukan surat dari Larry dan Sergey.



Bagaimana Google dan penyedia email lainnya akan bereaksi terhadap rasa malu "Larry dan Sergey" ini tidak sulit untuk diprediksi. Tanpa memikirkan implikasinya, mereka dengan cepat memperkuat kunci, meningkatkannya menjadi RSA 1024-bit atau 2048-bit. Ini mencegah perusakan, tetapi secara tidak sengaja mengubah protokol antispam yang tidak berbahaya menjadi stempel keaslian kriptografi seumur hidup yang dapat digunakan untuk memvalidasi pembuangan email apa pun, tidak peduli bagaimana hal itu sampai ke tangan pemverifikasi.



Anda gila, tidak ada yang menggunakan DKIM untuk mengautentikasi email.



Namun, stempel otentikasi DKIM telah banyak digunakan oleh pers, terutama dalam konteks peretasan email politisi. Itu nyata, penting dan bermakna.



Contoh paling terkenal, yang menyebabkan kontroversi serius pada saat yang sama: pada tahun 2016, Wikileaks menerbitkan sekumpulan surat yang dicuri dari akun Google John Podest . Karena sumber surat-surat ini tidak jelas , WikiLeaks menghadapi tugas berat untuk memverifikasi keaslian pesan-pesan ini. DKIM telah menjadi solusi yang elegan: setiap surat yang diposting di halaman Wikileaks secara publik menunjukkan status konfirmasi dari tanda tangan DKIM yang terlampir . Situs ini juga menyediakan halaman sumber yang bermanfaat bagi jurnalis yang menjelaskan bagaimana DKIM membuktikan realitas surat.



Namun, kisah DKIM tidak berakhir dengan surat-surat PodestΓ . Pada 2017, ProPublica menggunakan DKIM untuk memverifikasi keaslian surat-surat yang diduga dikirim ke kritik oleh pengacara pribadi Presiden Trump, Mark Kasovitz. Pada 2018, Associated Press kembali menggunakannya untuk mengautentikasi email bocor yang menghubungkan pengacara Rusia dengan Donald Trump Jr. Dan itu terjadi lagi tahun ini, ketika penerima dugaan "laptop Hunter Biden" menyerahkan satu surat tahun 2015 kepada Rob Graham untuk verifikasi DKIM guna mengatasi skeptisisme wartawan tentang sumber mereka.



Seseorang mungkin mengatakan bahwa verifikasi DKIM tidak penting, dan Anda dapat percaya atau tidak percaya pada surat yang bocor hanya berdasarkan isinya. Namun, banyaknya pemberitaan yang memilih mengandalkan DKIM jelas menunjukkan betapa keliru anggapan tersebut. Organisasi berita, termasuk Wikileaks, secara implisit mengakui bahwa sumber kontroversial dalam menerima surat menimbulkan keraguan - mungkin sangat kuat sehingga membuat publikasi yang meyakinkan di organisasi berita nasional tidak mungkin dilakukan. DKIM memungkinkan Anda untuk mengatasi masalah ini dan menghilangkan gangguan tersebut.



Associated Press bahkan merilis alat verifikasi DKIM .



Singkatnya, protokol antispam, awalnya dirancang untuk memberikan identifikasi jangka pendek dari surat-surat yang berpindah antar server surat, telah mengubah tujuannya (tanpa diskusi atau persetujuan sedikit pun dari pengguna surat komersial), menjadi alat yang menyediakan otentikasi kriptografik yang tidak dapat disangkal dari setiap surat masuk atau keluar Anda. Ini adalah sumber yang bagus untuk jurnalis, peretas dan pemeras.



Tapi dia tidak memberikan keuntungan apapun kepada Anda .



Apa yang dapat Anda lakukan?



DKIM tidak pernah dimaksudkan untuk otentikasi email jangka panjang. Jaminan keamanan yang diberikannya penting, tetapi hanya boleh berlangsung selama beberapa jam (mungkin berhari-hari) sejak surat dikirim oleh server email. Fakta bahwa DKIM masih dapat digunakan untuk membuktikan keaslian email yang dicuri, yang ditulis pada tahun 2015 , pada dasarnya adalah sebuah kegagalan: hasil dari penyalahgunaan dan kesalahan konfigurasi oleh penyedia email yang harus berpikir jernih.



Untungnya, ada solusi sederhana.



DKIM memungkinkan vendor untuk secara berkala "merotasi", atau mengganti, kunci yang digunakan untuk menandatangani email keluar. Frekuensi rotasi ini sedikit dibatasi oleh cachingInfrastruktur DNS, tetapi pembatasan ini tidak terlalu ketat. Bahkan vendor besar seperti Google dapat dengan mudah mengubah kunci penandatanganan setidaknya setiap beberapa minggu tanpa mengganggu aliran email. Mengubah kunci seperti ini adalah praktik yang baik, dan merupakan bagian dari solusi.



Tentu saja, perubahan sederhana pada pasangan kunci DKIM saja tidak akan menyelesaikan apa pun: orang-orang licik di Internet terus-menerus mengarsipkan kunci DKIM publik. Faktanya, inilah yang dikonfirmasi pada tahun 2020 oleh surat ke kotak surat Google dari 2015: kunci yang digunakan Google untuk menandatangani email DKIM pada periode yang lama (dari 2012 hingga 2016, kunci yang sama digunakan - serius, Google, berantakan!) tidak lagi digunakan, tetapi telah disimpan dalam cache di banyak tempat di Internet.



Solusi untuk masalah ini hanya memerlukan satu elemen tambahan kecil: Google harus mempublikasikan subset dari pasangan kunci dengan kunci pribadi setelah rotasi dan penghentian. Perusahaan harus mempublikasikan kunci rahasia ini di tempat umum yang mudah diakses sehingga siapa pun dapat menggunakannya untuk memalsukan email lama yang mencurigakan dari pengguna Google mana pun. Ketersediaan Google Signature Key untuk publik akan membuat kebocoran email baru diperdebatkan secara kriptografis. Karena setiap orang luar dapat memalsukan tanda tangan DKIM, maka tanda tangan tersebut hampir tidak berguna sebagai bukti keaslian.



(Mereka yang memiliki server emailnya sendiri dapat melakukan ini secara otomatis dengan skrip hebat ini .)



Google dapat memulai proses ini sekarang dengan merilis kunci pribadi kuno 2016. Karena kerahasiaan mereka saat ini secara harfiah tidak memiliki tujuan keamanan, dengan pengecualian konfirmasi pihak ketiga atas surat yang bocor, tidak ada alasan untuk merahasiakan nilai-nilai ini. Letakkan saja.



(Seorang pembaca paranoid mungkin juga mempertimbangkan kemungkinan bahwa penyerang yang termotivasi mungkin telah mencuri kunci pribadi DKIM lama dari Google.... Pada akhirnya, kunci penandatanganan DKIM bukanlah "permata kerajaan" dari ekosistem Google, jadi Google hampir tidak berusaha untuk menjaga keamanannya. Dalam kasus ini, menjaga kerahasiaan kunci oleh Google hanya menciptakan situasi di mana aktor tertentu dapat memalsukan surat tanpa mendapat hukuman.)



Tetapi otentikasi DKIM adalah hal yang hebat! Bukankah kita ingin bisa memeriksa surat yang bocor dari politisi?



Penerapan DKIM modern menimbulkan masalah karena mendorong jenis pelanggaran tertentu: pencurian surat pribadi untuk digunakan dalam kampanye publik pemerasan dan pemerasan. Selama beberapa tahun terakhir, ternyata fitur ini telah banyak digunakan dengan cara yang dianggap banyak orang dapat diterima, baik karena sesuai dengan preferensi pengikut mereka, atau karena politisi yang "tertangkap" pantas mendapatkannya.



Tapi hal buruk juga terjadi pada orang baik. Jika Anda menciptakan mekanisme yang merangsang kejahatan, cepat atau lambat kejahatan akan dilakukan terhadap Anda.



Penyedia layanan email seperti Google telah membuat keputusan (seringkali tanpa bertanya kepada pelanggan mereka) bahwa siapa pun yang mengambil kata sandi email pelanggan atau melakukan phishing dari karyawan perusahaan dapat memberikan bukti yang tidak dapat disangkal secara kriptografik yang dapat ditunjukkan kepada siapa pun untuk mengonfirmasi keaslian hasil. kejahatan. Mungkin bukti semacam itu tidak diperlukan untuk tugas penjahat. Tapi itu pasti ada nilainya. Menghilangkan kemungkinan seperti itu adalah berkah dalam bentuknya yang paling murni.



Fakta bahwa saya harus berdebat tentang ini membuat saya sangat sedih.



Stempel waktu, kriptografi yang ditingkatkan, dan keberatan formal lainnya



Setiap kali saya menyebutkan gagasan untuk menerbitkan kunci rahasia lama, saya mendapat banyak keberatan resmi dari orang - orang dengan komentar yang sangat bagus . Tetapi mereka memikirkan model ancaman yang lebih serius daripada yang biasanya kita hadapi.



Keberatan yang paling umum adalah penerbitan kunci privat hanya akan berfungsi jika email yang ditandatangani diterima setelah kunci privat diterbitkan. Dengan logika ini, yang benar, semua email yang dicuri dan diterbitkan sebelum publikasi kunci DKIM pribadi tidak dapat disangkal. Misalnya, jika seseorang meretas akun Anda dan segera mulai memublikasikan email yang Anda terima secara real time, maka verifikasi kriptografik mereka masih memungkinkan.



Seseorang bahkan menyarankan kemungkinan serangan cerdik di mana penerima (atau peretas yang memiliki akses konstan ke akun email Anda) menggunakan layanan cap waktu publik, seperti blockchain, untuk "mencap" email apa pun yang mereka terima dengan aman saat diterima. Hal ini memungkinkan penerima tersebut untuk membuktikan bahwa mereka menandatangani surat tersebut sebelum menerbitkan kunci DKIM rahasia - centang dan skakmat.



Ini adalah peretasan teoritis pintar yang hebat, tetapi pada dasarnya tidak relevan dalam arti bahwa ini menangani model ancaman yang lebih kuat. Masalah paling kritis dengan DKIM saat ini adalah bahwa tanda tangan DKIM berada di dalam kotak surat Anda yang diarsipkan. Ini berarti bahwa seorang peretas yang meretas akun Gmail saya hari ini dapat menunjukkan tanda tangan DKIM pada email yang telah saya kirim / terima.tahun lalu . Memublikasikan DKIM pribadi lama akan langsung memperbaiki masalah ini. Solusi untuk masalah teoritis dari seorang "hacker real-time" bisa menunggu giliran.



Keberatan lain yang terkadang saya dengar adalah bahwa otentikasi kriptografi adalah fitur yang berguna . Dan dalam kondisi tertentu, saya setuju dengan itu. Masalah dengan DKIM adalah tidak ada pelanggan yang ditanyai apakah mereka menginginkan fitur ini secara default di akun email komersial mereka . Jika orang ingin mengkonfirmasi surat mereka secara kriptografik, maka seperangkat alat yang nyaman dapat digunakan untuk tujuan ini .



Selain itu, ada pertanyaan apakah mungkin menyelesaikan masalah tantangan DKIM dengan bantuan kriptografi baru. Sebagai seorang kriptografer, saya sangat antusias tentang ini. Nyatanya, rekan penulis saya Mike Specter dan Sanu Park dan saya baru-baru ini menulis artikel tentang bagaimana solusi jangka panjang untuk masalah DKIM dapat berhasil. (Mike menulis posting yang bagus tentang ini .) Saya tidak akan mengklaim bahwa solusi kita adalah yang terbaik, tapi saya harap ini menginspirasi seseorang untuk melakukan lebih banyak penelitian.



Namun, terkadang yang paling sederhana adalah solusi terbaik. Dan saat ini, Google, sebagai penyedia email komersial terbesar, dapat memberikan pengaruh yang besar (dan melindungi pelanggannya dari kebocoran di masa mendatang) dengan cara yang sangat sederhana. Dan masih menjadi misteri bagi saya mengapa perusahaan masih belum melakukan ini.






Periklanan



Server virtual dari VDSina dengan perlindungan terhadap serangan DDoS akan memungkinkan Anda untuk meng-host proyek apa pun - semuanya akan bekerja dengan lancar dan dengan waktu kerja tinggi! Anda dapat memilih sendiri parameter server menggunakan konfigurator yang nyaman.






All Articles