TWI760805B - 具有雙重安全啟動之自動駕駛系統 - Google Patents

具有雙重安全啟動之自動駕駛系統 Download PDF

Info

Publication number
TWI760805B
TWI760805B TW109125904A TW109125904A TWI760805B TW I760805 B TWI760805 B TW I760805B TW 109125904 A TW109125904 A TW 109125904A TW 109125904 A TW109125904 A TW 109125904A TW I760805 B TWI760805 B TW I760805B
Authority
TW
Taiwan
Prior art keywords
firmware
microcontroller
embedded controller
flash memory
application
Prior art date
Application number
TW109125904A
Other languages
English (en)
Other versions
TW202207059A (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 TW109125904A priority Critical patent/TWI760805B/zh
Priority to CN202010816534.7A priority patent/CN114064130B/zh
Priority to US17/038,132 priority patent/US11609997B2/en
Publication of TW202207059A publication Critical patent/TW202207059A/zh
Application granted granted Critical
Publication of TWI760805B publication Critical patent/TWI760805B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

一種具有雙重安全啟動之自動駕駛系統,包括:控制系統、主機及基板管理控制器。控制系統包括:微控制器;第一快閃記憶體,用以儲存第一嵌入式控制器韌體及第一應用程式映像檔;以及第二快閃記憶體,用以儲存第二嵌入式控制器韌體及第二應用程式映像檔。當自動駕駛系統開啟電源時,微控制器係執行雙重安全開機程序以執行第一或第二嵌入式控制器韌體。因應於微控制器成功執行第一或第二嵌入式控制器韌體,微控制器更對第一或第二應用程式映像檔進行認證。因應於該基板管理控制器執行認證成功的該第一應用程式映像檔或該第二應用程式映像檔,該主機係執行一開機程序。

Description

具有雙重安全啟動之自動駕駛系統
本發明係有關於電腦系統,特別是有關於一種具有雙重安全啟動之自動駕駛系統。
隨著科技發展,自動駕駛技術所需要的穩定度及安全性也愈來愈高。傳統的自動駕駛系統雖然可使用硬體安全開機之技術以防止自動駕駛系統遭到攻擊或防止被惡意軟體感染,但是傳統的自動駕駛系統僅配置了單一安全啟動之設計,其並無法防止儲存元件損壞而造成車輛的自動駕駛系統當機的問題。
因此,需要一種具有雙重安全啟動之自動駕駛系統以解決上述問題。
本發明係提供一種具有雙重安全啟動之自動駕駛系統,包括:一控制系統、一主機及一基板管理控制器。控制系統包括:一微控制器;一第一快閃記憶體,用以儲存第一嵌入式控制器 韌體及第一應用程式映像檔;以及一第二快閃記憶體,用以儲存第二嵌入式控制器韌體及第二應用程式映像檔。當該自動駕駛系統開啟電源時,該微控制器係執行一雙重安全開機程序以執行該第一嵌入式控制器韌體或該第二嵌入式控制器韌體。因應於該微控制器成功執行該第一嵌入式控制器韌體或該第二嵌入式控制器韌體,該微控制器更對第一應用程式映像檔或第二應用程式映像檔進行認證。因應於該基板管理控制器執行認證成功的該第一應用程式映像檔或該第二應用程式映像檔,該主機係執行一開機程序。
在一些實施例中,該微控制器包括第一唯讀記憶體及一次性可程式化(OTP)記憶體,且該第一唯讀記憶體係儲存一開機啟動程式,且該OTP記憶體係儲存橢圓曲線迪菲-赫爾曼金鑰交換(ECDH)私鑰、第一橢圓曲線數位簽章算法(ECDSA)公鑰、第二ECDSA公鑰及RSA公鑰雜湊值。該第一嵌入式控制器韌體及該第二嵌入式控制器韌體係儲存ECDH公鑰及第一ECDSA私鑰,該第一應用程式映像檔及該第二應用程式映像檔係儲存RSA私鑰。該第一快閃記憶體更儲存第一應用程式設定且該第二快閃記憶體更儲存第二應用程式設定,且該第一應用程式設定及該第二應用程式設定係儲存第二ECDSA私鑰。
在一些實施例中,在該雙重安全開機程序中,該微控制器係使用該ECDH私鑰及該第一ECDSA公鑰對該第一嵌入式控制器韌體進行解密及認證,其中當該第一嵌入式控制器韌體解密失敗或認證失敗時,該微控制器更使用該ECDH私鑰及該第一 ECDSA公鑰對該第二嵌入式控制器韌體進行解密及認證。在該雙重安全開機程序中,當該微控制器成功執行該第一嵌入式控制器韌體時,該微控制器係使用該第二ECDSA公鑰對該第一應用程式設定進行認證。當該第一應用程式認證失敗時,該微控制器係使用該第二ECDSA公鑰對該第一應用程式設定進行認證,當該微控制器成功執行該第二嵌入式控制器韌體時,該微控制器係使用該第二ECDSA公鑰對該第一應用程式設定進行認證。
在一些實施例中,在該雙重安全開機程序中,該微控制器係使用該RSA公鑰雜湊值以及儲存於該第一快閃記憶體或該第二快閃記憶體中的RSA公鑰對該第一應用程式映像檔或該第二應用程式映像檔進行解密。
在一些實施例中,當該微控制器執行該雙重安全開機程序時,該微控制器係發送一重置信號至該基板管理控制器及該主機以使該基板管理控制器及該主機暫時中止運作。當該微控制器完成該雙重安全開機程序以成功執行該第一嵌入式控制器韌體或該第二嵌入式控制器韌體後,該微控制器係釋放該重置信號以使該基板管理控制器開始運作。
在一些實施例中,該主機包括一處理器、一平台控制集線器、一第三快閃記憶體及一第四快閃記憶體,且該平台控制集線器係耦接至該處理器、該第三快閃記憶體、該第四快閃記憶體及該基板管理控制器,該第三快閃記憶體及該第四快閃記憶體係分別儲存第一基本輸入輸出系統(BIOS)韌體及第二BIOS韌體。在該 主機之該開機程序中,該處理器係先讀取該第一BIOS韌體,且當該處理器判斷該第一BIOS韌體未損壞且認證通過時,該處理器係執行該第一BIOS韌體以進行該開機程序。當該處理器判斷該第一BIOS韌體損壞或認證失敗時,該處理器係讀取該第二BIOS韌體,且當該處理器判斷該第二BIOS韌體未損壞且認證通過時,該處理器係執行該第二BIOS韌體以進行該開機程序。
10:自動駕駛系統
20:主機板
100:主機
110:處理器
111:DMI匯流排
120:平台控制集線器
121:SPI匯流排
122:eSPI匯流排
131、132:快閃記憶體
133、134:BIOS韌體
150:基板管理控制器
200:控制系統
210:微控制器
211:唯讀記憶體
212:OTP記憶體
215:SPI匯流排
217:I2C匯流排
218:重置信號
220、230:快閃記憶體
221、231:嵌入式控制器韌體
222、232:應用程式設定
223、233:應用程式映像檔
S202-S218:步驟
S302-S316:步驟
S404-S430:步驟
第1圖係顯示依據本發明一實施例中之自動駕駛系統的示意圖。
第2圖為依據本發明一實施例中之開機啟動程式認證嵌入式控制器韌體的流程圖。
第3圖為依據本發明一實施例中之嵌入式控制器韌體認證應用程式設定的流程圖。
第4圖為依據本發明一實施例中基板管理控制器認證應用程式映像檔之流程圖。
以下說明係為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的"包含"、"包括"等詞,係用以表示存在特定的技術特徵、數值、方法步驟、作業處 理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如"第一"、"第二"、"第三"等詞係用來修飾權利要求中的元件,並非用來表示之間具有優先權順序,先行關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
第1圖係顯示依據本發明一實施例中之自動駕駛系統的示意圖。
自動駕駛系統10包括一主機100、一基板管理控制器(baseboard management controller,BMC)150、以及一控制系統200。主機100、基板管理控制器及控制系統200例如均設置於主機板20上。
在一實施例中,主機100係包括一處理器110、一平台控制集線器(platform controller hub,PCH)120、快閃記憶體131及132。處理器110例如可為一中央處理器或通用處理器(general purpose processor)。平台控制集線器120係連接至處理器110及快閃記憶體131及132,並且可做為一橋接器以讓處理器110及快閃記憶體131及132之間進行資料傳輸,其中平台控制集線器120係透過SPI匯流排以連接至快閃記憶體131及132。處理器110及平台控制集線器120例如可透過直接媒體介面(direct media interface,DMI)匯流排111進行溝通。此外,平台控制集線器120例如可透過一匯流排121(例如為增強串列周邊介面(eSPI)匯流排) 連接至基板管理控制器150,並且讓處理器110可與基板管理控制器150進行溝通及資料傳輸。
快閃記憶體131及132係分別儲存系統基本輸入/輸出系統(BIOS)韌體133及134,且BIOS韌體133係與BIOS韌體134相同,且BIOS韌體133係做為主機100的主要BIOS韌體,BIOS韌體134則做為主機100的備用(backup)BIOS韌體。在一些實施例中,快閃記憶體131及132例如可為同一個快閃記憶體中之不同的記憶體空間。在另一些實施例中,為了增加主機100之BIOS韌體的安全性,快閃記憶體131及132例如可用不同的快閃記憶體晶片所實現,但本發明並不限於此。
基板管理控制器150係用以協調主機100及控制系統200之間的資料及同步作業。舉例來說,以自動駕駛系統而言,控制系統200係連接至一感測器集線器(未繪示),且感測器集線器包含多種類型的感測器用以偵測車輛內部或車輛周圍的各種環境資訊。因為不同類型的感測器會以不同的頻率偵測相應的環境資訊,且不同類型的感測器資料的大小不同,若直接將感測器集線器所收集到之各感測器資料回報至平台控制集線器120,則會造成主機100之效能的嚴重負擔。因此,需要基板管理控制器150來協調主機100及控制系統200之間的資料及同步作業。
控制系統200包括一微控制器210及快閃記憶體220及230。微控制器210係用以執行控制系統200之雙重安全開機(dual secure boot)流程。微控制器210及基板管理控制器150可透 過SPI匯流排以存取快閃記憶體220及230中之資料,且微控制器210可透過12C匯流排217以與基板管理控制器150進行溝通。需注意的是,當自動駕駛系統10開機或電源回復(power recovery)並進入開機流程時,控制系統200之優先權係高於基板管理控制器150及主機100。意即,控制系統200需先成功完成安全開機流程後,才會執行基板管理控制器150之開機流程以及主機100之開機流程。
微控制器210例如可用一應用導向積體電路(application-specific integrated circuit)所實現。微控制器210係包含唯讀記憶體(read-only memory,ROM)211及一次性可程式化(one-time programmable,OTP)記憶體212,其中唯讀記憶體211係儲存開機啟動程式(EC_BL),其中開機啟動程式可視為控制系統200之硬體信任根(Root of Trust,RoT)。OTP記憶體212係儲存多把加解密私鑰(private key)或公鑰(public key)、功能設定、聯合測試工作群組(Joint Test Action Group,JTAG)設定以及測試工作群組TAG0之基礎位址(base address)。
快閃記憶體220及230例如可做為唯讀記憶體,且可稱為FLASH ROM。在一些實施例中,快閃記憶體220及230例如可為同一個快閃記憶體中之不同的記憶體空間。在另一些實施例中,為了增加控制系統200的安全性,快閃記憶體220及230例如可用不同的快閃記憶體晶片所實現,但本發明並不限於此。
快閃記憶體220係包含嵌入式控制器韌體(EC_FW)221、應用程式設定(AP_CFG)222及應用程式映像檔 (AP_IMAGE)223,其中嵌入式控制器韌體221、應用程式設定222及應用程式映像檔223均記錄了相應的加解密公鑰或私鑰,其係對應於OTP記憶體212中所儲存的加解密私鑰或公鑰。
舉例來說,OTP記憶體212中所儲存的加解密私鑰或公鑰包含了橢圓曲線迪菲-赫爾曼金鑰交換(Elliptic Curve Diffie-Hellman Key Exchange,ECDH)私鑰、第一橢圓曲線數位簽章算法(Elliptic Curve Digital Signature Algorithm,ECDSA)公鑰、第二橢圓曲線數位簽章算法公鑰以及RSA 2048公鑰雜湊值(hash)。嵌入式控制器韌體221則儲存了ECDH公鑰及第一ECDSA私鑰。應用程式設定222則儲存了第二ECDSA私鑰,且應用程式映像檔223則儲存了RSA 2048私鑰。此外,快閃記憶體220亦儲存了RSA 2048公鑰。因此,微控制器210可依據OTP記憶體212及嵌入式控制器韌體221、應用程式設定222及應用程式映像檔223中之公鑰或私鑰以進行雜湊運算、解密運算及認證運算。
快閃記憶體230係包含嵌入式控制器韌體(EC_FW)231、應用程式設定(AP_CFG)232及應用程式映像檔(AP_IMAGE)233,其中嵌入式控制器韌體231、應用程式設定232及應用程式映像檔233所儲存的內容係類似於快閃記憶體220中之嵌入式控制器韌體221、應用程式設定222及應用程式映像檔223,故其細節於此不再贄述。
詳細而言,快閃記憶體220為用於控制系統200及基板管理控制器150之嵌入式控制器韌體、應用程式設定、應用程式 映像檔的主要儲存空間,且快閃記憶體230則為備用儲存空間。一般而言,當使用者欲更新自動駕駛系統10之韌體時,往往只容許更新儲存於快閃記憶體220中之嵌入式控制器韌體221、應用程式設定222或應用程式映像檔223。儲存於快閃記憶體230中的嵌入式控制器韌體231、應用程式設定232及應用程式映像檔233可視為安全度很高的原廠設定,且通常不會被修改或更新,故其損壞的機率很低。
在控制系統200之開機流程中,微控制器210之開機啟動程式EC_BL判斷在快閃記憶體220中的嵌入式控制器韌體221損壞時,開機啟動程式EC_BL則會從快閃記憶體230讀取備用的嵌入式控制器韌體231。此外,在基板管理控制器150的開機流程中,當基板管理控制器150判斷在快閃記憶體220中的應用程式設定222或應用程式映像檔223損壞時,基板管理控制器150則會從快閃記憶體230讀取備用的應用程式設定232或應用程式映像檔233。
舉例來說,當自動駕駛系統10開機或電源回復(power recovery)時,微控制器210會先致能重置信號218(AP_RESET)以暫停基板管理控制器150之運作,且微控制器210係先讀取在快閃記憶體220中的嵌入式控制器韌體221。微控制器210可利用儲存於OTP記憶體的ECDH私鑰對嵌入式控制器韌體221進行解密,再利用第一ECDSA公鑰對解密後的嵌入式控制器韌體221進行認證,亦或是可先執行認證再進行解密的流程。若上述解密或認證的流程失敗,則微控制器210會再從快閃記憶體230讀取嵌入式控制器韌體231,並進行解密及認證的流程。
詳細而言,當認證通過的嵌入式控制器韌體221已成功在微控制器210上運作後,認證通過的嵌入式控制器韌體221會接著認證位於相同的快閃記憶體220中的應用程式映像檔223(及應用程式設定222),例如可使用RSA公鑰對應用程式映像檔223進行認證。若應用程式映像檔223認證成功,則微控制器210會釋放(禁能)重置信號218以讓基板管理控制器150可從快閃記憶體220讀取並執行應用程式映像檔223。若應用程式映像檔223認證失敗,則微控制器210會持續致能重置信號218以暫時中止基板管理控制器150,並且會從快閃記憶體230讀取應用程式映像檔233,並對應用程式映像檔233用RSA公鑰進行認證。若應用程式映像檔233認證成功,則微控制器210會釋放(禁能)重置信號218以讓基板管理控制器150可從快閃記憶體230讀取並執行應用程式映像檔233。
類似地,當嵌入式控制器韌體231認證失敗或損壞,且嵌入式控制器韌體231認證通過並成功在微控制器210上運作後,認證通過的嵌入式控制器韌體221會接著認證位於相同的快閃記憶體230中的應用程式映像檔233(及應用程式設定232),例如可使用RSA公鑰對應用程式映像檔233進行認證。
第2圖為依據本發明一實施例中之開機啟動程式認證嵌入式控制器韌體的流程圖。
在步驟S202,自動駕駛系統開啟電源。
在步驟S204,系統重置事件發生。上述系統重置事件即表示有軟體系統重置動作。無論是執行步驟S202或S204,此流程均會前進至步驟S206。
在步驟S206,開機啟動程式初始化微控制器210。
在步驟S208,開機啟動程式讀取、認證、及解密第一嵌入式控制器韌體。舉例來說,上述第一嵌入式控制器韌體為控制系統200的主要開機韌體,例如可為快閃記憶體220中所儲存的嵌入式控制器韌體221。
在步驟S210,判斷第一嵌入式控制器韌體是否認證失敗。若判斷第一嵌入式控制器韌體認證失敗,則執行步驟S212。判斷第一嵌入式控制器韌體認證成功,則執行步驟S216。
在步驟S212,開機啟動程式讀取、認證、及解密第二嵌入式控制器韌體。舉例來說,上述第二嵌入式控制器韌體為控制系統200的備用開機韌體,例如可為快閃記憶體230中所儲存的嵌入式控制器韌體231。
在步驟S214,判斷第二嵌入式控制器韌體是否認證失敗。若判斷第二嵌入式控制器韌體認證失敗,則發生致命錯誤(fatal error)。判斷第二嵌入式控制器韌體認證成功,則執行步驟S216。當有致命錯誤發生時,微控制器210或基板管理控制器150會另行處理以解決此問題,例如微控制器210設定相應的控制信號腳位,並發出重置信號218以暫時中止基板管理控制器150及處理器110之運作。
在步驟S216,開機啟動程式設定成功執行狀態。無論是在步驟S210的第一嵌入式控制器韌體認證成功或在步驟S214的第二嵌入式控制器韌體認證成功,開機啟動程式均可設定成功執行狀態,例如可修改對應之暫存器的數值以表示微控制器210已成功執行嵌入式控制器韌體,並且在步驟S218,嵌入式控制器韌體於微控制器210進行運作。
第3圖為依據本發明一實施例中之嵌入式控制器韌體認證應用程式設定的流程圖。
第3圖之流程係由第2圖之步驟S218開始,意即當嵌入式控制器韌體於微控制器210進行運作後,嵌入式控制器韌體會進一步檢查並認證應用程式設定222或232。
在步驟S302,嵌入式控制器韌體進行初始化。
在步驟S304,判斷OTP記憶體212是否非有效(not valid)。若判斷OTP記憶體212非有效,則發生致命錯誤。若判斷OTP記憶體212有效,則執行步驟S306。
在步驟S306,取得已認證之應用程式設定的設定數值。舉例來說,嵌入式控制器韌體可從快閃記憶體220或230取得已認證之應用程式設定的設定數值。
在步驟S308,判斷是否找到有效的應用程式設定。若判斷找到有效的應用程式設定,則執行步驟S310。若判斷未找到有效的應用程式設定,則發生致命錯誤。
在步驟S310,依據應用程式設定的設定數值以完成設定。舉例來說,上述設定數值例如可為基板管理控制器150或處理器110在運作自動駕駛系統10所需的各種參數,例如感測器設定、路況設定、行駛策略設定、路線規劃設定等等。
在步驟S312,取得並認證金鑰儲存器。舉例來說,金鑰儲存器係位於OTP記憶體212,且金鑰儲存器所儲存的加解密私鑰或公鑰包含了ECDH私鑰、第一ECDSA公鑰、第二ECDSA公鑰及RSA 2048公鑰雜湊值。
在步驟S314,判斷金鑰儲存器是否有效。若判斷金鑰儲存器有效,則執行步驟S316。若判斷金鑰儲存器無效,則發生致命錯誤。嵌入式控制器韌體可判斷OTP記憶體212中的金鑰儲存器是否有效,並且當金鑰儲存器為有效時,可依據應用程式設定中所儲存的第二ECDSA私鑰與金鑰儲存器中的第二ECDSA公鑰進行認證計算。
在步驟S316,應用程式設定認證成功。
第4圖為依據本發明一實施例中基板管理控制器認證應用程式映像檔之流程圖。
第4圖之流程係由第3圖之步驟S316開始,意即當應用程式設定認證成功後,微控制器會釋放重置信號218以使基板管理控制器150由快閃記憶體120或130讀取應用程式映像檔223或233。
在步驟S404,取得第一及第二嵌入式控制器韌體的認證狀態。舉例來說,依據第2~3圖之流程,第一嵌入式控制器韌體及第二嵌入式控制器韌體之中只有一者會由微控制器210所執行,故微控制器210需先取得第一嵌入式控制器韌體及第二嵌入式控制器韌體之認證狀態。
在步驟S406,認證應用程式映像檔。舉例來說,若微控制器210係執行第一嵌入式控制器韌體(例如嵌入式控制器韌體221),則微控制器210則會從快閃記憶體220讀取並認證應用程式映像檔223。若微控制器210係執行第二嵌入式控制器韌體(例如嵌入式控制器韌體231),則微控制器210則會從快閃記憶體230讀取並認證應用程式映像檔233。
在步驟S408,判斷是否偵測到致命錯誤。若偵測到致命錯誤,則執行步驟S410。若未偵測到致命錯誤,則執行步驟S414。
在步驟S410,設定用於致命錯誤情況的腳位。
在步驟S412,嵌入式控制器韌體中止處理器。舉例來說,發生致命錯誤的情況可能是應用程式映像檔損毀(解密失敗)或無法通過認證等等,故微控制器210係設定相應的控制信號腳位,並發出重置信號218以暫時中止基板管理控制器150及處理器110之運作。
在步驟S414,判斷重置信號(ASYNC_RST_DET#)或外部輸入重置信號(EXRST_IN)是否已致能。當判斷重置信號或 外部重置信號已致能,則執行步驟S416以等待重置信號或外部重置信號禁能。舉例來說,當重置信號(ASYNC_RST_DET#)或外部輸入重置信號(EXRST_IN)致能時,表示在自動駕駛系統中的控制機制需暫時中止微控制器210或基板管理控制器150之運作。
在步驟S418,依據認證結果設定狀態位元及快閃記憶體之隔離腳位。舉例來說,微控制器210可依據第一應用程式映像檔之認證結果以設定狀態位元(例如1表示認證通過、0表示認證失敗)。若第一應用程式映像檔認證失敗,則微控制器210可設定快閃記憶體220或230之隔離腳位以使基板管理控制器150無法讀取快閃記憶體220或230之資料。
在步驟S420,致能第一重置信號(AP0_RESET#),若第一重置信號已致能,則致能外部重置信號(EXRST#)。舉例來說,若應用程式映像檔223認證失敗,則微控制器210可致能第一重置信號(AP0_RESET#)。若應用程式映像檔233認證失敗,表示先前的應用程式映像檔223已認證失敗,故第一重置信號(AP0_RESET#)已被致能,因此,微控制器210此時係將外部重置信號(EXRST#)致能。
在步驟S424,判斷第二應用程式映像檔是否存在。若判斷第二應用程式映像檔存在,則執行步驟S426。若判斷第二應用程式映像檔不存在,則執行步驟S428。
在步驟S426,設定第二重置信號(AP1_RESET#)之延遲計時器為100毫秒。
在步驟S428,開啟即時中斷處理器。
在步驟S430,等待事件。舉例來說,當微控制器210或基板管理控制器150偵測到有事件發生時,則即時中斷處理器需發出中斷信號(interrupt signal)至處理器110以使處理器110對該事件進行處理。
當第4圖之流程成功執行完畢後,基板管理控制器150即可從快閃記憶體220或230讀取並執行已認證通過的應用程式映像檔223或233。基板管理控制器150即可透過eSPI匯流排122傳送一通知信號至平台控制集線器120以通知處理器110可開始進行開機程序。
類似地,當主機100開始進行開機程序時,處理器110同樣先讀取儲存於快閃記憶體131中的BIOS韌體133(例如為主要開機BIOS韌體)。當處理器110判斷BIOS韌體133未損壞且認證通過時,則處理器110會執行BIOS韌體133以進行開機程序。當處理器110判斷BIOS韌體133損壞或是認證失敗時,處理器110則會從快閃記憶體132讀取BIOS韌體134(例如為備用開機BIOS韌體)。當處理器110判斷BIOS韌體134未損壞且認證通過時,則處理器110會執行BIOS韌體134以進行開機程序。
需注意的是,當自動駕駛系統10開啟電源時,控制系統200之開機順序係先於基板管理控制器150及主機100。此外,控制系統200係包含了硬體基礎式的安全開機流程以及信任根,且具有雙重安全開機韌體。當控制系統200可成功執行嵌入式控制器 韌體並成功認證應用程式映像檔後,基板管理控制器150才會執行認證成功的應用程式映像檔以開始運作。接著,主機100才會開始進行本身的開機程序,例如同樣可使用BIOS韌體133及134進行雙重開機程序。
綜上所述,本發明係提供一種具有雙重安全啟動之自動駕駛系統,其可讓控制系統及主機均具有雙重安全啟動之功能,且控制系統可具有硬體基礎式的安全開機流程以及信任根,藉以防止損壞、被惡意軟體修改或未經認證之韌體及映像檔被執行,故可確保自動駕駛系統可在穩定且安全之環境下進行運作。
本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
S202-S218:步驟

Claims (10)

  1. 一種具有雙重安全啟動之自動駕駛系統,包括: 一控制系統,包括: 一微控制器; 一第一快閃記憶體,用以儲存第一嵌入式控制器韌體及第一應用程式映像檔;以及 一第二快閃記憶體,用以儲存第二嵌入式控制器韌體及第二應用程式映像檔; 一主機;以及 一基板管理控制器,耦接於該控制系統及該主機之間; 其中,當該自動駕駛系統開啟電源時,該微控制器係執行一雙重安全開機程序以執行該第一嵌入式控制器韌體或該第二嵌入式控制器韌體, 其中因應於該微控制器成功執行該第一嵌入式控制器韌體或該第二嵌入式控制器韌體,該微控制器更對該第一應用程式映像檔或該第二應用程式映像檔進行認證, 其中因應於該基板管理控制器執行認證成功的該第一應用程式映像檔或該第二應用程式映像檔,該主機係執行一開機程序。
  2. 如請求項1之具有雙重安全啟動之自動駕駛系統,其中該微控制器包括第一唯讀記憶體及一次性可程式化(OTP)記憶體,且該第一唯讀記憶體係儲存一開機啟動程式,且該OTP記憶體係儲存橢圓曲線迪菲-赫爾曼金鑰交換(ECDH)私鑰、第一橢圓曲線數位簽章算法(ECDSA)公鑰、第二ECDSA公鑰及RSA公鑰雜湊值。
  3. 如請求項2之具有雙重安全啟動之自動駕駛系統,其中該第一嵌入式控制器韌體及該第二嵌入式控制器韌體係儲存ECDH公鑰及第一ECDSA私鑰,該第一應用程式映像檔及該第二應用程式映像檔係儲存RSA私鑰。
  4. 如請求項3之具有雙重安全啟動之自動駕駛系統,其中該第一快閃記憶體更儲存第一應用程式設定且該第二快閃記憶體更儲存第二應用程式設定,且該第一應用程式設定及該第二應用程式設定係儲存第二ECDSA私鑰。
  5. 如請求項4之具有雙重安全啟動之自動駕駛系統,其中在該雙重安全開機程序中,該微控制器係使用該ECDH私鑰及該第一ECDSA公鑰對該第一嵌入式控制器韌體進行解密及認證, 其中當該第一嵌入式控制器韌體解密失敗或認證失敗時,該微控制器更使用該ECDH私鑰及該第一ECDSA公鑰對該第二嵌入式控制器韌體進行解密及認證。
  6. 如請求項4之具有雙重安全啟動之自動駕駛系統,其中在該雙重安全開機程序中,當該微控制器成功執行該第一嵌入式控制器韌體時,該微控制器係使用該第二ECDSA公鑰對該第一應用程式設定進行認證, 其中,當該第一應用程式認證失敗時,該微控制器係使用該第二ECDSA公鑰對該第一應用程式設定進行認證, 當該微控制器成功執行該第二嵌入式控制器韌體時,該微控制器係使用該第二ECDSA公鑰對該第一應用程式設定進行認證。
  7. 如請求項6之具有雙重安全啟動之自動駕駛系統,其中在該雙重安全開機程序中,該微控制器係使用該RSA公鑰雜湊值以及儲存於該第一快閃記憶體或該第二快閃記憶體中的RSA公鑰對該第一應用程式映像檔或該第二應用程式映像檔進行解密。
  8. 如請求項1之具有雙重安全啟動之自動駕駛系統,其中當該微控制器執行該雙重安全開機程序時,該微控制器係發送一重置信號至該基板管理控制器及該主機以使該基板管理控制器及該主機暫時中止運作。
  9. 如請求項8之具有雙重安全啟動之自動駕駛系統,其中當該微控制器完成該雙重安全開機程序以成功執行該第一嵌入式控制器韌體或該第二嵌入式控制器韌體後,該微控制器係釋放該重置信號以使該基板管理控制器開始運作。
  10. 如請求項7之具有雙重安全啟動之自動駕駛系統,其中該主機包括一處理器、一平台控制集線器、一第三快閃記憶體及一第四快閃記憶體,且該平台控制集線器係耦接至該處理器、該第三快閃記憶體、該第四快閃記憶體及該基板管理控制器,該第三快閃記憶體及該第四快閃記憶體係分別儲存第一基本輸入輸出系統(BIOS)韌體及第二BIOS韌體, 其中在該主機之該開機程序中,該處理器係先讀取該第一BIOS韌體,且當該處理器判斷該第一BIOS韌體未損壞且認證通過時,該處理器係執行該第一BIOS韌體以進行該開機程序, 其中當該處理器判斷該第一BIOS韌體損壞或認證失敗時,該處理器係讀取該第二BIOS韌體,且當該處理器判斷該第二BIOS韌體未損壞且認證通過時,該處理器係執行該第二BIOS韌體以進行該開機程序。
TW109125904A 2020-07-31 2020-07-31 具有雙重安全啟動之自動駕駛系統 TWI760805B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW109125904A TWI760805B (zh) 2020-07-31 2020-07-31 具有雙重安全啟動之自動駕駛系統
CN202010816534.7A CN114064130B (zh) 2020-07-31 2020-08-14 具有双重安全启动的自动驾驶系统
US17/038,132 US11609997B2 (en) 2020-07-31 2020-09-30 Autonomous driving system with dual secure boot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW109125904A TWI760805B (zh) 2020-07-31 2020-07-31 具有雙重安全啟動之自動駕駛系統

Publications (2)

Publication Number Publication Date
TW202207059A TW202207059A (zh) 2022-02-16
TWI760805B true TWI760805B (zh) 2022-04-11

Family

ID=80004412

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109125904A TWI760805B (zh) 2020-07-31 2020-07-31 具有雙重安全啟動之自動駕駛系統

Country Status (3)

Country Link
US (1) US11609997B2 (zh)
CN (1) CN114064130B (zh)
TW (1) TWI760805B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
HUE057629T2 (hu) * 2019-01-14 2022-05-28 MUSE Electronics GmbH Manipuláció ellen védett adatfeldolgozó készülék
US11775690B2 (en) * 2020-12-02 2023-10-03 Dell Products L.P. System and method for supporting multiple independent silicon-rooted trusts per system-on-a-chip
US11698969B1 (en) * 2021-06-25 2023-07-11 Amazon Technologies, Inc. Boot security of integrated circuit device
CN113934471A (zh) * 2021-10-26 2022-01-14 讯牧信息科技(上海)有限公司 计算机系统的基板管理控制器和启动方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201223806A (en) * 2010-12-07 2012-06-16 Ind Tech Res Inst Eco-driving system and method
CN107697072A (zh) * 2017-09-25 2018-02-16 北京新能源汽车股份有限公司 驾驶模式的切换方法、车辆和整车控制器
CN107826102A (zh) * 2016-09-16 2018-03-23 通用汽车环球科技运作有限责任公司 用于无乘员自主车辆的控制策略
CN108327699A (zh) * 2016-10-13 2018-07-27 福特全球技术公司 驾驶员离开事件期间的发动机自动启动-停止控制
JP6443299B2 (ja) * 2015-10-21 2018-12-26 株式会社デンソー 電子制御装置
US20190004854A1 (en) * 2017-07-03 2019-01-03 Baidu Usa Llc Centralized scheduling system using event loop for operating autonomous driving vehicles
US20190049342A1 (en) * 2018-09-28 2019-02-14 Intel Corporation Method and an autonomous ground vehicle
CN109572709A (zh) * 2018-12-29 2019-04-05 联想(北京)有限公司 自动驾驶的保护方法以及自动驾驶的交通工具
US10471829B2 (en) * 2017-01-16 2019-11-12 Nio Usa, Inc. Self-destruct zone and autonomous vehicle navigation

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2989579B1 (en) * 2013-04-23 2018-06-06 Hewlett-Packard Development Company, L.P. Redundant system boot code in a secondary non-volatile memory
US10223094B2 (en) * 2016-09-30 2019-03-05 Intel Corporation Initializing a system on a chip
US10691803B2 (en) * 2016-12-13 2020-06-23 Amazon Technologies, Inc. Secure execution environment on a server
CN109032673A (zh) * 2017-06-06 2018-12-18 佛山市顺德区顺达电脑厂有限公司 自动回复基本输入输出系统映像档的方法及计算机系统
US11068599B2 (en) * 2018-12-19 2021-07-20 Dell Products, L.P. Secure initialization using embedded controller (EC) root of trust
US11726923B2 (en) * 2019-06-18 2023-08-15 Micron Technology, Inc. Memory device with cryptographic kill switch

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201223806A (en) * 2010-12-07 2012-06-16 Ind Tech Res Inst Eco-driving system and method
JP6443299B2 (ja) * 2015-10-21 2018-12-26 株式会社デンソー 電子制御装置
CN107826102A (zh) * 2016-09-16 2018-03-23 通用汽车环球科技运作有限责任公司 用于无乘员自主车辆的控制策略
CN108327699A (zh) * 2016-10-13 2018-07-27 福特全球技术公司 驾驶员离开事件期间的发动机自动启动-停止控制
US10471829B2 (en) * 2017-01-16 2019-11-12 Nio Usa, Inc. Self-destruct zone and autonomous vehicle navigation
US20190004854A1 (en) * 2017-07-03 2019-01-03 Baidu Usa Llc Centralized scheduling system using event loop for operating autonomous driving vehicles
CN107697072A (zh) * 2017-09-25 2018-02-16 北京新能源汽车股份有限公司 驾驶模式的切换方法、车辆和整车控制器
US20190049342A1 (en) * 2018-09-28 2019-02-14 Intel Corporation Method and an autonomous ground vehicle
CN109572709A (zh) * 2018-12-29 2019-04-05 联想(北京)有限公司 自动驾驶的保护方法以及自动驾驶的交通工具

Also Published As

Publication number Publication date
US11609997B2 (en) 2023-03-21
CN114064130B (zh) 2024-04-02
TW202207059A (zh) 2022-02-16
US20220035926A1 (en) 2022-02-03
CN114064130A (zh) 2022-02-18

Similar Documents

Publication Publication Date Title
TWI760805B (zh) 具有雙重安全啟動之自動駕駛系統
US20190073478A1 (en) Hardware-enforced firmware security
US7921286B2 (en) Computer initialization for secure kernel
JP5767751B2 (ja) Biosを検証する方法、コンピューティングプラットフォーム、およびプログラム
US10032029B2 (en) Verifying integrity of backup file in a multiple operating system environment
US10733288B2 (en) Verifying controller code and system boot code
EP2989579B1 (en) Redundant system boot code in a secondary non-volatile memory
US9880908B2 (en) Recovering from compromised system boot code
US7962738B2 (en) Hypervisor runtime integrity support
US20080235754A1 (en) Methods and apparatus for enforcing launch policies in processing systems
US9990255B2 (en) Repairing compromised system data in a non-volatile memory
US8838952B2 (en) Information processing apparatus with secure boot capability capable of verification of configuration change
WO2020037613A1 (zh) 嵌入式程序的安全升级方法、装置、设备及存储介质
US20090327686A1 (en) Updating A Basic Input/Output System ('BIOS') Boot Block Security Module In Compute Nodes Of A Multinode Computer
JP5465738B2 (ja) システム・ファームウェアの更新方法およびコンピュータ
WO2023179745A1 (zh) 可信验证方法及装置
CN111597560A (zh) 一种安全可信模组启动方法及系统
US11809876B2 (en) Trusted platform module protection for non-volatile memory express (NVMe) recovery
TW202318196A (zh) 韌體映像檢查系統、韌體映像檢查方法及電腦系統
TWI738020B (zh) 電子機器及其控制方法
WO2021262160A1 (en) Bios backup
TWI841919B (zh) 在一開蓋竄改事件中使一安全啟動失敗的電腦系統
CN112099855B (zh) 一种信息处理方法、电子设备和计算机存储介质
TWI844823B (zh) 在一開蓋竄改事件中使一安全啟動失敗的電腦系統和方法
TW202326482A (zh) 在一開蓋竄改事件中使一安全啟動失敗的電腦系統