Dependencia do tempo de execución das instrucións dos datos das CPU ARM e Intel

Eric Biggers, un dos desenvolvedores do cifrado Adiantum e mantedor do subsistema fscrypt do núcleo de Linux, propuxo un conxunto de parches para bloquear os problemas de seguridade derivados dunha característica dos procesadores Intel que non garante tempos de execución constantes para os distintos datos procesados. O problema aparece nos procesadores Intel que comezan pola familia Ice Lake. Un problema similar obsérvase nos procesadores ARM.

A presenza dunha dependencia do tempo de execución das instrucións dos datos procesados ​​nestas instrucións é considerada polo autor dos parches como unha vulnerabilidade nos procesadores, xa que tal comportamento non pode garantir a seguridade das operacións criptográficas realizadas no sistema. Moitas implementacións de algoritmos criptográficos están deseñadas para garantir que os datos non afecten o tempo de execución das instrucións, e violar este comportamento pode levar á creación de ataques de canle lateral que recuperan os datos en función da análise do seu tempo de procesamento.

Potencialmente, a dependencia dos datos en tempo de execución tamén se pode usar para lanzar ataques para determinar os datos do núcleo desde o espazo do usuario. Segundo Eric Biggers, o tempo de execución constante non se proporciona por defecto nin sequera para as instrucións que realizan operacións de adición e XOR, así como para as instrucións AES-NI especializadas (información non confirmada por probas, segundo outros datos, hai un atraso dun ciclo durante a multiplicación vectorial e o reconto de bits).

Para desactivar este comportamento, Intel e ARM propuxeron novas marcas: PSTATE bit DIT (Data Independent Timing) para CPU ARM e MSR bit DOITM (Data Operand Independent Timing Mode) para CPU Intel, devolvendo o comportamento antigo cun tempo de execución constante. Intel e ARM recomendan habilitar a protección segundo sexa necesario para o código crítico, pero en realidade, a computación crítica pode ocorrer en calquera lugar do núcleo e do espazo do usuario, polo que estamos considerando habilitar os modos DOITM e DIT para todo o núcleo en todo momento.

Para os procesadores ARM, a rama do núcleo Linux 6.2 xa adoptou parches que cambian o comportamento do núcleo, pero estes parches considéranse insuficientes xa que só cobren o código do núcleo e non cambian o comportamento do espazo do usuario. Para os procesadores Intel, a inclusión da protección aínda está en fase de revisión. Aínda non se mediu o impacto do parche no rendemento, pero segundo a documentación de Intel, activar o modo DOITM reduce o rendemento (por exemplo, desactivando algunhas optimizacións, como a precarga específica de datos) e en modelos de procesadores futuros a redución do rendemento pode aumentar. .

Fonte: opennet.ru

Engadir un comentario