Merging BIOS options in a TCPA environment
Original Publication Date: 2002-Jun-15
Included in the Prior Art Database: 2003-Jun-21
A method is disclosed for effectively merging separate BIOS elements into a system's base BIOS in a TCPA environment. BIOS implementations may include code that has been delivered to system integrator as a functional component of BIOS; these components are simply merged into the system BIOS without modification. Examples of these independent code images include (but are not limited to) CPU microcode (CPU patches), video support code for onboard video subsystems, network support code for on board network attachments, logo screens, etc. When it is necessary to update one of these entities, the system integrator has traditionally included the new component into a new BIOS and released the entire BIOS to its customers. However, there are circumstances where it is desirable to update system components without updating the BIOS level. This need has lead to various schemes for merging BIOS components into existing release in the field. These have worked well until now. With the increased focus on security and authenticity checking of all system components (including BIOS), these field merging schemes must address the problem of allowing the system to verify the integrity of the merged function in addition to simply merging the new function. The traditional method of proving authenticity of BIOS is sign the entire image. Any entity wishing to verify the integrity of the image simply checks the digital signature in the image (usually done by using an asymmetrical cryptographic process). To maintain the integrity of the image requires recalculating the signature of the image, and results in compromising the security strategy the private key would have to be released. This disclosure describes a method of replacing components of a BIOS image while at the same time maintaining the ability to validate the integrity for the image without compromising the private key. The solution to this problem is to break the image up into its separate components and validate each one individually. The BIOS image would contain structures that have individual signatures for each component. When a component is replaced, the signature for the component is replaced as well. Following is an example of how this process could be done, using CPU patches. This process could be performed by either a flash update utility or by code within the BIOS itself.