Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp3819467ybi; Mon, 27 May 2019 06:36:10 -0700 (PDT) X-Google-Smtp-Source: APXvYqzOeq5yqWPNxqag6ztFuUT6Apuq1AQcJETXHr3Sre8MiWaGhY8nbJ3vy9CTG2LzMtzes3Jh X-Received: by 2002:a17:90a:cb84:: with SMTP id a4mr31118741pju.104.1558964170116; Mon, 27 May 2019 06:36:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558964170; cv=none; d=google.com; s=arc-20160816; b=QkfzRHwTZyIWiAcCz7Qw8sxpJNO8t+KCHPQzVTdsa3STfD0xNa9EGaHN6pLdyn84ES xBu3MA9abse8ZMQTZ/J1V9hGqJo5WGW1KWGOvdIC0ZJZT2+irrHXgNTkNHE5cYH6BDOq ktmvIs9T6QTBJyH8l5VSaJQXZYGQbjmnWBT470y3ZBBBALcdN1pHYsUYP2qN9c/eoHjE JuIwTgEX7/rXNJMSCeKg5f85Dxj/AnVydGHfr6NwpIfJ2Q4d42ysvG0Z9Je0DiomN3/n 8Pp4QW0PMNy9LEMTI1zfL40rQoRnxxca/neKSJwjwrozVeaMBLtIZg5f2qMoqNzRb7Ee OK3w== 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-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=y6W6j0lfKPkGsxOPGxMNhja4DEb3zTt1zwf37rUHKfA=; b=x+QFA8mB3x5UX7O2p2/5krKQq3pj3XBV3X5v4JnpnGu3H3Bnanj7qvfNoSFJd+6rQy sE70loCuVc8xUZXXl9rzFpPwFDlGsF/foj4lWmXBHEu/mJ5xXC4wdsRR1PXvH7LST2RR o44FJozKA3ncgqX5S5almJRkCqlcZ/kD1L2OWXDVGO27ACWXilmIHJdsD0HhRlAQ0Ae5 /10qrzmxqGh1NG+QrzbJ9DwOxetoUgtP1ED1UloNYkB76pn8OStbRVjk36QGzmtqW18j E2LeJFWNOVg2zzTzD9ZqUtSNLScYGXtLPz6V3DwcCoI5QAtFGl5UY3OOROCtRpOK5rwd 1VLA== 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 v4si17752242plp.404.2019.05.27.06.35.54; Mon, 27 May 2019 06:36:10 -0700 (PDT) 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 S1726614AbfE0Net (ORCPT + 99 others); Mon, 27 May 2019 09:34:49 -0400 Received: from mga02.intel.com ([134.134.136.20]:30696 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726264AbfE0Net (ORCPT ); Mon, 27 May 2019 09:34:49 -0400 X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 May 2019 06:34:48 -0700 X-ExtLoop1: 1 Received: from pgomulkx-mobl.ger.corp.intel.com (HELO localhost) ([10.251.94.230]) by orsmga001.jf.intel.com with ESMTP; 27 May 2019 06:34:37 -0700 Date: Mon, 27 May 2019 16:34:31 +0300 From: Jarkko Sakkinen To: Sean Christopherson Cc: Andy Lutomirski , Stephen Smalley , James Morris , "Serge E. Hallyn" , LSM List , Paul Moore , Eric Paris , selinux@vger.kernel.org, Jethro Beekman , "Xing, Cedric" , "Hansen, Dave" , Thomas Gleixner , "Dr. Greg" , Linus Torvalds , LKML , X86 ML , "linux-sgx@vger.kernel.org" , Andrew Morton , "nhorman@redhat.com" , "npmccallum@redhat.com" , "Ayoun, Serge" , "Katz-zamir, Shay" , "Huang, Haitao" , Andy Shevchenko , "Svahn, Kai" , Borislav Petkov , Josh Triplett , "Huang, Kai" , David Rientjes Subject: Re: SGX vs LSM (Re: [PATCH v20 00/28] Intel SGX1 support) Message-ID: <20190527133418.GA9732@linux.intel.com> References: <20190521151836.GA4843@linux.intel.com> <20190521155140.GE22089@linux.intel.com> <20190522132022.GC31176@linux.intel.com> <20190522132227.GD31176@linux.intel.com> <0e183cce-c4b4-0e10-dbb6-bd81bea58b66@tycho.nsa.gov> <20190522153836.GA24833@linux.intel.com> <20190523023517.GA31950@linux.intel.com> <20190523102628.GC10955@linux.intel.com> <20190523141752.GA12078@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190523141752.GA12078@linux.intel.com> 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 Thu, May 23, 2019 at 07:17:52AM -0700, Sean Christopherson wrote: > 1. Do nothing. Userspace would essentially be required to mmap() the > enclave after EINIT, which is ugly but not breaking since userspace > could mmap() the enclave with a placeholder VMA prior to building > the enclave, and then a series of mmap() to establish its "real" > mapping. What it'd break to return error if mmap() is done before EINIT? > 2. Propagate the permissions from EADD to the VMAs of the current mm > if the entire EADD range is mapped and the mapping is PROT_NONE. Right now you can do multiple mmap's. If the mmap's must be done after EINIT, the driver could check that permissions match the permissions in that range. This leaves open how to deal with mprotect() but if the process does not have FILE__WRITE I guess you cannot do much. > 3. Propagate the permissions from EADD to the VMAs of all mm structs > that have mapped some piece of the enclave, following the matching > rules from #2. For me it looks that allowing mmap's only after EINIT would result the least confusing implemntation. /Jarkko