Re: Supporting hibernation in Workstation ed., draft 1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2020-06-02 at 21:58 -0700, John M. Harris Jr wrote:
> On Tuesday, June 2, 2020 9:45:45 PM MST Chris Murphy wrote:
> > On Tue, Jun 2, 2020 at 10:28 PM Samuel Sieb <samuel@xxxxxxxx> wrote:
> > 
> > > 
> > > I would expect that using an encrypted partition for swap should be
> > > sufficient to allow it though.
> > 
> > Unfortunately not. Encryption provides no integrity or authenticity.
> > The original set of patches for signed and authenticated hibernation
> > images called for the use of an HMAC for signing, and upstream
> > considered this insufficient and asked why not use AES-GCM to provide
> > a real AE (authenticated encryption) model.
> 
> In what way do you believe it's not sufficient?

AES GCM Is generally *not* a good algorithm for disk encryption so I am
not sure why this is being brought up, HMAC is sufficient to verify
integrity.
In any case the problem is that adding integrity protection cannot be
done w/o losing some space on the disk, as you need to save the
integrity tag/hmac.

As to why just encryption is not sufficient that is because you can
easily play a number of replay attacks, corruption attacks, and
potentially even sectors-wap attacks with naive encryption schemes.

This can be sufficient to generate an attack vector in certain
circumstance once the machine boots up again.

(As an hypotetical if the attacker is able to observe which sector
contains the passwd file and can corrupt it or replace it with other
content that effectively gives it access with a known secret or a blank
password or whatnot, or maybe it can create corruption in the kernel in
such a way that it causes the machine to display a OOM that reveals
encryption keys, or... the possibilities are endless).

> > Not only is encryption alone inadequate, the signature verification
> > model should ensure that the hibernation image being restored was
> > created by the computer it is being restored to.
> 
> Why?

Evil maid attacks.

Because without a signature you could replace the whole image with a
completely functional one that you fully control.

Boot the system with a hybernation image generated on identical
hardware but with your own data, give your own decryption key, presto,
as soon as the hybernation image is restored the system is running your
image. From there you could be able to use, for example, keys stored in
the TPM or simply you capture the real password for the real image as
soon as the user returns to the machine to unlock it and transmit it,
and now you have access to the original disk image and all its
contents...
Again, possibilities abound.


> > I am not a cryptographer. And I can't do a better job of explaining
> > it. But it's a problem. And my disappointment isn't relevant to the
> > security issue. It's relevant from a UX perspective I suppose.
> 
> It's a severe UX issue that you cannot use a standard feature of normal 
> systems, hibernation.

A way to deal with hybernation o secure boot would be to *measure* the
hybernated image as the last action of hybernation and store the
measure in TPM. Fail to restore on boot if the TPM fails to check the
measured image. (Measure here effectively ends up being running an HMAC
on the whole disk image you want to restore and storing the results in
TPM).

> > But, I've also just spent two days trying to track down a new
> > hibernation bug, resulting in fatal hibernation entry. Even without
> > the Secure Boot issue, hibernation can be a problem that requires
> > resources that are not finite. I had this working reliably several
> > months ago, and I've exhausted my time and interest for now doing
> > kernel regression testing and have literally no idea why it's
> > consistently failing now. On three machines (one is a VM). I did
> > report it upstream, I haven't gotten a reply yet (normal).
> > 
> > There are two emails, bottom one is the first.
> > https://lore.kernel.org/linux-pm/CAJCQCtQVGqxtZZTRgscT7e4inTacAd7KAmoNOz3gB4
> > Hf1Nkp0w@xxxxxxxxxxxxxx/
>  
> > -- 
> > Chris Murphy
> 
> -- 
> John M. Harris, Jr.
> 
> _______________________________________________
> devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
> To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
> Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx

-- 
Simo Sorce
RHEL Crypto Team
Red Hat, Inc



_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux