On October 18, 2024 1:56:38 AM EDT, Christoph Hellwig <h...@infradead.org>
wrote:
>On Fri, Oct 18, 2024 at 01:44:19AM -0400, Adrian Vovk wrote:
>> > So just run a target on each partition.
>>
>>
>> That has different semantics. If I encrypt each virtual partition there's
>> nothing encrypting the metadata around the virtual partitions. Of course,
>> this is a rather contrived example but point stands, the semantics are
>> different.
>
>Then you set up an dm-crype device mapper table for the partition table as
>well.
Sure, but then this way you're encrypting each partition twice. Once by the
dm-crypt inside of the partition, and again by the dm-crypt that's under the
partition table. This double encryption is ruinous for performance, so it's
just not a feasible solution and thus people don't do this. Would be nice if we
had the flexibility though.
Plus, I'm not sure that such a double encryption approach is even feasible with
blk-crypto. Is the blk-crypto engine capable of receiving two keys and
encrypting twice with them?
>
>> > This is the prime example of why allowing higher layers to skip
>> > encryption is a no-go.
>> >
>>
>> In what way does that break the file system's security model? Could you
>> elaborate on what's objectionable about the behavior here?
>
>Because you are now bypassing encryption for certainl LBA ranges in
>the file system based on hints/flags for something sitting way above
>in the stack.
>
Well the data is still encrypted. It's just encrypted with a different key. If
the attacker has a FDE dump of the disk, the data is still just as inaccessible
to them.
In fact, allowing for this will let us tighten up security instead of punching
holes. It would let us put encrypted home directories on top of full-disk
encryption. So if an attacker has a disk image and the FDE key, they still
wouldn't be able to decrypt the user's home directory because they'd need more
keys. We also want to put fscrypt on top of the encrypted home directories to
encrypt each app data directory, so if you have a banking app the attacker
wouldn't be able to get that app's data even if they manage to get your home
directory key. Right now, doing something like this requires stacking
encryption and is thus unfeasible and we can't do it, so we're stuck with one
layer of full disk encryption and no isolation between users and apps.
Thanks,
Adrian