Pergantungan masa pelaksanaan arahan pada data pada ARM dan CPU Intel

Eric Biggers, salah seorang pembangun cipher Adiantum dan penyelenggara subsistem fscrypt kernel Linux, mencadangkan satu set patch untuk menyekat masalah keselamatan yang timbul daripada ciri pemproses Intel yang tidak menjamin masa pelaksanaan yang berterusan untuk data diproses yang berbeza. Masalahnya muncul dalam pemproses Intel bermula dengan keluarga Tasik Ais. Masalah yang sama diperhatikan dalam pemproses ARM.

Kehadiran pergantungan masa pelaksanaan arahan pada data yang diproses dalam arahan ini dianggap oleh pengarang tampalan sebagai kelemahan dalam pemproses, kerana kelakuan sedemikian tidak dapat menjamin keselamatan operasi kriptografi yang dilakukan dalam sistem. Banyak pelaksanaan algoritma kriptografi direka untuk memastikan bahawa data tidak menjejaskan masa pelaksanaan arahan, dan pelanggaran tingkah laku ini boleh menyebabkan penciptaan serangan saluran sisi yang memulihkan data berdasarkan analisis masa pemprosesannya.

Berkemungkinan, kebergantungan data masa jalan juga boleh digunakan untuk melancarkan serangan untuk menentukan data kernel daripada ruang pengguna. Menurut Eric Biggers, masa pelaksanaan yang berterusan tidak disediakan secara lalai walaupun untuk arahan yang melakukan operasi penambahan dan XOR, serta untuk arahan AES-NI khusus (maklumat yang tidak disahkan oleh ujian, menurut data lain, terdapat kelewatan satu kitaran semasa pendaraban vektor dan pengiraan bit ).

Untuk melumpuhkan gelagat ini, Intel dan ARM telah mencadangkan bendera baharu: PSTATE bit DIT (Data Independent Timing) untuk ARM CPU dan MSR bit DOITM (Data Operand Independent Timing Mode) untuk Intel CPU, mengembalikan gelagat lama dengan masa pelaksanaan yang berterusan. Intel dan ARM mengesyorkan mendayakan perlindungan seperti yang diperlukan untuk kod kritikal, tetapi pada hakikatnya, pengiraan kritikal boleh berlaku di mana-mana dalam kernel dan ruang pengguna, jadi kami sedang mempertimbangkan untuk mendayakan mod DOITM dan DIT untuk keseluruhan kernel pada setiap masa.

Untuk pemproses ARM, cawangan kernel Linux 6.2 telah menerima pakai patch yang mengubah tingkah laku untuk kernel, tetapi patch ini dianggap tidak mencukupi kerana ia hanya meliputi kod kernel dan tidak mengubah tingkah laku untuk ruang pengguna. Untuk pemproses Intel, kemasukan perlindungan masih di peringkat semakan. Kesan tampalan pada prestasi belum lagi diukur, tetapi menurut dokumentasi Intel, mendayakan mod DOITM mengurangkan prestasi (contohnya, dengan melumpuhkan beberapa pengoptimuman, seperti pramuat khusus data) dan dalam model pemproses akan datang pengurangan prestasi mungkin meningkat .

Sumber: opennet.ru

Tambah komen