TWI740214B - 伺服器啟動方法 - Google Patents

伺服器啟動方法 Download PDF

Info

Publication number
TWI740214B
TWI740214B TW108134363A TW108134363A TWI740214B TW I740214 B TWI740214 B TW I740214B TW 108134363 A TW108134363 A TW 108134363A TW 108134363 A TW108134363 A TW 108134363A TW I740214 B TWI740214 B TW I740214B
Authority
TW
Taiwan
Prior art keywords
management controller
baseboard management
signal
programmable logic
logic device
Prior art date
Application number
TW108134363A
Other languages
English (en)
Other versions
TW202113616A (zh
Inventor
孫佩傑
陳允迪
侯智仁
黃添壽
陳佳佑
王紹宇
Original Assignee
技嘉科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 技嘉科技股份有限公司 filed Critical 技嘉科技股份有限公司
Priority to TW108134363A priority Critical patent/TWI740214B/zh
Publication of TW202113616A publication Critical patent/TW202113616A/zh
Application granted granted Critical
Publication of TWI740214B publication Critical patent/TWI740214B/zh

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

一種伺服器啟動方法,適用於包含複雜可程式邏輯裝置以及基板管理控制器的伺服器。所述方法包含以複雜可程式邏輯裝置接收第一啟動訊號,以複雜可程式邏輯裝置依據第一啟動訊號輸出第二啟動訊號到基板管理控制器,以基板管理控制器依據第二啟動訊號輸出檢核訊號,當以複雜可程式邏輯裝置判斷其於第一預定時段內接收到檢核訊號且判斷檢核訊號合法,輸出對應檢核訊號的回應訊號到基板管理控制器,當以基板管理控制器判斷其於第二預定時段內接收到回應訊號且判斷回應訊號合法,以基板管理控制器啟動作業系統。

Description

伺服器啟動方法
本發明係關於一種伺服器啟動方法,特別係關於一種基於複雜可程式邏輯裝置及基板管理控制器的伺服器啟動方法。
近年來,由於雲端服務(Cloud Server)及資料中心的興起(Data Center),讓許多中小企業選擇以租借的方式租用資料中心的伺服器,以節省建置硬體的成本。其中,複雜可程式化邏輯裝置(Complex Programmable Logic Device,CPLD)常用於控制伺服器的電源,而基板管理控制器(Baseboard Management Controller,BMC)則是控制伺服器的整體運作,以確保伺服器提供正常的服務。
然一般供應商只會在租用到期時更新作業系統,若供應商未對CPLD或BMC韌體的合法性進行檢測,則當有心人士在該伺服器植入惡意病毒時,則下一個租借的使用者便會在不知情的情況下將自己的資料暴露在危險之中。因此,如何避免伺服器被植入惡意程式,並且保護儲存於伺服器上的資料及數據以及避免被惡意竄改或是竊取,已是現今重要的課題。
鑒於上述,本發明提供一種以滿足上述需求的伺服器啟動方法。
依據本發明一實施例的一種伺服器啟動方法,適用於包含一複雜可程式邏輯裝置以及一基板管理控制器的一伺服器,包含:以該複雜可程式邏輯裝置接收一第一啟動訊號;以該複雜可程式邏輯裝置依據該第一啟動訊號輸出一第二啟動訊號到該基板管理控制器;以該基板管理控制器依據該第二啟動訊號輸出一檢核訊號;以該複雜可程式邏輯裝置判斷是否於一第一預定時段內接收到該檢核訊號;當判斷該複雜可程式邏輯裝置於該第一預定時段內接收到該檢核訊號,判斷該檢核訊號是否合法;當以該複雜可程式邏輯裝置判斷該檢核訊號合法,輸出對應該檢核訊號的一回應訊號到該基板管理控制器;以該基板管理控制器判斷是否於一第二預定時段內接收到該回應訊號;當以該基板管理控制器判斷於該第二預定時段內接收到該回應訊號,判斷該回應訊號是否合法;以及當以該基板管理控制器判斷該回應訊號合法,以該基板管理控制器控制該伺服器的一作業系統的啟動。
藉由上述實施內容,本發明透過以複雜可程式邏輯裝置及基板管理控制器相互驗證,可以避免伺服器韌體被竄改,並且保護儲存於伺服器上的資料及數據。
以上之關於本揭露內容之說明及以下之實施方式之說明係用以示範與解釋本發明之精神與原理,並且提供本發明之專利申請範圍更進一步之解釋。
以下在實施方式中詳細敘述本發明之詳細特徵以及優點,其內容足以使任何熟習相關技藝者了解本發明之技術內容並據以實施,且根據本說明書所揭露之內容、申請專利範圍及圖式,任何熟習相關技藝者可輕易地理解本發明相關之目的及優點。以下之實施例係進一步詳細說明本發明之觀點,但非以任何觀點限制本發明之範疇。
請參考圖1,圖1係依據本發明一實施例所繪示的伺服器啟動方法的流程圖。其中,本發明揭露的伺服器啟動方法適用於包含一複雜可程式邏輯裝置(Complex Programmable Logic Device,CPLD)以及一基板管理控制器(Baseboard Management Controller,BMC)的一伺服器。
當伺服器的複雜可程式邏輯裝置接收第一啟動訊號後(步驟S01),便執行步驟S02:以複雜可程式邏輯裝置依據第一啟動訊號輸出第二啟動訊號到基板管理控制器。詳細來說,複雜可程式邏輯裝置被啟動(Boot)後(舉例來說,當伺服器的電源按鍵被觸發時,伺服器的複雜可程式邏輯裝置會接收到第一啟動訊號而被啟動),複雜可程式邏輯裝置接著輸出第二啟動訊號到基板管理控制器以使基板管理控制器啟動。當基板管理控制器接收到第二啟動訊號後,執行步驟S03:以基板管理控制器依據第二啟動訊號輸出檢核訊號。進一步來說,基板管理控制器受第二啟動訊號所啟動時,會產生檢核訊號,並輸出檢核訊號到複雜可程式邏輯裝置。其中,檢核訊號可以是欲向複雜可程式邏輯裝置要求一或多個特定參數的訊號。所述特定參數例如為複雜可程式邏輯裝置或基板管理控制器的更新日期、基板管理控制器的韌體版本號、伺服器或整台電腦主機的序列號碼等,或者為前述韌體更新日期、版本號及/或序列號碼經過加密後的代碼,本發明不以此為限。
請繼續參考圖1,於步驟S04中,複雜可程式邏輯裝置判斷是否於第一預定時段內接收到檢核訊號。一般而言,第一預定時段的時間長度可以依據實際需求決定,且此第一預定時段可以從複雜可程式邏輯裝置輸出第二啟動訊號後開始起算,當複雜可程式邏輯裝置未於第一預定時段內接收到檢核訊號,則會執行步驟S05來產生並輸出錯誤記錄,然而第一預定時段的起算時間點亦可以依實際所需調整,本發明不以此為限。詳細而言,當複雜可程式邏輯裝置未於第一預定時段內接收到檢核訊號,表示基板管理控制器可能運作超時 (Timeout),故產生並輸出錯誤記錄。錯誤記錄可以包含發生錯誤之裝置(於上述狀況中即為基板管理控制器)以及錯誤事件(於上述狀況中即為運作超時事件),複雜可程式邏輯裝置可以將錯誤記錄儲存於系統日誌中,或是透過網路輸出至雲端資料庫或其他系統,本發明不以此為限。另外,由於複雜可程式邏輯裝置為伺服器上控制電源序列的主要元件,因此於另一實施例中,當複雜可程式邏輯裝置未於第一預定時段內接收到檢核訊號時,可以直接控制電源序列關閉而讓伺服器無法啟動。
當複雜可程式邏輯裝置判斷於第一預定時段內接收到檢核訊號,會接續執行步驟S06以判斷檢核訊號是否合法。進一步來說,複雜可程式邏輯裝置會判斷檢核訊號是否符合預存於複雜可程式邏輯裝置的預設要求。更進一步來說,在確認複雜可程式邏輯裝置與基板管理控制器未被竄改或被植入惡意程式時(例如伺服器甫安裝時),複雜可程式邏輯裝置與基板管理控制器彼此可以協定好一檢核流程。舉例來說,所述檢核流程為基板管理控制器會向複雜可程式邏輯裝置要求電腦版本參數,則檢核訊號及預設要求即為「要求電腦版本參數」。上述參數僅為舉例,本發明不以此為限。
當複雜可程式邏輯裝置判斷檢核訊號為合法時,表示基板管理控制器韌體應未被竄改,則執行步驟S07由複雜可程式邏輯裝置產生並輸出對應檢核訊號的回應訊號。進一步來說,所述回應訊號包含對應於檢核訊號中的要求的特定參數,詳細舉例如前所列於此不再贅述。另一方面,當複雜可程式邏輯裝置判斷檢核訊號不合法時,便會執行步驟S05輸出錯誤記錄,或是控制電源序列關閉。
於步驟S08中,基板管理控制器判斷是否於第二預定時段內收到回應訊號。進一步來說,第二預定時段可以從基板管理控制器輸出檢核訊號後開始起算。當基板管理控制器未於第二預定時段內收到回應訊號,於步驟S05輸出錯誤記錄。同理於前述可程式邏輯裝置之判斷,當基板管理控制器未於第二預定時段內接收到回應訊號,表示複雜可程式邏輯裝置可能運作超時,因此產生並輸出錯誤記錄。所述錯誤記錄同於前述複雜可程式邏輯裝置在判斷錯誤事件發生時所作的錯誤記錄,於此不再贅述。反之,當基板管理控制器判斷於第二預定時段內收到回應訊號,則接續於步驟S09判斷回應訊號是否合法。進一步來說,基板管理控制器會判斷複雜可程式邏輯裝置對應預設要求所輸出的回應訊號是否符合於基板管理控制器中的預設參數或記錄。
舉例而言,若預設要求為更新日期,複雜可程式邏輯裝置會對應地將自身的更新日期作為回應訊號輸出,則基板管理控制器會判斷回應訊號中之複雜可程式邏輯裝置的更新日期是否與基板管理控制器自身的更新日期相符,若相符則表示合法。舉另一個例子來說,基板管理控制器與複雜可程式邏輯裝置亦可在先前更新時即通知彼此的更新時間,因此預設要求亦可以為基板管理控制器或是複雜可程式邏輯裝置的更新日期。此外,回應訊號亦可以是對應上述檢核訊號的韌體版本號、伺服器或整台電腦主機的序列號碼等,本發明不以此為限。
當基板管理控制器判斷回應訊號合法,便執行步驟S10:以基板管理控制器啟動作業系統;而當複雜可程式邏輯裝置判斷檢核訊號不合法時,便會執行步驟S05以產生並輸出錯誤記錄。所述錯誤記錄如前列實施例所述,於此不再贅述。
請參考圖2,圖2係依據本發明另一實施例所繪示的伺服器啟動方法的流程圖。其中,圖2之伺服器啟動方法的流程圖相似於圖1之流程圖,惟不同處在於圖2的步驟S08「基板管理控制器判斷是否於第二預定時段內收到回應訊號」及S09「判斷回應訊號是否合法」之判斷結果為「否」時,接續到步驟S05’。
詳細而言,在圖2的步驟S08中,當基板管理控制器判斷未於第二預定時段內接收到回應訊號或在步驟S09判斷回應訊號不合法時,則執行步驟S05’:判斷「否」是否超過N次。換句話說,基板管理控制器會判斷未接收到回應訊號及回應訊號不合法的判斷次數是否超過N次(例如為5次,亦可依實際需求增加或減少)。當基板管理控制器判斷未接收到回應訊號及回應訊號不合法的判斷次數不超過N次(即「否」不超過N次),則再次執行步驟S03輸出檢核訊號;反之,當基板管理控制器判斷未接收到回應訊號以及回應訊號不合法的判斷次數超過N次(即「否」超過N次),則執行步驟S05:輸出錯誤記錄。所述錯誤記錄如前列實施例所述,於此不再贅述。此外,當基板管理控制器於步驟S05’判斷「否」不超過N次並接續執行步驟S03後,則步驟S04的第一預定時段可以從複雜可程式邏輯裝置輸出對應檢核訊號的回應訊號(步驟S07)開始起算,然而第一預定時段的起算時間點亦可以依實際所需調整,本發明不以此為限。
其中,在圖1及圖2的實施例中,在基板管理控制器啟動作業系統後,基板管理控制器可以經過一段時間後再產生另一檢核訊號,並執行如步驟S04中複雜可程式邏輯裝置對此檢核訊號進行判斷,並接續進行如圖1及圖2中接續步驟S04後的流程,當執行到如步驟S09基板管理控制器判斷由複雜可程式邏輯裝置輸出的對應此檢核訊號的回應訊號合法時,則維持作業系統的啟動狀態。
請參考圖3,圖3係依據本發明一實施例所繪示的執行自驗證運算的流程圖。更詳細而言,圖3揭示的自驗證運算是在圖1或圖2的步驟S10(即啟動作業系統)後執行。
請繼續參考圖3,當作業系統被啟動後,可以執行步驟S11:以基板管理控制器執行自驗證運算並取得運算值。詳細而言,基板管理控制器可以基於基板管理控制器的可執行檔以及函式庫檔的至少一者執行自驗證運算並取得運算值。其中,所述自驗證運算較佳是雜湊運算(Hash Algorithm),故運算值較佳為雜湊值(Hash Value)。更詳細而言,雜湊運算例如是訊息摘要5演算法(Message-Digest 5 Algorithm,MD5)、循環冗餘校驗(Cyclic Redundancy Check,CRC) 演算法、安全散列演算法(Secure Hash Algorithm,SHA)或進階加密標準(Advanced Encryption Standard,AES)演算法,又在雜湊演算法中,安全散列演算法及進階加密標準演算法係較安全的加密方式。然自驗證運算亦可以是不對稱密碼演算法(Rivest-Shamir-Adleman,RSA)、雜湊訊息鑑別碼(Hash-Based Message Authentication Code,HMAC)、64基演算法(Base 64)等。
請繼續參考圖3並接續上述步驟S11,當基板管理控制器取得運算值後,於步驟S12以基板管理控制器判斷運算值是否與參考值相等,意即以基板管理控制器判斷運算值(雜湊值)是否正確。當以基板管理控制器判斷運算值相等於參考值,則每間隔一間隔時段以基板管理控制器基於上述的可執行檔及函式庫檔的至少一者執行自驗證運算;當以基板管理控制器判斷運算值不相等於參考值,則以基板管理控制器在步驟S13輸出又另一錯誤記錄。其中,上述之參考值可以是在基板管理控制器在確定可執行檔及函式庫檔尚未被竄改且未被植入惡意程式時(例如伺服器安裝時),以可執行檔或函式庫檔依據自驗證運算執行運算以取得之參考值,換言之,當自驗證運算執行完即可確認伺服器是否被竄改。
藉由上述內容,本發明的一或多個實施例所提出之伺服器啟動方法可以在啟動作業系統前,透過複雜可程式邏輯裝置判斷基板管理控制器的韌體的合法性,且以基板管理控制器判斷複雜可程式邏輯裝置的合法性。透過上述交叉驗證的方法,可以避免在基板管理控制器或複雜可程式邏輯裝置的韌體被竄改的狀況下啟動作業系統,進而避免作業系統的運作產生錯誤。另外透過上述交叉驗證方法亦可判斷複雜可程式邏輯裝置或基板管理控制器的韌體是否為指定廠商所開發。若發現複雜可程式邏輯裝置或基板管理控制器遭竄改或非指定廠商所開發,亦能輸出錯誤記錄以提醒相關操作人員。
此外,本發明的一或多個實施例所提出之伺服器啟動方法可藉由基板管理控制器基於可執行檔及函式庫檔執行自驗證運算,以判斷基板管理控制器本身韌體的合法性,且可以於間隔一段間隔時段再次執行自驗證運算以定期檢查基板管理控制器的韌體的合法性,藉此避免伺服器在作業系統開始運作後的某個時間點遭到竄改、植入惡意程式或檔案系統損毀,更可以避免基板管理控制器的韌體的合法性被誤判。另外,當上述自驗證運算以雜湊運算來實施時,除了可以兼具安全性與執行速度,更可以避免拉長伺服器的開機時間及影響伺服器的效能。
雖然本發明以前述之實施例揭露如上,然其並非用以限定本發明。在不脫離本發明之精神和範圍內,所為之更動與潤飾,均屬本發明之專利保護範圍。關於本發明所界定之保護範圍請參考所附之申請專利範圍。
圖1係依據本發明一實施例所繪示的伺服器啟動方法的流程圖。 圖2係依據本發明另一實施例所繪示的伺服器啟動方法的流程圖。 圖3係依據本發明一實施例所繪示的伺服器啟動方法中的自驗證運算的流程圖。

Claims (8)

  1. 一種伺服器啟動方法,適用於包含一複雜可程式邏輯裝置以及一基板管理控制器的一伺服器,包含:以該複雜可程式邏輯裝置接收一第一啟動訊號;以該複雜可程式邏輯裝置依據該第一啟動訊號輸出一第二啟動訊號到該基板管理控制器;以該基板管理控制器依據該第二啟動訊號輸出一檢核訊號;以該複雜可程式邏輯裝置判斷是否於一第一預定時段內接收到該檢核訊號;當判斷該複雜可程式邏輯裝置於該第一預定時段內接收到該檢核訊號,判斷該檢核訊號是否合法;當以該複雜可程式邏輯裝置判斷該檢核訊號合法,輸出對應該檢核訊號的一回應訊號到該基板管理控制器;以該基板管理控制器判斷是否於一第二預定時段內接收到該回應訊號;當以該基板管理控制器判斷於該第二預定時段內接收到該回應訊號,判斷該回應訊號是否合法;以及 當以該基板管理控制器判斷該回應訊號合法,以該基板管理控制器控制該伺服器的一作業系統的啟動,其中當該基板管理控制器判斷未於該第二預定時段內接收到該回應訊號的一判斷次數未超過一預訂次數時,以該基板管理控制器輸出該檢核訊號,以及該基板管理控制器判斷該回應訊號不合法的另一判斷次數未超過該預訂次數時,以該基板管理控制器輸出該檢核訊號。
  2. 如請求項1所述的方法,其中以該複雜可程式邏輯裝置判斷該回應訊號是否合法包含,以該複雜可程式邏輯裝置判斷該回應訊號是否符合記錄於該複雜可程式邏輯裝置的一預設參數。
  3. 如請求項1所述的方法,其中當該複雜可程式邏輯裝置判斷未於該第一預定時段內接收到該檢核訊號時,以該複雜可程式邏輯裝置輸出一錯誤記錄。
  4. 如請求項1所述的方法,其中當該基板管理控制器判斷未於該第二預定時段內接收到該回應訊號時,以該基板管理控制器輸出一錯誤記錄。
  5. 如請求項1所述的方法,其中該方法更包含在啟動該作業系統後,以該基板管理控制器基於一可執行檔以及一函式庫檔的至少一者執行一自驗證運算並取得一運算值,且以該基板管理控制器判斷該運算值是否與一參考值相等。
  6. 如請求項5所述的方法,其中當判斷該運算值不相等於該參考值,以該基板管理控制器輸出又另一錯誤記錄。
  7. 如請求項5所述的方法,其中當判斷該運算值相等於該參考值,間隔一間隔時段以該基板管理控制器基於該可執行檔以及該函式庫檔的至少一者執行該自驗證運算。
  8. 如請求項5所述的方法,其中該自驗證運算是一雜湊運算。
TW108134363A 2019-09-24 2019-09-24 伺服器啟動方法 TWI740214B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW108134363A TWI740214B (zh) 2019-09-24 2019-09-24 伺服器啟動方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW108134363A TWI740214B (zh) 2019-09-24 2019-09-24 伺服器啟動方法

Publications (2)

Publication Number Publication Date
TW202113616A TW202113616A (zh) 2021-04-01
TWI740214B true TWI740214B (zh) 2021-09-21

Family

ID=76604477

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108134363A TWI740214B (zh) 2019-09-24 2019-09-24 伺服器啟動方法

Country Status (1)

Country Link
TW (1) TWI740214B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI529555B (zh) * 2013-12-16 2016-04-11 惠普研發公司 有關韌體認證之系統、方法及非暫態處理器可讀取媒體
TWI606396B (zh) * 2016-02-01 2017-11-21 廣達電腦股份有限公司 母板、電腦可讀儲存裝置以及韌體驗證方法
CN107766073A (zh) * 2017-10-23 2018-03-06 郑州云海信息技术有限公司 一种支持服务器开机更换BMC flash的结构及方法
US20180173536A1 (en) * 2016-12-15 2018-06-21 Western Digital Technologies, Inc. Non-volatile storage device with multiple boot partitions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI529555B (zh) * 2013-12-16 2016-04-11 惠普研發公司 有關韌體認證之系統、方法及非暫態處理器可讀取媒體
TWI606396B (zh) * 2016-02-01 2017-11-21 廣達電腦股份有限公司 母板、電腦可讀儲存裝置以及韌體驗證方法
US20180173536A1 (en) * 2016-12-15 2018-06-21 Western Digital Technologies, Inc. Non-volatile storage device with multiple boot partitions
CN107766073A (zh) * 2017-10-23 2018-03-06 郑州云海信息技术有限公司 一种支持服务器开机更换BMC flash的结构及方法

Also Published As

Publication number Publication date
TW202113616A (zh) 2021-04-01

Similar Documents

Publication Publication Date Title
JP4769608B2 (ja) 起動検証機能を有する情報処理装置
US11012241B2 (en) Information handling system entitlement validation
CN107077574B (zh) 用于客户端设备的信任服务
EP2681689B1 (en) Protecting operating system configuration values
JP5582909B2 (ja) プラットフォーム完全性検証システム
US9129103B2 (en) Authenticate a hypervisor with encoded information
US20080163212A1 (en) Paralleled management mode integrity checks
US20080168275A1 (en) Securely Recovering a Computing Device
US11398896B2 (en) Building device with blockchain based verification of building device files
JP6846457B2 (ja) 自動検証方法及びシステム
US10102378B2 (en) Boot images for units under test
JP6391439B2 (ja) 情報処理装置、サーバ装置、情報処理システム、制御方法及びコンピュータプログラム
US20110161645A1 (en) Content securing system
TWI754219B (zh) 更新信號技術
CN110069266B (zh) 应用升级方法、装置、计算机设备以及存储介质
WO2016165215A1 (zh) 应用程序加载代码签名的方法和装置
US20080086613A1 (en) Methods and systems for command-flow continuity application-authentication
JP2003122588A (ja) ソフトウェア処理装置及びソフトウェア・インストール方法
WO2019057314A1 (en) MANAGING ENCLAVES ON AN EXECUTION PLATFORM
CN113641463A (zh) 虚拟化系统可信认证方法、系统及计算机可读存储介质
TWI740214B (zh) 伺服器啟動方法
KR101320680B1 (ko) 소프트웨어의 무결성 검사 장치 및 방법
WO2020034881A1 (zh) 一种可信执行环境的激活方法和装置
CN116561734A (zh) 一种验证方法、装置、计算机及计算机配置系统
CN112632552A (zh) 服务器启动方法