Newly discovered side-channel attack recovers 4096-bit RSA key on AMD's Zen-based CPUs.
All AMD Zen CPUs Vulnerable, Might Need to Disable SMT : Read more
All AMD Zen CPUs Vulnerable, Might Need to Disable SMT : Read more
The scheduled forum maintenance has now been completed. If you spot any issues, please report them here in this thread. Thank you!
Hear! Hear!Might need to disable SMT to prevent an attack that requires an attacker to first run code on your PC in order to take advantage of the attack vector...
Why? As far as I can tell this is another one of those "you have to be physically present at the PC" attacks or "the user has to be dumb enough to run untrusted software" schemes. Disabling SMT over something like this is like removing the turbo on your car's engine because it's possible that somebody could break into you car and rig it to behave in a way not expected. You don't cripple your equipment to spite the enemy, you fix your security.
It's incredibly narrow sighted to strip out one of CPU technology's greatest efficiency and computational improvements to close a single hard to use attack vector. Instead You put out an advisory for those using such CPUs to process sensitive information so they can make a decision for themselves. Everyone else will get a microcode patch or an os update to fix the issue at a latter date.
I don't get all the fear mongering that crops up around these obscure and hard to pull off attacks. If you had said there's a 5 digit code a webpage can send to my CPU that would allow the page to do whatever it wanted with my machine then yeah I would say something drastic needs to be done, but this attack vector is never really going to be a problem for 99.9999% of people using zen 1/2/3 CPUs.
I don't think anyone is suggesting Joe Blow disable SMT on his personal Ryzen computer. The relevant audience for this issue (along with most other side channel attacks, e.g. spectre/meltdown) is more or less cloud users (and hosts), where you're sharing hardware with untrusted parties by design.Might need to disable SMT to prevent an attack that requires an attacker to first run code on your PC in order to take advantage of the attack vector...
Why? As far as I can tell this is another one of those "you have to be physically present at the PC" attacks or "the user has to be dumb enough to run untrusted software" schemes. Disabling SMT over something like this is like removing the turbo on your car's engine because it's possible that somebody could break into you car and rig it to behave in a way not expected. You don't cripple your equipment to spite the enemy, you fix your security.
It's incredibly narrow sighted to strip out one of CPU technology's greatest efficiency and computational improvements to close a single hard to use attack vector. Instead You put out an advisory for those using such CPUs to process sensitive information so they can make a decision for themselves. Everyone else will get a microcode patch or an os update to fix the issue at a latter date.
I don't get all the fear mongering that crops up around these obscure and hard to pull off attacks. If you had said there's a 5 digit code a webpage can send to my CPU that would allow the page to do whatever it wanted with my machine then yeah I would say something drastic needs to be done, but this attack vector is never really going to be a problem for 99.9999% of people using zen 1/2/3 CPUs.
its more for business/public place systems.Why? As far as I can tell this is another one of those "you have to be physically present at the PC" attacks or "the user has to be dumb enough to run untrusted software" schemes.
AMD recommends software developers employ existing best practices including constant-time algorithms and avoiding secret-dependent control flows where appropriate to help mitigate this potential vulnerability," AMD's mitigation reads.
its more for business/public place systems.
as they have many ppl use them and does open risk.
home users rarely ever have to worry about these.
False. This attack does not require root privileges, and can be conducted from within a VM. e.g. from p.2 of the paper:This requires physical access to the device.
Due to the lack of need for root to perform this exploit, as long as you can spawn a process on a Zen machine you can attack other processes on the same core, including crossing security boundaries.Across VMs, we leak full RSA-4096 keys with only 50 500 traces and less than 18 (n = 10, σx¯ = 3.26) bit errors.
[...]
- We evaluate our attack in native and cross-VM covert channels, with bandwidths of 2.70 Mbit/s (native) and 0.89 Mbit/s (cross-VM), at error rates of less than 1 %.
- We show that the SQUIP side-channel leakage is precise enough to recover full RSA-4096 keys with only 50 500 traces, with on average less than 5 (n = 10, σx¯ = 1.28) bit errors across native processes and less than 18 (n = 10, σx¯ = 3.26) bit errors across virtual machines
The benefits of SMT are that you can more efficiently run two threads on a single core. When a processor core is executing instructions, there will be times when that core is waiting for an instruction to complete, during which the inactive parts of the core can be used for executing other instructions. It doesn't add much to the size of a CPU core to add SMT, so it effectively gives it more multithreaded performance for the cost to produce it, as well as more performance for a given level of power draw. Even if a processor has "lots of physical cores", in a task that utilizes as many cores as it has to offer, not having SMT will leave those cores underutilized, and you will effectively be leaving some multithreaded performance on the table.I've always been happier, in principle, with lots of physical cores rather than half real cores and half virtual ones. The OS doesn't help when it exposes logical cores without distinguishing between real and SMT, leaving it up to the software developers to figure out which is which when it matters.
Indeed; Google Cloud will give you a free e2-micro VM running at 0.25 of a vCPU, consisting of 0.125 of two threads on one core. This renders SMT vulnerabilities ineffective and possibly improves cache locality (since the shared cache may be used to operate on the same code/data), although it also means that you are competing for shared processing blocks. Still, you can do quite a lot with it, since it'll effectively burst to full speed for a brief time - I run an 18-box munin monitoring master on mine.A different mitigation to just disabling SMT might be to just make sure SMT threads are all allocated to the same VPS of a cloud host? That way only code from the same client can be on the threads of the same core.
Most VPSs are two or more threads anyway these days, so it may already be done that way.