From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6F9D5C3DA4A for ; Thu, 22 Aug 2024 08:23:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=UBsCljVab1BPmvoNWPwKScv3KxusVzTNyxlCSuqCyZY=; b=t8KgMhCs/EuPWa YvuNCOkJxC3zldKp+d+bBk3uY58Z5B4fBENjUDstgHxppYFczOvpoMuKsC/aQ6M69SZBfP3u+M61L plqyvTO8toz4GUZ/mlFq+8Jdq3SIztqDzXAVcJd1LHNI4qgMOuZtEHsBah2d2NkA/PawDzpJ/p34x mmfwFeOZew1KFR0JF52NyfZHCH0Z3PHWojr9fpx+nmEBfgDxlLpT4K95JVUa+X/k7CupziiCuc8Zn hZW1/LR5eUVkssI6Ny+USxbus7/2h7+inSXEEzLSeUYSrs7Rqfg6zS4gm5eSctbWSeZ0JiO0JP6Nz dppqunailVJOLRF4GuvQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sh36o-0000000C1R0-0VFP; Thu, 22 Aug 2024 08:23:54 +0000 Received: from gardel.0pointer.net ([85.214.157.71]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sh36k-0000000C1N1-2tso for kexec@lists.infradead.org; Thu, 22 Aug 2024 08:23:52 +0000 Received: from gardel-login.0pointer.net (gardel-mail [IPv6:2a01:238:43ed:c300:10c3:bcf3:3266:da74]) by gardel.0pointer.net (Postfix) with ESMTP id 55409E80263; Thu, 22 Aug 2024 10:23:39 +0200 (CEST) Received: by gardel-login.0pointer.net (Postfix, from userid 1000) id CBEC216008A; Thu, 22 Aug 2024 10:23:38 +0200 (CEST) Date: Thu, 22 Aug 2024 10:23:38 +0200 From: Lennart Poettering To: Pingfan Liu Cc: Ard Biesheuvel , Jan Hendrik Farr , Philipp Rudo , Jarkko Sakkinen , Eric Biederman , Baoquan He , Dave Young , Mark Rutland , Will Deacon , Catalin Marinas , kexec@lists.infradead.org, linux-efi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [RFCv2 0/9] UEFI emulator for kexec Message-ID: References: <20240819145417.23367-1-piliu@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240822_012350_924926_384EDF27 X-CRM114-Status: GOOD ( 32.12 ) X-BeenThere: kexec@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "kexec" Errors-To: kexec-bounces+kexec=archiver.kernel.org@lists.infradead.org T24gRG8sIDIyLjA4LjI0IDEzOjQyLCBQaW5nZmFuIExpdSAocGlsaXVAcmVkaGF0LmNvbSkgd3Jv dGU6CgogPiBPbiBXZWQsIEF1ZyAyMSwgMjAyNCBhdCAxMDoyN+KAr1BNIExlbm5hcnQgUG9ldHRl cmluZwo+IDxtenhyZWFyeUAwcG9pbnRlci5kZT4gd3JvdGU6Cj4gPgo+ID4gT24gTW8sIDE5LjA4 LjI0IDIyOjUzLCBQaW5nZmFuIExpdSAocGlsaXVAcmVkaGF0LmNvbSkgd3JvdGU6Cj4gPgo+ID4g PiAqKiogQmFja2dyb3VuZCAqKioKPiA+ID4KPiA+ID4gQXMgbW9yZSBQRSBmb3JtYXQga2VybmVs IGltYWdlcyBhcmUgaW50cm9kdWNlZCwgaXQgcG9zdCBjaGFsbGVuZ2UgdG8ga2V4ZWMgdG8KPiA+ ID4gY29wZSB3aXRoIHRoZSBuZXcgZm9ybWF0Lgo+ID4gPgo+ID4gPiBJbiBteSBhdHRlbXB0IHRv IGFkZCBzdXBwb3J0IGZvciBhcm02NCB6Ym9vdCBpbWFnZSBpbiB0aGUga2VybmVsIFsxXSwKPiA+ ID4gQXJkIHN1Z2dlc3RlZCB1c2luZyBhbiBlbXVsYXRvciB0byB0YWNrbGUgdGhpcyBpc3N1ZS4g IExhc3QgeWVhciwgd2hlbgo+ID4gPiBKYW4gdHJpZWQgdG8gaW50cm9kdWNlIFVLSSBzdXBwb3J0 IGluIHRoZSBrZXJuZWwgWzJdLCBBcmQgbWVudGlvbmVkIHRoZQo+ID4gPiBlbXVsYXRvciBhcHBy b2FjaCBhZ2FpbiBbM10KPiA+Cj4gPiBIbW0sIHN5c3RlbWQncyBzeXN0ZW1kLXN0dWIgY29kZSB0 cmllcyB0byBsb2FkIGNlcnRhaW4gInNpZGUtY2FyIgo+ID4gZmlsZXMgcGxhY2VkIG5leHQgdG8g dGhlIFVLSSwgdmlhIHRoZSBVRUZJIGZpbGUgc3lzdGVtIEFQSXMuIFdoYXQncwo+ID4geW91ciBp bnRlbnRpb24gd2l0aCB0aGUgVUVGSSBlbXVsYXRvciByZWdhcmRpbmcgdGhhdD8gVGhlIHNpZGVj YXJzIGFyZQo+ID4gc29tZXdoYXQgaW1wb3J0YW50LCBiZWNhdXNlIHRoYXQncyBob3cgd2UgcGFy YW1ldGVyaXplIG90aGVyd2lzZQo+ID4gc3RyaWN0bHkgc2VhbGVkLCBpbW11dGFibGUgVUtJcy4K PiA+Cj4gSUlVQywgeW91IGFyZSByZWZlcnJpbmcgdG8gVUtJIGFkZG9ucy4KClllYWgsIFVLSSBh ZGRvbnMsIGFzIHdlbGwgYXMgY3JlZGVudGlhbCBmaWxlcywgYW5kIHN5c2V4dC9jb25mZXh0CkRE SXMuCgpUaGUgYWRkb25zIGFyZSB0aGUgbW9zdCBpbnRlcmVzdGluZyBidHcsIGJlY2F1c2Ugd2Ug bG9hZCB0aGVtIGludG8KbWVtb3J5IGFzIFBFIGZpbGVzLCBhbmQgYXNrIHRoZSBVRUZJIHRvIGF1 dGhlbnRpY2F0ZSB0aGVtLgoKPiA+IEhlbmNlLCB3aGF0J3MgdGhlIHN0b3J5IHRoZXJlPyBpbXBs ZW1lbnQgc29tZSBmb3JtIG9mIGZzIGRyaXZlciAoZm9yCj4gPiB3aGF0IGZzIHByZWNpc2VseT8p IGluIHRoZSBlbXVsYXRvciB0b28/Cj4gPgo+IEFzIGZvciBhZGRvbiwgdGhhdCBpcyBhIG1pc3Np bmcgcGFydCBpbiB0aGlzIHNlcmllcy4gSSBoYXZlIG92ZXJsb29rZWQKPiB0aGlzIGlzc3VlLiBP cmlnaW5hbGx5LCBJIHRob3VnaHQgdGhhdCB0aGVyZSB3YXMgbm8gbmVlZCB0byBpbXBsZW1lbnQK PiBhIGRpc2sgZHJpdmVyIGFuZCB2ZmF0IGZpbGUgc3lzdGVtLCBqdXN0IHByZWxvYWQgdGhlbSBp bnRvIG1lbW9yeSwgYW5kCj4gZmluYWxseSBwcmVzZW50IHRoZW0gdGhyb3VnaCB0aGUgdWVmaSBB UEkuIEkgd2lsbCB0YWtlIGEgY2xvc2VyIGxvb2sKPiBhdCBpdCBhbmQgY2hldyBvbiBpdC4KCkl0 IGRvZXNuJ3QgaGF2ZSB0byBiZSBWRkFUIGJ0dy4gSXQganVzdCBoYXMgdG8gYmUgc29tZXRoaW5n LiBGb3IKZXhhbXBsZSwgaXQgbWlnaHQgc3VmZmljZSB0byB0YWtlIHRoZXNlIGZpbGVzLCBwYWNr IHRoZW0gdXAgYXMgY3BpbyBvcgpzbyBhbmQgcGFzcyB0aGVtIGFsb25nIHdpdGggdGhlIFVFRkkg ZXhlY3V0aW9uLiBUaGUgVUVGSSBlbXVsYXRvcgp3b3VsZCB0aGVuIGhhdmUgdG8gZXhwb3NlIHRo ZW0gYXMgYSBmaWxlIHN5c3RlbSB0aGVuLgoKV2UgYXJlIG5vdCB0YWxraW5nIG9mIGEgYmF6aWxs aW9uIG9mIGZpbGVzIGhlcmUsIGl0J3MgbW9zdGx5IGEKc21hbGxpc2ggbnVtYmVyIG9mIHNpZGVj YXIgZmlsZXMgSSdkIGV4cGVjdC4KCj4gPiBBbmQgcmVnYXJkaW5nIHRwbT8gdHBtcyByZXF1aXJl IGRyaXZlcnMgYW5kIGkgZ3Vlc3MgYXQgdGhlIG1vbWVudCB1ZWZpCj4gPiBlbXVsYXRvciB3b3Vs ZCBydW4gdGhvc2UgYXJlbid0IGF2YWlsYWJsZSBhbnltb3JlPyBidXQgd2UgcmVhbGx5Cj4gPiBz aG91bGQgZG8gYSBzZXBhcmF0b3IgbWVhc3VyZW1lbnQgdGhlbi4gKGFsc28gdGhlcmUgbmVlZHMg dG8gYmUgc29tZQo+ID4gd2F5IHRvIHBhc3Mgb3ZlciBtZWFzdXJlbWVudCBsb2cgb2YgdGhhdCBt ZWFzdXJlbWVudD8pCj4KPiBJdCBpcyBhIHBpdHkgdGhhdCBpdCBpcyBhIGNvbW1vbiBpc3N1ZSBw ZXJzaXN0ZW50IHdpdGgga2V4ZWMtcmVib290Cj4ga2VybmVsIG5vd2FkYXlzLgo+IEkgYW0gbm90 IGZhbWlsaWFyIHdpdGggVFBNIGFuZCBoYXZlIG5vIGNsZWFyIGlkZWEgZm9yIHRoZSB0aW1lIGJl aW5nLgo+IChlbXVsYXRpbmcgUGxhdGZvcm0gQ29uZmlndXJhdGlvbiBSZWdpc3RlcnMgPykuICBC dXQgc2luY2UgdGhpcwo+IGVtdWxhdG9yIGlzIGhlbGQgaW5zaWRlIGEgbGludXgga2VybmVsIGlt YWdlLCBhbmQgdGhlIFVLSSdzIHNpZ25hdHVyZQo+IGlzIGNoZWNrZWQgZHVyaW5nIGtleGVjX2Zp bGVfbG9hZC4gQWxsIG9mIHRoZW0gYXJlIHNhZmUgZnJvbQo+IG1vZGlmaWNhdGlvbiwgdGhpcyBz ZWN1cml0eSBpcyBub3QgYW4gdXJnZW50IGlzc3VlLgoKSG1tLCBJJ2QgcmVhbGx5IHRoaW5rIGFi b3V0IHRoaXMgd2l0aCBzb21lIHByaW9yaXR5LiBUaGUgbWVhc3VyZW1lbnQKc3R1ZmYgc2hvdWxk IG5vdCBiZSBhbiBhZnRlcnRob3VnaHQsIGl0IHR5cGljYWxseSBoYXMgbWFqb3IKaW1wbGljYXRp b25zIG9uIGhvdyB5b3UgZGVzaWduIHlvdXIgdHJhbnNpdGlvbnMsIGJlY2F1c2UgbWVhc3VyZW1l bnRzCm9mIHNvbWUgY29tcG9uZW50IGFsd2F5cyBuZWVkIHRvIGhhcHBlbiAqYmVmb3JlKiB5b3Ug cGFzcyBjb250cm9sIHRvCml0LCBvdGhlcndpc2UgdGhleSBhcmUgcG9pbnRsZXNzLgoKTGVubmFy dAoKLS0KTGVubmFydCBQb2V0dGVyaW5nLCBCZXJsaW4KCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmtleGVjIG1haWxpbmcgbGlzdAprZXhlY0BsaXN0cy5p bmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v a2V4ZWMK From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from gardel.0pointer.net (gardel.0pointer.net [85.214.157.71]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0FF861386D8; Thu, 22 Aug 2024 08:23:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=85.214.157.71 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1724315025; cv=none; b=JYGKgzaRo19jHu3cTa7ecKbbSN2wYcm+/KF9nBPKNeepGzFkUB2s1HpvLiPbol9atedbwBpvAglCTDWnZFjcSnvR7wRsBOxfeYsYDWpSZu3fp3aC3D1wXJtFUgpdVAobpwZChJiXxf+JlOhkaob/0hm2o0e8sYRsOXHRTaESC0c= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1724315025; c=relaxed/simple; bh=1vfKuGU1Tk3yURCXes4JiLOpHAiaAyEFf6vYbfrqXyM=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=nz0GMgaIo0DCBK1pOqNSH7rVVlIwLXR4NaIBg1tYqpvkjfAFJeiE1gHWN6BDoW2GpL4lICYPaykeOPhUi6rOKye9mISCV18H6BHUvhsMhWfzLCZyjEMniG38hUuSUYvS65bvUWamZwlfyiX4POoTuR9of8AmF5HF2hKm4aVhhUc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=0pointer.de; spf=pass smtp.mailfrom=0pointer.de; arc=none smtp.client-ip=85.214.157.71 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=0pointer.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=0pointer.de Received: from gardel-login.0pointer.net (gardel-mail [IPv6:2a01:238:43ed:c300:10c3:bcf3:3266:da74]) by gardel.0pointer.net (Postfix) with ESMTP id 55409E80263; Thu, 22 Aug 2024 10:23:39 +0200 (CEST) Received: by gardel-login.0pointer.net (Postfix, from userid 1000) id CBEC216008A; Thu, 22 Aug 2024 10:23:38 +0200 (CEST) Date: Thu, 22 Aug 2024 10:23:38 +0200 From: Lennart Poettering To: Pingfan Liu Cc: Ard Biesheuvel , Jan Hendrik Farr , Philipp Rudo , Jarkko Sakkinen , Eric Biederman , Baoquan He , Dave Young , Mark Rutland , Will Deacon , Catalin Marinas , kexec@lists.infradead.org, linux-efi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [RFCv2 0/9] UEFI emulator for kexec Message-ID: References: <20240819145417.23367-1-piliu@redhat.com> Precedence: bulk X-Mailing-List: linux-efi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: On Do, 22.08.24 13:42, Pingfan Liu (piliu@redhat.com) wrote: > On Wed, Aug 21, 2024 at 10:27 PM Lennart Poettering > wrote: > > > > On Mo, 19.08.24 22:53, Pingfan Liu (piliu@redhat.com) wrote: > > > > > *** Background *** > > > > > > As more PE format kernel images are introduced, it post challenge to kexec to > > > cope with the new format. > > > > > > In my attempt to add support for arm64 zboot image in the kernel [1], > > > Ard suggested using an emulator to tackle this issue. Last year, when > > > Jan tried to introduce UKI support in the kernel [2], Ard mentioned the > > > emulator approach again [3] > > > > Hmm, systemd's systemd-stub code tries to load certain "side-car" > > files placed next to the UKI, via the UEFI file system APIs. What's > > your intention with the UEFI emulator regarding that? The sidecars are > > somewhat important, because that's how we parameterize otherwise > > strictly sealed, immutable UKIs. > > > IIUC, you are referring to UKI addons. Yeah, UKI addons, as well as credential files, and sysext/confext DDIs. The addons are the most interesting btw, because we load them into memory as PE files, and ask the UEFI to authenticate them. > > Hence, what's the story there? implement some form of fs driver (for > > what fs precisely?) in the emulator too? > > > As for addon, that is a missing part in this series. I have overlooked > this issue. Originally, I thought that there was no need to implement > a disk driver and vfat file system, just preload them into memory, and > finally present them through the uefi API. I will take a closer look > at it and chew on it. It doesn't have to be VFAT btw. It just has to be something. For example, it might suffice to take these files, pack them up as cpio or so and pass them along with the UEFI execution. The UEFI emulator would then have to expose them as a file system then. We are not talking of a bazillion of files here, it's mostly a smallish number of sidecar files I'd expect. > > And regarding tpm? tpms require drivers and i guess at the moment uefi > > emulator would run those aren't available anymore? but we really > > should do a separator measurement then. (also there needs to be some > > way to pass over measurement log of that measurement?) > > It is a pity that it is a common issue persistent with kexec-reboot > kernel nowadays. > I am not familiar with TPM and have no clear idea for the time being. > (emulating Platform Configuration Registers ?). But since this > emulator is held inside a linux kernel image, and the UKI's signature > is checked during kexec_file_load. All of them are safe from > modification, this security is not an urgent issue. Hmm, I'd really think about this with some priority. The measurement stuff should not be an afterthought, it typically has major implications on how you design your transitions, because measurements of some component always need to happen *before* you pass control to it, otherwise they are pointless. Lennart -- Lennart Poettering, Berlin