GnuPGでdm-crypt(LUKS)を使用してFDEに2要素を使用するにはどうすればよいですか?


9

Ubuntuでフルディスク暗号化を使用する場合(homedir暗号化とは対照的)、ボリュームの暗号化にはLUKSを使用したdm-cryptが使用されます。インストーラー(少なくとも12.04代替)では、パスフレーズとキーファイルのどちらを使用してセットアップするかを選択できます。この2つを組み合わせて使用​​します。どちらでもありませんが、両方が必要です。

どうして?これはセキュリティを強化するためです(2要素); あなたは何かを持っている必要があり、それをアンロックするために何かを知る必要があります。次に、キーファイルを小さなリムーバブルストレージデバイス(USBフラッシュドライブ)に置き、起動時にのみ差し込みます。その結果、ルートパーティションのロックを解除するために、適切なフラッシュドライブを挿入、適切なパスフレーズを提供する必要があります。

つまり、言い換えると、ブート中に、外部ドライブのキーファイルが暗号化されているパスフレーズを尋ねられます。

/usr/share/initramfs-tools/hooks/cryptgnupgそれを達成するのに役立つ可能性のあるヘルパースクリプトが表示されますが、それを使用する方法がわかりません。

ただ、混乱を避けるために:私はありません追加する方法を求めて、追加のロックを解除し、ボリュームへの鍵を。


私は自分自身で答えの一部を見つけました... ドキュメントを読んでください。でこれを使用する方法について読んでください/usr/share/doc/cryptsetup/README.gnupg。外部メディアからのキーファイルを使用するように変更する時間を見つけようと思います。
gertvdijk 2013

回答:


5

私は同じことをしますが、完全にカスタムのInitramfsを使用したさまざまな理由により、私の答えは満足のいくものではないと思います。

代わりのGnuPG中に含まれなければなら余分なバイナリである、initramfsの(との場合にはGnuPG-2かなり複雑なもの、)、私は単純に既にある何を使用。そして、それは明らかにdm-crypt/LUKSです。

それであなたが持っていると仮定しますkeyfile。ランダムなデータを持つものが好ましい。

# dd if=/dev/urandom of=keyfile count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000189802 s, 2.7 MB/s

LUKSを使用して暗号化を追加します(選択した暗号設定を自由に追加してください)。

# truncate -s 2M keyfile.luks
# cryptsetup luksFormat keyfile --header keyfile.luks

WARNING!
========
This will overwrite data on keyfile.luks irrevocably.

Are you sure? (Type uppercase yes): YES
Enter passphrase: bananas
Verify passphrase: bananas

これで、keyfile(512バイト)とkeyfile.luks(2MB、何らかの理由でcryptsetupで192k LUKSヘッダーを書き込む必要がある)ができました。とにかくInitramfsは圧縮されるので、それほど悪くはありません(まだより小さいGnuPG)。

これでキーファイルを復号化できます:

# cryptsetup luksOpen keyfile --header keyfile.luks lukskey
Enter passphrase for keyfile: bananas

また、512バイトのランダムデータがあり/dev/mapper/lukskeyます。(変更したい場合は書き込むことができるので、以前にゼロでファイルを初期化することができます。)

# blockdev --getsize64 /dev/mapper/lukskey
512

ではinitramfsを initあなたはそれを持つ本物のLUKSのボリューム(あなたが最初のキーを追加したと仮定)を開くために行われる可能性があります。

cryptsetup --key-file=/dev/mapper/lukskey luksOpen /dev/yourdisk luksyourdisk
cryptsetup luksClose lukskey # clean up

このアプローチは、GnuPGを完全に不要にし、さらに、キーの複数のパスフレーズ、選択した暗号など、LUKSのすべての利点を得ることができます。言うまでもなく、複数回の再試行を伴う素晴らしい(ほとんどの場合は定期的な)パスワードプロンプト。


2
クールなソリューションですが、これを私のinitramfsに正確に統合するにはどうすればよいですか?あなたは完全にカスタムのinitramfsを使用すると述べていますが、これはフックを使用するだけで可能ではないでしょうか?
gertvdijk 2013

もちろん。暗号タブを強制して最初に何らかの方法でキーを見つけて開く方法を考えることができれば、フックがなくても可能です。たとえば、ファイルである必要はありません。USBスティック上にファイル用に別のパーティションを作成できます。しかし、私はそのようにしていないので、具体的な答えを出すことはできません...すみません:-/
frostschutz

1
まったく問題ありません-GnuPGを回避してLUKSを再利用することは確かに優れたオプションです。GnuPGアプローチのフックを書き換える必要がある場合は、とにかくまったく使用せずに書き換える方がよいでしょう。そして、はい、私はこれがファイルである必要はないことを知っています。
gertvdijk 2013

@gertvdijkもしこれがうまくいけば、将来の参考のためにあなたの答えに興味があります
frostschutz 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.