フルディスク暗号化をサポートするLinuxブートローダー?


28

フルディスク暗号化をサポートするLinuxブートローダー(TrueCryptに似ています)はありますか?GRUB2に暗号化サポートを追加する作業があったことは知っていますが、まだ準備が整っていないようです。他のオプションはありますか?

(ここでは、完全なディスク暗号化に言及していることに注意してください-を含む/boot

回答のほとんどは、/boot暗号化されていないセットアップについて説明していますが、一部の回答では、暗号化されていない/bootことが問題ない理由を説明しようとしています。

実際に/ bootを暗号化する必要がある理由について議論することなく、GRUB2の修正バージョンに基づいて、必要なものを正確に説明する記事を以下に示します。

これに伴う問題は、これらの変更が現在のGRUB2コードベースでは明らかにサポートされていないことです(または見落としているかもしれません)。


はい、優れたHOWTOはここにあります:wiki.archlinux.org/index.php/...
エバル

回答:


20

GRUB2の現在のバージョンは、LUKSパーティションのロードと復号化をサポートしていません(いくつかの暗号が含まれていますが、パスワードサポートのみに使用されていると思います)。実験的な開発ブランチを確認することはできませんが、GRUBページには、あなたがやりたいことを実装するためのいくつかの作業が計画されているというヒントがあります。

更新(2015):GRUB2の最新バージョン(2.00)には、LUKSおよびGELI暗号化パーティションにアクセスするためのコードが既に含まれています。(OPが提供するxercestch.comリンクには、そのための最初のパッチが記載されていますが、現在は最新リリースに統合されています)。

ただし、セキュリティ上の理由でディスク全体を暗号化しようとする場合、暗号化されていないブートローダー(TrueCrypt、BitLocker、または変更されたGRUBなど)は、暗号化/bootされていないパーティションよりも多くの保護を提供しないことに注意してください(上記のコメントでJV 。コンピュータに物理的にアクセスできる人なら誰でも、簡単にカスタムバージョンに置き換えることができます。リンクしたxercestech.comの記事でも言及されています。

明らかに、これにより、システムがオフライン攻撃に対して脆弱になることはありません。攻撃者がブートローダーを独自のものに置き換えたり、ブートプロセスをリダイレクトして独自のコードをブートした場合でも、システムが侵害される可能性があります。

フルディスク暗号化用のすべてのソフトウェアベースの製品には、暗号化されていないブートローダーまたは暗号化されていないブート/プリブートパーティションを使用しても、この弱点があります。BitLockerなどのTPM(Trusted Platform Module)チップをサポートする製品でも、ハードウェアを変更せずにルート化できます。

より良いアプローチは次のとおりです。

  1. BIOSレベル(マザーボードまたはディスクアダプターまたは外部ハードウェア[スマートカード]で、TPMチップの有無にかかわらず)で復号化する、または
  2. PBA(プリブート認証)コード(/bootこの場合はパーティション)をリムーバブルデバイス(スマートカードやUSBスティックなど)に入れます。

:それを第二の方法を実行するには、Linuxのフルディスク暗号化(LFDE)プロジェクトで確認することができますhttp://lfde.org/移動するために、インストール後のスクリプトを提供/bootして鍵を暗号化、外付けUSBドライブにパーティションをGPGとUSBにも保存します。そのようにして、ブート経路の弱い部分(暗号化されていない/bootパーティション)は常にあなたと共にいます(解読コードとキーに物理的にアクセスできるのはあなただけです)。(:このサイトは失われ、作者のブログも消えましたが、古いファイルはhttps://github.com/mv-code/lfdeで見つけることができます。最後の開発は6年前に行われただけです)。より軽い代替として、OSのインストール中にUSBスティックに暗号化されていないブートパーティションをインストールできます。

よろしく、MV


1
BIOSレベルでの復号化は確かに非常に優れたソリューションになります(これはオプションと考えています)

1
動作する実装はわかりませんが、EFI / UEFIには、一般的なブートローダーを置き換えるカスタムEFIブートマネージャーを含めるオプションがあり、データを解読するための解読レイヤーを追加することもできます(もちろん、EFIプラットフォームが必要になります)。または、CoreBootに関連するプロジェクト(ADLO、SeaBIOS、OpenBIOSなど)の一部を変更して、それを行うことができます。ただのアイデア。

4
暗号化されていない/ bootパーティションを使用することの脆弱性に関する追加情報を追加するだけです(ただし、暗号化されていないブートローダーにも適用されます):twopointfouristan.wordpress.com/2011/04/17/… (ブートの変更方法物理的なアクセスの10分でパーティション、マウントパスフレーズに加えて暗号化されたパーティション内の他のファイルを取得するために)

1
@MV .:ありがとう。私はそれを自分でテストし/boot、GRUB2で暗号化されたパーティションを使用するための詳細な手順を含む回答をここに追加することができます。
ペケ

1
@에이바:いいえ、それは関連しています(LUKとTPMを使用)が、以前はlfde.org(現在はエアロクラブに関するサイトです)でホストされていたのと同じプロジェクトではありません。
MV。

4

初期RAMdiskを作成し、/ bootフォルダーは暗号化を使用しません。

これにより、ドライバと暗号化された「実際の」ルートファイルシステムに切り替えるサポートを備えた「最小」カーネルが表示されます。

「これはハックだ」と主張する前に-ほとんどの(すべてではないにしても)Linuxディストリビューションはデフォルトでこの方法でブートします。これにより、ファイルシステムからロードする必要のあるモジュールを使用して、システムがルートFSを起動およびロードすることが明示的に許可されます。(鶏と卵の問題のソート)。たとえば、ルートファイルシステムがハードウェアRAIDボリューム上にあり、ルートFSをマウントする前にドライバーをロードする必要がある場合などです。


3

投稿したリンクを確認しました-ブートパーティションはありませんが、悪意のあるメイド攻撃を使用してアクセスおよび侵害される可能性のある暗号化されていないブートローダーがハードディスクに残っています。ハードディスクに暗号化されていないデータが存在しない同様のセットアップを検討してきましたが、これまでのところ、リムーバブルドライブからブートローダーを実行することしか考えられませんでした。


はい、暗号化されていないブートローダーがまだあります。これは私には受け入れられるでしょう。

邪悪なメイドは、ブートローダーに感染して偽のパスワードプロンプトを実行し、だまして、暗号化されていないトロイの木馬カーネルをロードするだけです。カーネルを暗号化しても、ブートローダーを暗号化しないとほとんど効果がありません。
スカペレン

1

私は彼らのほとんどが行うと信じています、あなたが必要とするのは、そもそも暗号化されたHDでOSをインストールする方法についての指示です。

Ubuntuには、暗号化されたパーティション、LMVP、フォルダーなどの作成手順が記載された素敵なページがあります。


2
Ubuntuを含むほとんどのLinuxディストリビューションには、パーティションの暗号化に対する何らかのサポートが含まれていますが、暗号化を解除するには/ bootが必要です。私が探しているのは、完全に暗号化されたディスクを処理できるブートローダーです。

1
ブートローダーの少なくとも一部を暗号化しないでおく必要があります。そうしないと、CPUが実行できません。/ bootを暗号化しないままにしておくことで問題がありますか?

2
ブートローダーと/ bootは異なるものです。完全に暗号化されたディスクを起動できるブートローダーを探しています。TrueCryptはWindowsに対しては可能ですが、Linuxに対してはできません。

違いは、Windowsブートローダーはmbr自体に含まれているのに対して、Linuxではmbrは必要な/ bootファイルにリンクするだけです。
JV

1
「プリブート認証は、ブートドライブの最初のトラックにあるTrueCryptブートローダーによって処理されます」-別名、Windowsでは、ミニ/ブートを作成します。繰り返しになりますが、grub自体は/ bootに含まれています。mbrは512バイトしかないため、復号化アルゴリズムを保存するには不十分です。ただし、ハードドライブの一部は暗号化せずに提供する必要があります。完全に異なるパーティションのブートローダーから暗号化されたパーティションでgrubを起動できるかもしれませんが、それはいくつかの非常に厄介なコードを必要とするでしょう
JV

0

いいえ、ありません。

/ bootを本当に暗号化する必要がありますか?私はそうは思わない。ファイルシステムの残りの部分は、/ bootのinitramfsに常駐する通常のLinuxソフトウェアによって暗号化でき、それに応じてユーザーにプロンプ​​トが表示されます。


2
はい、/ bootを暗号化する必要があります。ブートローダー自体を除くすべてを暗号化する必要があります。

完全なディスク暗号化をサポートするブートローダーがないと思われる理由を説明してください。
this.josh

@Grodriguez:/ bootをブートローダーの一部と見なすと、すべてが暗号化されます。実行時に使用されるすべてのバイナリ、すべてのユーザーデータなど
MarkR

2
別の回答のコメントに記載されているように、暗号化されていない「何か」が常に存在する必要があることを知っています-私はこの「何か」が/ bootパーティションの代わりにブートローダー(MBR +ブートセクター)である必要があります。

0

不可能なことを求めているようで、実装隠しているWindowsソリューションと比較しているようですが、実際にはLinuxが行っているのと同じことをしています。

私が考えることができる最も近い解決策は、セキュリティパスワードと暗号化を実装するハードドライブを使用することです。一部のThinkpadラップトップは、これらのハードウェアソリューションを使用しています。


2
申し訳ありませんが、なぜこれが「不可能」であるのかわかりません。私の質問で私がリンクしている記事は、それができることを証明しています。概念実証は、GRUB 2の修正バージョンを使用して実装されました。暗号化されない「何か」が常に存在する必要があることを知っています。代わりに、この「何か」がブートローダー(MBR + / bootパーティションの。

@Grodriguez:要件は意味がありません。別のOS内で仮想マシンを使用する場合、要件は満たされていますか?その場合は、OS 1を起動し、ドライブを復号化してVMを起動します。
ザンリンクス

2
リンクした記事を実際に読んでみましたか?要件を理解していないという事実は、「意味がない」という意味ではありません。これには正当な理由があります(私はそれを知りたくありません)。

この記事は、パラグラフ3で状況を改善しないことを明らかにしています。したがって、それが機能する方法ではなく、設定方法に焦点を当てた残りの部分をフォローすることは意味がありません。あなたのカーネル、または/ boot全体を自分のもの(邪悪なメイドとして振る舞うとき)に置き換えたことをあなたに伝えようとしていることを考えてください。
スカペレン

0

答えは記事で示唆されています。「これは、サポートするようにパッチが適用された次世代GRUB2ブートローダーの拡張機能で可能になりました」と「新しいluks対応grub2イメージを後でインストールしたい」と「LUKS対応GRUB2ソースをコンパイルします。 」GRUB2、またはフォークされたGRUB2ソースを入手して含める必要があるパッチまたは拡張機能があるようです。


0

Grub2バージョン2.02〜beta3は、私がテストしたGrub2バージョン2.02〜beta2ができない多くのことを実行できます。

  1. Super Grub 2ディスクを使用したブート
  2. 「c」キーを入力してコマンドラインに移動します
  3. コマンドを入力して、必要な暗号化パーティションをマウントします
    • insmod luks
    • cryptomount(hd0、#)//ここで#は暗号化されたパーティションを表します
  4. パスフレーズを入力し、いくつかのコマンドをさらに入力します
    • マルチブート(crypto0)/grub/i386-pc/core.img
    • ブート

それは暗号化されたパーティション内にある別のGrub2をロードします、邪悪な狂った攻撃はここでは意味がありません...私はCD(読み取り専用メディア)から起動し、暗号化されたパーティションをマウントします(パスフレーズではなく誰でもできます何でも注入してください!)、暗号化されたパーティション内から起動し、独自のメニューなどでGrub2をロードします。

注:このようなGrub 2.02〜beta3ブート(Super Grub 2 cdを使用)は、USBスティック、USB HDDなどに配置できます。

警告:コマンドcryptomountに関連するいくつかのバグ(Grub2バージョン2.02〜beta3で修正されているようです)があるため、Grub2バージョン2.02〜beta2は同じことができません...

ベータ2のバグは次のとおりです。

  1. 暗号化されたパーティションは実際にはマウントされないため、(crypto0)/ *にアクセスできません
  2. 暗号化されたパーティションが複数ある場合、使用cryptomount -aするパスフレーズは1つだけです
  3. 一度クリプトマウントを実行した後、再度実行されても何もしません

ベータ3で:

  1. 暗号化されたパーティションを実際にマウントし、複数のファイルが同時にマウントされている場合は、(crypto0)/ *または(crypto1)/ *などを使用してファイルにアクセスできます。
  2. 各パスフレーズを要求します(暗号化されたパーティションごとに1つ)
  3. 必要な回数だけ実行することができ、1つ、次に別のものをマウントできます。

サイドノート:再起動するか、別のまたは同じgrub2 /他のブートローダーなどを再起動する以外は、それらをアンマウントする方法を考えませんでした。

これが物事を明確にするのに役立ち、Grub2バージョン2.02〜beta3がLiveCDに統合され、自己でコンパイルすることなくインストールできることを願っています。

PD:Super Grub 2ディスクでは、Grub2バージョン2.02〜beta3をMBR / bootパーティションなどにインストールする方法がわかりません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.