Perusahaan Mozilla tentang dimulainya pengujian mekanisme baru untuk mendeteksi sertifikat yang dicabut di versi uji coba harian Firefox — CRLite memungkinkan pemeriksaan pencabutan sertifikat yang efisien terhadap basis data yang dihosting di sistem pengguna. Implementasi CRLite sedang dikembangkan di Mozilla. di bawah lisensi MPL 2.0 gratis. Kode untuk pembuatan basis data dan komponen server ditulis dalam dan Go. Komponen sisi klien untuk membaca data dari basis data ditambahkan ke Firefox. dalam bahasa Rust.
Verifikasi sertifikat, yang masih digunakan hingga saat ini, melibatkan layanan eksternal berdasarkan protokol tersebut. (Online Certificate Status Protocol) memerlukan akses jaringan yang terjamin, menimbulkan penundaan yang signifikan dalam pemrosesan permintaan (rata-rata 350 ms), dan memiliki masalah privasi (server OCSP yang merespons menerima informasi tentang sertifikat tertentu, yang dapat digunakan untuk menentukan situs web mana yang dikunjungi pengguna). Pemeriksaan lokal terhadap daftar juga tersedia. (Daftar Pencabutan Sertifikat), tetapi kelemahan dari metode ini adalah ukuran data yang diunduh sangat besar - saat ini basis data sertifikat yang dicabut membutuhkan sekitar 300 MB dan terus bertambah.
Firefox telah menggunakan daftar hitam terpusat untuk memblokir sertifikat yang telah disusupi atau dicabut oleh otoritas sertifikasi sejak tahun 2015. dikombinasikan dengan permintaan ke layanan untuk mengidentifikasi kemungkinan aktivitas berbahaya. OneCRL, seperti Di Chrome, ia bertindak sebagai perantara yang mengumpulkan CRL dari CA dan menyediakan layanan OCSP terpusat tunggal untuk memeriksa sertifikat yang dicabut, sehingga menghilangkan kebutuhan untuk mengirim permintaan langsung ke CA. Terlepas dari upaya ekstensif untuk meningkatkan keandalan layanan verifikasi sertifikat daring, data telemetri menunjukkan bahwa lebih dari 7% permintaan OCSP mengalami batas waktu (beberapa tahun yang lalu, angka ini adalah 15%).
Secara default, jika verifikasi OCSP tidak memungkinkan, browser menganggap sertifikat tersebut valid. Layanan tersebut mungkin tidak tersedia karena masalah jaringan dan pembatasan jaringan internal, atau mungkin diblokir oleh penyerang. Untuk melewati verifikasi OCSP selama serangan man-in-the-middle, cukup dengan memblokir akses ke layanan verifikasi. Sebuah teknik telah diimplementasikan untuk mencegah sebagian serangan tersebut. , yang memungkinkan kesalahan permintaan OCSP atau ketidaktersediaan OCSP diinterpretasikan sebagai masalah pada sertifikat, tetapi fitur ini bersifat opsional dan memerlukan desain sertifikat khusus.
CRLite memungkinkan Anda untuk mengkonsolidasikan informasi lengkap tentang semua sertifikat yang dicabut ke dalam struktur yang mudah diperbarui, hanya berukuran 1 MB, sehingga Anda dapat menyimpan seluruh basis data CRL di sisi klien.
Browser akan dapat menyinkronkan salinan datanya tentang sertifikat yang dicabut setiap hari, dan basis data ini akan tersedia dalam kondisi apa pun.
CRLite menggabungkan informasi dari , sebuah catatan publik dari semua sertifikat yang diterbitkan dan dicabut, serta hasil pemindaian sertifikat di Internet (berbagai daftar CRL dari otoritas sertifikasi dikumpulkan dan informasi tentang semua sertifikat yang dikenal diagregasikan). Data tersebut dikemas menggunakan metode cascading. , sebuah struktur probabilistik yang memungkinkan deteksi positif palsu terhadap elemen yang hilang, tetapi mengecualikan penghilangan elemen yang ada (yaitu, dengan probabilitas tertentu, positif palsu untuk sertifikat yang valid dimungkinkan, tetapi sertifikat yang dicabut dijamin akan terdeteksi).
Untuk menghilangkan false positive, CRLite telah memperkenalkan lapisan koreksi filter tambahan. Setelah struktur dihasilkan, semua catatan sumber diiterasi dan false positive diidentifikasi. Berdasarkan hasil pemeriksaan ini, struktur tambahan dibuat, yang mengalir ke struktur pertama dan mengoreksi false positive yang terjadi. Operasi ini diulang sampai false positive selama pemeriksaan kontrol sepenuhnya dihilangkan. Biasanya, membuat 7-10 lapisan sudah cukup untuk mencakup semua data sepenuhnya. Karena status basis data sedikit tertinggal dari status CRL saat ini karena sinkronisasi periodik, verifikasi sertifikat baru yang diterbitkan sejak pembaruan basis data CRLite terakhir dilakukan menggunakan protokol OCSP, termasuk penggunaan teknik tersebut. (respons OCSP yang disertifikasi oleh otoritas sertifikasi dikirimkan oleh server yang melayani situs saat menegosiasikan koneksi TLS).
Dengan menggunakan filter Bloom, snapshot data WebPKI bulan Desember, yang mencakup 100 juta sertifikat aktif dan 750 sertifikat yang dicabut, dikompresi menjadi struktur berukuran 1.3 MB. Proses pembuatan struktur ini cukup memakan banyak sumber daya, tetapi berjalan di server Mozilla, dan pengguna menerima pembaruan yang sudah jadi. Misalnya, data biner yang digunakan untuk pembuatan membutuhkan sekitar 16 GB memori saat disimpan dalam DBMS Redis, sedangkan dump heksadesimal dari semua nomor seri sertifikat membutuhkan sekitar 6.7 GB. Proses penggabungan semua sertifikat yang dicabut dan aktif membutuhkan waktu sekitar 40 menit, dan pembuatan struktur terkompresi menggunakan filter Bloom membutuhkan waktu tambahan 20 menit.
Mozilla saat ini memperbarui basis data CRLite empat kali sehari (tidak semua pembaruan dikirimkan ke klien). Pembuatan pembaruan delta belum diimplementasikan—bsdiff4 yang digunakan untuk membuat pembaruan rilis delta tidak memberikan kinerja yang diperlukan untuk CRLite, sehingga menghasilkan pembaruan yang terlalu besar. Untuk mengatasi kekurangan ini, rencana sedang disusun untuk mengubah format struktur penyimpanan guna menghilangkan pembangunan ulang dan penghapusan lapisan yang tidak perlu.
Saat ini, CRLite beroperasi dalam mode pasif di Firefox dan digunakan secara paralel dengan OCSP untuk mengumpulkan statistik tentang operasinya yang benar. CRLite dapat dialihkan ke mode verifikasi utama dengan mengatur parameter security.pki.crlite_mode ke 2 di about:config.
Sumber: opennet.ru
