[coreboot] Possible security enhancement?

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Thu Feb 21 22:24:22 CET 2008

On 21.02.2008 21:55, ron minnich wrote:
> On Thu, Feb 21, 2008 at 12:10 PM, Paul Millar <paul at astro.gla.ac.uk> wrote:
>>  Apparently, the problem here is DRAM doesn't fade fast enough.  If the reboot
>>  is fast, then the memory contents are preserved, so exposing the in-memory
>>  cache of the disk encryption key.  Boot off a memory stick and one can
>>  analysis the memory's content.
> yes, this is a problem and has been for as long as DRAM has been
> around. I kept wondering if anyone would notice :-)
> I used to debug DRAM-based micros by power cycling them and then
> dumping DRAM. Most of it survived. I won't even mention how long ago
> this was.
>>  The (perhaps flippant ;-) remark from "bootman" about storing the keys
>>  somewhere where the data will be erased by the BIOS led me to wonder if
>>  coreboot could do something like this.
> yes, very easily.

And it's circumvented just as easily.

>>  Perhaps coreboot could add the option of wipe the memory contents before
>>  handing over to the payload, maybe a "wipe-memory" payload that fails over to
>>  the next, main payload?
> We could do it in initram with no trouble.
> You pretty much have to do a full memory write to reset the ECC tags
> anyway (note: NOT zero. Just write). I'm kind of opposed to zeroing
> memory, since frequently, you want the contents of memory for
> port-mortem. That said, I'm surprised their attack worked since I
> assumed all those wonderful "secure" BIOSes -- such as EFI -- would
> zero all of memory. There must be something else going on here. Oh,
> there is -- they turned off memory wipe. I'm not that astonished, I'm
> surprised that anyone is ... DRAM retention is a widely known issue.

Yeah, I don't understand those people acting surprised.

>> If erasing the whole memory would take too long,
>>  could it wipe some part of the memory and (by convention) that part of the
>>  memory be used for storing secrets?
> HMM,  the K8 has 3.2 GB/sec memory bw at minimum. Put 128 GB on a
> single CPU ->40 seconds. People might get upset. But people who care
> about security should not.
> It's funny. Those incredibly slow BIOSes disable a very important
> security item to get faster boot :-)

Maybe that's the final nail in their coffin.

>>  Neither offers a completely solution to the problem: apparently, as the
>>  temperature is lowered, the data in DRAM will survive longer---at liquid
>>  Nitrogen temperatures it can last for hours---but perhaps it could help.
> The problem is easily solved -- on some machines, it should not be
> possible to disable (at minimum) a full zero'ing of memory.
> Neat paper though. It makes a widely known but not much discussed
> problem more widely known.

There's an even better solution than zeroing memory during initram: 
zeroing memory on poweroff. There's no reason the firmware poweroff 
handler can't zero all memory.



More information about the coreboot mailing list