Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp491449imu; Mon, 26 Nov 2018 13:52:36 -0800 (PST) X-Google-Smtp-Source: AFSGD/WHzdxvx9tODJ0QPLr4xGWCsSGh7vxEeY9+eKPhHmg1hrozQBYVITvt6K93o71rYNlzR+LM X-Received: by 2002:a63:3546:: with SMTP id c67mr27013491pga.284.1543269156294; Mon, 26 Nov 2018 13:52:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543269156; cv=none; d=google.com; s=arc-20160816; b=mA9PxBvHWaZ5Mg/feM9RiKbWZ1icYjBC6D6gCl6KutRLI/4tFCOB6DHRdM8eUb3Wi8 oIbzSBwo6WtFmVqclhR361K2x2nQXu2vzCD1N4//M9ImlEfLz0KRw6iO9yosVZvWQLnc W/nLJYTc8ZqYNQZixfpuauwAct33GDhLrMNe+R6j/lE/Dl0AVx7NrRc0LK/5TpUqbjM8 ZC8DIwhJSddgFT7X3Z8Oo7RqOLI2I3Oj542QrEtFTaf9fodD0H+Pi+JoABH06OY+rg6a szomrLr1j/ZI52vBK9HbgQ7iehTxpqwewNjf3OZO5wpk9FxQyTny34t6gvBLSfU2ZeH4 TXLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:organization:in-reply-to :content-transfer-encoding:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=xKLiVr4SdnsgHbgFrF2hwqCW1gdyERsE4yfzUpVbl0w=; b=zcqHI3fJcLB1x9ByEZ2wSjM49IturHy+IZOZQfXFRaVBryV+vpXVoaRyVEkNcvlzW1 c/H8rEsxyhVOhUzf1FGmjbNSFeM/HoGRkxBnO6dr7PdprEbZLaWipYlwBQbIOJNzWEXE bkiiX9bEAfZCRam+7VnkYqQkXgOaNucdTIchbFojH5DUJXHRPCowb/gvGb9Xi+lDAHMU tWs1d9KYedLJuTZO9bvuvGkTky3MJSmt9kIvJn+BQV+awItXNXf0EdxVoWdLJkyJPDW/ 6jzdmAdQ7q58x2xj/cx+iFrJiwY094y1c5JOMjLVNnpdS3QqTz9zVcTYuLZMFPjPNJuq DHiw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u186si1459686pgd.131.2018.11.26.13.52.20; Mon, 26 Nov 2018 13:52:36 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726296AbeK0IrQ (ORCPT + 99 others); Tue, 27 Nov 2018 03:47:16 -0500 Received: from mga07.intel.com ([134.134.136.100]:65111 "EHLO mga07.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726363AbeK0IrQ (ORCPT ); Tue, 27 Nov 2018 03:47:16 -0500 X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Nov 2018 13:51:44 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,283,1539673200"; d="scan'208";a="277261516" Received: from jsakkine-mobl1.jf.intel.com (HELO localhost) ([10.24.8.61]) by orsmga005.jf.intel.com with ESMTP; 26 Nov 2018 13:51:44 -0800 Date: Mon, 26 Nov 2018 13:51:45 -0800 From: Jarkko Sakkinen To: Andy Lutomirski Cc: Andy Lutomirski , "Dr. Greg Wettstein" , X86 ML , Platform Driver , linux-sgx@vger.kernel.org, Dave Hansen , "Christopherson, Sean J" , nhorman@redhat.com, npmccallum@redhat.com, "Ayoun, Serge" , shay.katz-zamir@intel.com, haitao.huang@linux.intel.com, Andy Shevchenko , Thomas Gleixner , "Svahn, Kai" , mark.shanahan@intel.com, Suresh Siddha , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Darren Hart , Andy Shevchenko , LKML Subject: Re: [PATCH v17 18/23] platform/x86: Intel SGX driver Message-ID: <20181126215145.GC868@linux.intel.com> References: <20181116010412.23967-19-jarkko.sakkinen@linux.intel.com> <20181119161917.GF13298@linux.intel.com> <20181120120442.GA22172@linux.intel.com> <20181122111253.GA31150@wind.enjellic.com> <20181124172114.GB32210@linux.intel.com> <20181125145329.GA5777@linux.intel.com> <0669C300-02CB-4EA6-BF88-5C4B4DDAD4C7@amacapital.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <0669C300-02CB-4EA6-BF88-5C4B4DDAD4C7@amacapital.net> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Nov 25, 2018 at 08:22:35AM -0800, Andy Lutomirski wrote: > Agreed. What I’m proposing adds additional security if the kernel is > *not* compromised. And even if the kernel is compromised evil use will detected quicker i.e. compromissed kernel is "better" than a kernel that allows to use provisioning freely. > There are other ways to accomplish it that might be better in some > respects. For example, there could be /dev/sgx and > /dev/sgx_rights/provision. The former exposes the whole sgx API, > except that it doesn’t allow provisioning by default. The latter does > nothing by itself. To run a provisioning enclave, you open both nodes, > then do something like: > > ioctl(sgx, SGX_IOC_ADD_RIGHT, sgx_provisioning); > > This requires extra syscalls, but it doesn’t have the combinatorial > explosion problem. I like this design because it is extendable. I'm now also in the same page why we need to protect provisioning in the first place. I would slight restructure this as /dev/sgx/control /dev/sgx/attributes/provision Looks cleaner and the root /dev directory is less polluted. BTW, off-topic from this but should we remove ENCLAVE from IOC names as they all concern enclaves anyway? Seems kind of redundant. I.e. SGX_IOC_ENCLAVE_CREATE -> SGX_IOC_CREATE SGX_IOC_ENCLAVE_ADD_PAGE -> SGX_IOC_ADD_PAGE SGX_IOC_ENCLAVE_INIT -> SGX_IOC_INIT /Jarkko