Thread (17 messages) flat view 17 messages, 5 authors, 2020-07-26

Re: [PATCH 3/6] mm: introduce secretmemfd system call to create "secret" memory areas

From: Arnd Bergmann <arnd@arndb.de>
Date: 2020-07-20 20:06:04
Also in: linux-arch, linux-arm-kernel, linux-fsdevel, linux-mm, linux-riscv, lkml, nvdimm

On Mon, Jul 20, 2020 at 9:16 PM James Bottomley [off-list ref] wrote:
On Mon, 2020-07-20 at 20:08 +0200, Arnd Bergmann wrote:
quoted
On Mon, Jul 20, 2020 at 5:52 PM James Bottomley [off-list ref]

If there is no way the data stored in this new secret memory area
would relate to secret data in a TEE or some other hardware
device, then I agree that dma-buf has no value.
Never say never, but current TEE designs tend to require full
confidentiality for the entire execution.  What we're probing is
whether we can improve security by doing an API that requires less than
full confidentiality for the process.  I think if the API proves useful
then we will get HW support for it, but it likely won't be in the
current TEE of today form.
As I understand it, you normally have two kinds of buffers for the TEE:
one that may be allocated by Linux but is owned by the TEE itself
and not accessible by any process, and one that is used for
communication between the TEE and a user process.

The sharing would clearly work only for the second type: data that
a process wants to share with the TEE but as little else as possible.

A hypothetical example might be a process that passes encrypted
data to the TEE (which holds the key) for decryption, receives
decrypted data and then consumes that data in its own address
space. An electronic voting system (I know, evil example) might
receive encrypted ballots and sum them up this way without itself
having the secret key or anything else being able to observe
intermediate results.
quoted
quoted
What we want is the ability to get an fd, set the properties and
the size and mmap it.  This is pretty much a 100% overlap with the
memfd API and not much overlap with the dmabuf one, which is why I
don't think the interface is very well suited.
Does that mean you are suggesting to use additional flags on
memfd_create() instead of a new system call?
Well, that was what the previous patch did.  I'm agnostic on the
mechanism for obtaining the fd: new syscall as this patch does or
extension to memfd like the old one did.  All I was saying is that once
you have the fd, the API you use on it is the same as the memfd API.
Ok.

I suppose we could even retrofit dma-buf underneath the
secretmemfd implementation if it ends up being useful later on,

      Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help