New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
What processors support SEV? #1
Comments
There are two memory encryption technologies as part of AMD Zen core. SME (Secure Memory Encryption) and SEV (Secure Encrypted Virtualization). Both SEV and SME features are supported on CPUs from EPYC family. Whereas processor from Ryzen family supports SME only. |
Do you mean that any Ryzen (common and Pro) support SME? And that Ryzen Pro don't support SEV? |
From what I find online, Ryzen and Threadripper don't support SME/SEV, but Ryzen Pro does support SME. What I can't determine reliably is if Ryzen Pro supports SEV, and if it does, whether its final availability also depends on the motherboard/chipset/BIOS. E.g., Forbes says: "Some things that are new for Ryzen PRO, however, are support Transparent Secure Memory Encryption (TSME) and Secure Encrypted Virtualization (SEV) support." source Similar reports: "Moving on, AMD's other big security feature for the PRO lineup is Secure Virtualized Encyrption (SEV). SEV in many ways resembles the SME, but in this case, it enables owners to encrypt virtual machines, isolating them from each other, hypervisors, and hosting software." anandtech "Ryzen PRO also incorporates Secure Encrypted Virtualization (SEV) support. This integrates main memory encryption capabilities with the existing AMD-V virtualization architecture to support encrypted virtual machines." hothardware "Ryzen Pro CPUs offers built-in hardware-based AES 128-bit encryption. The encryption offers two features, Secure Memory Encryption (SME) and Secure Encrypted Virtualization (SEV)." tweaktown But I also find reports that PRO doesn't support SEV. The official AMD website provides no details. As you're working for AMD and working on the SEV feature, could you please shed some light on this, or better yet point to any official statement/documentation? |
Also, here's a reply from AMD Support:
But I hadn't yet received a reply for the details whether motherboard/chipset/bios support is also needed and, in particular, if Lenovo M715 SFF with Ryzen PRO supports SEV. |
Ryzen Pro CPUs definitely don't support SEV. We tried using an HP Elite Desk:
When experiencing issues with the AMD PSP driver ( Quote from AMD Developer:
Although CPUID CPUID Fn8000_001F[EAX] bit 1 (SEV support yes/no) says the cpu supports SEV, obviously the Platform Security Processor (PSP) that comes with it doesn't: Quote from AMD Developer:
So if you want to get SEV running you should use an AMD EPYC cpu... |
@AnonymousII, thanks a lot for the details! That's a pity all these details are not provided by AMD, as well as the fact that Ryzen Pro can't be used to build a secure workstation (think CubesOS that could benefit enormously from the SEV feature). And EPYC makes no sense in the desktop segment, except for extreme HPC where probably high level of security is not that necessary. Looks like the future of processors is RISC-V. |
update to my previous comment: we just tried using an "AMD EPYC 7451 24-Core Processor" CPU (96 logical cores) in a huge Supermicro A+ server (EPYC CPU) from our computing center and SEV works just fine - so it definitely was a hardware problem only (moved the same physical disk to our server). |
Does it mean that Ryzen (common and Pro) supports SME? |
Technically, all processors based on the Zen core have the hardware support
for SEV. However, only the EPYC server processors currently have the
firmware support to do the key management.
For now, SEV is an EPYC-only feature.
Sincerely,
Jesse
…On Sat, Jan 26, 2019, 8:26 AM Maxim ***@***.*** wrote:
Quote from AMD Developer:
Processor from Ryzen family does not support SEV. Ryzen family support SME
and TSME features only.
Does it mean that Ryzen (common and Pro) supports SME?
Are rules the same for TR4 products?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#1 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/ADflBYG3kO85B1LK1nMarrG60pXKxxfpks5vHGV9gaJpZM4PtHbf>
.
|
If it is for me, then I talked about SME, not SEV. |
From press release:
So I do not know if we have Transparent SME on regular desktop CPU. Can anybody check SME in /proc/cpuinfo? |
Alright, I asked a friend who has a Ryzen (Ryzen 7 1800X) for The CPU flags contain EDIT: according to https://ctf-wiki.github.io/ctf-wiki/pwn/linux/kernel/bypass_smep/ smep means |
Ryzen processors should support SME. However, the BIOS is needed to set the SMEE bit (23) of the SYS_CFG MSR (0xc0010010). Please see: https://elixir.bootlin.com/linux/latest/source/arch/x86/kernel/cpu/amd.c#L574 to see how the SME feature will not be reported even if the CPUID instruction indicates support. Transparent SME (TSME) is also supported by Ryzen, but requires the BIOS to support the configuration option for it. Without the support from BIOS you can't enable TSME. |
There don't appear to be any Epyc laptops, at least none available here. There is Ryzen Pro though. Does Ryzen Pro support both SME and SEV? |
Ryzen and Ryzen Pro support only SME. EPYC processors support both SME and SEV. |
Thank you, @tlendacky . Not the news I wished for but it's good to know. :-) |
Does anyone have more details on TSME? Would a Ryzen 3700x with the correct board support it? Also how would one detect from the kernel (linux) that the system is booted with TSME enabled (not just SME). Most/All the stuff here is pertaining to SME, just mentioning that TSME also exists but not actually how to work with it. |
TSME is a BIOS/UEFI option that causes all traffic going through the memory controller to be encrypted. It is basically invisible to an OS.
A Ryzen 3700x should support TSME. The board would need a BIOS/UEFI that has the option to enable TSME (I'm not sure where the option would live within the BIOS menus).
Because TSME is invisible to the OS, this takes some work. You need to be sure that the processorl memory encryption feature is enabled (bit 23 of MSR 0xc0010010) in order to determine from the OS if TSME is enabled. If it is, that means that the CPU will recognize the encryption bit in a page table entry. You'll need a kernel module to detect TSME at this point. The idea is to:
|
Forgot one thing, remember to reset the PTE back to it's original state. |
Damn interesting approach, thank you very much. But question. what if someone already mitmed the ram / membus, so they feed what looks to be like cipher text. The main idea is kinda to tie Secure Boot into this, so down the chain it can be guaranteed the system booted untampered and data flowing over the membus (after posting) is transparently encrypted. |
On my ThinkPad T495 with Ryzen Pro 7 3700U, |
SEV also requires firmware support that is only available on EPYC processors. |
From AMD64 Architecture Programmer’s Manual, Volume 2: System Programming Determining support for SEV
If you want to check also for SVM: Enabling SVM
For more information on using the CPUID instruction to obtain processor capability information, see |
Regarding the enablement bit in SYS_CFG MSR (0xc0010010): It seem Linux expects the BIOS to have set this in advance, but I'm wondering if it couldn't just set the bit itself, assuming the CPU supports SME (cf. the CPUID bit). Just as the kernel itself also sets the enablement bit for other features (e.g. long mode). However, some configuration MSR's are locked by the BIOS during boot so can't be configured by anything but the BIOS, but I'm not sure if this is one of them (from a quick read of e.g. https://developer.amd.com/wp-content/resources/56255_3_03.PDF locking seems to be only for some SMM registers which makes sense). I think I will try myself but Secure Boot and kernel_lockdown (and the removal of its disablements) make such experiments more time consuming! |
hi guys, just want to recall this issue. My laptop has AMD Ryzen 7 4800H processor. And upon checking
but it seems that it needs to be supported by firmware also when i check via libvirt And this one is still not available for AMD Ryzen processors. And if I did follow this tutorial to enable SEV on host machine (my AMD Ryzen 7). |
Whether R9-5900X will support it? I don't find sev in /proc/cpuinfo(flags). |
I can't find information about what AMD Zen processors, besides EPYC, support SEV. In other words, do Ryzen, Ryzen Pro and Threadripper support SEV? Do the chipsets and mobos have anything to do with it (i.e. should a SEV-enabled processor be combined with a SEV-supporting mobo)?
The text was updated successfully, but these errors were encountered: