次のリンクにあるオープンソースの孤立したRaspberry Piプロジェクトがあります。www.privatekeyvault.com
次のように、LUKSフルディスク暗号化をインストールする方法を提供しました。https://github.com/johnshearing/PrivateKeyVault#setup-luks-full-disk-encryption
以下に説明するように、中間者攻撃を軽減しようとしています。https://github.com/johnshearing/PrivateKeyVault#preventing-the-evil-maid-or-maid-in-the-middle-attack
問題は、誰かがブートパーティションにマルウェアキーロガーをインストールし、initramfsを実行している間に暗号化されたパーティションにログインしたときにパスワードを収集できることです。
暗号化されたパーティションにログインしたら、次のコマンドを実行してブートパーティションのsha1sumを表示できます。 dd if=/dev/mmcblk0p1|sha1sum
ブートパーティションが変更されたことを確認するために、以前に記録したsha1sumと比較しました。決して変わってはいけません。
暗号化されたパーティションにログインする前に、ブートパーティションのsha1sumをインポートしたいと思います。つまり、パスワードを提供する前です。この時点はまだinitramfsで実行されています。キーロガーをインストールした人が間違ったsha1sumプログラムをインストールする可能性があるため、これは愚かであることがわかっているため、sha1sumプログラムを変更できない暗号化パーティションにログインしてからsha1sumコマンドを実行するのが最善です。それでもできるかと思います。
問題は、コマンド(df)を実行すると/ dev / mmcblk0p1が表示されないため、私のコマンド(dd if = / dev / mmcblk0p1 | sha1sum)が機能しないことです。
initramfsでブートパーティションを参照する方法についてのアイデアはありますか?
また、暗号化されたパーティションにログインする前に、誰かがブートパーティションを改ざんしているかどうかを確認する方法についての他のアイデアがありますか?
答え1
回答する情報が少なすぎるため、正式な質問には回答しません。 initramfsとは異なり、ブートパーティションを参照する特別な理由はありません。一般名が機能しない場合は、initramfsが別のパスを使用しているか、このコマンドが実行されたときにドライバがロードされなかったことを意味します。これが必要な場合は、initramfsを構築する方法と、このコマンドを追加する場所を詳しく説明する必要があります。
気にしないでくださいというコメントではなく、答えとして投稿することです。
あなたがしたいことは基本的に不可能です。攻撃者が起動パーティションを変更できる場合は、initramfsを変更してこのスキャンを削除できます。
暗号化されたパーティションで確認するのはあまり良くありませんが、実際に攻撃するのは少し難しいです。攻撃者はシミュレートされた環境を設定するか(技術的には可能ですが、ユーザーが気付かない方法で実行するのが難しい)、基本OSをロードする前に起動パーティションを期待どおりに復元する必要があります(可能ですがそれはすべてです)。攻撃者は)ショットを得ることができます)。
ブートローダを完全に信頼できない場合、邪悪なメイド攻撃から保護することはできません。信頼できないステップがある場合、そのステップ以降のすべてのステップは信頼できません。 Evil Maid攻撃から保護する唯一の方法は、各ステップが次のステップを検証する完全なセキュリティブートチェーンを保持することです。次のステップが認証されていない場合は、各ステップの開始を停止する必要があります(ダウングレード攻撃が気になる場合は最新の状態に保つ必要があります)。または、次のステップのステータスを記録して、サードパーティの信頼できる検証者に送信する必要があります。この信頼チェーンにスペースがある場合、後続のステップで報告されたデータが本当かどうかはわかりません。
ROMはロードされる内容を確認しないため、Raspberry Piでは不可能です。他のハードウェアを使用しない限り、ブートパーティションは信頼できません。残念ながら、私はアドバイスをすることはできません。市場は、Armプラットフォームで趣味プロジェクトを信頼できるリリースには適していません。
ところで、コマンドが動作してもいくつかの欠陥があります。
dd if=/dev/mmcblk0p1 | sha1sum
同じですsha1sum </dev/mmcblk0p1
。if
とを除いてパラメータはなく、入力を出力にコピーするだけですof
。dd
注意してください特定のパラメータを使用すると、dd
実際にデータが破損する可能性があります。!dd
本当に必要であり、損傷の危険のない方法で使用していると確信している場合以外は使用しないでください。- SHA-1は壊れた。すべてのユースケースで動作するわけではなく、あなたの場合は悪用するのが難しいです(誰かが慎重に作成された無害なコンテンツを正当なブートパーティションにドロップするように準備する必要があります)。ただし、新しいブートパーティションでSHA-1を使用することはありません。責任がある。デザイン。使用
sha256sum
。