<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Mar 2, 2015 at 8:09 PM, John Denker <span dir="ltr"><<a href="mailto:jsd@av8n.com" target="_blank">jsd@av8n.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">...<br>
IMHO the next step is securing the BIOS.  Again<br>
the logic is simple:  If you can't trust the BIOS,<br>
you can't trust anything else.  Conversely, a<br>
trusted BIOS can vet the other components.  For<br>
starters, it can demand a valid cryptologic signature<br>
for BIOS updates.  Similarly it can demand a valid<br>
crypto sig on the software it reads from disk at<br>
boot time.  These things can be signed multiple<br>
times, once by each of the interested parties.<br>
This would make life noticeably more difficult for<br>
anybody who wants to bugger the firmware in your<br>
disk drives.<br>
<br>
Open-source auditable BIOS implementations exist.<br>
  <a href="http://www.openfirmware.info/Welcome_to_OpenBIOS" target="_blank">http://www.openfirmware.info/Welcome_to_OpenBIOS</a><br>
  <a href="http://www.coreboot.org/" target="_blank">http://www.coreboot.org/</a></blockquote><div><br></div><div>The process you are describing sounds like Secure Boot / Verified Boot / Boot Guard.<br></div><div><br>When it comes to measured boots with Trusted Execution (TXT), the lack of visibility into the BIOS is a big gap because of SMM. You can detect when the BIOS has changed, but don't know that the SMM loaded by BIOS is actually good.</div><div><br></div><div>I've talked to some platform vendors about this issue. Nobody has been able to provide:</div><div>- A list of known BIOS measurements. A couple vendors mentioned NIST 800-155, but hadn't done anything.</div><div>- BIOS source access. One vendor said that the only people they provided BIOS source access to were the US DoD and that was after a very long negotiation. This is probably a non-starter.</div><div>- A SMM Transfer Montior implementation. Only one person I've spoken with knew of an actual STM implementation, which was only for client systems used by, again, the US DoD.</div><div><br></div><div>Some of the challenges I've run into:</div><div>- Platform vendors don't write their own BIOSes. They may get binary blobs from one or more outside vendors. No single vendor seems to know what is going on.</div><div>- SMM in server systems may actually provide complex functionality (e.g. power management, memory hot swapping, etc). Implementing a meaningful STM may not be possible without crippling that functionality. That's why the only working STM is for more simple client systems which don't do much in SMM.</div><div>- One platform vendor's BIOS measurement is different on each individual machine. This is bizarre, makes the measurement worthless, and acts effectively as a unique machine identifier. The good news is they are fixing the issue.</div><div><br></div><div>I like Coreboot but support is still pretty limited.</div></div></div></div>