Afhanklikheid van instruksie uitvoering tyd op data op ARM en Intel SVE's

Eric Biggers, een van die ontwikkelaars van die Adiantum-syfer en 'n onderhouer van die Linux-kern fscrypt-substelsel, het 'n stel pleisters voorgestel om sekuriteitsprobleme te blokkeer wat voortspruit uit 'n kenmerk van Intel-verwerkers wat nie konstante uitvoeringstye vir verskillende verwerkte data waarborg nie. Die probleem verskyn in Intel-verwerkers wat by die Ice Lake-familie begin. 'n Soortgelyke probleem word by ARM-verwerkers waargeneem.

Die teenwoordigheid van 'n afhanklikheid van die uitvoeringstyd van instruksies op die data wat in hierdie instruksies verwerk word, word deur die skrywer van die pleisters as 'n kwesbaarheid in verwerkers beskou, aangesien sulke gedrag nie die sekuriteit van kriptografiese bewerkings wat in die stelsel uitgevoer word, kan waarborg nie. Baie implementerings van kriptografiese algoritmes is ontwerp om te verseker dat data nie die uitvoeringstyd van instruksies beΓ―nvloed nie, en die oortreding van hierdie gedrag kan lei tot die skepping van sykanaalaanvalle wat data herstel gebaseer op die ontleding van die verwerkingstyd daarvan.

Moontlik kan runtime-data-afhanklikheid ook gebruik word om aanvalle te loods om kerndata uit gebruikersruimte te bepaal. Volgens Eric Biggers word konstante uitvoeringstyd nie by verstek verskaf nie, selfs vir instruksies wat byvoegings- en XOR-bewerkings uitvoer, sowel as vir gespesialiseerde AES-NI-instruksies (inligting wat nie deur toetse bevestig is nie, volgens ander data is daar 'n vertraging van een siklus tydens vektorvermenigvuldiging en bittelling ).

Om hierdie gedrag te deaktiveer, het Intel en ARM nuwe vlae voorgestel: PSTATE bit DIT (Data Independent Timing) vir ARM CPU's en MSR bit DOITM (Data Operand Independent Timing Mode) vir Intel CPU's, wat die ou gedrag terugstuur met konstante uitvoeringstyd. Intel en ARM beveel aan om beskerming te aktiveer soos nodig vir kritieke kode, maar in werklikheid kan kritieke berekening enige plek in die kern en gebruikersruimte voorkom, so ons oorweeg dit om te alle tye DOITM- en DIT-modusse vir die hele kern te aktiveer.

Vir ARM-verwerkers het die Linux 6.2-kerntak reeds pleisters aangeneem wat die gedrag vir die kern verander, maar hierdie pleisters word as onvoldoende beskou aangesien hulle net die kernkode dek en nie die gedrag vir die gebruikersspasie verander nie. Vir Intel-verwerkers is die insluiting van beskerming nog in die hersieningstadium. Die impak van die pleister op werkverrigting is nog nie gemeet nie, maar volgens Intel-dokumentasie verminder die aktivering van DOITM-modus werkverrigting (byvoorbeeld deur sommige optimaliserings te deaktiveer, soos dataspesifieke vooraflaai) en in toekomstige verwerkermodelle kan die werkverrigtingvermindering toeneem .

Bron: opennet.ru

Voeg 'n opmerking