Received: by 2002:a05:6a10:1d13:0:0:0:0 with SMTP id pp19csp824376pxb; Thu, 2 Sep 2021 16:24:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxsrF9JoQG3wp3x4B38+flFUvfeQS8EwNXD/3DsOBDmr0SZa/yVjAp9U0eq7LUQKD0bPANk X-Received: by 2002:a05:6638:2182:: with SMTP id s2mr221821jaj.26.1630625049629; Thu, 02 Sep 2021 16:24:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1630625049; cv=none; d=google.com; s=arc-20160816; b=oVUTwcL09kDn23scVs67+hGiFqmje7lCKO79jHZKUSAIFKP5ocAOBixRKsJ/ATuPu/ 6PMtpqVojtCiws273F3XchxThNlRULiJ709PopGZDFqRQYKffP1S+22/iLtJVD6rBkHE 22lGox8hL3pg0y+uVD6R24v83JCD8fOCr/dpT+tQivFN8jTEhARSrrJwTws67Yb4MRvR j/9JpbxWHZz7ovKT7SIUybtAHANY/JTML+/LlZgchyVSlbdPE8Za+yjjdwWLfDZkNaJ/ WIVUZaQjc++cSFyihVEa1aSJ2XK7AxtctwTnzwNJGQSgqzriyyVofQUoNar1KnsVCrtH T/sQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=v+Th2f0hRb6tEP8816JR/wrhrZ6Ij+rZVEoKUHYJbIc=; b=YKHOS66MWRvEtTF9IGzJxMYLRpUaTYXCSZUET9faugJi2Aqv0ZCQpf2dHGPo3YQZac 6+Q9bhpCIXJoYfJwBnJ/SvdVtsfvPlgGa1kNgaJ4IwZJWWyQsiqAiIhqv8lUMrfvrvvN XBBAR4nZ0wzNL8r+ihup7PcHMe8qZJZw+c+bMTwJNgeiR2ZYl9AmhDeNNu4gRoZ0Qdhq ddi9wA5vPqhp3cwSSCrEVRwDwus5eRqF/KHilq3iAck1WZeT8a5Qi14dmNjIo/Bupv8x s1E68tf/87/UWlU0eBMLb2r0TNJg3M5jv8p4etHuxJbGqoX5xqaQaO52xgqnuiE3Ge6c eg4A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=uwGTRJ7r; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g1si2995994jab.42.2021.09.02.16.23.57; Thu, 02 Sep 2021 16:24:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=uwGTRJ7r; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344750AbhIBM6z (ORCPT + 99 others); Thu, 2 Sep 2021 08:58:55 -0400 Received: from mail.kernel.org ([198.145.29.99]:52644 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234249AbhIBM6y (ORCPT ); Thu, 2 Sep 2021 08:58:54 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id AD8AC60EBA; Thu, 2 Sep 2021 12:57:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1630587476; bh=Bps1FaIxz5iNAoCtnYdnUEPVPlf7hRaEFB3v0KWO/ts=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=uwGTRJ7r6NQQRm+VL1BKDs8+rxJnY0VmZPsqJG2vp5+0E5u6Hc5/fCNbzpcQwMsVH 4WfHNWeYCNrh0WAUlQGrWpyU1b+10KjxETY3Yxd3j1YxblND4YI8qLzo43o+i0IjcO G+ryL1YDtkydujh5SJvmsQKcxKxA+kp5jKRupNLE= Date: Thu, 2 Sep 2021 14:57:53 +0200 From: Greg KH To: Dov Murik Cc: linux-efi@vger.kernel.org, Borislav Petkov , Ashish Kalra , Brijesh Singh , Tom Lendacky , Ard Biesheuvel , James Morris , "Serge E. Hallyn" , Andi Kleen , "Dr. David Alan Gilbert" , James Bottomley , Tobin Feldman-Fitzthum , Jim Cadden , linux-coco@lists.linux.dev, linux-security-module@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 0/3] Allow access to confidential computing secret area in SEV guests Message-ID: References: <20210809190157.279332-1-dovmurik@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210809190157.279332-1-dovmurik@linux.ibm.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Aug 09, 2021 at 07:01:54PM +0000, Dov Murik wrote: > Confidential computing (coco) hardware such as AMD SEV (Secure Encrypted > Virtualization) allows guest owners to inject secrets into the VMs > memory without the host/hypervisor being able to read them. In SEV, > secret injection is performed early in the VM launch process, before the > guest starts running. > > OVMF already reserves designated area for secret injection (in its > AmdSev package; see edk2 commit 01726b6d23d4 "OvmfPkg/AmdSev: Expose the > Sev Secret area using a configuration table" [1]), but the secrets were > not available in the guest kernel. > > The patch series copies the secrets from the EFI-provided memory to > kernel reserved memory, and optionally exposes them to userspace via > securityfs using a new sev_secret kernel module. > > The first patch in efi/libstub copies the secret area from the EFI > memory to specially allocated memory; the second patch reserves that > memory block; and the third patch introduces the new sev_secret module > that exposes the content of the secret entries as securityfs files, and > allows clearing out secrets with a file unlink interface. > > As a usage example, consider a guest performing computations on > encrypted files. The Guest Owner provides the decryption key (= secret) > using the secret injection mechanism. The guest application reads the > secret from the sev_secret filesystem and proceeds to decrypt the files > into memory and then performs the needed computations on the content. > > In this example, the host can't read the files from the disk image > because they are encrypted. Host can't read the decryption key because > it is passed using the secret injection mechanism (= secure channel). > Host can't read the decrypted content from memory because it's a > confidential (memory-encrypted) guest. > > This has been tested with AMD SEV guests, but the kernel side of > handling the secret area has no SEV-specific dependencies, and therefore > might be usable (perhaps with minor changes) for any confidential > computing hardware that can publish the secret area via the standard EFI > config table entry. > > Here is a simple example for usage of the sev_secret module in a guest > to which a secret are with 4 secrets was injected during launch: > > # modprobe sev_secret > # ls -la /sys/kernel/security/coco/sev_secret Wait, why are you using securityfs for this? securityfs is for LSMs to use. If you want your own filesystem to play around with stuff like this, great, write your own, it's only 200 lines or less these days. We used to do it all the time until people realized they should just use sysfs for driver stuff. But this isn't a driver, so sure, add your own virtual filesystem, mount it somewhere and away you go, no messing around with securityfs, right? thanks, greg k-h