Afhankelijkheid van de uitvoertijd van instructies afhankelijk van de gegevens op CPU ARM en Intel

Eric Biggers, een van de ontwikkelaars van de Adiantum-encryptie en maintainer van de Linux fscrypt kernel subsystem, heeft een set patches voorgesteld om beveiligingsproblemen te verhelpen die voortkomen uit een eigenaardigheid van Intel-processors, die geen constante uitvoeringstijd voor verschillende verwerkte gegevens garandeert. Bij Intel-processors doet het probleem zich voor vanaf de Ice Lake-familie. Een soortgelijk probleem doet zich ook voor bij ARM-processors.

De afhankelijkheid van de uitvoeringstijd van de instructies van de gegevens die in deze instructies worden verwerkt, wordt door de auteur van de patches als een kwetsbaarheid in processors beschouwd, aangezien dit gedrag de veiligheid van cryptografische bewerkingen in het systeem niet kan garanderen. Veel implementaties van cryptografische algoritmen zijn ontworpen met de aanname dat gegevens geen invloed hebben op de uitvoeringstijd van instructies, en het schenden van dit gedrag kan leiden tot aanvallen via zijkanalen die gegevens herstellen op basis van tijdsanalyse.

Potentieel kan de afhankelijkheid van de uitvoeringstijd van gegevens ook worden gebruikt om aanvallen uit te voeren die gericht zijn op het identificeren van kerngegevens vanuit de gebruikersruimte. Volgens Eric Biggers wordt constante uitvoeringstijd standaard niet gegarandeerd, zelfs niet voor instructies die optellingen en XOR-bewerkingen uitvoeren, evenals voor gespecialiseerde AES-NI-instructies (de informatie is niet bevestigd door tests; volgens andere gegevens kan er een vertraging van ƩƩn cyclus optreden bij het vermenigvuldigen van vectoren en het tellen van bits).

Om het betreffende gedrag uit te schakelen, hebben Intel en ARM nieuwe flags voorgesteld: de PSTATE-bit DIT (Data Independent Timing) voor ARM-CPU's en de MSR-bit DOITM (Data Operand Independent Timing Mode) voor Intel-CPU's, die het oude gedrag met constante uitvoeringstijd terugbrengen. Intel en ARM raden aan deze bescherming in te schakelen waar nodig voor bijzonder belangrijke code, maar in de praktijk kunnen belangrijke berekeningen zich op elk moment in de kernel en de gebruikersruimte voordoen. Daarom wordt overwogen om de DOITM- en DIT-modi permanent in te schakelen voor de gehele kernel.

Voor ARM-processors zijn er al patches aangenomen in de Linux-kernel 6.2 die het gedrag van de kernel veranderen, maar deze patches worden als onvoldoende beschouwd omdat ze alleen de kernelcode dekken en het gedrag voor de gebruikersruimte niet veranderen. Voor Intel-processors bevindt het inschakelen van bescherming zich momenteel alleen in de beoordelingsfase. Er zijn nog geen metingen gedaan van de impact van de patch op de prestaties, maar volgens documentatie van Intel vermindert het inschakelen van de DOITM-modus de prestaties (bijvoorbeeld door het uitschakelen van bepaalde optimalisaties, zoals data-specifieke preloading) en kan de prestatievermindering in toekomstige processor modellen verergeren.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster