1.一種國產(chǎn)BMC芯片可信固件的設(shè)計方法,其特征在于:所述方法在BMC固件的引導(dǎo)層、內(nèi)核層、中間件和軟件層加入可信功能模塊,在BMC上電啟動過程中對內(nèi)核程序、應(yīng)用程序和BIOS關(guān)鍵代碼進(jìn)行完整性度量,確保程序的完整性,從而建立起系統(tǒng)平臺的可信執(zhí)行環(huán)境。
2.根據(jù)權(quán)利要求1所述的一種國產(chǎn)BMC芯片可信固件的設(shè)計方法,其特征在于:所述引導(dǎo)層是BMC固件的 U-boot啟動代碼,U-boot是BMC上電啟動時第一段運行的代碼,在U-boot中加入的可信功能模塊有度量程序、SM3軟算法和度量值存儲接口,其中:
a、度量程序:BMC啟動時度量程序調(diào)用SM3軟算法對BMC的Linux內(nèi)核進(jìn)行度量;
b、SM3軟算法:用C程序?qū)崿F(xiàn)的國密SM3密碼雜湊算法,該算法對輸入數(shù)據(jù)進(jìn)行擦湊運算,生成一個256位的雜湊值;
c、度量值存儲接口:把度量值保存到BMC的安全存儲空間,如Flash。
3.根據(jù)權(quán)利要求2所述的一種國產(chǎn)BMC芯片可信固件的設(shè)計方法,其特征在于:所述內(nèi)核層是經(jīng)過裁剪的ARM Linux內(nèi)核,為實現(xiàn)可信計算功能,需要加入IO驅(qū)動,所述IO驅(qū)動包括實現(xiàn)LPC、SPI、IIC的接口功能,完成硬件接口時序和配置相關(guān)的寄存器,使BMC和外部模塊正常通信,其中:
a、LPC接口驅(qū)動:實現(xiàn)BMC芯片與外部TCM可信密碼模塊的通信接口,使BMC通過LPC接口可以訪問TCM模塊;
b、SPI接口驅(qū)動:實現(xiàn)BMC芯片與外部BIOS芯片的通信接口,使BMC通過SPI接口可以讀取BIOS的Boot Block代碼;
c、IIC接口驅(qū)動:實現(xiàn)BMC芯片與外部CPLD芯片的通信接口,使BMC通過IIC接口向CPLD發(fā)送命令,控制主板的上電時序。
4.根據(jù)權(quán)利要求3所述的一種國產(chǎn)BMC芯片可信固件的設(shè)計方法,其特征在于:所述中間件位于內(nèi)核層和軟件層之間,提供度量程序、軟算法、度量值存儲接口、可信代理程序BMC控制CPLD的命令接口、各種可信功能API,其中:
a、度量程序:調(diào)用國產(chǎn)SM3軟算法度量BMC的應(yīng)用程序;
b、軟算法:通過C程序以軟算法的形式實現(xiàn)國密SM2、SM3、SM4算法,供軟件層調(diào)用,實現(xiàn)對重要數(shù)據(jù)的加解密、數(shù)字簽名等;
c、度量值存儲接口:把度量值保存到BMC的安全存儲空間,如Flash;
d、可信代理程序:對外部的TCM可信密碼模塊進(jìn)行調(diào)度,對BIOS Boot Block進(jìn)行度量;
e、BMC控制CPLD的命令接口:BMC通過CPLD控制主板的上電時序,BMC上電時先不給主板的CPU進(jìn)行加電,當(dāng)BMC的各模塊進(jìn)行度量確??尚藕笤偻ㄟ^CPLD控制CPU上電,從而確保運行過程中程序的完整性;
f、可信功能API:包括可信功能開啟API、基準(zhǔn)值A(chǔ)PI、度量值A(chǔ)PI、日志API、特權(quán)碼API和配置接口,用于為BMC Web界面提供調(diào)用接口,實現(xiàn)可信功能。
5.根據(jù)權(quán)利要求4所述的一種國產(chǎn)BMC芯片可信固件的設(shè)計方法,其特征在于:所述軟件層包括BMC Web應(yīng)用和BMC的應(yīng)用程序,其中在BMC Web頁面中通過調(diào)用中間層的API接口實現(xiàn)可信狀態(tài)的呈現(xiàn),包括:可信功能的開啟、基準(zhǔn)值管理、日志呈現(xiàn)、特權(quán)啟動、白名單管理,其中:
a、可信功能開啟模塊:該模塊通過調(diào)用中間件的功能開啟API,實現(xiàn)在BMC的Web界面中手動配置可信功能的開啟或關(guān)閉操作;
b、基準(zhǔn)值管理模塊:該模塊通過調(diào)用中間件的基準(zhǔn)值A(chǔ)PI,實現(xiàn)在BMC Web界面中對基準(zhǔn)值的讀寫、更新操作;
c、度量值管理模塊:該模塊通過調(diào)用中間件的度量值A(chǔ)PI,實現(xiàn)在BMC Web界面中對度量值的讀寫操作;
d、日志管理模塊:該模塊通過調(diào)用中間件的日志API,實現(xiàn)在BMC Web界面中呈現(xiàn)BMC啟動過程中的各模塊度量日志;
e、特權(quán)啟動功能模塊:該模塊通過調(diào)用中間件的特權(quán)碼API,當(dāng)BMC啟動過程中出現(xiàn)模塊不可信的狀態(tài)時,在BMC Web界面中使用戶通過輸入特權(quán)碼進(jìn)行系統(tǒng)的啟動,并提示用戶系統(tǒng)進(jìn)入了不可信的工作狀態(tài);
f、白名單模塊:該模塊通過調(diào)用中間件的配置接口,在BMC Web界面中配置白名單,即白名單中的程序、文件列表都是可信的。