Hi! > MKTME is built on top of TME. TME allows encryption of the entirety of > system memory using a single key. MKTME allows to have multiple encryption > domains, each having own key -- different memory pages can be encrypted > with different keys. > > Key design points of Intel MKTME: > > - Initial HW implementation would support upto 63 keys (plus one > default "up to" > TME key). But the number of keys may be as low as 3, depending to SKU > and BIOS settings > > - To access encrypted memory you need to use mapping with proper KeyID > int the page table entry. KeyID is encoded in upper bits of PFN in page "in the" > table entry. > > - CPU does not enforce coherency between mappings of the same physical > page with different KeyIDs or encryption keys. We wound need to take "would need" > care about flushing cache on allocation of encrypted page and on > returning it back to free pool. > > - For managing keys, there's MKTME_KEY_PROGRAM leaf of the new PCONFIG > (platform configuration) instruction. It allows load and clear keys > associated with a KeyID. You can also ask CPU to generate a key for > you or disable memory encryption when a KeyID is used. Should this go to Documentation somewhere? And next question is -- what is it good for? Prevents attack where DRAM is frozen by liquid nitrogen and moved to another system to extract encryption keys? Does it prevent any attacks that don't involve manipulating hardware? Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Attachment:
signature.asc
Description: Digital signature