<div dir="ltr">I still need some background on Power9+OpenBMC and OpenBMC in other systems in order to form a solid opinion on system security.<div><br></div><div>In the case of P9, I want to validate the SBE OTPROM and SEEPROM before deploying to the data center. I'd like to be able to automate that procedure and run it for any racked system at any time.</div><div><br></div><div>See <a href="https://cloud.google.com/security/security-design/">https://cloud.google.com/security/security-design/</a> for some publicly available information and context. At the lowest level:</div><div>"...We also design custom chips, including a hardware security chip that is currently being deployed on both servers and peripherals. These chips allow us to securely identify and authenticate legitimate Google devices at the hardware level. ..."</div><div>Any P9 or OpenBMC security solution should be a very strong story, independent of additional measures employed by any particular vendor. The threat model should be clearly stated and be specific about what is in and out of scope.</div><div><br></div><div>As far as the OpenBMC filesystem design, I expect the BMC to follow the typical sequence for each layer of the boot procedure:</div><div>1) check for pending update and update if needed and valid</div><div>2) remove the ability to update</div><div>3) copy code and configuration into place for execution</div><div>4) validate code and configuration</div><div>5) record measurement or equivalent operation for the system</div><div>6) transfer control to next layer</div><div>7) next layer does its work including progression to its subsequent layer</div><div><br></div><div>The BMC, even though it runs Linux, is a fixed stack and has lower overall complexity than the host system. Ideally, the BMC can re-enforce the chain of trust of the host. In particular, I'm looking to the BMC to close the possible gap in the SBE OTPROM and SEEPROM which could otherwise harbor a persistent attack (e.g. load HB, validate it, maliciously patch it, run it).</div><div><br></div><div>The OpenBMC filesystem and its contents should be verifiable before they are used. What is the scheme to be employed?</div></div>