Mozilla mengimplementasikan CRLite untuk memeriksa sertifikat TLS yang bermasalah

Perusahaan Mozilla mengumumkan tentang dimulainya pengujian di Firefox versi malam, mekanisme baru untuk mendeteksi sertifikat yang dicabut - CRlite. CRLite memungkinkan Anda mengatur pemeriksaan pencabutan sertifikat yang efektif terhadap database yang dihosting di sistem pengguna. Implementasi CRLite Mozilla diterbitkan di bawah lisensi MPL 2.0 gratis. Kode untuk menghasilkan database dan komponen server ditulis Ular sanca dan pergi. Bagian klien ditambahkan ke Firefox untuk membaca data dari database siap dalam bahasa Rust.

Verifikasi sertifikat menggunakan layanan eksternal berdasarkan protokol yang masih digunakan OKSP (Protokol Status Sertifikat Online) memerlukan akses jaringan yang terjamin, menyebabkan penundaan yang signifikan dalam pemrosesan permintaan (rata-rata 350 ms) dan memiliki masalah dalam memastikan kerahasiaan (server OCSP yang merespons permintaan menerima informasi tentang sertifikat tertentu, yang dapat digunakan untuk menilai apakah sertifikat tersebut situs yang dibuka pengguna). Ada juga kemungkinan pemeriksaan lokal terhadap daftar CRL (Daftar Pencabutan Sertifikat), tetapi kelemahan metode ini adalah ukuran data yang diunduh sangat besar - saat ini database sertifikat yang dicabut menempati sekitar 300 MB dan pertumbuhannya terus berlanjut.

Untuk memblokir sertifikat yang telah disusupi dan dicabut oleh otoritas sertifikasi, Firefox telah menggunakan daftar hitam terpusat sejak tahun 2015 SatuCRL dikombinasikan dengan panggilan ke layanan Penjelajahan Aman Google untuk mengidentifikasi kemungkinan aktivitas berbahaya. OneCRL, seperti CRLSet di Chrome, bertindak sebagai tautan perantara yang mengumpulkan daftar CRL dari otoritas sertifikasi dan menyediakan satu layanan OCSP terpusat untuk memeriksa sertifikat yang dicabut, sehingga memungkinkan untuk tidak mengirim permintaan langsung ke otoritas sertifikasi. Meskipun banyak upaya untuk meningkatkan keandalan layanan verifikasi sertifikat online, data telemetri menunjukkan bahwa lebih dari 7% permintaan OCSP telah habis waktunya (beberapa tahun yang lalu angkanya adalah 15%).

Secara default, jika verifikasi melalui OCSP tidak memungkinkan, browser menganggap sertifikat tersebut valid. Layanan mungkin tidak tersedia karena masalah jaringan dan pembatasan jaringan internal, atau diblokir oleh penyerang - untuk melewati pemeriksaan OCSP selama serangan MITM, cukup blokir akses ke layanan pemeriksaan. Sebagian untuk mencegah serangan tersebut, suatu teknik telah diterapkan Harus-pokok, yang memungkinkan Anda menganggap kesalahan akses OCSP atau ketidaktersediaan OCSP sebagai masalah pada sertifikat, namun fitur ini bersifat opsional dan memerlukan registrasi sertifikat khusus.

CRLite memungkinkan Anda menggabungkan informasi lengkap tentang semua sertifikat yang dicabut ke dalam struktur yang mudah diperbarui, hanya berukuran 1 MB, yang memungkinkan untuk menyimpan database CRL lengkap di sisi klien.
Browser akan dapat menyinkronkan salinan data tentang sertifikat yang dicabut setiap hari, dan database ini akan tersedia dalam kondisi apa pun.

CRLite menggabungkan informasi dari Transparansi Sertifikat, log publik dari semua sertifikat yang diterbitkan dan dicabut, dan hasil pemindaian sertifikat di Internet (berbagai daftar CRL dari otoritas sertifikasi dikumpulkan dan informasi tentang semua sertifikat yang diketahui dikumpulkan). Data dikemas menggunakan cascading Filter mekar, struktur probabilistik yang memungkinkan deteksi palsu atas elemen yang hilang, namun mengecualikan penghilangan elemen yang ada (yaitu, dengan probabilitas tertentu, hasil positif palsu untuk sertifikat yang benar mungkin terjadi, tetapi sertifikat yang dicabut dijamin dapat diidentifikasi).

Untuk menghilangkan kesalahan positif, CRLite telah memperkenalkan level filter korektif tambahan. Setelah membuat struktur, semua catatan sumber dicari dan setiap kesalahan positif diidentifikasi. Berdasarkan hasil pemeriksaan ini, struktur tambahan dibuat, yang diturunkan ke struktur pertama dan mengoreksi kesalahan positif yang dihasilkan. Operasi ini diulangi sampai kesalahan positif selama pemeriksaan kontrol benar-benar dihilangkan. Biasanya, membuat 7-10 lapisan sudah cukup untuk mencakup semua data sepenuhnya. Karena status database, karena sinkronisasi berkala, sedikit tertinggal dari status CRL saat ini, pemeriksaan sertifikat baru yang diterbitkan setelah pembaruan terakhir database CRLite dilakukan menggunakan protokol OCSP, termasuk menggunakan Stapel OCSP (respons OCSP yang disertifikasi oleh otoritas sertifikasi dikirimkan oleh server yang melayani situs saat menegosiasikan koneksi TLS).

Mozilla mengimplementasikan CRLite untuk memeriksa sertifikat TLS yang bermasalah

Dengan menggunakan filter Bloom, potongan informasi bulan Desember dari WebPKI, yang mencakup 100 juta sertifikat aktif dan 750 ribu sertifikat yang dicabut, dapat dikemas ke dalam struktur berukuran 1.3 MB. Proses pembuatan struktur cukup memakan banyak sumber daya, tetapi dilakukan di server Mozilla dan pengguna diberikan pembaruan yang sudah jadi. Misalnya, dalam bentuk biner, data sumber yang digunakan selama pembuatan memerlukan sekitar 16 GB memori saat disimpan di DBMS Redis, dan dalam bentuk heksadesimal, dump semua nomor seri sertifikat memerlukan sekitar 6.7 GB. Proses menggabungkan semua sertifikat yang dicabut dan aktif memakan waktu sekitar 40 menit, dan proses pembuatan struktur paket berdasarkan filter Bloom membutuhkan waktu 20 menit lagi.

Mozilla saat ini memastikan bahwa database CRLite diperbarui empat kali sehari (tidak semua pembaruan dikirimkan ke klien). Pembuatan pembaruan delta belum diterapkan - penggunaan bsdiff4, yang digunakan untuk membuat pembaruan delta untuk rilis, tidak memberikan efisiensi yang memadai untuk CRLite dan pembaruannya terlalu besar. Untuk menghilangkan kelemahan ini, direncanakan untuk mengerjakan ulang format struktur penyimpanan untuk menghilangkan pembangunan kembali dan penghapusan lapisan yang tidak perlu.

CRLite saat ini bekerja di Firefox dalam mode pasif dan digunakan secara paralel dengan OCSP untuk mengumpulkan statistik tentang pengoperasian yang benar. CRLite dapat dialihkan ke mode pemindaian utama, untuk melakukan ini, Anda perlu mengatur parameter security.pki.crlite_mode = 2 di about:config.

Mozilla mengimplementasikan CRLite untuk memeriksa sertifikat TLS yang bermasalah

Sumber: opennet.ru

Tambah komentar