Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp5637784pxb; Mon, 28 Mar 2022 15:19:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzRpBnwtKSIS5y5sDv2q29F+lkYRS26ROwPWvJ9JrQbwPwplkK85UMGQWUwOTR85QLdNIM0 X-Received: by 2002:a05:620a:3713:b0:67e:2333:9cc4 with SMTP id de19-20020a05620a371300b0067e23339cc4mr17763968qkb.644.1648505955399; Mon, 28 Mar 2022 15:19:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648505955; cv=none; d=google.com; s=arc-20160816; b=ARbpSYoXVE5SwMO4XLb2QPBhX15Y2JQ3vKAtaEOEep6mn1MVf+uea5LYkkSeoSYXKp TuuPBgtktDyWrDUuodVtn4HLD847SI3m9zXoPFC1CUjwljSGntFdZN/fFTg1tx3u1iGA QdQxskZaJZSV2Yy1wkrNBFSJjz1ECzIMVXj1RG1Db81Sc4VMSDeEaulYbiqpm5Erm+gg WS/r5IFoWacHYq4uNBuHPy79SU6qAfAHPVgIzM72bMw+kGZSUV7X4A0v3qf6C47fHCEG xiMXL3Zy2xQd7i0Pvokhj7PLQ1i0AP+sRdSH7OQteaXtagI/JpAsgk5+ZV3xg6/fgApI hamg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:dkim-signature; bh=S32zs0pa2gEQEVNruGhWyIWEZSFgiNpA/SIR+p8B8Io=; b=oBUhFdiDsGO8nzkxdMyxDm556SxkKnN5PR7hA/CxZCUo93zu1GpFVZ85wtAwBn/4IQ +wjUuQ1Q+Jhb67BCutVSInvZ3Yuqg2wP+Vg2w+ga/cXv/RUNfcioIXNXXuF0GXJ+Fpnh c4VtRUcbvX6G53G4uqa5NxvY1saPMemIhjX6B6jxUUbuBOwzdlcy26vcZkGNxgjmvP/Z gyOBmW5qjxVZ3MD/WG3VbtvD/DxCBX+4IT0h4cMZgXGcfWBge6a+p4KSjAhuq+y2lljI mgZkKi8/zgEd2FGuLvlx1lQuOiLdqjHO9T4oktpnefICjB4oGH1bTgRE+aRhyXvot0gk lT+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=T7JP2LZx; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id s20-20020a67efd4000000b00324c5c3c055si3218542vsp.663.2022.03.28.15.19.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Mar 2022 15:19:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=T7JP2LZx; dkim=neutral (no key) header.i=@suse.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id C58CC18FAE7; Mon, 28 Mar 2022 14:36:20 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241320AbiC1Qar (ORCPT + 99 others); Mon, 28 Mar 2022 12:30:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56224 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235425AbiC1Qap (ORCPT ); Mon, 28 Mar 2022 12:30:45 -0400 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 34F882C649; Mon, 28 Mar 2022 09:29:04 -0700 (PDT) Received: from relay2.suse.de (relay2.suse.de [149.44.160.134]) by smtp-out1.suse.de (Postfix) with ESMTP id C4AA0210DD; Mon, 28 Mar 2022 16:29:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1648484942; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=S32zs0pa2gEQEVNruGhWyIWEZSFgiNpA/SIR+p8B8Io=; b=T7JP2LZxKvC6S64IAXjGt/3rro2IKKDx5Wwwk+5LDKln1XPFyTO9piyvZvPCoOdzIsESP5 tRzkCVOh1rdNSdartBydlZX3FeFTbK6c4ZPtVwpDEfVRrBcQkSU0Qt4gTWAHskJkBGWd1N Jhyrh9fK6tLPCbpDovciiEEeN17G6y8= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1648484942; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=S32zs0pa2gEQEVNruGhWyIWEZSFgiNpA/SIR+p8B8Io=; b=/9UV5RKOAnikidCt+0qBaYGt+ZUtALDd6HKE5cJm/x6k0se36icsNFK8f1zod5h/Z0tphR 8NGwZj6tqW5X+iBQ== Received: from kunlun.suse.cz (unknown [10.100.128.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by relay2.suse.de (Postfix) with ESMTPS id 5CCA3A3B89; Mon, 28 Mar 2022 16:29:02 +0000 (UTC) Date: Mon, 28 Mar 2022 18:29:01 +0200 From: Michal =?iso-8859-1?Q?Such=E1nek?= To: Eric Snowberg Cc: joeyli , Mimi Zohar , Catalin Marinas , Will Deacon , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Philipp Rudo , Baoquan He , Alexander Egorenkov , AKASHI Takahiro , James Morse , Dave Young , Kairui Song , Martin Schwidefsky , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "linux-s390@vger.kernel.org" , "linux-modules@vger.kernel.org" , "keyrings@vger.kernel.org" , "linux-security-module@vger.kernel.org" , "stable@kernel.org" Subject: Re: [PATCH 4/4] module, KEYS: Make use of platform keyring for signature verification Message-ID: <20220328162901.GC163591@kunlun.suse.cz> References: <840433bc93a58d6dfc4d96c34c0c3b158a0e669d.1644953683.git.msuchanek@suse.de> <3e39412657a4b0839bcf38544d591959e89877b8.camel@linux.ibm.com> <20220215204730.GQ3113@kunlun.suse.cz> <20220328101557.GA11641@linux-l9pv.suse> <6A29007F-F1B7-4CDE-B3ED-7BF700B5ED2B@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <6A29007F-F1B7-4CDE-B3ED-7BF700B5ED2B@oracle.com> User-Agent: Mutt/1.10.1 (2018-07-13) X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, On Mon, Mar 28, 2022 at 02:44:30PM +0000, Eric Snowberg wrote: > > > > On Mar 28, 2022, at 4:15 AM, joeyli wrote: > > > > Hi Mimi, > > > > Sorry for bother you for this old topic. > > > > On Tue, Feb 15, 2022 at 09:47:30PM +0100, Michal Such?nek wrote: > >> Hello, > >> > >> On Tue, Feb 15, 2022 at 03:08:18PM -0500, Mimi Zohar wrote: > >>> [Cc'ing Eric Snowberg] > >>> > >>> Hi Michal, > >>> > >>> On Tue, 2022-02-15 at 20:39 +0100, Michal Suchanek wrote: > >>>> Commit 278311e417be ("kexec, KEYS: Make use of platform keyring for signature verify") > >>>> adds support for use of platform keyring in kexec verification but > >>>> support for modules is missing. > >>>> > >>>> Add support for verification of modules with keys from platform keyring > >>>> as well. > >>> > >>> Permission for loading the pre-OS keys onto the "platform" keyring and > >>> using them is limited to verifying the kexec kernel image, nothing > >>> else. > >> > >> Why is the platform keyring limited to kexec, and nothing else? > >> > >> It should either be used for everything or for nothing. You have the > >> option to compile it in and then it should be used, and the option to > >> not compile it in and then it cannot be used. > >> > >> There are two basic use cases: > >> > >> (1) there is a vendor key which is very hard to use so you sign > >> something small and simple like shim with the vendor key, and sign your > >> kernel and modules with your own key that's typically enrolled with shim > >> MOK, and built into the kernel. > >> > >> (2) you import your key into the firmware, and possibly disable the > >> vendor key. You can load the kernel directly without shim, and then your > >> signing key is typically in the platform keyring and built into the > >> kernel. > >> > > > > In the second use case, if user can enroll their own key to db either before > > or after hardware shipping. And they don't need shim because they removed > > Microsoft or OEM/ODM keys. Why kernel can not provide a Kconfig option to > > them for trusting db keys for verifying kernel module, or for IMA (using CA > > in db)? > > > > In the above use case for distro, partner doesn't need to re-compiler distro > > kernel. They just need to re-sign distro kernel and modules. Which means > > that the partner trusted distro. Then the partner's key in db can be used to > > verify kernel image and also kernel module without shim involve. > > If shim is used, the new machine keyring can be used to solve this problem. > This pull request [1] allows additional certificates to be loaded into the MOKList > without going through MokManager. Have the end-user/partner create a > shim_certificate.efi containing their key. Then sign it with their DB key. When > shim boots, it will validate shim_certificate.efi against the DB key and load the > key contained within it into the MOKList. Now both module and kernel validation > can be performed with this key, since it is contained within the machine keyring. And why would you go through that when your platform keyring already has the key and you don't need shim for anything? This sounds a lot like "I have a hammer and all these look like nails" thinking. Sure, there is use for the machine keyring in the case you need it and have it regardless of the kernel making any use of it for anything. Artifically adding it because the kernel fails to work with the platform keyring sounds backwards, though. Thanks Michal