Kerentanan di TLS memungkinkan penentuan kunci untuk koneksi berdasarkan sandi DH

Mengungkapkan informasi tentang yang baru kerentanan (CVE-2020-1968) dalam protokol TLS, dengan nama kode
Rakun dan memungkinkan, dalam keadaan yang jarang terjadi, untuk menentukan kunci utama awal (pra-master), yang dapat digunakan untuk mendekripsi koneksi TLS, termasuk HTTPS, saat mencegat lalu lintas transit (MITM). Perlu dicatat bahwa serangan tersebut sangat sulit untuk diterapkan secara praktis dan lebih bersifat teoritis. Untuk melakukan serangan, diperlukan konfigurasi khusus dari server TLS dan kemampuan untuk mengukur waktu pemrosesan server dengan sangat akurat.

Masalahnya hadir langsung dalam spesifikasi TLS dan hanya mempengaruhi koneksi menggunakan cipher berdasarkan protokol pertukaran kunci DH (Diffie-Hellman, TLS_DH_*"). Dengan cipher ECDH, masalah tidak terjadi dan tetap aman. Hanya protokol TLS hingga versi 1.2 yang rentan; TLS 1.3 tidak terpengaruh oleh masalah ini. Kerentanan terjadi pada implementasi TLS yang menggunakan kembali kunci rahasia DH di koneksi TLS yang berbeda (perilaku ini terjadi pada sekitar 4.4% server Alexa Top 1M).

Di OpenSSL 1.0.2e dan rilis sebelumnya, kunci utama DH digunakan kembali di semua koneksi server kecuali opsi SSL_OP_SINGLE_DH_USE disetel secara eksplisit. Sejak OpenSSL 1.0.2f, kunci utama DH hanya digunakan kembali saat menggunakan sandi DH statis ("DH-*", misalnya "DH-RSA-AES256-SHA"). Kerentanan tidak muncul di OpenSSL 1.1.1, karena cabang ini tidak menggunakan kunci utama DH dan tidak menggunakan sandi DH statis.

Saat menggunakan metode pertukaran kunci DH, kedua sisi koneksi menghasilkan kunci pribadi acak (selanjutnya disebut kunci β€œa” dan kunci β€œb”), berdasarkan kunci publik mana (ga mod p dan gb mod p) dihitung dan dikirim. Setelah masing-masing pihak menerima kunci publik, kunci utama umum (gab mod p) dihitung, yang digunakan untuk menghasilkan kunci sesi. Serangan Raccoon memungkinkan Anda menentukan kunci utama melalui analisis saluran samping, berdasarkan fakta bahwa spesifikasi TLS hingga versi 1.2 mengharuskan semua byte nol terkemuka dari kunci utama dibuang sebelum perhitungan yang melibatkannya.

Termasuk kunci utama terpotong diteruskan ke fungsi pembuatan kunci sesi, yang didasarkan pada fungsi hash dengan penundaan berbeda saat memproses data berbeda. Mengukur waktu operasi kunci yang dilakukan oleh server secara akurat memungkinkan penyerang menentukan petunjuk (oracle) yang memungkinkan untuk menilai apakah kunci utama dimulai dari awal atau tidak. Misalnya, penyerang dapat mencegat kunci publik (ga) yang dikirim oleh klien, mengirimkannya kembali ke server dan menentukan
apakah kunci utama yang dihasilkan dimulai dari nol.

Dengan sendirinya, mendefinisikan satu byte kunci tidak menghasilkan apa-apa, tetapi dengan mencegat nilai "ga" yang dikirimkan oleh klien selama negosiasi koneksi, penyerang dapat menghasilkan sekumpulan nilai lain yang terkait dengan "ga" dan mengirimkannya ke server dalam sesi negosiasi koneksi terpisah. Dengan menghasilkan dan mengirimkan nilai β€œgri*ga”, penyerang dapat, melalui analisis perubahan penundaan respons server, menentukan nilai yang mengarah pada penerimaan kunci utama mulai dari nol. Setelah menentukan nilai tersebut, penyerang dapat membuat serangkaian persamaan solusi masalah nomor tersembunyi dan hitung kunci utama asli.

Kerentanan di TLS memungkinkan penentuan kunci untuk koneksi berdasarkan sandi DH

Kerentanan OpenSSL ditugaskan tingkat bahaya yang rendah, dan perbaikannya dikurangi dengan memindahkan cipher bermasalah β€œTLS_DH_*” di rilis 1.0.2w ke kategori cipher dengan tingkat perlindungan yang tidak memadai (β€œweak-ssl-ciphers”), yang dinonaktifkan secara default . Pengembang Mozilla melakukan hal yang sama, matikan di perpustakaan NSS yang digunakan di Firefox, rangkaian sandi DH dan DHE. Pada Firefox 78, sandi yang bermasalah dinonaktifkan. Dukungan Chrome untuk DH dihentikan pada tahun 2016. Pustaka BearSSL, BoringSSL, Botan, Mbed TLS, dan s2n tidak terpengaruh oleh masalah ini karena tidak mendukung sandi DH atau varian statis sandi DH.

Masalah tambahan dicatat secara terpisah (CVE-2020-5929) di tumpukan TLS perangkat F5 BIG-IP, membuat serangan menjadi lebih realistis. Secara khusus, penyimpangan dalam perilaku perangkat dengan adanya byte nol di awal kunci utama telah diidentifikasi, yang dapat digunakan sebagai pengganti pengukuran latensi perhitungan yang tepat.

Sumber: opennet.ru

Tambah komentar