アカウント名:
パスワード:
> 「計算処理の実行時間が消費電力に依存する」 あたりまえやん。なぜこれで暗号化キーがわかるのか...よくこんなこと思いつくなぁ。すごい。
ものすごく単純なところだと、「入力されたパスワード」と「正しいパスワード」が等しいかどうかを、
for(int i = 0; i < パスワード長; i ++){ if(入力されたパスワード[i] != 正しいパスワード[i]){ return false; }}return true;
みたいな処理で判定していると「1文字目からいきなりが外れ」と「1文字目はセーブで2文字目が外れ」だと、後者の方が、ちょっとだけ処理に時間が掛かる。CPU時間をより多く消費する。
通らないのを前提に、1文
パスワード比較でforの中にreturnがあるようなのはそもそも普通に脆弱性ですね。
消費電力量を測定できるような環境下で、ALUへの入出力に応じて(例えば変化するビットの数に依存して)消費電力が変化することを利用して測定結果から内部の情報がばれることがあるのが前回までのあらすじ。
今回は、消費電力が高くなると発熱が大きくなり、クロックが低下することを利用して消費電力量測定を不要としたのが大きい。
基本は効率犠牲に失敗内容別にコストが変動しないように設計すると思うが鍵を扱う処理または回路の設計に必要な要件がまた増えちまうなぁ……
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
にわかな奴ほど語りたがる -- あるハッカー
なるほどわからん (スコア:0)
> 「計算処理の実行時間が消費電力に依存する」
あたりまえやん。なぜこれで暗号化キーがわかるのか...
よくこんなこと思いつくなぁ。すごい。
Re: (スコア:2, 興味深い)
ものすごく単純なところだと、「入力されたパスワード」と「正しいパスワード」が等しいかどうかを、
for(int i = 0; i < パスワード長; i ++){
if(入力されたパスワード[i] != 正しいパスワード[i]){
return false;
}
}
return true;
みたいな処理で判定していると「1文字目からいきなりが外れ」と「1文字目はセーブで2文字目が外れ」だと、
後者の方が、ちょっとだけ処理に時間が掛かる。CPU時間をより多く消費する。
通らないのを前提に、1文
Re: (スコア:0)
パスワード比較でforの中にreturnがあるようなのはそもそも普通に脆弱性ですね。
消費電力量を測定できるような環境下で、ALUへの入出力に応じて(例えば変化するビットの数に依存して)消費電力が変化することを利用して
測定結果から内部の情報がばれることがあるのが前回までのあらすじ。
今回は、消費電力が高くなると発熱が大きくなり、クロックが低下することを利用して消費電力量測定を不要としたのが大きい。
Re:なるほどわからん (スコア:0)
基本は効率犠牲に失敗内容別にコストが変動しないように設計すると思うが
鍵を扱う処理または回路の設計に必要な要件がまた増えちまうなぁ……