Aginduen exekuzio denboraren menpekotasuna ARM eta Intel CPUetako datuekiko

Eric Biggers, Adiantum zifraren garatzaileetako batek eta Linux kernel fscrypt azpisistemaren mantentzaileak, prozesatutako datu ezberdinen exekuzio denbora etengabeak bermatzen ez dituen Intel prozesadoreen ezaugarri batetik sortutako segurtasun-arazoak blokeatzeko adabaki multzo bat proposatu zuen. Arazoa Intel prozesadoreetan agertzen da Ice Lake familiatik hasita. Antzeko arazo bat ikusten da ARM prozesadoreetan.

Adabakien egileak prozesadoreetan ahultasun gisa hartzen du instrukzioen exekuzio-denboraren menpekotasuna jarraibide hauetan prozesatutako datuekiko, jokabide horrek ezin baitu sisteman egiten diren kriptografiko eragiketen segurtasuna bermatu. Algoritmo kriptografikoen inplementazio asko datuek argibideen exekuzio-denboran eraginik ez dutela bermatzeko diseinatuta daude, eta portaera hori urratzeak prozesatzeko denboraren analisian oinarrituta datuak berreskuratzen dituzten albo kanaleko erasoak sor ditzake.

Potentzialki, exekuzio-datuen menpekotasuna ere erabil daiteke erasoak abiarazteko kernelaren datuak erabiltzailearen espaziotik zehazteko. Eric Biggers-en arabera, exekuzio-denbora konstantea ez da lehenespenez ematen gehiketa eta XOR eragiketak egiten dituzten instrukzioetarako ere, baita AES-NI instrukzio espezializatuetarako ere (probek baieztatu ez duten informazioa, beste datu batzuen arabera, bateko atzerapena dago. zikloa biderketa bektoriala eta bit zenbaketa bitartean).

Jokabide hori desgaitzeko, Intelek eta ARM-k bandera berriak proposatu dituzte: PSTATE bit DIT (Data Independent Timing) ARM CPUentzat eta MSR bit DOITM (Data Operand Independent Timing Mode) Intel CPUentzat, portaera zaharra exekuzio denbora konstantearekin itzuliz. Intelek eta ARM-ek gomendatzen dute babesa gaitzea kode kritikorako behar den moduan, baina, egia esan, konputazio kritikoa nukleoan eta erabiltzailearen espazioan edozein lekutan gerta daiteke; beraz, DOITM eta DIT moduak nukleo osorako uneoro gaitzea aztertzen ari gara.

ARM prozesadoreetarako, Linux 6.2 nukleoaren adarrak dagoeneko nukleoaren portaera aldatzen duten adabakiak hartu ditu, baina adabaki hauek ez dira nahikoak jotzen nukleoaren kodea soilik estaltzen baitute eta ez baitute erabiltzailearen espazioaren portaera aldatzen. Intel prozesadoreentzat, babesa sartzea berrikuspen fasean dago oraindik. Adabakiak errendimenduan duen eragina oraindik ez da neurtu, baina Intel-en dokumentazioaren arabera, DOITM modua gaitzeak errendimendua murrizten du (adibidez, optimizazio batzuk desgaituz, datuen aurrekarga espezifikoak adibidez) eta etorkizuneko prozesadore-ereduetan errendimendu-murrizketa handitu egin daiteke. .

Iturria: opennet.ru

Gehitu iruzkin berria