アカウント名:
パスワード:
>バリアント1 (Spectre 1)はソフトウェアでの対策を続けるが、つまりSpectreは一部しか解決してない。
>「Intel CEO、Spectre/Meltdown脆弱性を解決するシリコンベースの修正内容を説明」まるで脆弱性を両方解決したかのようの物言い。
解決してないのではない解決できないSpectre 1は投棄実行アルゴリズムの穴なので投棄実行をしている限り完全な防御は無理確率的に出来るだけ防ぐことは出来るが完全ではないそこらへんはAMDも同様あちらも同様に投棄実行を実装している為、成功確率的に低いがSpectre 1は存在する
メモリ等のレスポンスを犠牲にして投棄実行を辞めればSpectre 1は解決するそれをするには新規アーキテクチャを立ち上げないと行けないレベルそれぐらい投棄実行は深く実装されている
c = *himitsu;b = a[c];みたいなコードで、1行目で例外が発生した場合、インテルのCPUでは投機実行で2行目が実行されちゃう。最終的には投機実行の結果は破棄されて、cにhimitsuのデータは入らないし、bにはa[c]の値は入らない。でも、投機実行中はcにhimitsuのデータが入り、a[c]が読み出される。事前にaをキャッシュから追い出しておけば、配列aの中でcの位置のデータだけがキャッシュに載っている状態になる。もし、himitsuが8bitのデータなら、配列aのサイズを256にしておけば、配列を先頭から順番に読んで、一番速く読み出せた位置を調べることでキャッシュに載っている位置、つまり、cの値が分かる。そもそも、cはhimitsuのデータだったわけだから、これでhimitsuを知ることができたことになる。というのがメルトダウンで、例外発生時の投機実行の代わりに分岐予測時の投機実行を利用するのがスペクターという理解で合ってるかな?
この理解で合っているとすれば、投機実行中はメモリを読まないようにするぐらいしか抜本的な解決策はないのかもしれないね。でもそれをしたら、メモリを読む命令が出てきたところで、投機実行の結果を破棄するかしないか確定するまで、実行を一時停止する事になるから、性能が落ちちゃう。悩ましいね。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家
解決してないじゃん (スコア:2, すばらしい洞察)
>バリアント1 (Spectre 1)はソフトウェアでの対策を続けるが、
つまりSpectreは一部しか解決してない。
>「Intel CEO、Spectre/Meltdown脆弱性を解決するシリコンベースの修正内容を説明」
まるで脆弱性を両方解決したかのようの物言い。
Re: (スコア:1)
解決してないのではない解決できない
Spectre 1は投棄実行アルゴリズムの穴なので
投棄実行をしている限り完全な防御は無理
確率的に出来るだけ防ぐことは出来るが完全ではない
そこらへんはAMDも同様
あちらも同様に投棄実行を実装している為、成功確率的に低いがSpectre 1は存在する
メモリ等のレスポンスを犠牲にして
投棄実行を辞めればSpectre 1は解決する
それをするには新規アーキテクチャを立ち上げないと行けないレベル
それぐらい投棄実行は深く実装されている
Re:解決してないじゃん (スコア:0)
c = *himitsu;
b = a[c];
みたいなコードで、1行目で例外が発生した場合、インテルのCPUでは投機実行で2行目が実行されちゃう。
最終的には投機実行の結果は破棄されて、cにhimitsuのデータは入らないし、bにはa[c]の値は入らない。
でも、投機実行中はcにhimitsuのデータが入り、a[c]が読み出される。
事前にaをキャッシュから追い出しておけば、配列aの中でcの位置のデータだけがキャッシュに載っている状態になる。
もし、himitsuが8bitのデータなら、配列aのサイズを256にしておけば、配列を先頭から順番に読んで、
一番速く読み出せた位置を調べることでキャッシュに載っている位置、つまり、cの値が分かる。
そもそも、cはhimitsuのデータだったわけだから、これでhimitsuを知ることができたことになる。
というのがメルトダウンで、例外発生時の投機実行の代わりに分岐予測時の投機実行を利用するのがスペクター
という理解で合ってるかな?
この理解で合っているとすれば、投機実行中はメモリを読まないようにするぐらいしか
抜本的な解決策はないのかもしれないね。
でもそれをしたら、メモリを読む命令が出てきたところで、投機実行の結果を破棄するかしないか確定するまで、
実行を一時停止する事になるから、性能が落ちちゃう。
悩ましいね。