Jump to content

Data memory-dependent prefetcher

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by The Anome (talk | contribs) at 10:04, 22 March 2024 (they use lots of different ways to do this, so don't pick one out). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A data memory-dependent prefetcher (DMP) is a memory prefetcher that looks at cache memory content for possible pointer values, and prefetches the data at those locations into cache if it sees memory access patterns that suggest following those pointers would be useful.[1][2]

As of 2022, data prefetching was already a common feature in CPUs,[3] but most prefetchers do not inspect the data within the cache for pointers, instead working by monitoring memory access patterns. Data memory-dependent prefetchers take this one step further.

The DMP in Apple's M1 computer architecture was demonstrated to be capable of being used as a memory side-channel in work first reported in 2024.[4] A cryptographic key extraction attack, named GoFetch by its authors, has been demonstrated using this vulnerability to attack a variety of cryptographic algorithms.[5][6]

Intel Core processors also have DMP functionality (Intel use the term "Data Dependent Prefetcher") but Intel states that they have features to prevent their DMPs being used for side-channel attacks.[7] The authors of GoFetch state that they were unable to make their exploit work on Intel processors.[6]

References

  1. ^ "Augury". www.prefetchers.info. 2022-05-02. Retrieved 2024-03-21.
  2. ^ Vicarte, Jose Rodrigo Sanchez; Flanders, Michael; Paccagnella, Riccardo; Garrett-Grossman, Grant; Morrison, Adam; Fletcher, Christopher W.; Kohlbrenner, David (May 2022). "Augury: Using Data Memory-Dependent Prefetchers to Leak Data at Rest". IEEE: 1491–1505. doi:10.1109/SP46214.2022.9833570. ISBN 978-1-6654-1316-9. {{cite journal}}: Cite journal requires |journal= (help)
  3. ^ Bakhshalipour, Mohammad; Shakerinava, Mehran; Golshan, Fatemeh; Ansari, Ali; Lotfi-Karman, Pejman; Sarbazi-Azad, Hamid (2020-09-01), A Survey on Recent Hardware Data Prefetching Approaches with An Emphasis on Servers, doi:10.48550/arXiv.2009.00715, retrieved 2024-03-21
  4. ^ Goodin, Dan (2024-03-21). "Unpatchable vulnerability in Apple chip leaks secret encryption keys". Ars Technica. Retrieved 2024-03-21.
  5. ^ "Apple Silicon chip flaw can leak encryption keys, say researchers". AppleInsider. 2024-03-21. Retrieved 2024-03-22.
  6. ^ a b "GoFetch: Breaking Constant-Time Cryptographic Implementations Using Data Memory-Dependent Prefetchers". gofetch.fail. Retrieved 2024-03-22.
  7. ^ "Data Dependent Prefetcher". Intel. Retrieved 2024-03-21.