[Cryptech Tech] AMD Microcode reverse engineered, breaking constant-time CPU crypto

Peter Stuge peter at stuge.se
Mon Aug 21 17:35:51 UTC 2017


This research presented at USENIX makes a good case for Cryptech.

https://www.usenix.org/conference/usenixsecurity17/technical-sessions/presentation/koppe

Philipp Koppe, Benjamin Kollenda, Marc Fyrbiak, Christian Kison,
Robert Gawlik, Christof Paar, and Thorsten Holz

Ruhr-Universität Bochum

Abstract excerpt

In this paper, we reverse engineer the microcode semantics and inner
workings of its update mechanism of conventional COTS CPUs on the
example of AMD’s K8 and K10 microarchitectures.  Furthermore, we
demonstrate how to develop custom microcode updates.  We describe the
microcode semantics and additionally present a set of microprograms
that demonstrate the possibilities offered by this technology.  To
this end, our microprograms range from CPU-assisted instrumentation
to microcoded Trojans that can even be reached from within a web
browser and enable remote code execution and cryptographic
implementation attacks.

Conclusion

In this paper we successfully changed the behavior of common,
general-purpose CPUs by modification of the microcode.  We provided
an in-depth analysis of microcode and its update mechanism for AMD K8
and K10 architectures.  In addition, we presented what can be
accomplished with this technology: First, we showed that augmenting
existing instructions allows us to implement CPU-assisted
instrumentation, which can enable high-performance defensive
solutions in the future.  Second, we demonstrated that malicious
microcode updates can have security implications for software systems
running on the hardware.


More information about the Tech mailing list