Eric Biggers, unul dintre dezvoltatorii algoritmului Adiantum și menținător al subsistemului fscrypt din kernelul Linux, a propus un set de patch-uri pentru a bloca problemele de securitate care apar din cauza unei caracteristici a procesoarelor Intel, care nu garantează un timp de execuție constant pentru diferite date procesate. La procesoarele Intel, problema apare începând cu familia Ice Lake. O problemă similară se observă și la procesoarele ARM.
Prezența dependenței timpului de execuție al instrucțiunilor de datele procesate în aceste instrucțiuni este considerată de autorul patch-urilor o vulnerabilitate în procesoare, deoarece un astfel de comportament nu poate garanta siguranța operațiunilor criptografice efectuate în sistem. Multe implementări ale algoritmilor criptografici sunt concepute astfel încât datele să nu influențeze timpul de execuție al instrucțiunilor, iar încălcarea acestui comportament poate duce la dezvoltarea atacurilor prin canale laterale, care recuperează date pe baza analizei timpului de procesare.
În mod potențial, dependența timpului de execuție de date poate fi, de asemenea, utilizată pentru a organiza atacuri prin definirea datelor nucleului din spațiul utilizatorului. Potrivit lui Eric Biggers, timpul de execuție constant în mod implicit nu este asigurat nici măcar pentru instrucțiunile care efectuează operații de adunare și XOR, precum și pentru instrucțiunile specializate AES-NI (informația nu este confirmată prin teste, iar conform altor date, la înmulțirea vectorilor și numărarea bitilor apare o întârziere de un ciclu).
Pentru a dezactiva comportamentul discutat, companiile Intel și ARM au propus noi steaguri: bitul PSTATE DIT (Data Independent Timing) pentru CPU ARM și bitul MSR DOITM (Data Operand Independent Timing Mode) pentru CPU Intel, care restabilesc vechiul comportament cu timp de execuție constant. Companiile Intel și ARM recomandă activarea protecției atunci când este necesar pentru codul critic, dar în realitate, calculele importante pot apărea în orice parte a nucleului și a spațiului utilizatorului, așa că se analizează posibilitatea activării permanente a modurilor DOITM și DIT pentru întregul nucleu.
Pentru procesoarele ARM, au fost deja acceptate patch-uri în ramura kernel-ului Linux 6.2, care modifică comportamentul acestuia, dar aceste patch-uri sunt considerate insuficiente, deoarece se concentrează doar pe codul kernel-ului și nu schimbă comportamentul pentru spațiul utilizatorului. Pentru procesoarele Intel, activarea protecției se află doar în stadiul de revizuire. Măsurarea impactului patch-ului asupra performanței nu a avut loc încă, dar conform documentației Intel, activarea modului DOITM reduce performanța (de exemplu, din cauza dezactivării unor optimizări, cum ar fi încărcarea anticipată specifică pentru anumite date) și în modelele viitoare de procesoare, scăderea performanței ar putea fi accentuată.
Sursa: opennet.ro
