Závislost doby provádění instrukce na datech na CPU ARM a Intel

Eric Biggers, jeden z vývojářů šifry Adiantum a správce subsystému linuxového jádra fscrypt, navrhl sadu záplat pro blokování bezpečnostních problémů vyplývajících z vlastnosti procesorů Intel, která nezaručuje konstantní dobu provádění pro různá zpracovávaná data. Problém se objevuje u procesorů Intel počínaje rodinou Ice Lake. Podobný problém je pozorován u procesorů ARM.

Přítomnost závislosti doby provádění instrukcí na datech zpracovávaných v těchto instrukcích považuje autor záplat za zranitelnost v procesorech, protože takové chování nemůže zaručit bezpečnost kryptografických operací prováděných v systému. Mnoho implementací kryptografických algoritmů je navrženo tak, aby zajistilo, že data neovlivní dobu provádění instrukcí, a porušení tohoto chování může vést k vytvoření útoků na postranní kanály, které obnovují data na základě analýzy doby jejich zpracování.

Závislost na datech za běhu lze také potenciálně použít ke spuštění útoků k určení dat jádra z uživatelského prostoru. Podle Erica Biggerse není ve výchozím nastavení poskytována konstantní doba provádění ani u instrukcí, které provádějí operace sčítání a XOR, stejně jako u specializovaných instrukcí AES-NI (informace nepotvrzené testy, podle jiných údajů je zpoždění jednoho cyklu během vektorového násobení a počítání bitů).

Pro zakázání tohoto chování Intel a ARM navrhly nové příznaky: PSTATE bit DIT (Data Independent Timing) pro ARM CPU a MSR bit DOITM (Data Operand Independent Timing Mode) pro Intel CPU, vracející staré chování s konstantní dobou provádění. Intel a ARM doporučují povolit ochranu podle potřeby pro kritický kód, ale ve skutečnosti se kritický výpočet může vyskytnout kdekoli v jádře a uživatelském prostoru, takže zvažujeme, že režimy DOITM a DIT povolíme pro celé jádro vždy.

Pro procesory ARM již větev jádra Linuxu 6.2 přijala záplaty, které mění chování jádra, ale tyto záplaty jsou považovány za nedostatečné, protože pokrývají pouze kód jádra a nemění chování pro uživatelský prostor. U procesorů Intel je zahrnutí ochrany stále ve fázi přezkumu. Dopad patche na výkon zatím nebyl změřen, ale podle dokumentace Intelu povolení režimu DOITM snižuje výkon (například vypnutím některých optimalizací, jako je přednačítání specifické pro data) a u budoucích modelů procesorů se může snížení výkonu zvýšit .

Zdroj: opennet.ru

Přidat komentář