Is Intel’s Total Memory Encryption (Multi-Key) feature supported in FreeBSD? And if so, how to enable it?
Yes, and once the system is running it might contain interesting things like encryption keys or passwords. Sure, those keys should be used then wiped from memory but there's a window of opportunity here. You can actually yank out the memory and read its contents in another system. Freezing the module apparently extends the time it takes for the tiny capacitors to discharge.DRAM is uninitialized until it is powered up and loaded.
IMHO it's mostly the same as with "self encrypting disks"/"encryption at rest" that doesn't even need any interaction at boot:but still trying to understand the "why" of encrypted RAM.
Yes!See the "multi key" part?
Where do you see a "multi key" part in the text of the link OP did give us for reading?
Intel TME-MK technology is built on top of Intel TME. It enables the use of multiple encryption keys, allowing selection of one encryption key per memory page using the processor page tables. Encryption keys are programmed into each memory controller. The same set of keys is available to all entities on the system with access to that memory (all cores, direct memory access [DMA] engines, and more). [...]
[...]
The Intel TME-MK technology maintains a key table (internal to the CPU and invisible to the software) that stores key and encryption information that's associated with each KeyID. Each KeyID may be configured for:
Encryption using a software-specified key
Encryption using a hardware-generated key
No encryption (memory is plain text)
Encryption using a default platform TME Key
No harm donesko
I tried to search for "multi key" in the browser and got for unknown reason no hit. Then I asked. Then I doubt and searched again and found it. Then I edited my post. Then I read your answer. That was not performing well. Sorry.
Is Intel’s Total Memory Encryption (Multi-Key) feature supported in FreeBSD?
What do you mean by "volatile"?I have to ask again... DRAM is volatile, so how is there data lying around?
This seems like a solution in search of a problem.
Again, no dog in this fight.. just scratching my head over "why"
All the self encrypting disks I know do need to be given a key to unlock, but perhaps not immediately at boot, or perhaps in a fashion that's not visible to the user. One example are IBM/Lenovo laptops, where the boot password is used to unlock the (IBM- or Hitachi-made) disk drive; if you remove the drive from the laptop, you find that it is unreadable. I think modern Apple laptops work the same way (not sure, haven't taken one apart in ages). Similarly, in many large cloud environments, the boot loader knows how to contact a key server over the network, and uses the secure hardware identity (from the trusted platform module) as authentication. So by the time the users even show up, all the required interaction has taken place. And again, if the disk is physically separated from the server (like found in the dumpster), it is useless.sko said:IMHO it's mostly the same as with "self encrypting disks"/"encryption at rest" that doesn't even need any interaction at boot
Pretty much any software had to decrypt the data it works on for a short period, to process or copy it. So there is always a window of vulnerability. Good software design can minimize or obscure that window, but eliminating it is really hard.Besides, IMHO it shouldn't be the job of the memory to fix insecure software that doesn't clean up behind it and leaves unencrypted data lying around in RAM after being terminated...
Yes and no. They failed to ensure memory separation due to their shortcuts in speculative execution. Now they try for "no matter that someone reads your memory when he shouldn't. It's encrypted!". Untill someone gets to the keys.It seems to me the Intel process is a solution in search of a problem.
In their defense: Most other high-end microprocessors with multiple execution units also have speculative execution, and they probably have similar vulnerabilities when the side effects of speculative execution become visible (some were actually found to be vulnerable). Intel got most of the flak for it, because they are big, and everyone hates them (for reasonable reasons, they don't act like nice guys). It's the saying about Caesar's wife: given their position, Intel should have been better.Yes and no. They failed to ensure memory separation due to their shortcuts in speculative execution.
That's not that easy. In production environments, keys are disposable, generated on the fly, and time-bombed (they typically are valid for hours). That moves the problem to the key management infrastructure, which contains master keys. But that thing can be protected very well: remember the steel wire cages in data centers containing the Kerberos servers. In today's large server environments, the key servers are highly segregated, secured, and monitored.Untill someone gets to the keys.