IntelのHTTに深刻な脆弱性
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2005/05/14(土) 13:32:27http://www.itmedia.co.jp/enterprise/articles/0505/14/news009.html
0060名無しさん@お腹いっぱい。
2005/05/19(木) 22:18:100061名無しさん@お腹いっぱい。
2005/05/19(木) 22:44:14ジーパンにかぎんねぇだろ?
ズボンについてるジッパーの危険性に大差はないと思うぞ,
急いでるときは特に...
0062名無しさん@お腹いっぱい。
2005/05/19(木) 22:51:430063名無しさん@お腹いっぱい。
2005/05/19(木) 23:06:21SMPだとどのプロセッサーでスレッドが走るかを予測することも指定することもできない。
マルチコアだとどのコアでスレッドが走るかを予測することも指定するこもできない。
キケンな環境でHT使っている香具師はとっととBIOSの設定を変えるべし。
SMP用のカーネルだけを入れている人は大変かも?
0064名無しさん@お腹いっぱい。
2005/05/19(木) 23:12:180065名無しさん@お腹いっぱい。
2005/05/19(木) 23:48:17> マルチコアだとどのコアでスレッドが走るかを予測することも指定するこもできない。
2nd cache 共有のタイプだと, cache の構成によっては似たような事は
可能だと思われる.
0066名無しさん@お腹いっぱい。
2005/05/19(木) 23:54:41ここの説明が判りやすいかも。
ttp://w3.quake3.jp/sushi-k/index.php?itemid=321
0067名無しさん@お腹いっぱい。
2005/05/19(木) 23:57:40|メモリ| -- |[L2$]-[コア]| --- |[コア]-[L2$]| -- [メモリ]
みたいな構成でもレイテンシに差が出るよ。
SMTだとL1$を共有してるから精度が高いってだけ。
0068名無しさん@お腹いっぱい。
2005/05/20(金) 00:08:070069名無しさん@お腹いっぱい。
2005/05/20(金) 00:42:12典型的な例として、複数ユーザを詰め込んだレンタルサーバでやられるとどうなると思う?
0070名無しさん@お腹いっぱい。
2005/05/20(金) 00:59:460071名無しさん@お腹いっぱい。
2005/05/20(金) 01:00:04どうにもならないでしょ。
今回の発表はOpenSSLの特定のバージョンでRSA署名をし続けた場合の実証
でしかなく、"real-world"での漏洩はまず無理だし。
0072名無しさん@お腹いっぱい。
2005/05/20(金) 01:34:02より安全性が高まるだけでは?
0073名無しさん@お腹いっぱい。
2005/05/20(金) 03:45:50"ArchitecutualState"というのが
"ProcessorCore"を共有しているのがまずい??
ttp://www.fbmnd.fh-frankfurt.de/~doeben/II-INF3/II-INF3-TH/VL12/intel-hyperthreading-700.jpg
>>66
>プロセスのキャッシュのアクセス速度の変化パターンから鍵を類推
OpenSSLがセキュリティ・アップデートで
鎮火?
0074名無しさん@お腹いっぱい。
2005/05/20(金) 05:02:57>>41
0075名無しさん@お腹いっぱい。
2005/05/20(金) 07:02:52やっぱりライバル会社の妨害工作か・・・・
0076名無しさん@お腹いっぱい。
2005/05/20(金) 09:24:09バージョンだけだから安心とか。。。。
Theoと喧嘩になるような人ばかりですね。
実証コードを元にSSLキーロガーなるものががアンダーグラウンドで流通し
亜流が増え続けるのは時間の問題。
インターネットカフェに仕込むキーボードロガーのようにお宝に当たれば桶という使い方になる。
SSL以外にも順次適用拡大していくんだろうね。
実はレンタルサーバにはあちこち入りはじめているんじゃねーの?
と思ったら深刻な脆弱性という評価になるわけだが。
0077名無しさん@お腹いっぱい。
2005/05/20(金) 10:27:53条件が真か偽かでステップ数が異なると処理時間が違ってくるんです。
だからNOPを入れて実ステップ数(時間)を合わせるんです。
特定の演算ユニットがBUSYでもBUSYでなくても処理時間が同じになれば
いいんですよ。
つまり。。。
0078名無しさん@お腹いっぱい。
2005/05/20(金) 14:05:21唯一残念なのは、このスレで参考になった物が一つもなかった事だ。
0079名無しさん@お腹いっぱい。
2005/05/20(金) 14:13:250080名無しさん@お腹いっぱい。
2005/05/20(金) 15:40:30Stack overflow
0081名無しさん@お腹いっぱい。
2005/05/20(金) 23:43:20よしOpenSSLの次バージョンはそれでいこうじゃないか。(Z80限定サポート)
0082名無しさん@お腹いっぱい。
2005/05/21(土) 13:46:27flush internal caches; initiate flushing of external caches.
...
The INVD instruction is a privilieged
...
というのをカーネルモードでやると
どうでsか? 却下?
0083名無しさん@お腹いっぱい。
2005/05/21(土) 13:54:21同時に動いているプロセス/スレッドがSSLだけという条件が必要だろ。
つまり、全然現実的じゃない。例えば一緒にapacheでも動かして
トラフィックかかってればレイテンシのパターンは読めなくなる。
0084名無しさん@お腹いっぱい。
2005/05/21(土) 14:50:31そうとも言えないんじゃないかな。
強い局所性でサイドチャネルにエラー(誤情報)が載るか、
それとも対象プロセスの局所性をマスクするほど大量の負荷が同時に
かかっていないと、多少帯域幅は落ちてもサイドチャネル自体は
生きているように思える。
しかもモニタするプロセスは条件に合うタイミングを気長に待てばよく、
対象プロセスの全ての動作タイミングでサイドチャネルをマスクできる
アクティビティがかかることを保証しないといけない。
0085名無しさん@お腹いっぱい。
2005/05/21(土) 14:56:27> しかもモニタするプロセスは条件に合うタイミングを気長に待てばよく、
そのタイミングをどうやって知るの?キャッシュのページエラーを起こしているのが
SSLの秘密鍵処理であってapacheによるIOに絡んだキャッシュ消費やJavaVMに
よる巨大ヒープへのアクセスによるものじゃないことが、どうやってわかる?
ユーザーランドで得られる情報じゃ粒度が全然合わないと思うけど・・・
0086名無しさん@お腹いっぱい。
2005/05/21(土) 15:01:10エラーが入ってたら捨てて次回を待てばいいのでは?
0087名無しさん@お腹いっぱい。
2005/05/21(土) 16:22:31> エラーが入ってたら捨てて次回を待てばいいのでは?
エラーかどうかをどう判定する?
観測できるのは各命令のレイテンシーだけだよ。
そのレイテンシーがもう1つの仮想プロセッサで実行されている
SSLのコードの特定のスレッドの影響であることをどうやって知ることができる?
0088名無しさん@お腹いっぱい。
2005/05/21(土) 17:01:21もう一度だけヒント。知る必要あるの?
0089名無しさん@お腹いっぱい。
2005/05/21(土) 17:08:560090名無しさん@お腹いっぱい。
2005/05/22(日) 00:21:28そもそもこれがあるかないかで1bitの情報を得る)と
>>86の言う「エラー」の意味が食い違っていると思う
>>86に質問
盗聴プロセスを走らせて、「011000100010100」というbit列を手に入れたとき
それがOpenSSLの秘密鍵の部分情報なのか、apacheプロセスのディスクIOに
よるものなのか、どうやって判定すればいいの?
0091名無しさん@お腹いっぱい。
2005/05/22(日) 03:45:51あのー、君、盗聴の方法をちゃんと理解してる?
0092名無しさん@お腹いっぱい。
2005/05/22(日) 03:59:480093名無しさん@お腹いっぱい。
2005/05/22(日) 16:11:16その前後にあるそれらしい数字を探せば特定できるじゃん。
0094名無しさん@お腹いっぱい。
2005/05/22(日) 18:23:450095名無しさん@お腹いっぱい。
2005/05/22(日) 19:35:410096名無しさん@お腹いっぱい。
2005/05/22(日) 21:00:390097名無しさん@お腹いっぱい。
2005/05/22(日) 21:15:490098名無しさん@お腹いっぱい。
2005/05/22(日) 22:47:01とりあえずコンパルしてみよう。
--- kernel-source-2.6.11/arch/i386/kernel/cpu/common.c 2005-03-02 16:37:47.000000000 +0900
+++ kernel-source-2.6.11.hoge/arch/i386/kernel/cpu/common.c 2005-05-22 22:38:12.374133296 +0900
@@ -446,13 +446,16 @@
if (!cpu_has(c, X86_FEATURE_HT))
return;
-
+#if 0
cpuid(1, &eax, &ebx, &ecx, &edx);
smp_num_siblings = (ebx & 0xff0000) >> 16;
if (smp_num_siblings == 1) {
printk(KERN_INFO "CPU: Hyper-Threading is disabled\n");
} else if (smp_num_siblings > 1 ) {
+#endif /* 0 */
+ smp_num_siblings = 2;
+
index_lsb = 0;
index_msb = 31;
@@ -477,7 +480,9 @@
printk(KERN_INFO "CPU: Physical Processor ID: %d\n",
phys_proc_id[cpu]);
+#if 0
}
+#endif /* 0 */
}
#endif
0099名無しさん@お腹いっぱい。
2005/05/22(日) 23:09:370100名無しさん@お腹いっぱい。
2005/05/22(日) 23:29:270101名無しさん@お腹いっぱい。
2005/05/23(月) 00:12:00Linux version 2.6.11 (root@orz) (gcc バージョン 3.3.6 (Debian 1:3.3.6-5)) #1 SMP Sun May 22
23:06:58 JST 2005
...
Kernel command line: BOOT_IMAGE=orz ro root=302 acpismp=force
...
Initializing CPU#0
...
CPU0: Intel(R) Pentium(R) 4 CPU 2.53GHz stepping 07
per-CPU timeslice cutoff: 1463.07 usecs.
task migration cache decay timeout: 2 msecs.
Total of 1 processors activated (5013.50 BogoMIPS).
WARNING: 1 siblings found for CPU0, should be 2
警告された...しかし!!
$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Pentium(R) 4 CPU 2.53GHz
stepping : 7
cpu MHz : 2533.874
cache size : 512 KB
physical id : 0
siblings : 2 <-- 注目!!
...しつれいしますた。巣に帰ります。
0102名無しさん@お腹いっぱい。
2005/05/23(月) 02:15:300103名無しさん@お腹いっぱい。
2005/05/23(月) 10:27:520104名無しさん@お腹いっぱい。
2005/05/23(月) 10:39:490106名無しさん@お腹いっぱい。
2005/05/26(木) 09:49:230107名無しさん@お腹いっぱい。
2005/06/07(火) 20:56:07セグメンテーションでは防げないのか?>メモリアクセス
ユーザプロセスがLDTを自由に作成できるなら話は別だけど
普通はメモリのアクセス範囲って決まってるものじゃないの?
0108名無しさん@お腹いっぱい。
2005/06/08(水) 06:57:110109名無しさん@お腹いっぱい。
2005/07/17(日) 08:52:19論文読んでみて、
- cache miss を使った covert channel の構築するという発想
- それを実際に実現したプログラミング力
- ルーチンパターンから鍵を推定する数学力
に、ただただ感心した。コリンきゅんすげー、自分とおないどしなことに orz
0110名無しさん@お腹いっぱい。
2005/07/18(月) 08:17:53■ このスレッドは過去ログ倉庫に格納されています