DRAMに残った情報からディスクエンクリプションを解く 111
ストーリー by Acanthopanax
盲点 部門より
盲点 部門より
capra 曰く、
コンピュータで使われているDRAMは意外にも電源を落とした後も数秒から数分間に渡ってデータを保ち続けるため、ディスクエンクリプションのキーを物理攻撃によって取得することができるという記事が本家/.にて紹介されていました。記事によるとDRAMのデータはマザーボードから外した状態でも保たれ、冷却するとさらに長時間にわたってデータを保ち続けるそうです。このため、不当に(もしくは犯罪捜査などの正当の理由で)DRAMのフルイメージを取得できる可能性があるとのことです。
プリンストン大学の研究者らは実験で、BitLockerおよびFileVault、dm-crypt、TrueCryptといったよくあるディスクエンクリプションシステムに特別な機材を使わずにコールドリブートとマウント攻撃をしかけてディスクエンクリプションのキーを取得することに成功しており、ビット劣化などを補正し暗号キーを取得するアルゴリズムも開発したそうです。リンク先の動画では、DRAMを冷却することによってデータ保持時間が延長する様子や、彼らが開発したソフトを入れた外付けHDからノートPCをブートしてディスクエンクリプションを解読する様子などを見ることができます。
環境とメモリの品質によっては数日間残ることもあります (スコア:5, 参考になる)
数分間どころか数日間程度電源を落としたままでも持ちますですよ。
組み込み系でメモリを直接さわってる人ならやったことがあるかもしれませんが、RAMに状態を保存してスタンバイ状態にする仕組みでシステムを作っていたところ、ほとんどの場合において金曜日の勤務終了後に完全に電源を落として帰宅した場合でも土日を挟んだ休み明けにシステムがきっちり復旧できました。
Re:環境とメモリの品質によっては数日間残ることもあります (スコア:3, 興味深い)
組み込み機器でのスタンバイ時の状態保存用って普通はSRAMを使うものじゃないでしょうか。
・SRAM
フリップフロップを使って状態を記憶する
構造が複雑でコストは高く、大容量化が難しいが、動作は高速
スタンバイ時の記憶維持に必要な消費電力が非常に少ないのが特徴。
CPU内のキャッシュメモリとかレジスタファイルとかは速度の問題からSRAM式だし、
組み込み機器などで、消費電力を少なくするためにSRAMを使うことが多い
記憶維持に必要な消費電力が非常に少ないので、電源を切った状態でも、電源まわりにコンデンサなんかに貯まってる電圧でデータを維持できることもよくある。
・DRAM
コンデンサを使って状態を記憶する
構造が単純なので、コストが低く大容量化しやすい
コンデンサはそのままだと放電していくので、定期的に再充電(リフレッシュ)が必要
リフレッシュの周期はだいたい100msのオーダー
(リフレッシュそのものはμsオーダーの間隔で行うが、メモリ全域ではなく、部分的に少しずつリフレッシュしていくので、一周するのがそれくらい)
PCのメインメモリはDRAMを使ってる
DRAMリフレッシュしないとすぐにデータが飛ぶというのが今までの定説だったのですが、
原理上は「電源を完全に切った状態でも、内部のコンデンサが放電するまでは、記憶を維持できる」わけです。
最近のメモリ素子は性能が良くて、リフレッシュしなくても数分持つぐらい放電が少ないってことなんでしょう…
Re:環境とメモリの品質によっては数日間残ることもあります (スコア:4, 参考になる)
リフレッシュは内部で自動的に行われるので外から見たらSRAMなんですね。
セルサイズがSRAMと比べて圧倒的に小さいのがメリットですな。
結構身近なものに使われてたりしますよ。安いんで儲からないけど。
思いっきり中の人なのでACだな
Re:環境とメモリの品質によっては数日間残ることもあります (スコア:3, おもしろおかしい)
「ダーリン」「○○ちゃ」とかいいながらあちこちに電撃をぶっ放しているのでしょうか?!
Re:環境とメモリの品質によっては数日間残ることもあります (スコア:1)
それは「Lum」だっちゃ!
# 中の人は...平野文さん?
Re:環境とメモリの品質によっては数日間残ることもあります (スコア:1, 参考になる)
Re:環境とメモリの品質によっては数日間残ることもあります (スコア:1)
いくら素子の性能?が良くなっていても,1ビット当りの容量が減っているので,放電する時間は減っているはずでは?
Re:環境とメモリの品質によっては数日間残ることもあります (スコア:2, 参考になる)
材料変えたりと涙ぐましい努力を続けてますから。
もっとも、絶縁膜やジャンクションからのリークも増えてるんですけどね。
Re:環境とメモリの品質によっては数日間残ることもあります (スコア:1, 興味深い)
そういう努力をしているのは知ってるけど、それは微細化、大容量化のために
必要だからやっているわけで、むしろ、数日も情報が残るほどマージンが
あるのなら、そのマージン分を、さらなる微細化、大容量化にまわせば
いいのに、と思ってしまいます。
信頼性を確保するのに、それくらいのマージンは必要ということでしょうか。
Re:環境とメモリの品質によっては数日間残ることもあります (スコア:4, 参考になる)
一般に外部に公表するスペックではありませんが,学会発表などの際の資料でどの程度のオーダーかはわかります。
少なくとも常温で数日というほどのものではありません。
DRAMは読み取りに時にキャパシタにチャージした電荷を「消費」するわけだし,隣接セルの読み書きによる
ディスターブの影響なども受けるし,個々のセルごとの製造バラツキ・特性バラツキもあるので,メモリの特性と
して最も重要なセルの電荷保持特性を犠牲にして他の特性向上を目指すという設計はとても恐くてすぐに出来るもの
ではないはずです。
細かい話になるけど,DRAMのセルは真空で完全に絶縁されてるわけではないので,結構隣接セルの状態の影響を受け
ますし,隣接セルの読み書き動作の繰り返しにより特定のセルのデータを化けさせる(ためだけの)テストパターン
なんてのも作れます。 そういうわけでFLASHメモリの多値セルみたいな技術をDRAMに適用するのはとてもとても.........
Re:環境とメモリの品質によっては数日間残ることもあります (スコア:1, 参考になる)
読み出す方法を「最近」見つけた、ってことだと思います。
で、キャパシタの容量が減らないのは、主に微細化が原因です。微細化してもリークが
減らないんで、保持時間を確保しようとするとキャパシタの容量を減らせないんです。
それから、保持時間はワースト保証なので長時間電荷を保持するセルは結構ありますよ。
Re:環境とメモリの品質によっては数日間残ることもあります (スコア:2, 参考になる)
大容量化により、リフレッシュサイクルの長期化が必要になり、結果的にメモリセルのデータ保持時間が長くなっています。
#低リーク化するか、大容量化するかは、各メーカの努力の結晶によるものでしょう
なので、単純にメモリセルが小さくなったから保持時間が短くなると言うものではありません。
Re:環境とメモリの品質によっては数日間残ることもあります (スコア:2, 興味深い)
MSX2+でこの仕様(バグ?)は改善されてしまったのですが…
もう15年以上前の話しですね…
Re:環境とメモリの品質によっては数日間残ることもあります (スコア:2, 興味深い)
Re:環境とメモリの品質によっては数日間残ることもあります (スコア:2, 興味深い)
#元々は某パソ通 BBS 局がラムディスクベースで稼動してたことから生まれたソフトだったりするのだが。
Re:環境とメモリの品質によっては数日間残ることもあります (スコア:2, 興味深い)
1~2秒くらいの停電であれば平然と動きつづけていた記憶があります。
タフでしたねェ
Re:環境とメモリの品質によっては数日間残ることもあります (スコア:1, 興味深い)
って書いてあるけど。
しかしこの冷却ぶっこ抜き方法は、CSIとかスパイもので使えそうなネタですね。
時代遅れ (スコア:4, 興味深い)
確かに特別な機材が必要ないというのは気になりますが、そもそも特別な機材を使わない事に意味があるのですか?
保護回路も一部のメモリ付プロセッサに実装されていますが、それに対応できるとも思えません。
こんな事をするよりも、メモリを破壊して内容を基盤に焼き付けた方が遙かに早いでしょう。
その方法なら、保護回路に対する攻撃もある程度知られています。
対策としてはどうなんでしょう? (スコア:2, 興味深い)
起動中も暗号キーを保持しているメモリアドレスを移動したり分散したり難読化したりを常にし続けるという感じでしょうか。
Re:対策としてはどうなんでしょう? (スコア:3, 参考になる)
Re:対策としてはどうなんでしょう? (スコア:1, 興味深い)
グラウンドとの間にリレーをかませておいて、電源が切れたらショートさせておく、みたいな回路を作っておくとか。
# ずーっと電気回路いじってないので、すぐには思いつかんorz
Re:対策としてはどうなんでしょう? (スコア:1)
あといきなり冷却されたときも。
外部からまずマザーボード上の電池を取り外される対策も必要になるかなぁ。電池は2箇所積んで相互にモニタするとかかな。
なんか分解不可能な時限爆弾のはなしみたくなるけど。
Re:対策としてはどうなんでしょう? (スコア:1)
http://srad.jp/security/comments.pl?sid=391260&cid=1302198 [srad.jp]
ここに書いてある説明がわかりやすいかと思いますが、DRAMといえど結局コンデンサです。それなりの周波数の電流を与えれば全て充電もしくは放電してしまうことができます。(まあ仕掛け的に昨今のDRAMは素子へのアクセスがシリアル化されてたりしてますから簡単にはこれが行えない可能性はありますが)
ふつうメモリ素子に対してこうしたリセット操作を行うことを「フラッシュする」と表現するんじゃないかと思うんですが・・・。
Re:対策としてはどうなんでしょう? (スコア:1)
ウィキペディア(Wikipedia)の「フラッシュ」の項には
「コンピュータのメモリの内容をすべて消去すること」という記述がありますが……
http://ja.wikipedia.org/wiki/%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5 [wikipedia.org]
# 「フラッシュ」という動詞に、「一括消去する」という意味が追加されたのは、いつ頃なんでしょうか?
notice : I ignore an anonymous contribution.
Re:対策としてはどうなんでしょう? (スコア:2, 興味深い)
これは,たぶん,英語の flush が元になっていて,
flash memory と混同されたのが,今回の誤解の
原因ではないかと推測します.
ちなみに,セキュリティの文脈ですと,同様の操作を
ゼロ化 (Zeroize) と呼ぶことが多いように思います.
http://en.wikipedia.org/wiki/Zeroisation [wikipedia.org]
Re:対策としてはどうなんでしょう? (スコア:1)
デスクトップならセキュリティスロットに南京錠でも付けておくと分解し難くなりますが、スロット自体が柔な構造で百円均一のペンチやニッパーで無効化できたり、南京錠も専用工具で簡単に開けられたりしますから難しいですね。
Re:対策としてはどうなんでしょう? (スコア:1)
今回の方法は、物理的にメモリを外したりしてないよ。
PCを再起動した時に、メモリに再起動前の状態が残るようにして、それを読み取ってるだけだと思う。
Re:対策としてはどうなんでしょう? (スコア:2, 参考になる)
> PCを再起動した時に、メモリに再起動前の状態が残るようにして、それを読み取ってるだけだと思う。
・たいていのマシンでは、再起動した時の Power-On Self Test(POST) 時にデータが破壊される。でも、たいていのマシンでは設定で無効化できたりスキップできる。
・ECCメモリを使うハイエンドマシンでは、状態を安定させるために起動時にクリアされるし、無効化もスキップもできない。でも、他のマシンで読もうとするなら、ECCのおかげでより確実に読める。
…と、論文の"3.4 BIOS footprints and memory wiping"にあります。
多くの場合は、ホットスタートして消去されていないRAMを読むという伝統的な手法で事足りるのでしょう。
で、ブート時のメモリ消去を無効化できないように設定しても、冷却してから取り外して他のマシンに移せばほぼデータ破損無しでDRAMの内容を読める、ってのが cold boot ってわけですね。
Re:対策としてはどうなんでしょう? (スコア:1)
動画をザッピングしてて勘違いしてたようです。
てっきり、外部ドライブやUSB起動ができないように設定されたマシンからメモリダンプするために、冷却したモジュールを取り外して別のマシンに移動&USB起動しているのかと思ってました。だから、メモリを外せないようにした方がいいのかなと考えたんです。
内蔵ハードディスクを取り替えても同様のことはできるでしょうが、分解にかかる時間を考えたらちょっとね。ThinkPadとかMacBookみたいに、簡単に抜き差しできる構造だといろいろ助かるかもしれません。
対策も何もそれ以前に攻撃方法が変 (スコア:1, 興味深い)
シャットダウン直後の数分で作業ができて、冷却みたいな大掛かりな作業を行える状況や立場って何?
自分より早めの終電で帰る同僚のパソコンを狙うとかか?
Re:対策としてはどうなんでしょう? (スコア:2, 興味深い)
>抜こうとすると殆どの場合余計な箇所に接触→ショートして
>記憶を飛ばすようにしとく
公衆電話が、解析されないように蓋を開けると制御プログラムが破壊されるようになっている、って話を思い出しました。
そこまでするぐらいなら、今時ならば、マザーボード直付けで4GBのメモリを付けておいた方がいいと思います。
マイコミ (スコア:1, 参考になる)
に記事がありました。
youtube http://www.youtube.com/watch?v=JDaicPIgn9U [youtube.com] の解説動画みると
回収された後の氷殺ジェットの使い道が・・・
Re:マイコミ (スコア:1, 興味深い)
なので、エアダスターを連続して使うと缶自体が気化熱で冷えてきます。それこそ缶表面の結露が凍るレベル。
#エアダスターの缶には必ず「逆さにして使うな(液化ガスが出て凍傷を起こすので)」という注意書きがあります。
あの液化ガスはかかったものを瞬間的に冷凍してしまうほどの威力があるので、その気になれば氷結ゴキジェットの代わりにも使えますよ。
Re:マイコミ (スコア:1, 参考になる)
ついでに補足しておくと、あの手のガスで良くつかわれるHFC134aなんかだと
臨界温度が室温より十分高いから、加圧すれば液化する。
もし臨界温度が室温よりも低ければ、加圧すると単に高密度の気体(というか
超臨界状態)になり、液化しない(そもそも液体と気体との相境界がその温度
では存在しない)。
例えば窒素なんぞは臨界温度がかなり低いから、普通の7立米のボンベなんか
では中で超臨界状態になっており、液体ではない(はず)
Re:マイコミ (スコア:1)
キャンプ用のガスストーブはガス缶がむき出し(台座を兼ねてる)なので、皿に水を入れてその上にガスを置くというワークアラウンドもあるけど。
なーんだ (スコア:1)
というわけで、n年後にはこっちの部類になるのでしょうか
http://srad.jp/article.pl?sid=08/02/21/2348217 [srad.jp]
それって (スコア:1)
Re:それって (スコア:2, おもしろおかしい)
ハイバネート (スコア:1)
ハイバネートすれば、コールドリブートする必要もなく、HDDに保存されたメモリの情報を読めばいいような。
やっぱり、ハイバネートのデータって暗号化されてるのかな?
Re:ハイバネート (スコア:2, 参考になる)
(というか休止状態にするときに書き出すファイル)も暗号化することが出来ます。
一応、その辺は長いこと考えられてきた領域なので、各OSともそれなりのソリューションを
提供していると思いますが、色々と攻撃は考えられています [nsa.org]。
重要なのは、利用しているソリューション「全体」について、何が保護されて何が保護されないのかを
知ることでしょう。
例えば指紋認証で使うデータそのもの(= 画像データ)は鍵にはなりえないので、
指紋認証を利用するログオンはどこかに本当の鍵を保持している事になります。
認証ソフトウェアがリバースエンジニアリングされれば一巻の終わりかも知れません。
(実際には、幾つかの工夫をすることで安全になっていますが。。)
Re:空目 (スコア:1, 参考になる)
現在、
ディスクの暗号を解除したい場合は、PCの前に座っているのが善人
DRMを解除したい場合は、PCの前に座ってるのが(DRMにとって)悪人
という違いがあるので、
DRAMを冷やして取り出すというプロセスを経ないで、
デバッガなりなんなりをアタッチしてRAMの内容を取り出してしまえば終わりです。
そこで、近年はデバッガがアタッチできないプロセスを作れたり、
DRM側が仮想マシンを検出するなどして悪人にRAMの内容を読み取らせないような
工夫が積み重ねられています。
しかし、この手法はそれらの努力を無に帰すだけのパワーがあります。面倒ですけど。
# 多分「悪いDRAM」を作るよりこの手法は簡単。
Re:応用ネタ (スコア:5, おもしろおかしい)
Re:応用ネタ (スコア:1)
Re:応用ネタ (スコア:1)
これを人間に応用するなら、脳の記憶が壊れないように人を殺し、記憶はそのまま人格を入れ替えて蘇生、覚えてる記憶を聞き出すんじゃないかな?
Re:応用ネタ (スコア:1)
そこでは網膜の残像を死後取り出して、殺される直前の映像を元に犯罪捜査するというものでしたが。
「死人に口なし」も覆されるのか~って思った記憶があります。
Re:応用ネタ (スコア:2, おもしろおかしい)
「部長! 映像出ます!」
「よしっ! ……ううむ、どうやら犯人は女性のようだが……」
「でも絶対領域しか見てませんね、このガイシャ」
「使えねー」
Re:応用ネタ (スコア:2, おもしろおかしい)
Re:瞬停 (スコア:1, 興味深い)
Re:瞬停 (スコア:1, 参考になる)
瞬停何ミリ秒持つこととか電源何サイクル抜けても最大負荷で出力はレギュレーション範囲とかあらかじめスペックが決めてあってそれを実現している場合です。
瞬停の時、IBMのPS/55は大丈夫だったけどPS/Vは駄目だったとか色々。。。
Re:私にとって謎なのは (スコア:4, 興味深い)
(破壊されていれば総ナメになるが、解析対象となる暗号化ソフトが判っている場合、特定パターンの検索で済む)
BIOSレベルでの、ディスクの暗号化の場合は更に簡単。
起動時に仮想メモリを使うとは思えないので、1MBの範囲で捜せば済む筈です。
notice : I ignore an anonymous contribution.