Qualcuno può spiegare in parole povere come Spectre e Meltdown espongono dati protetti

1

Sto lavorando a un documento su di loro e penso di capirlo in generale cosa succede - > sfruttando il caching della memoria della CPU e l'esecuzione speculativa, ma sono un po 'perso dal modo in cui i dati protetti vengono effettivamente esposti.

Quindi, se capisco l'esecuzione speculativa correttamente in un caso di:

if a == true { 
    firstFunction()
} else { 
    secondFunction()
}

la CPU chiamerà sia la prima che la seconda funzione e le eseguirà prima che conosca il valore di a? Memorizza i valori effettivi all'interno di quelle funzioni o solo le loro posizioni di memoria nella sua cache? E una volta che un è risolto, non scartare ciò che ha ottenuto dal percorrere la strada sbagliata?

Grazie

    
posta PruitIgoe 24.10.2018 - 21:54
fonte

2 risposte

2

Non posso commentare a causa della restrizione della reputazione e quindi sto postando questa come risposta, ma più di un'espansione alla risposta di @ ThrawnCA. Avevo l'impressione che peggiorasse leggermente rispetto alle intuizioni del cliente successivo (ovviamente in realtà il prossimo programma). La mia comprensione di Spectre / Meltdown è la seguente:

Un cliente entra in un negozio (questa volta con intenzioni malevole). Chiedono un cartone di latte e una bottiglia di whisky. L'impiegato (trasformatore) dà loro il latte, ma l'acquisto di alcol richiede un documento d'identità valido che mostri che il cliente ha più di 18 anni. Dice che non ce l'ha e che un amico glielo porterà da un po '. L'impiegato dice ok e gli maneggia la bottiglia comunque. L'acquirente si sposta dietro alcuni scaffali e apre e beve la bottiglia prima di dire che l'amico si è perso e lascia il negozio (come un programma malevolo potrebbe ispezionare qualche posizione di memoria prima di essere negato l'accesso).

    
risposta data 25.10.2018 - 09:29
fonte
3

Supponiamo che tu stia facendo acquisti e non riesci a ricordare se hai bisogno di cereali, ma pensi che probabilmente lo fai. Quindi, devi inviare un SMS al tuo partner per controllare, ma mentre stai aspettando, vai al corridoio dei cereali e scegli un po '. Se risulta che non ti serve, lo rimetterai.

Quando i computer fanno qualcosa di simile, si tratta di "esecuzione speculativa".

Ora, supponiamo che per motivi di privacy, un solo cliente sia autorizzato nel negozio alla volta, e poi gli scaffali vengano riforniti da un robot quando hanno finito. Quindi, non dovrebbe essere possibile per il prossimo cliente dire cosa hai comprato. Ma quando rimetti il cereale, forse hai sbattuto quelli accanto, quindi non sono esattamente nello stesso posto. Il robot di rifornimento non fa niente per loro, dal momento che gli scaffali sono ancora ben riforniti. Ma una cliente ossessivamente appassionata che sta arrivando dopo potrebbe ora essere in grado di dire la tua marca di cereali preferita.

    
risposta data 25.10.2018 - 07:20
fonte

Leggi altre domande sui tag