Bagaimana DNSCrypt memecahkan masalah sertifikat kedaluwarsa dengan memperkenalkan masa berlaku 24 jam

Bagaimana DNSCrypt memecahkan masalah sertifikat kedaluwarsa dengan memperkenalkan masa berlaku 24 jam

Dulu, sertifikat sering kali habis masa berlakunya karena harus diperpanjang secara manual. Orang-orang lupa melakukannya. Dengan munculnya Let's Encrypt dan prosedur pembaruan otomatis, tampaknya masalah tersebut harus diselesaikan. Tapi baru-baru ini Kisah Firefox menunjukkan bahwa hal tersebut sebenarnya masih relevan. Sayangnya, masa berlaku sertifikat masih terus berlanjut.

Jika Anda melewatkan ceritanya, pada tengah malam tanggal 4 Mei 2019, hampir semua ekstensi Firefox tiba-tiba berhenti berfungsi.

Ternyata, kegagalan besar terjadi karena Mozilla sertifikat telah habis masa berlakunya, yang digunakan untuk menandatangani ekstensi. Oleh karena itu, data tersebut ditandai sebagai β€œtidak valid” dan tidak diverifikasi (rincian teknis). Di forum, sebagai solusinya, disarankan untuk menonaktifkan verifikasi tanda tangan ekstensi di about: config atau mengubah jam sistem.

Mozilla dengan cepat merilis patch Firefox 66.0.4, yang memecahkan masalah dengan sertifikat yang tidak valid, dan semua ekstensi kembali normal. Pengembang merekomendasikan untuk menginstalnya dan jangan gunakan tidak ada solusi untuk melewati verifikasi tanda tangan karena mungkin bertentangan dengan patch.

Namun, cerita ini sekali lagi menunjukkan bahwa masa berlaku sertifikat masih menjadi isu mendesak saat ini.

Dalam hal ini, menarik untuk melihat cara yang agak orisinal bagaimana pengembang protokol menangani tugas ini DNSCrypt. Solusinya dapat dibagi menjadi dua bagian. Pertama, ini adalah sertifikat jangka pendek. Kedua, memperingatkan pengguna tentang berakhirnya jangka panjang.

DNSCrypt

Bagaimana DNSCrypt memecahkan masalah sertifikat kedaluwarsa dengan memperkenalkan masa berlaku 24 jamDNSCrypt adalah protokol enkripsi lalu lintas DNS. Ini melindungi komunikasi DNS dari intersepsi dan MiTM, dan juga memungkinkan Anda melewati pemblokiran di tingkat permintaan DNS.

Protokol ini membungkus lalu lintas DNS antara klien dan server dalam konstruksi kriptografi, yang beroperasi melalui protokol transport UDP dan TCP. Untuk menggunakannya, klien dan penyelesai DNS harus mendukung DNSCrypt. Misalnya, sejak Maret 2016, ini telah diaktifkan di server DNS dan browser Yandex. Beberapa penyedia lain juga telah mengumumkan dukungannya, termasuk Google dan Cloudflare. Sayangnya, jumlahnya tidak banyak (152 server DNS publik terdaftar di situs resminya). Tapi programnya dnscrypt-proxy dapat diinstal secara manual di klien Linux, Windows dan MacOS. ada juga implementasi server.

Bagaimana DNSCrypt memecahkan masalah sertifikat kedaluwarsa dengan memperkenalkan masa berlaku 24 jam

Bagaimana cara kerja DNSCrypt? Singkatnya, klien mengambil kunci publik dari penyedia yang dipilih dan menggunakannya untuk memverifikasi sertifikatnya. Kunci publik jangka pendek untuk sesi tersebut dan pengidentifikasi cipher suite sudah ada. Klien didorong untuk membuat kunci baru untuk setiap permintaan, dan server didorong untuk mengubah kunci setiap 24 jam. Saat bertukar kunci, algoritma X25519 digunakan, untuk penandatanganan - EdDSA, untuk enkripsi blok - XSalsa20-Poly1305 atau XChaCha20-Poly1305.

