Cronometrant l’AES
A través del blog d’en Bruce Schneier m’he assabentat que han publicat un article on documenten un timing attack a l’AES [pdf] que realitzen en un sistema client/servidor.
El que fan és, per dir-ho ràpidament, aprofitar que les S-boxes de l’AES són molt grans i estan indexades per la clau, per anar traient bits de la clau, a base de mesurar els temps de resposta a diferents missatges d’entrada i valorar també el temps de resposta de la implementació amb claus i missatges d’entrada coneguts. Aquests temps de resposta poden oscil·lar molt, ja que les S-boxes són prou grans perquè el processador no les pugui mantenir en memòria cau, això fa que indexar aquestes taules no sigui una operació de temps constant per a tots els índexs, i permet aquest atac. Llegint, ho una mica en diagonal, sembla que deu estar ben fet i que l’article és real.
Els atacs mesurant el temps fa molt temps que es fan. Sobretot en el món més físic dels microcontroladors. Són normalment atacs en els que es busca aprofitar-se d’implementacions errònies, com també ho són per exemple els buffer overflow i els buffer underflow, i si es té accés a l’electrònica jugar amb l’alimentació, mesurar els consums, generar glitches en el senyal de rellotge, influir sobre la memòria, sotmetre’l a temperatures per les quals no ha estat dissenyat o altres coses un pèl més sofisticades que necessiten màquines una mica més cares.
En aquest cas és un problema molt lligat a l’algorisme, que només es podria evitar fent-lo inacceptablement convertint-lo en una operació de temps constant. Per cert, l’implementació és la d’OpenSSL.
