Re: [PATCH 0/4][RFC v2] Introduce the in-kernel hibernation encryption

Pavel Machek
2018-07-20T10:25:46Z

[-- Attachment #1: Type: text/plain, Size: 3372 bytes --]

Hi!

> > > > > As security becomes more and more important, we add the in-kernel
> > > > > encryption support for hibernation.
> > > >
> > > > Sorry, this does not really explain what security benefit it is
> > > > supposed have to against what attack scenarios.
> > > >
> > > > Which unfortunately means it can not reviewed.
> > > >
> > > > Note that uswsusp already provides encryption. If this is supposed to
> > > > have advantages over it, please say so.
> > > >
> > > The advantages are described in detail in
> > > [PATCH 1/4]'s log, please refer to that.
> >
> > Are you refering to this?
> >
> Not this one. I've sent v2 of this patch set which
> explain more on this:
> https://patchwork.kernel.org/patch/10532935/

Aha, sorry about that.

> Let me paste the log here:
>
> 1. (This is not to compare with uswsusp but other
> tools) One advantage is: Users do not have to
> encrypt the whole swap partition as other tools.

Well.. encrypting the partition seems like good idea anyway.

> 2. Ideally kernel memory should be encrypted by the
> kernel itself. We have uswsusp to support user
> space hibernation, however doing the encryption
> in kernel space has more advantages:
> 2.1 Not having to transfer plain text kernel memory to
> user space. Per Lee, Chun-Yi, uswsusp is disabled
> when the kernel is locked down:
> https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/
> linux-fs.git/commit/?h=lockdown-20180410&
> id=8732c1663d7c0305ae01ba5a1ee4d2299b7b4612
> due to:
> "There have some functions be locked-down because
> there have no appropriate mechanisms to check the
> integrity of writing data."
> https://patchwork.kernel.org/patch/10476751/

So your goal is to make hibernation compatible with kernel
lockdown? Do your patches provide sufficient security that hibernation
can be enabled with kernel lockdown?

> 2.2 Not having to copy each page to user space
> one by one not in parallel, which might introduce
> significant amount of copy_to_user() and it might
> not be efficient on servers having large amount of DRAM.

So how big speedup can be attributed by not doing copy_to_user?

> 2.3 Distribution has requirement to do snapshot
> signature for verification, which can be built
> by leveraging this patch set.

Signatures can be done by uswsusp, too, right?

> 2.4 The encryption is in the kernel, so it doesn't
> have to worry too much about bugs in user space
> utilities and similar, for example.

Answer to bugs in userspace is _not_ to move code from userspace to kernel.

> > Also note that joeyli <jlee@suse.com> has patch series which encrypts
> > both in-kernel and uswsusp hibernation methods. His motivation is
> > secure boot. How does this compare to his work?
> >
> Joey Lee and I had a discussion on his previous work at
> https://patchwork.kernel.org/patch/10476751
> We collaborate on this task and his snapshot signature
> feature can be based on this patch set.

Well, his work can also work without your patchset, right?
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]