exzess hardware based ram encryption against physical
play

Exzess: Hardware-based RAM Encryption against Physical Memory - PowerPoint PPT Presentation

Exzess: Hardware-based RAM Encryption against Physical Memory Disclosure Alexander Wrstlein Michael Gernoth Johannes Gtzfried Tilo Mller This work was partly supported by the German Research Foundation (DFG) as part of the Transregional


  1. Exzess: Hardware-based RAM Encryption against Physical Memory Disclosure Alexander Würstlein Michael Gernoth Johannes Götzfried Tilo Müller This work was partly supported by the German Research Foundation (DFG) as part of the Transregional Collaborative Research Centre “Invasive Computing” (SFB/TR 89). 2016-04-05

  2. The Problem

  3. The Problem: Cold Boot Attack ` ` ` ` ` ` `

  4. Physical Memory Disclosure remanence efgect 4 other sensitive data full-disk-encryption keys passwords in-use cryptographic keys (X.509, ssh) endangers: 3. contents copied 2. physically extracted 1. cooled down RAM modules for a few minutes DRAM contents readable after power-down ` ` `

  5. ! Solutions embedded-only cache cache 128 5 only for code signed & blessed by third party limited scope hardware-based attempts software-based attempts require extensive software changes incompatible: only apply to certain types of secrets (e.g. FDE keys) only protect one 128bit key limited: expensively encrypt everything disable caches slow: vendor

  6. Solutions software-based attempts cache cache 128 5 only for code signed & blessed by third party limited scope embedded-only hardware-based attempts require extensive software changes incompatible: only apply to certain types of secrets (e.g. FDE keys) only protect one 128bit key limited: expensively encrypt everything disable caches slow: vendor !

  7. Our Proposed Solution Goals work transparently multiple uses be fast hardened hardware Means 6 ⇒ memory as our interface ⇒ no painful size limitations ⇒ encrypt only important data ⇒ be tamper-proof & simple

  8. How? CPU MMU RAM read 0x4711 read 0x2311 data Exzess PCI Express read 0x4711 read 0x2311 read 0x9911 ebub decrypt(ebub)=data data 7

  9. How? CPU MMU RAM read 0x4711 read 0x2311 data Exzess PCI Express read 0x4711 read 0x2311 read 0x9911 ebub decrypt(ebub)=data data 7

  10. How? CPU MMU RAM read 0x4711 read 0x2311 data Exzess PCI Express read 0x4711 read 0x2311 read 0x9911 ebub decrypt(ebub)=data data 7

  11. How? CPU MMU RAM read 0x4711 read 0x2311 data Exzess PCI Express read 0x4711 read 0x2311 read 0x9911 ebub decrypt(ebub)=data data 7

  12. How? CPU MMU RAM read 0x4711 read 0x2311 data Exzess PCI Express read 0x4711 read 0x2311 read 0x9911 ebub decrypt(ebub)=data data 7

  13. How? CPU MMU RAM read 0x4711 read 0x2311 data Exzess PCI Express read 0x4711 read 0x2311 read 0x9911 ebub decrypt(ebub)=data data 7

  14. How? CPU MMU RAM read 0x4711 read 0x2311 data Exzess PCI Express read 0x4711 read 0x2311 read 0x9911 ebub decrypt(ebub)=data data 7

  15. How? CPU MMU RAM read 0x4711 read 0x2311 data Exzess PCI Express read 0x4711 read 0x2311 read 0x9911 ebub decrypt(ebub)=data data 7

  16. How? CPU MMU RAM read 0x4711 read 0x2311 data Exzess PCI Express read 0x4711 read 0x2311 read 0x9911 ebub decrypt(ebub)=data data 7

  17. How? CPU MMU RAM read 0x4711 read 0x2311 data Exzess PCI Express read 0x4711 read 0x2311 read 0x9911 ebub decrypt(ebub)=data data 7

  18. How? CPU MMU RAM read 0x4711 read 0x2311 data Exzess PCI Express read 0x4711 read 0x2311 read 0x9911 ebub decrypt(ebub)=data data 7

  19. How? CPU MMU RAM read 0x4711 read 0x2311 data Exzess PCI Express read 0x4711 read 0x2311 read 0x9911 ebub decrypt(ebub)=data data 7

  20. The Exzess FPGA PCIe EP WishBone MRd MWr CplD CFG tx TXN rx TX RX FPGA app app intf TLP gen PCIe applications PCI Express Bus FPGA IP core PCI Endpoint PCIe protocol stack handles upper layers of TLP generator interface Wishbone to TLP application interface others possible AES in CTR mode XOR “encryption” 8

  21. The Exzess FPGA PCIe EP WishBone MRd MWr CplD CFG tx TXN rx TX RX FPGA app app intf TLP gen PCIe applications PCI Express Bus FPGA IP core PCI Endpoint PCIe protocol stack handles upper layers of TLP generator interface Wishbone to TLP application interface others possible AES in CTR mode XOR “encryption” 8

  22. The Exzess FPGA PCIe EP WishBone MRd MWr CplD CFG tx TXN rx TX RX FPGA app app intf TLP gen PCIe applications PCI Express Bus FPGA IP core PCI Endpoint PCIe protocol stack handles upper layers of TLP generator interface Wishbone to TLP application interface others possible AES in CTR mode XOR “encryption” 8

  23. Application View memory proxy CPU issues write to memory chipset redirects write to device device encrypts data device issues write to memory usage mmap the device memory read & write as usual Exzess will transparently ... encrypt decrypt use normal RAM as encrypted backend storage 9

  24. Application View backend storage 6 5 do_anything(p); 4 strcpy(p, "stuff"); 3 2 char *p = secure_malloc(6); 1 9 use normal RAM as encrypted memory proxy decrypt encrypt Exzess will transparently ... read & write as usual mmap the device memory usage device issues write to memory device encrypts data chipset redirects write to device CPU issues write to memory secure_free(p);

  25. Goals and Attacker Model data in physical RAM is encrypted even searching /dev/mem is futile only some data: non-secured applications without performance loss large encryptable area: almost your whole RAM RAM extraction useless: also extract & read key from Exzess improvements upon the prototype FPGA might have: debug ports, emanations, ... hardening and tamper-proofjng: think HSM (Hardware Security Module) 10

  26. Performance Measurements of Prototype XOR seq Measurements on FPGA Prototype, not cached, 4-byte packets read write s throughput 11 XOR rnd AES seq AES rnd 20 17 . 2 17 . 2 15 ] [ MB 10 8 . 6 8 . 6 5 1 . 1 1 . 1 1 . 1 1 . 1 0

  27. Performance Measurements of Prototype XOR seq Measurements on FPGA Prototype, not cached, 4-byte packets read write s throughput 11 XOR rnd AES seq AES rnd 20 17 . 2 17 . 2 15 ] [ MB 10 8 . 6 8 . 6 5 1 . 1 1 . 1 1 . 1 1 . 1 0

  28. Future Work integrate into LUKS, OpenSSL, SSH,... hardened hardware PCIe fjrewalling beyond encryption: memory proxy application for... debugging data integrity checking redundancy and healing 12

  29. Conclusion Exzess is a working prototype can solve cold-boot problem interesting concept, even beyond encryption encrypting memory proxy source code: https://www4.cs.fau.de/~arw/exzess/ 13

Recommend


More recommend