Alors, en fait, l'astuce c'est d'avoir un petit bout 'partagé' dans le cache.
L'attaque repose, très grosso modo, sur le pseudo-code suivant :
intmon_tableau[255]={/* valeurs aléatoires */};vide_le_cache();if(cas_impossible()){unsignedcharmon_octet=la_ram[adresse_cible];mon_tableau[mon_octet]=mon_tableau[mon_octet]*42;// Ou toute autre opération sur mon_tableau[mon_octet]}
L'attaque nécessite de faire croire au processeur qu'il va exécuter le code dans le if. Il fera alors les accès mémoire de ce code...
Et si maintenant on fait une boucle sur mon_tableau, alors il y aura normalement une entrée qui sera en mémoire cache, et donc beaucoup plus rapide d'accès. CQFD...
[^] # Re: Comment le cache peut être lu ?
Posté par Pinaraf . En réponse à la dépêche Deux failles critiques : Meltdown et Spectre. Évalué à 6.
Alors, en fait, l'astuce c'est d'avoir un petit bout 'partagé' dans le cache.
L'attaque repose, très grosso modo, sur le pseudo-code suivant :
L'attaque nécessite de faire croire au processeur qu'il va exécuter le code dans le if. Il fera alors les accès mémoire de ce code...
Et si maintenant on fait une boucle sur mon_tableau, alors il y aura normalement une entrée qui sera en mémoire cache, et donc beaucoup plus rapide d'accès. CQFD...
Est-ce plus clair ?