すべてのクライアントにフルディスク暗号化を実装したいと考えています。ただし、起動時に FDE アクセス コードを入力する必要がないように、アクセス コードを DHCP などで配布できるかどうか知りたいです。
FDE は、ラップトップが盗まれたときや社外にあるときにラップトップを保護するという考え方ですが、会社のネットワークで使用されている場合は、盗まれていないものと想定します。
理想的には、アクセス コードを 1 回限りのアクセス コードにして、誰かが DHCP の応答を盗聴しても、一般にラップトップを復号化できないようにしたいと思います。
答え1
これにはカスタム Initramfs または少なくともフックの作成が含まれる可能性が高いため、次のリソースが興味深いかもしれません (Gentoo 固有の部分は無視してください)。
- https://wiki.gentoo.org/wiki/Custom_Initramfs
- https://wiki.gentoo.org/wiki/Custom_Initramfs#DHCP
- https://wiki.gentoo.org/wiki/Custom_Initramfs/Examples#自己復号化サーバー
自己復号化サーバーの例では、次のような暗号化キーが生成されます。
(
# CPU:
grep -vE '(MHz|bogomips)' /proc/cpuinfo
# RAM:
tail /proc/iomem
# MAC-Address: (requires network drivers)
cat /sys/class/net/*/address
# Block devices and partitions (ignore optional CD drive):
grep -v sr0 /proc/partitions
# Random file:
cat /root/secret
) | sha512sum | xargs echo -n > /root/key
これは、誰かがサーバーのそばを通りかかってハードディスクを取り出すのを防ぐためのものです。HDD 自体はサーバーの CPU、RAM、MAC アドレスを認識しないため、それが属するボックスの外部で自分自身を復号化することはできません。
ラップトップ(デバイス全体が盗まれた場合)の場合、泥棒がそのデータをすべて持っているため、これは役に立ちません。そのため、代わりにこれを DHCP データに置き換える必要があります。
したがって、DHCP 経由で IP アドレスなどを取得した後は、次のようになります。
(
cat /sys/class/net/*/address
ip addr show
ip route show
cat /etc/resolv.conf
) | sha512sum | xargs echo -n > /root/key
これにより、MAC アドレス、IP アドレスとルート、DNS サーバーなどに基づいたハッシュ/パスフレーズが提供されます。
DHCP が常に同じ方法でラップトップを設定する限りは機能しますが、DHCP サーバーはラップトップの構成を永久に記憶する必要があり、そうしないとラップトップが起動しなくなります。
このようなソリューションは常に不安定なので、複数のパスフレーズをサポートする LUKS を使用し、DHCP パスフレーズが壊れた場合に備えてバックアップ パスフレーズを用意しておくようにしてください。
また、これはあまり安全ではありません。この DHCP 情報は (ラップトップを使用しているユーザーに対して) 公開されており、推測するのはおそらく難しくありません (同じ環境で別のラップトップを使用しているユーザーにとって)。そのため、平均的な窃盗犯からは保護されますが、少し技術に詳しい同僚からは保護されません。