Re: [PATCHv5 19/19] x86: Introduce CONFIG_X86_INTEL_MKTME

From: Pavel Machek
Date: Wed Aug 15 2018 - 03:49:05 EST


Hi!

> Add new config option to enabled/disable Multi-Key Total Memory
> Encryption support.
>
> MKTME uses MEMORY_PHYSICAL_PADDING to reserve enough space in per-KeyID
> direct mappings for memory hotplug.
>
> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
> ---
> arch/x86/Kconfig | 19 ++++++++++++++++++-
> 1 file changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index b6f1785c2176..023a22568c06 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -1523,6 +1523,23 @@ config ARCH_USE_MEMREMAP_PROT
> def_bool y
> depends on AMD_MEM_ENCRYPT
>
> +config X86_INTEL_MKTME
> + bool "Intel Multi-Key Total Memory Encryption"
> + select DYNAMIC_PHYSICAL_MASK
> + select PAGE_EXTENSION
> + depends on X86_64 && CPU_SUP_INTEL
> + ---help---
> + Say yes to enable support for Multi-Key Total Memory Encryption.
> + This requires an Intel processor that has support of the feature.
> +
> + Multikey Total Memory Encryption (MKTME) is a technology that allows
> + transparent memory encryption in upcoming Intel platforms.
> +
> + MKTME is built on top of TME. TME allows encryption of the entirety
> + of system memory using a single key. MKTME allows having multiple
> + encryption domains, each having own key -- different memory pages can
> + be encrypted with different keys.
> +
> # Common NUMA Features
> config NUMA
> bool "Numa Memory Allocation and Scheduler Support"

Would it be good to provide documentation, or link to documentation, explaining
what security guarantees this is supposed to provide, and what disadvantages (if any)
it has? I guess it costs a bit of performance...

I see that TME helps with cold boot attacks.

Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html