Salah satu pengembang protokol Frank Denis menulisbahwa penggantian otomatis setiap 24 jam memecahkan masalah sertifikat kadaluwarsa. Pada prinsipnya, klien referensi proxy-dnscrypt menerima sertifikat dengan masa berlaku apa pun, tetapi mengeluarkan peringatan "Periode kunci proxy-dnscrypt untuk server ini terlalu lama" jika valid lebih dari 24 jam. Pada saat yang sama, image Docker dirilis, di mana perubahan cepat kunci (dan sertifikat) diterapkan.

Pertama, ini sangat berguna untuk keamanan: jika server disusupi atau kuncinya bocor, lalu lintas kemarin tidak dapat didekripsi. Kuncinya sudah berubah. Hal ini kemungkinan besar akan menimbulkan masalah bagi penerapan Hukum Yarovaya, yang memaksa penyedia untuk menyimpan semua lalu lintas, termasuk lalu lintas terenkripsi. Implikasinya nanti bisa didekripsi jika diperlukan dengan meminta kunci dari situs tersebut. Namun dalam kasus ini, situs tidak dapat menyediakannya, karena menggunakan kunci jangka pendek, menghapus kunci lama.

Namun yang paling penting, tulis Denis, kunci jangka pendek memaksa server untuk mengatur otomatisasi sejak hari pertama. Jika server terhubung ke jaringan dan skrip perubahan kunci tidak dikonfigurasi atau tidak berfungsi, ini akan segera terdeteksi.

Ketika otomatisasi mengubah kunci setiap beberapa tahun, hal itu tidak dapat diandalkan, dan orang-orang dapat melupakan masa berlaku sertifikat. Jika Anda mengganti kunci setiap hari, ini akan langsung terdeteksi.

Pada saat yang sama, jika otomatisasi dikonfigurasi secara normal, maka tidak masalah seberapa sering kunci diubah: setiap tahun, setiap kuartal, atau tiga kali sehari. Jika semuanya berfungsi lebih dari 24 jam, maka semuanya akan berfungsi selamanya, tulis Frank Denis. Menurutnya, rekomendasi rotasi kunci harian pada protokol versi kedua, bersama dengan image Docker siap pakai yang mengimplementasikannya, secara efektif mengurangi jumlah server dengan sertifikat yang kedaluwarsa, sekaligus meningkatkan keamanan.

Namun, beberapa penyedia masih memutuskan, karena beberapa alasan teknis, untuk menetapkan masa berlaku sertifikat lebih dari 24 jam. Masalah ini sebagian besar diselesaikan dengan beberapa baris kode di dnscrypt-proxy: pengguna menerima peringatan informasi 30 hari sebelum masa berlaku sertifikat berakhir, pesan lain dengan tingkat keparahan lebih tinggi 7 hari sebelum masa berlakunya habis, dan pesan penting jika sertifikat masih tersisa. validitas kurang dari 24 jam. Hal ini hanya berlaku untuk sertifikat yang awalnya memiliki masa berlaku yang lama.

Pesan-pesan ini memberi pengguna kesempatan untuk memberi tahu operator DNS tentang masa berlaku sertifikat yang akan datang sebelum terlambat.

Mungkin jika semua pengguna Firefox menerima pesan seperti itu, seseorang mungkin akan memberi tahu pengembangnya dan mereka tidak akan membiarkan sertifikatnya kedaluwarsa. β€œSaya tidak ingat satu pun server DNSCrypt dalam daftar server DNS publik yang sertifikatnya telah habis masa berlakunya dalam dua atau tiga tahun terakhir,” tulis Frank Denis. Bagaimanapun, mungkin lebih baik memperingatkan pengguna terlebih dahulu daripada menonaktifkan ekstensi tanpa peringatan.

Bagaimana DNSCrypt memecahkan masalah sertifikat kedaluwarsa dengan memperkenalkan masa berlaku 24 jam


Sumber: www.habr.com

Tambah komentar