Penghentian sertifikat akar AddTrust menyebabkan kerusakan pada sistem OpenSSL dan GnuTLS

Pada tanggal 30 Mei, masa berlaku sertifikat akar selama 20 tahun telah berakhir Tambahkan KepercayaanYang terapan untuk menghasilkan sertifikat bertanda tangan silang dari salah satu otoritas sertifikasi terbesar Sectigo (Comodo). Penandatanganan silang diperbolehkan untuk kompatibilitas dengan perangkat lama yang tidak memiliki sertifikat akar USERTrust baru yang ditambahkan ke penyimpanan sertifikat akarnya.

Penghentian sertifikat akar AddTrust menyebabkan kerusakan pada sistem OpenSSL dan GnuTLS

Secara teoritis, penghentian sertifikat akar AddTrust hanya akan menyebabkan pelanggaran kompatibilitas dengan sistem lama (Android 2.3, Windows XP, Mac OS X 10.11, iOS 9, dll.), karena sertifikat akar kedua yang digunakan dalam tanda tangan silang tetap ada browser yang valid dan modern memperhitungkannya saat memeriksa rantai kepercayaan. Saat latihan muncul Masalah dengan verifikasi tanda tangan silang pada klien TLS non-browser, termasuk yang berbasis OpenSSL 1.0.x dan GnuTLS. Sambungan aman tidak lagi dibuat dengan kesalahan yang menunjukkan bahwa sertifikat kedaluwarsa jika server menggunakan sertifikat Sectigo yang dihubungkan oleh rantai kepercayaan ke sertifikat akar AddTrust.

Jika pengguna browser modern tidak menyadari keusangan sertifikat root AddTrust saat memproses sertifikat Sectigo yang ditandatangani silang, maka masalah mulai muncul di berbagai aplikasi pihak ketiga dan penangan sisi server, yang menyebabkan pelanggaran bekerja banyak infrastruktur yang menggunakan saluran komunikasi terenkripsi untuk interaksi antar komponen.

Misalnya saja ada masalah dengan akses ke beberapa repositori paket di Debian dan Ubuntu (apt mulai menghasilkan kesalahan verifikasi sertifikat), permintaan dari skrip yang menggunakan utilitas "curl" dan "wget" mulai gagal, kesalahan diamati saat menggunakan Git, dilanggar Platform streaming Roku berfungsi, penangan tidak lagi dipanggil Garis и DataDog, dimulai terjadi crash di aplikasi Heroku, berhenti Klien OpenLDAP terhubung, masalah pengiriman email ke SMTPS dan server SMTP dengan STARTTLS terdeteksi. Selain itu, masalah diamati pada berbagai skrip Ruby, PHP dan Python yang menggunakan modul dengan klien http. Masalah peramban mempengaruhi Epiphany, yang berhenti memuat daftar pemblokiran iklan.

Program Go tidak terpengaruh oleh masalah ini karena Go menawarkan implementasi sendiri TLS.

Itu seharusnyabahwa masalah tersebut memengaruhi rilis distribusi lama (termasuk Debian 9, Ubuntu 16.04, RHEL 6/7) yang menggunakan cabang OpenSSL bermasalah, tetapi bermasalah terwujud dengan sendirinya juga ketika manajer paket APT berjalan di rilis terbaru Debian 10 dan Ubuntu 18.04/20.04, karena APT menggunakan perpustakaan GnuTLS. Inti masalahnya adalah banyak perpustakaan TLS/SSL yang mengurai sertifikat sebagai rantai linier, sedangkan menurut RFC 4158, sertifikat dapat mewakili grafik melingkar terdistribusi terarah dengan beberapa jangkar kepercayaan yang perlu diperhitungkan. Tentang kelemahan ini di OpenSSL dan GnuTLS adalah dikenal bertahun-tahun. Di OpenSSL masalahnya diperbaiki di cabang 1.1.1, dan di gnuTLS tetap tidak dikoreksi.

Sebagai solusinya, disarankan untuk menghapus sertifikat “AddTrust External CA Root” dari penyimpanan sistem (misalnya, hapus dari /etc/ca-certificates.conf dan /etc/ssl/certs, lalu jalankan “update-ca -certificates -f -v"), setelah itu OpenSSL mulai memproses sertifikat yang ditandatangani secara normal dengan partisipasinya. Saat menggunakan manajer paket APT, Anda dapat menonaktifkan verifikasi sertifikat untuk setiap permintaan dengan risiko yang Anda tanggung sendiri (misalnya, “apt-get update -o Acquire::https::download.jitsi.org::Verify-Peer=false”) .

Untuk memblokir masalah di Fedora и RHEL Diusulkan untuk menambahkan sertifikat AddTrust ke daftar hitam:

trust dump —filter «pkcs11:id=%AD%BD%98%7A%34%B4%26%F7%FA%C4%26%54%EF%03%BD%E0%24%CB%54%1A;type=cert» \
> /etc/pki/ca-trust/source/blacklist/addtrust-external-root.p11-kit
ekstrak pembaruan-ca-trust

Tapi metode ini tidak bekerja untuk GnuTLS (misalnya, kesalahan verifikasi sertifikat terus muncul saat menjalankan utilitas wget).

Di sisi server Anda bisa berubah pesanan mencantumkan sertifikat dalam rantai kepercayaan yang dikirim oleh server ke klien (jika sertifikat yang terkait dengan “AddTrust External CA Root” dihapus dari daftar, maka verifikasi klien akan berhasil). Untuk memeriksa dan menghasilkan rantai kepercayaan baru, Anda dapat menggunakan layanan ini Whatsmychaincert.com. Sectigo juga asalkan sertifikat perantara alternatif yang ditandatangani silang "Layanan Sertifikat AAA“, yang akan berlaku hingga tahun 2028 dan akan menjaga kompatibilitas dengan versi OS yang lebih lama.

Tambahan: Masalah juga dimanifestasikan di LibreSSL.

Sumber: opennet.ru

Tambah komentar