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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 973B7C54E94 for ; Thu, 26 Jan 2023 13:16:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236839AbjAZNQQ (ORCPT ); Thu, 26 Jan 2023 08:16:16 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50842 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236832AbjAZNQB (ORCPT ); Thu, 26 Jan 2023 08:16:01 -0500 Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com [IPv6:2a00:1450:4864:20::334]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4FCEF6B998 for ; Thu, 26 Jan 2023 05:15:10 -0800 (PST) Received: by mail-wm1-x334.google.com with SMTP id d4-20020a05600c3ac400b003db1de2aef0so1090770wms.2 for ; Thu, 26 Jan 2023 05:15:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20210112.gappssmtp.com; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=/7tibHebF6ZauGL5pfstUMzuHlaHPTu6BQgaBx8ckrc=; b=7EfVrdzyUspfb7vVyyBAIkHsRcwRioUW6hvNJhTFw+pj7ajI+ASFXNW7RTL3FJnrc/ RYr3E6qyaDFb5gIaThccYaLM4KGlodrhgGatkOfSgx62QxyQPbSOghDigThO9eu7ldNx OGuTlaK7u9lvPBlH1ao66j7degN6N001qwl0B14+JeFT29Odx2qRjCxC+I924GYTsFV2 DRpWqGuhoH4y8CYhknpvZ8tIank3hbOsB0DNA69N18FMeDARHaD+6/OGjnVruJkwv+ea OCz0Cp/7ryhpZ1aC13ekOHhk23frigljtXco03D16e/7RpXmF+L+s5M5+gfiqiDwbuP3 gPYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=/7tibHebF6ZauGL5pfstUMzuHlaHPTu6BQgaBx8ckrc=; b=jtOjkCW2dYRKU3lDZCLeVOAI1+XyS5/Le2p43AMjeqape7xRVbYrgZHUIkqmGHdgMf pCrgaMUCuScs7SKsB+Rv9yjw2CV+OKDcmIYV4Tv/hg203C2wStZbAsO4RHIZL0XsUPn9 4QNgAO86kh658bkdBrnIosWAiKmqP7BB+y8G15BsqhmlhdL2D7MuTjteCYsY2wWG592u ARbQyEGZBoVAxJuBX9m8thfmtOd1tYTRTjzQigkQfMZvEFd4qObYvZGf6xEuLOaj/SmD xp7gABHDo63meBv3iSO8wTgJSsH7/n9SVeyn6OR35dCQh44LtQhnxgJzSvdGNqYBHocP oEPw== X-Gm-Message-State: AFqh2kpGMlo9o7zFeKe4rzV3L02g4b/r8tvrsBbyeMlY+pHC11gqFIgy kHlGXQ0ukifO0o26cIZhS8EtnA== X-Google-Smtp-Source: AMrXdXtgdC+Ay80q6NvcJ2uYQ2vES6hU8gFLX3kKKlouDa/dgw3eksiChbWAlIFeWjhZmLn2/VwZ/g== X-Received: by 2002:a05:600c:c05:b0:3db:3476:6f02 with SMTP id fm5-20020a05600c0c0500b003db34766f02mr22503172wmb.41.1674738908116; Thu, 26 Jan 2023 05:15:08 -0800 (PST) Received: from vermeer ([2a01:cb1d:81a9:dd00:b570:b34c:ffd4:c805]) by smtp.gmail.com with ESMTPSA id v6-20020a05600c444600b003db09692364sm5300210wmn.11.2023.01.26.05.15.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Jan 2023 05:15:07 -0800 (PST) Date: Thu, 26 Jan 2023 14:15:05 +0100 From: Samuel Ortiz To: Jonathan Cameron Cc: Lukas Wunner , "Dr. David Alan Gilbert" , Greg Kroah-Hartman , "Reshetova, Elena" , "Shishkin, Alexander" , "Shutemov, Kirill" , "Kuppuswamy, Sathyanarayanan" , "Kleen, Andi" , "Hansen, Dave" , Thomas Gleixner , Peter Zijlstra , Mika Westerberg , "Michael S. Tsirkin" , Jason Wang , "Poimboe, Josh" , "aarcange@redhat.com" , Cfir Cohen , Marc Orr , "jbachmann@google.com" , "pgonda@google.com" , "keescook@chromium.org" , James Morris , Michael Kelley , "Lange, Jon" , "linux-coco@lists.linux.dev" , Linux Kernel Mailing List , linux-pci@vger.kernel.org Subject: Re: Linux guest kernel threat model for Confidential Computing Message-ID: References: <20230125215333.GA18160@wunner.de> <20230126105847.00001b97@Huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230126105847.00001b97@Huawei.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jan 26, 2023 at 10:58:47AM +0000, Jonathan Cameron wrote: > On Thu, 26 Jan 2023 10:24:32 +0100 > Samuel Ortiz wrote: > > > Hi Lukas, > > > > On Wed, Jan 25, 2023 at 11:03 PM Lukas Wunner wrote: > > > > > [cc += Jonathan Cameron, linux-pci] > > > > > > On Wed, Jan 25, 2023 at 02:57:40PM +0000, Dr. David Alan Gilbert wrote: > > > > Greg Kroah-Hartman (gregkh@linuxfoundation.org) wrote: > > > > > Great, so why not have hardware attestation also for your devices you > > > > > wish to talk to? Why not use that as well? Then you don't have to > > > > > worry about anything in the guest. > > > > > > > > There were some talks at Plumbers where PCIe is working on adding that; > > > > it's not there yet though. I think that's PCIe 'Integrity and Data > > > > Encryption' (IDE - sigh), and PCIe 'Security Prtocol and Data Model' - > > > > SPDM. I don't know much of the detail of those, just that they're far > > > > enough off that people aren't depending on them yet. > > > > > > CMA/SPDM (PCIe r6.0 sec 6.31) is in active development on this branch: > > > > > > https://github.com/l1k/linux/commits/doe > > > > Nice, thanks a lot for that. > > > > > > > > > The device authentication service afforded here is generic. > > > It is up to users and vendors to decide how to employ it, > > > be it for "confidential computing" or something else. > > > > > > Trusted root certificates to validate device certificates can be > > > installed into a kernel keyring using the familiar keyctl(1) utility, > > > but platform-specific roots of trust (such as a HSM) could be > > > supported as well. > > > > > > > This may have been discussed at LPC, but are there any plans to also > > support confidential computing flows where the host kernel is not part > > of the TCB and would not be trusted for validating the device cert chain > > nor for running the SPDM challenge? > > There are lots of possible models for this. One simple option if the assigned > VF supports it is a CMA instance per VF. That will let the guest > do full attestation including measurement of whether the device is > appropriately locked down so the hypervisor can't mess with > configuration that affects the guest (without a reset anyway and that > is guest visible). So the VF would be directly assigned to the guest, and the guest kernel would create a CMA instance for the VF, and do the SPDM authentication (based on a guest provided trusted root certificate). I think one security concern with that approach is assigning the VF to the (potentially confidential) guest address space without the guest being able to attest of the device trustworthiness first. That's what TDISP is aiming at fixing (establish a secure SPDM between the confidential guest and the device, lock the device from the guest, attest and then enable DMA). > Whether anyone builds that option isn't yet clear > though. If they do, Lukas' work should work there as well as for the > host OS. (Note I'm not a security expert so may be missing something!) > > For extra fun, why should the device trust the host? Mutual authentication > fun (there are usecases where that matters) > > There are way more complex options supported in PCIe TDISP (Tee Device > security interface protocols). Anyone have an visibility of open solutions > that make use of that? May be too new. It's still a PCI ECN, so quite new indeed. FWIW the rust spdm crate [1] implements the TDISP state machine. Cheers, Samuel. [1] https://github.com/jyao1/rust-spdm >