
Di masa lalu, sertifikat sering kedaluwarsa karena harus diperbarui secara manual. Orang lupa melakukannya. Dengan munculnya Let's Encrypt dan prosedur pembaruan otomatis, masalahnya tampaknya telah diatasi. Tetapi sebuah
cerita terbaru
dengan Firefox menunjukkan bahwa sebenarnya itu masih relevan. Sayangnya, sertifikat terus kedaluwarsa.
Jika seseorang melewatkan cerita ini, hampir semua ekstensi Firefox tiba-tiba berhenti bekerja pada tengah malam pada 4 Mei 2019.
Ternyata, kegagalan besar muncul karena Mozilla telah
kedaluwarsa sertifikat yang digunakan untuk menandatangani ekstensi. Oleh karena itu, mereka ditandai sebagai "tidak valid" dan tidak lulus tes (
perincian teknis ). Di forum, sebagai solusinya, kami sarankan untuk menonaktifkan verifikasi tanda tangan ekstensi di
about: config atau dengan menerjemahkan jam sistem.
Mozilla dengan cepat merilis patch Firefox 66.0.4, yang menyelesaikan masalah dengan sertifikat yang tidak valid, dan semua ekstensi dikembalikan ke bentuk normalnya. Pengembang merekomendasikan untuk menginstalnya dan
tidak menggunakan solusi untuk melewati verifikasi tanda tangan, karena mereka mungkin bertentangan dengan tambalan.
Namun, kisah ini sekali lagi menunjukkan bahwa berakhirnya sertifikat tetap menjadi masalah mendesak saat ini.
Dalam hal ini, menarik untuk melihat cara yang agak asli bagaimana pengembang protokol
DNSCrypt mengatasi tugas ini. Solusi mereka dapat dibagi menjadi dua bagian. Pertama, ini adalah sertifikat jangka pendek. Kedua, memperingatkan pengguna tentang berakhirnya jangka panjang.
DNSCrypt

DNSCrypt - protokol enkripsi lalu lintas DNS. Ini melindungi komunikasi DNS dari intersep dan MiTM, dan juga memungkinkan Anda untuk mem-bypass pemblokiran pada tingkat permintaan DNS.
Protokol membungkus lalu lintas DNS antara klien dan server dalam desain kriptografi, bekerja pada protokol transport UDP dan TCP. Untuk menggunakannya, klien dan resolver DNS harus mendukung DNSCrypt. Misalnya, sejak Maret 2016, itu diaktifkan di server DNS dan di browser Yandex. Dukungan diumumkan oleh beberapa penyedia lain, termasuk Google dan Cloudflare. Sayangnya, jumlahnya tidak banyak (152 server DNS publik terdaftar di situs web resmi). Tetapi program
dnscrypt-proxy dapat diinstal secara manual pada klien di Linux, Windows dan MacOS. Ada
implementasi server .

Bagaimana cara kerja DNSCrypt? Singkatnya, klien mengambil kunci publik dari penyedia yang dipilih dan dengan bantuannya memeriksa sertifikatnya. Sudah ada kunci publik jangka pendek untuk sesi dan pengidentifikasi paket sandi. Klien disarankan untuk membuat kunci baru untuk setiap permintaan, dan server didorong untuk mengubah kunci
setiap 24 jam . Saat bertukar kunci, algoritma X25519 digunakan, EdDSA untuk penandatanganan, dan XSalsa20-Poly1305 atau XChaCha20-Poly1305 untuk enkripsi blok.
Frank Denis, salah satu pengembang protokol,
menulis bahwa penggantian otomatis setiap 24 jam memecahkan masalah sertifikat yang kadaluwarsa. Pada prinsipnya, klien referensi dnscrypt-proxy menerima sertifikat dengan masa berlaku apa pun, tetapi ini menampilkan peringatan "Periode kunci proxy-dnscrypt untuk server ini terlalu panjang" jika valid lebih dari 24 jam. Pada saat yang sama, gambar Docker dirilis, di mana mereka menerapkan perubahan cepat kunci (dan sertifikat).
Pertama, ini sangat berguna untuk keamanan: jika server dikompromikan atau kunci bocor, lalu lintas kemarin tidak dapat didekripsi. Kuncinya sudah berubah. Ini mungkin akan menjadi masalah untuk implementasi "Undang-Undang Musim Semi", yang memaksa penyedia untuk menyimpan semua lalu lintas, termasuk lalu lintas terenkripsi. Dapat dipahami bahwa nantinya dapat didekripsi jika perlu dengan meminta kunci dari situs. Tetapi dalam kasus ini, situs tidak akan dapat menyediakannya, karena menggunakan kunci jangka pendek, menghapus yang lama.
Tetapi yang paling penting, Denis menulis, kunci jangka pendek memaksa server untuk mengkonfigurasi 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, Anda tidak dapat mengandalkannya, dan orang-orang dapat melupakan berakhirnya sertifikat. Dengan perubahan kunci harian, ini akan terdeteksi secara instan.
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 bekerja lebih dari 24 jam, itu akan bekerja selamanya, tulis Frank Denis. Menurutnya, rekomendasi perubahan kunci harian dalam versi kedua protokol, bersama dengan gambar Docker siap pakai yang mengimplementasikan ini, secara efektif mengurangi jumlah server dengan sertifikat kadaluwarsa, sekaligus meningkatkan keamanan.
Namun, beberapa penyedia masih memutuskan, untuk beberapa alasan teknis, untuk menetapkan masa berlaku sertifikat lebih dari 24 jam. Masalah ini terutama diselesaikan dengan beberapa baris kode di dnscrypt-proxy: pengguna menerima peringatan informasi 30 hari sebelum sertifikat berakhir, pesan lain dengan tingkat keparahan yang lebih tinggi 7 hari sebelum sertifikat berakhir, dan pesan penting jika sertifikat tetap kurang dari 24 jam. Ini hanya berlaku untuk sertifikat yang awalnya memiliki masa berlaku lama.
Pesan semacam itu memungkinkan pengguna untuk memberi tahu operator DNS tentang berakhirnya sertifikat yang akan datang sebelum terlambat.
Mungkin jika semua pengguna Firefox menerima pesan seperti itu, maka seseorang mungkin akan memberi tahu pengembang dan mereka tidak akan membiarkan sertifikat untuk kedaluwarsa. “Saya tidak ingat satu server DNSCrypt dari daftar server DNS publik yang telah kedaluwarsa sertifikat dalam dua atau tiga tahun terakhir,” tulis Frank Denis. Bagaimanapun, mungkin lebih baik untuk memperingatkan pengguna terlebih dahulu, dan tidak mematikan ekstensi tanpa peringatan.

