From: alison.schofield@intel.com (Alison Schofield)
To: linux-security-module@vger.kernel.org
Subject: [RFC 00/12] Multi-Key Total Memory Encryption API (MKTME)
Date: Fri, 7 Sep 2018 15:23:24 -0700 [thread overview]
Message-ID: <cover.1536356108.git.alison.schofield@intel.com> (raw)
Seeking comments on the APIs supporting MKTME on future Intel platforms.
MKTME (Multi-Key Total Memory Encryption) is a technology supporting
memory encryption on upcoming Intel platforms. Whereas TME allows
encryption of the entire system memory using a single key, MKTME
allows mulitple encryption domains, each having their own key. While
the main use case for the feature is virtual machine isolation, the
API needs the flexibility to work for a wide range of use cases.
This RFC presents the 2 API additions that enable userspace to:
1) Create Encryption Keys: Kernel Key Service type "mktme"
2) Use the Encryption Keys: system call encrypt_mprotect()
In order to share between: the Kernel Key Service, the new system call,
and the existing mm code, helper functions were created in arch/x86/mktme
This patchset is built upon Kirill Shutemov's patchset for the core MKTME
support. You can find that here:
git://git.kernel.org/pub/scm/linux/kernel/git/kas/linux.git mktme/wip
Alison Schofield (12):
docs/x86: Document the Multi-Key Total Memory Encryption API
mm: Generalize the mprotect implementation to support extensions
syscall/x86: Wire up a new system call for memory encryption keys
x86/mm: Add helper functions to manage memory encryption keys
x86/mm: Add a helper function to set keyid bits in encrypted VMA's
mm: Add the encrypt_mprotect() system call
x86/mm: Add helper functions to track encrypted VMA's
mm: Track VMA's in use for each memory encryption keyid
mm: Restrict memory encryption to anonymous VMA's
x86/pconfig: Program memory encryption keys on a system-wide basis
keys/mktme: Add a new key service type for memory encryption keys
keys/mktme: Do not revoke in use memory encryption keys
Documentation/x86/mktme-keys.txt | 153 ++++++++++++++++
arch/x86/Kconfig | 1 +
arch/x86/entry/syscalls/syscall_32.tbl | 1 +
arch/x86/entry/syscalls/syscall_64.tbl | 1 +
arch/x86/include/asm/intel_pconfig.h | 42 ++++-
arch/x86/include/asm/mktme.h | 21 +++
arch/x86/mm/mktme.c | 141 ++++++++++++++
fs/exec.c | 4 +-
include/keys/mktme-type.h | 28 +++
include/linux/key.h | 2 +
include/linux/mm.h | 9 +-
include/linux/syscalls.h | 2 +
include/uapi/asm-generic/unistd.h | 4 +-
kernel/fork.c | 2 +
kernel/sys_ni.c | 2 +
mm/mmap.c | 12 ++
mm/mprotect.c | 93 +++++++++-
mm/nommu.c | 4 +
security/keys/Kconfig | 11 ++
security/keys/Makefile | 1 +
security/keys/internal.h | 6 +
security/keys/keyctl.c | 7 +
security/keys/mktme_keys.c | 325 +++++++++++++++++++++++++++++++++
23 files changed, 855 insertions(+), 17 deletions(-)
create mode 100644 Documentation/x86/mktme-keys.txt
create mode 100644 include/keys/mktme-type.h
create mode 100644 security/keys/mktme_keys.c
--
2.14.1
next reply other threads:[~2018-09-07 22:23 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-07 22:23 Alison Schofield [this message]
2018-09-07 22:34 ` [RFC 02/12] mm: Generalize the mprotect implementation to support extensions Alison Schofield
2018-09-10 10:12 ` Jarkko Sakkinen
2018-09-11 0:34 ` Alison Schofield
2018-09-07 22:34 ` [RFC 03/12] syscall/x86: Wire up a new system call for memory encryption keys Alison Schofield
2018-09-07 22:36 ` [RFC 04/12] x86/mm: Add helper functions to manage " Alison Schofield
2018-09-10 2:56 ` Huang, Kai
2018-09-10 23:37 ` Huang, Kai
2018-09-10 23:41 ` Alison Schofield
2018-09-07 22:36 ` [RFC 05/12] x86/mm: Add a helper function to set keyid bits in encrypted VMA's Alison Schofield
2018-09-10 17:57 ` Sakkinen, Jarkko
2018-09-07 22:37 ` [RFC 07/12] x86/mm: Add helper functions to track " Alison Schofield
2018-09-10 3:17 ` Huang, Kai
2018-09-07 22:37 ` [RFC 08/12] mm: Track VMA's in use for each memory encryption keyid Alison Schofield
2018-09-10 18:20 ` Jarkko Sakkinen
2018-09-11 2:39 ` Alison Schofield
2018-09-07 22:37 ` [RFC 09/12] mm: Restrict memory encryption to anonymous VMA's Alison Schofield
2018-09-10 18:21 ` Sakkinen, Jarkko
2018-09-10 18:57 ` Dave Hansen
2018-09-10 21:07 ` Jarkko Sakkinen
2018-09-10 21:09 ` Dave Hansen
2018-09-07 22:38 ` [RFC 10/12] x86/pconfig: Program memory encryption keys on a system-wide basis Alison Schofield
2018-09-10 1:46 ` Huang, Kai
2018-09-10 18:24 ` Sakkinen, Jarkko
2018-09-11 2:46 ` Alison Schofield
2018-09-11 14:31 ` Jarkko Sakkinen
2018-09-07 22:38 ` [RFC 11/12] keys/mktme: Add a new key service type for memory encryption keys Alison Schofield
2018-09-10 3:29 ` Huang, Kai
2018-09-10 21:47 ` Alison Schofield
2018-09-15 0:06 ` Alison Schofield
2018-09-17 10:48 ` Huang, Kai
2018-09-17 22:34 ` Huang, Kai
2018-09-07 22:39 ` [RFC 12/12] keys/mktme: Do not revoke in use " Alison Schofield
2018-09-10 1:10 ` [RFC 00/12] Multi-Key Total Memory Encryption API (MKTME) Huang, Kai
2018-09-10 19:10 ` Alison Schofield
2018-09-11 3:15 ` Huang, Kai
2018-09-10 17:29 ` Sakkinen, Jarkko
[not found] ` <b9c1e3805c700043d92117462bdb6018bb9f858a.1536356108.git.alison.schofield@intel.com>
2018-09-08 18:44 ` [RFC 01/12] docs/x86: Document the Multi-Key Total Memory Encryption API Randy Dunlap
2018-09-10 1:28 ` Huang, Kai
2018-09-11 0:13 ` Alison Schofield
2018-09-11 0:33 ` Huang, Kai
2018-09-11 0:45 ` Alison Schofield
2018-09-11 1:14 ` Huang, Kai
2018-09-11 0:14 ` Huang, Kai
2018-09-10 17:32 ` Sakkinen, Jarkko
2018-09-11 0:19 ` Alison Schofield
[not found] ` <7d27511b07c8337e15096214622b66ef8f0fa345.1536356108.git.alison.schofield@intel.com>
2018-09-10 18:02 ` [RFC 06/12] mm: Add the encrypt_mprotect() system call Jarkko Sakkinen
2018-09-11 2:15 ` Alison Schofield
2018-09-11 22:03 ` [RFC 11/12] keys/mktme: Add a new key service type for memory encryption keys David Howells
2018-09-11 22:39 ` Alison Schofield
2018-09-11 23:01 ` David Howells
2018-09-11 22:56 ` [RFC 04/12] x86/mm: Add helper functions to manage " David Howells
2018-09-12 11:12 ` [RFC 12/12] keys/mktme: Do not revoke in use " David Howells
-- strict thread matches above, loose matches on Subject: below --
2018-10-07 13:10 [RFC 00/12] Multi-Key Total Memory Encryption API (MKTME) Marta Rybczynska
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1536356108.git.alison.schofield@intel.com \
--to=alison.schofield@intel.com \
--cc=linux-security-module@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).