Нұсқауларды орындау уақытының ARM және Intel процессорларындағы деректерге тәуелділігі

Adiantum шифрын жасаушылардың бірі және Linux ядросының fscrypt ішкі жүйесінің қолдаушысы Эрик Биггерс Intel процессорларының әртүрлі өңделген деректердің тұрақты орындалу уақытына кепілдік бермейтін мүмкіндігінен туындайтын қауіпсіздік мәселелерін блоктау үшін патчтар жинағын ұсынды. Мәселе Ice Lake отбасынан бастап Intel процессорларында пайда болады. Осындай мәселе ARM процессорларында байқалады.

Нұсқаулардың орындалу уақытының осы нұсқауларда өңделген деректерге тәуелділігінің болуын патчтардың авторы процессорлардағы осалдық ретінде қарастырады, өйткені мұндай әрекет жүйеде орындалатын криптографиялық операциялардың қауіпсіздігіне кепілдік бере алмайды. Криптографиялық алгоритмдердің көптеген іске асырулары деректердің нұсқаулардың орындалу уақытына әсер етпеуін қамтамасыз ету үшін жасалған және бұл әрекетті бұзу оны өңдеу уақытын талдау негізінде деректерді қалпына келтіретін бүйірлік арналық шабуылдарды жасауға әкелуі мүмкін.

Ықтимал орындалу уақытының деректерге тәуелділігі пайдаланушы кеңістігінен ядро ​​деректерін анықтау үшін шабуылдарды бастау үшін де пайдаланылуы мүмкін. Эрик Биггерстің айтуынша, тұрақты орындау уақыты тіпті қосу және XOR операцияларын орындайтын нұсқаулар үшін, сондай-ақ мамандандырылған AES-NI нұсқаулары үшін әдепкі бойынша қамтамасыз етілмейді (тесттермен расталмаған ақпарат, басқа деректерге сәйкес, бір кідіріс бар. векторды көбейту және биттерді санау кезіндегі цикл ).

Бұл әрекетті өшіру үшін Intel және ARM жаңа жалаушаларды ұсынды: ARM процессорлары үшін PSTATE бит DIT (деректерге тәуелсіз уақыт) және Intel процессорларына арналған MSR бит DOITM (деректер операндының тәуелсіз уақыт режимі), тұрақты орындау уақытымен ескі әрекетті қайтарады. Intel және ARM маңызды код үшін қажет болған жағдайда қорғауды қосуды ұсынады, бірақ шын мәнінде, маңызды есептеулер ядро ​​мен пайдаланушы кеңістігінің кез келген жерінде орын алуы мүмкін, сондықтан біз барлық ядро ​​үшін DOITM және DIT режимдерін қосуды қарастырамыз.

ARM процессорлары үшін Linux 6.2 ядро ​​тармағы ядроға арналған әрекетті өзгертетін патчтарды әлдеқашан қабылдаған, бірақ бұл патчтар жеткіліксіз болып саналады, өйткені олар тек ядро ​​кодын қамтиды және пайдаланушы кеңістігінің әрекетін өзгертпейді. Intel процессорлары үшін қорғауды қосу әлі де тексеру сатысында. Патчтың өнімділікке әсері әлі өлшенген жоқ, бірақ Intel құжаттамасына сәйкес, DOITM режимін қосу өнімділікті төмендетеді (мысалы, деректерге арнайы алдын ала жүктеу сияқты кейбір оңтайландыруларды өшіру арқылы) және болашақ процессор үлгілерінде өнімділіктің төмендеуі артуы мүмкін. .

Ақпарат көзі: opennet.ru

пікір қалдыру