Musim panas lalu Intel menerbitkan panduan seputar mode instruksi Data Operand Independent Timing (DOIT) yang dapat diaktifkan dengan prosesor Intel generasi terbaru untuk memastikan eksekusi waktu konstan untuk subset set instruksi Intel, yang dapat menjadi sangat penting untuk algoritme kriptografi. Diskusi pengembang kernel Linux gagal tahun lalu karena menangani fungsionalitas DOIT ini untuk apa yang digambarkan sebagai kerentanan CPU dengan CPU Intel terbaru. Namun, sekarang tambalan kernel Linux dari pengembang Google akan mengaktifkan perubahan ini tanpa syarat untuk CPU Intel yang lebih baru tetapi menimbulkan masalah kinerja.
Tahun lalu diungkapkan oleh Intel dan juga Arm bahwa instruksi pada prosesor terbaru dan mendatang tidak dijamin ” waktu konstan” sehubungan dengan operan datanya kecuali jika flag register khusus model khusus ditetapkan. Hal ini menimbulkan kekhawatiran terutama seputar kode kriptografi untuk Linux bahwa tidak ada lagi jaminan waktu yang konstan dan bahwa waktu eksekusi instruksi dapat bervariasi tergantung pada data yang dioperasikan. Eksekusi waktu yang konstan diperlukan untuk menghindari kemungkinan serangan saluran samping. Tetapi dalam mengaktifkan bendera Intel baru untuk memastikan waktu yang konstan, ia datang dengan implikasi kinerja yang diakui. Insinyur Google dan pengembang kernel Linux lama Eric Biggers mengirimkan tambalan minggu ini untuk mengaktifkan kontrol Mode Pengaturan Waktu Independen Data Intel yang Dioperasikan untuk kernel Linux yang akan aktifkan bendera ini secara default untuk CPU Intel yang lebih baru. Ini diaktifkan secara default tetapi menyediakan kenop untuk menonaktifkan mitigasi/fitur keamanan ini juga. Biggers menjelaskan masalah dan motivasi dengan pesan tambalan ini:
Menurut dokumentasi yang diterbitkan Intel baru-baru ini, CPU Intel yang didasarkan pada Ice Lake dan mikroarsitektur selanjutnya tidak menjamin “waktu independen operan data” secara default. Yaitu, waktu eksekusi instruksi mungkin bergantung pada nilai data yang dioperasikan. Hal ini berlaku untuk berbagai macam instruksi, termasuk banyak instruksi yang banyak digunakan dalam kriptografi dan selalu dianggap sebagai waktu konstan, mis. tambahan, XOR, dan bahkan instruksi AES-NI.
Algoritme kriptografi memerlukan instruksi waktu konstan untuk mencegah serangan saluran samping yang memulihkan kunci kriptografi berdasarkan waktu eksekusi. Oleh karena itu, tanpa mitigasi kerentanan CPU ini, umumnya tidak mungkin untuk melakukan kriptografi dengan aman pada CPU Intel terbaru. Nbsp
Kemungkinan juga bahwa kerentanan CPU ini dapat mengekspos data kernel istimewa ke proses ruang pengguna yang tidak dilindungi secara lebih umum.
Untuk mengurangi kerentanan CPU ini, dimungkinkan untuk mengaktifkan “Data Operand Independent Timing Mode” (DOITM) dengan menyetel sedikit di MSR. Sementara dokumentasi Intel menunjukkan bahwa bit ini hanya boleh disetel jika “diperlukan”, itu sangat tidak praktis, mengingat fakta bahwa kriptografi dapat terjadi hampir di mana saja di kernel dan ruang pengguna, dan fakta bahwa seluruh kernel mungkin perlu dilindungi. anyway.
Oleh karena itu, mari aktifkan DOITM secara global secara default untuk memperbaiki kerentanan ini. Paling-paling ini memberikan “optimasi” pada CPU terbaru, memulihkan perilaku yang benar dari CPU sebelumnya.
Dokumentasi kernel yang diusulkan untuk kerentanan Data Operand Dependent Timing (DODT) mengklasifikasikannya sebagai:
DODT – Data Operand Dependent Timing ==== ================================
Data Operand Dependent Timing (DODT) adalah kerentanan CPU yang membuat waktu eksekusi instruksi bergantung pada nilai data yang dioperasikan. Kerentanan ini berpotensi memungkinkan serangan saluran samping pada data, termasuk kunci kriptografi. Sebagian besar algoritme kriptografi mengharuskan berbagai instruksi dalam waktu konstan untuk mencegah serangan saluran samping. CPU yang Terpengaruh
————-
Kerentanan ini memengaruhi prosesor keluarga Intel Core yang berbasis di Ice Lake dan mikroarsitektur yang lebih baru, dan prosesor keluarga Intel Atom berdasarkan Gracemont dan mikroarsitektur yang lebih baru.
Mitigation ———-
Mitigation dari kerentanan ini melibatkan pengaturan bit Model Specific Register (MSR) untuk mengaktifkan Data Operand Independent Timing Mode (DOITM .
Secara default, kernel melakukan ini pada semua CPU. Mitigasi ini bersifat global, sehingga berlaku untuk kernel dan userspace.
Mitigasi ini dapat dinonaktifkan dengan menambahkan “doitm=off“ ke baris perintah kernel. Ini juga merupakan salah satu mitigasi yang dapat dinonaktifkan oleh panduan “mitigations=off“.
Intel yang dipublikasikan tentang Data Operand Independent Timing menjabarkan risiko kinerja yang jelas dari mode operasi ini: DOIT memerlukan penonaktifan pengoptimalan perangkat keras dan/ atau fitur kinerja pada beberapa prosesor; misalnya, mengaktifkan pengaturan waktu independen operan data mungkin menonaktifkan prapengambilan yang bergantung pada data. Ini berarti bahwa mode DOIT mungkin berdampak pada performa, dan Intel memperkirakan dampak performa dari mode ini mungkin jauh lebih tinggi pada prosesor mendatang. Panduan
Intel pada dasarnya adalah untuk menggunakan mode DOIT ini dengan hemat dan untuk digunakan oleh perangkat lunak yang telah menerapkan teknik lain yang direkomendasikan Intel untuk memitigasi saluran sisi pengaturan waktu perangkat lunak. Kernel Linux dengan basis kode masif yang dibangun selama bertahun-tahun belum tentu selaras dengan semua teknik perangkat lunak yang direkomendasikan Intel. Yang agak mengkhawatirkan adalah bahwa mode DOIT ini mungkin “jauh lebih tinggi” untuk prosesor masa depan. Nbsp
Terutama dengan patch milis kernel Linux tidak ada angka kinerja atau indikasi seberapa parah penalti kinerja, dilaporkan karena kurangnya perangkat keras dan mencari pengujian dari komunitas kernel.
Mengikuti tambalan oleh Eric Biggers itu, diskusi kernel terjadi apakah seluruh kernel perlu dilindungi, apakah mungkin untuk hanya melindungi operasi kriptografi di dalam kernel, dan jika tidak menggunakan selimut ini memungkinkan bagaimana bisa ruang pengguna juga dilindungi dengan baik. Tidak ada konsensus pada saat ini, tetapi mengingat kurangnya angka yang solid … Saya telah menjalankan beberapa tolok ukur awal pada sistem Intel generasi saat ini.
Itulah berita seputar Pengembang Linux Mengevaluasi Mitigasi Keamanan “DOITM” Baru Untuk CPU Intel Terbaru, semoga bermanfaat. Disadur dari Phoronix.com.