Mozilla melaksanakan CRLite untuk menyemak sijil TLS yang bermasalah

Syarikat Mozilla mengumumkan tentang permulaan ujian dalam binaan setiap malam Firefox mekanisme baharu untuk mengesan sijil yang dibatalkan - CRLite. CRLite membolehkan anda mengatur pemeriksaan pembatalan sijil yang berkesan terhadap pangkalan data yang dihoskan pada sistem pengguna. Pelaksanaan CRLite Mozilla diterbitkan di bawah lesen MPL 2.0 percuma. Kod untuk menjana pangkalan data dan komponen pelayan ditulis dalam Python dan pergi. Bahagian pelanggan ditambahkan pada Firefox untuk membaca data daripada pangkalan data disediakan dalam bahasa Rust.

Pengesahan sijil menggunakan perkhidmatan luaran berdasarkan protokol yang masih digunakan OCSP (Protokol Status Sijil Dalam Talian) memerlukan akses rangkaian yang terjamin, membawa kepada kelewatan yang ketara dalam pemprosesan permintaan (350ms secara purata) dan menghadapi masalah dalam memastikan kerahsiaan (pelayan OCSP yang bertindak balas terhadap permintaan menerima maklumat tentang sijil tertentu, yang boleh digunakan untuk menilai sama ada tapak yang dibuka oleh pengguna). Terdapat juga kemungkinan penyemakan tempatan terhadap senarai C.R.L. (Senarai Pembatalan Sijil), tetapi kelemahan kaedah ini ialah saiz data yang dimuat turun yang sangat besar - pada masa ini pangkalan data sijil yang dibatalkan menduduki kira-kira 300 MB dan pertumbuhannya berterusan.

Untuk menyekat sijil yang telah dikompromi dan dibatalkan oleh pihak berkuasa pensijilan, Firefox telah menggunakan senarai hitam terpusat sejak 2015 OneCRL digabungkan dengan panggilan ke perkhidmatan Penjelajahan Selamat Google untuk mengenal pasti kemungkinan aktiviti berniat jahat. OneCRL, seperti Set CRLS dalam Chrome, bertindak sebagai pautan perantaraan yang mengagregatkan senarai CRL daripada pihak berkuasa pensijilan dan menyediakan perkhidmatan OCSP terpusat tunggal untuk menyemak sijil yang dibatalkan, membolehkan anda tidak menghantar permintaan terus kepada pihak berkuasa pensijilan. Walaupun banyak usaha untuk meningkatkan kebolehpercayaan perkhidmatan pengesahan sijil dalam talian, data telemetri menunjukkan bahawa lebih daripada 7% permintaan OCSP tamat masa (beberapa tahun lalu angka ini ialah 15%).

Secara lalai, jika mustahil untuk mengesahkan melalui OCSP, penyemak imbas menganggap sijil itu sah. Perkhidmatan ini mungkin tidak tersedia kerana masalah rangkaian dan sekatan pada rangkaian dalaman, atau disekat oleh penyerang - untuk memintas semakan OCSP semasa serangan MITM, hanya sekat akses kepada perkhidmatan semakan. Sebahagiannya untuk mengelakkan serangan sedemikian, teknik telah dilaksanakan Wajib Ruji, yang membolehkan anda menganggap ralat akses OCSP atau ketiadaan OCSP sebagai masalah dengan sijil, tetapi ciri ini adalah pilihan dan memerlukan pendaftaran khas sijil.

CRLite membolehkan anda menyatukan maklumat lengkap tentang semua sijil yang dibatalkan ke dalam struktur yang dikemas kini dengan mudah, hanya bersaiz 1 MB, yang membolehkan anda menyimpan pangkalan data CRL yang lengkap di sisi pelanggan.
Penyemak imbas akan dapat menyegerakkan salinan data mengenai sijil yang dibatalkan setiap hari, dan pangkalan data ini akan tersedia dalam sebarang syarat.

