Depende sa oras ng pagpapatupad ng pagtuturo sa data sa ARM at Intel CPU

Si Eric Biggers, isa sa mga developer ng Adiantum cipher at isang maintainer ng Linux kernel fscrypt subsystem, ay nagmungkahi ng isang set ng mga patch upang harangan ang mga problema sa seguridad na nagmumula sa isang tampok ng mga Intel processor na hindi ginagarantiyahan ang patuloy na mga oras ng pagpapatupad para sa iba't ibang naprosesong data. Lumilitaw ang problema sa mga processor ng Intel na nagsisimula sa pamilya ng Ice Lake. Ang isang katulad na problema ay sinusunod sa mga processor ng ARM.

Ang pagkakaroon ng isang pag-asa sa oras ng pagpapatupad ng mga tagubilin sa data na naproseso sa mga tagubiling ito ay itinuturing ng may-akda ng mga patch bilang isang kahinaan sa mga processor, dahil ang naturang pag-uugali ay hindi magagarantiyahan ang seguridad ng mga cryptographic na operasyon na isinagawa sa system. Maraming pagpapatupad ng mga cryptographic algorithm ang idinisenyo upang matiyak na ang data ay hindi makakaapekto sa oras ng pagpapatupad ng mga tagubilin, at ang paglabag sa gawi na ito ay maaaring humantong sa paglikha ng mga side-channel na pag-atake na nagre-recover ng data batay sa pagsusuri sa oras ng pagproseso nito.

Posibleng, ang runtime data dependency ay maaari ding gamitin upang ilunsad ang mga pag-atake upang matukoy ang kernel data mula sa espasyo ng user. Ayon kay Eric Biggers, ang patuloy na oras ng pagpapatupad ay hindi ibinibigay bilang default kahit na para sa mga tagubilin na nagsasagawa ng karagdagan at mga operasyon ng XOR, pati na rin para sa mga espesyal na tagubilin ng AES-NI (impormasyon na hindi nakumpirma ng mga pagsubok, ayon sa iba pang data, mayroong pagkaantala ng isa cycle sa panahon ng pagdami ng vector at pagbibilang ng bit ).

Upang hindi paganahin ang gawi na ito, ang Intel at ARM ay nagmungkahi ng mga bagong flag: PSTATE bit DIT (Data Independent Timing) para sa ARM CPU at MSR bit DOITM (Data Operand Independent Timing Mode) para sa mga Intel CPU, na ibinabalik ang lumang gawi na may patuloy na oras ng pagpapatupad. Inirerekomenda ng Intel at ARM ang pagpapagana ng proteksyon kung kinakailangan para sa kritikal na code, ngunit sa katotohanan, ang kritikal na pagkalkula ay maaaring mangyari saanman sa kernel at espasyo ng user, kaya isinasaalang-alang namin ang pagpapagana ng DOITM at DIT mode para sa buong kernel sa lahat ng oras.

Para sa mga processor ng ARM, ang Linux 6.2 kernel branch ay nagpatibay na ng mga patch na nagbabago sa gawi para sa kernel, ngunit ang mga patch na ito ay itinuturing na hindi sapat dahil sinasaklaw lang nila ang kernel code at hindi binabago ang gawi para sa user space. Para sa mga processor ng Intel, ang pagsasama ng proteksyon ay nasa yugto pa rin ng pagsusuri. Ang epekto ng patch sa pagganap ay hindi pa nasusukat, ngunit ayon sa dokumentasyon ng Intel, ang pagpapagana ng DOITM mode ay nagpapababa ng pagganap (halimbawa, sa pamamagitan ng hindi pagpapagana ng ilang mga pag-optimize, tulad ng data-specific preloading) at sa hinaharap na mga modelo ng processor ang pagbabawas ng pagganap ay maaaring tumaas .

Pinagmulan: opennet.ru

Magdagdag ng komento