回答:
探しているもの—コンピューターで実行されているオペレーティングシステムが信頼できるものであることの確認—は、トラステッドブートと呼ばれます。(これは、トラステッドブートと呼ばれることのあるものの1つです)。提案された方法はこの目的を達成しません。
暗号化では、データの整合性や信頼性は提供されません。つまり、攻撃者がディスクの内容を変更して悪意のあるオペレーティングシステムに置き換えるのを防ぐことはできません。この悪意のあるオペレーティングシステムは、ロードされたカーネルに期待するチェックサムを表示するように簡単にプログラムできます。
最も簡単な攻撃の経路は、攻撃者が何らかの仮想マシンの下で通常のオペレーティングシステムを実行する中間者です。仮想マシンレイヤーは、入力を目的のオペレーティングシステムに送信し、出力を送信します。ただし、キーストローク(mmmm、パスワード)を側面に記録したり、OSのメモリから秘密キーを盗み見たりすることもできます。
この形式の攻撃を回避するには、信頼の根を持つ必要があります。システムの他のコンポーネントが言う理由以外の理由で信頼するシステムのコンポーネントです。つまり、どこかから始めなければなりません。手元にあるハードウェアから始めるのがよいスタートです。オペレーティングシステムをUSBキーで保持し、視界を失わないようにし、十分な信頼性があるハードウェアにのみ接続することができます(ハードウェアはマルウェアを含む可能性があります!)。コンピューターを信頼しても構わないとしたら、そのハードディスクも信頼できるかもしれません。
小さなチップを信頼することとデスクトップまたはラップトップコンピュータ全体を信頼することの間のギャップを埋める技術的な解決策があります。一部のPCには、TPM(トラステッドプラットフォームモジュール)が搭載されており、既知のオペレーティングシステムしか起動できないことを確認できます。Trusted GrubはTPMをサポートしているため、TPMとTrusted Grubを組み合わせることで、実行中のカーネルが承認済みのカーネルであることを保証できます。
TPMの採用は、あなたにとっても、あなたにとっても不利になることに注意してください。それはすべて、誰が鍵を持っているかにかかっています。TPMの秘密キーがある場合は、コンピューターで実行するものを正確に制御できます。メーカーだけが秘密鍵を持っている場合、それは汎用プラットフォームをロックインされたアプライアンスに変える方法です。
起動したカーネルはメモリに常駐します。それを見つけるスクリプトを作成し/dev/mem
、サイズを把握して、チェックサムを計算および検証できます。
HD全体を暗号化することもでき/boot
ます。パーティションを作成する必要はなく、(ほとんど)カーネルを変更する方法もありません。どうやって?私が考えることができる2つの方法:
カーネルをCDに置きます。CDからコンピューターが起動します。これはそれほど難しくありません。数年前にそのようなセットアップを使用したと報告した人もいます。このフォーラムのスレッドの 2番目の投稿を参照してください。
マザーボードがコアブートでサポートされており、最小限のカーネルに対応できる十分なスペースがある場合は、BIOSチップに暗号化対応のカーネルを搭載できます。(私はテストする機会がありませんでしたが、これが機能しないかもしれない理由はわかりません。)
編集:これらはすべて、「信頼された」または「検証された」ブート(Gillesが正しく指摘した)に向けた単一のステップにすぎないことに注意してください。完全なメカニズムでは、ブートローダーの段階で何が起こっているか、および基盤となるハードウェアがどのように識別されるかを考慮する必要があります。Google Chromium OSがこれをどのように行うかをご覧ください。