CRLite menggabungkan maklumat daripada Ketelusan Sijil, log awam semua sijil yang dikeluarkan dan dibatalkan, dan keputusan pengimbasan sijil di Internet (pelbagai senarai CRL pihak berkuasa pensijilan dikumpul dan maklumat tentang semua sijil yang diketahui diagregatkan). Data dibungkus menggunakan cascading Penapis mekar, struktur kebarangkalian yang membenarkan pengesanan palsu bagi elemen yang hilang, tetapi mengecualikan peninggalan elemen sedia ada (iaitu, dengan kebarangkalian tertentu, positif palsu untuk sijil yang betul adalah mungkin, tetapi sijil yang dibatalkan dijamin untuk dikenal pasti).

Untuk menghapuskan positif palsu, CRLite telah memperkenalkan tahap penapis pembetulan tambahan. Selepas menghasilkan struktur, semua rekod sumber dicari dan sebarang positif palsu dikenal pasti. Berdasarkan keputusan semakan ini, struktur tambahan dicipta, yang dilantunkan pada yang pertama dan membetulkan positif palsu yang terhasil. Operasi diulang sehingga positif palsu semasa pemeriksaan kawalan dihapuskan sepenuhnya. Lazimnya, membuat 7-10 lapisan sudah memadai untuk menampung semua data sepenuhnya. Memandangkan keadaan pangkalan data, disebabkan penyegerakan berkala, ketinggalan sedikit di belakang keadaan semasa CRL, semakan sijil baharu yang dikeluarkan selepas kemas kini terakhir pangkalan data CRLite dijalankan menggunakan protokol OCSP, termasuk menggunakan Stapel OCSP (tindak balas OCSP yang diperakui oleh pihak berkuasa pensijilan dihantar oleh pelayan yang melayani tapak apabila merundingkan sambungan TLS).

Mozilla melaksanakan CRLite untuk menyemak sijil TLS yang bermasalah

Menggunakan penapis Bloom, sekeping maklumat Disember daripada WebPKI, meliputi 100 juta sijil aktif dan 750 ribu sijil yang dibatalkan, dapat dimuatkan ke dalam struktur bersaiz 1.3 MB. Proses penjanaan struktur agak intensif sumber, tetapi ia dilakukan pada pelayan Mozilla dan pengguna diberi kemas kini siap sedia. Contohnya, dalam bentuk binari, data sumber yang digunakan semasa penjanaan memerlukan kira-kira 16 GB memori apabila disimpan dalam DBMS Redis, dan dalam bentuk perenambelasan, pembuangan semua nombor siri sijil mengambil masa kira-kira 6.7 GB. Proses mengagregatkan semua sijil yang dibatalkan dan aktif mengambil masa kira-kira 40 minit, dan proses menjana struktur berpakej berdasarkan penapis Bloom mengambil masa 20 minit lagi.

Mozilla pada masa ini memastikan bahawa pangkalan data CRLite dikemas kini empat kali sehari (tidak semua kemas kini dihantar kepada pelanggan). Penjanaan kemas kini delta masih belum dilaksanakan - penggunaan bsdiff4, digunakan untuk membuat kemas kini delta untuk keluaran, tidak memberikan kecekapan yang mencukupi untuk CRLite dan kemas kini adalah besar yang tidak munasabah. Untuk menghapuskan kelemahan ini, ia dirancang untuk mengolah semula format struktur storan untuk menghapuskan pembinaan semula dan pemadaman lapisan yang tidak perlu.

CRLite kini berfungsi dalam Firefox dalam mod pasif dan digunakan selari dengan OCSP untuk mengumpul statistik tentang operasi yang betul. CRLite boleh ditukar kepada mod imbasan utama; untuk melakukan ini, anda perlu menetapkan parameter security.pki.crlite_mode = 2 dalam about:config.

Mozilla melaksanakan CRLite untuk menyemak sijil TLS yang bermasalah

Sumber: opennet.ru

Tambah komen