From: Yu Chen Subject: Re: [PATCH 0/4][RFC v2] Introduce the in-kernel hibernation encryption Date: Tue, 7 Aug 2018 15:38:40 +0800 Message-ID: <20180807073840.GA17894@chenyu-desktop> References: <20180718202235.GA4132@amd> <20180718235851.GA22170@sandybridge-desktop> <20180719110149.GA4679@amd> <20180719132003.GA30981@sandybridge-desktop> <20180720102532.GA20284@amd> <1532346156.3057.11.camel@suse.com> <20180723162302.GA4503@sandybridge-desktop> <1532590246.7411.3.camel@suse.com> <20180806075754.GA12124@chenyu-desktop> <1533550820.15815.14.camel@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Pavel Machek , "Rafael J . Wysocki" , Eric Biggers , "Lee, Chun-Yi" , Theodore Ts o , Stephan Mueller , Denis Kenzior , linux-pm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org, "Gu, Kookoo" , "Zhang, Rui" To: Oliver Neukum Return-path: Content-Disposition: inline In-Reply-To: <1533550820.15815.14.camel@suse.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-crypto.vger.kernel.org On Mon, Aug 06, 2018 at 12:20:20PM +0200, Oliver Neukum wrote: > On Mo, 2018-08-06 at 15:57 +0800, Yu Chen wrote: > > Hi Oliver, > > On Thu, Jul 26, 2018 at 09:30:46AM +0200, Oliver Neukum wrote: > > > On Di, 2018-07-24 at 00:23 +0800, Yu Chen wrote: > > > > > > > > Good point, we once tried to generate key in kernel, but people > > > > suggest to generate key in userspace and provide it to the > > > > kernel, which is what ecryptfs do currently, so it seems this > > > > should also be safe for encryption in kernel. > > > > https://www.spinics.net/lists/linux-crypto/msg33145.html > > > > Thus Chun-Yi's signature can use EFI key and both the key from > > > > user space. > > > > > > Hi, > > > > > > ecryptfs can trust user space. It is supposed to keep data > > > safe while the system is inoperative. > > > > Humm, I did not quite get the point here, let's take fscrypt > > While the system is running and the fs is mounted, your data > is as secure as root access to your machine, right? You encrypt > a disk primarily so data cannot be recovered (and altered) while > the system is not running. > > Secure Boot does not trust root fully. There is a cryptographic > chain of trust and user space is not part of it. > Okay, I see. So if we want to use secure boot mechanism for hibernation encryption, user space is trusted. > > for example, the kernel gets user generated key from user space, > > and uses per-inode nonce(random bytes) as the master key to > > do a KDF(key derivation function) on user provided key, and uses > > that key for encryption. We can also added similar mechanism > > to generate the key in kernel space but the key should be > > original from user's provided key(password derived), because > > the security boot/signature mechanism could not cover the case > > that, two different users could resume to each other's context > > because there isn't any certification during resume if it is > > on the same physical hardware. > > Please explain. You will always have to suspend the whole machine > with all tasks of all users. And STD with Secure Boot need not > imply that you encrypt your discs. You need to encrypt only > kernel memory to meet the requirements. > > As STD affects the whole machine it must require root rights. > So I cannot see how you can talk about a session belonging > to a user. Please explain. > The case is for physical access, not the 'user' in OS. > It seems to me that you can in theory encrypt the password > by a key coming from user space, so that you need to know > an additional key to resume the system, but that seems to me > above and beyond what Secure Boot requires. > Understand. Best, Yu > Regards > Oliver >