TW201516733A - 用以核對uefi認證變量變化之系統及方法 - Google Patents

用以核對uefi認證變量變化之系統及方法 Download PDF

Info

Publication number
TW201516733A
TW201516733A TW103132620A TW103132620A TW201516733A TW 201516733 A TW201516733 A TW 201516733A TW 103132620 A TW103132620 A TW 103132620A TW 103132620 A TW103132620 A TW 103132620A TW 201516733 A TW201516733 A TW 201516733A
Authority
TW
Taiwan
Prior art keywords
request
firmware
uefi
password
hash
Prior art date
Application number
TW103132620A
Other languages
English (en)
Other versions
TWI667586B (zh
Inventor
Timothy Andrew Lewis
Original Assignee
Insyde Software Corp
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 Insyde Software Corp filed Critical Insyde Software Corp
Publication of TW201516733A publication Critical patent/TW201516733A/zh
Application granted granted Critical
Publication of TWI667586B publication Critical patent/TWI667586B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)

Abstract

本文討論一種用以認證一基於作業系統的應用程式具有改變在系統韌體上之一UEFI認證變量的授權之機制。本發明的實施例透過該系統韌體接收來自一基於作業系統的應用程式之請求去改變一UEFI認證的變量。該請求包括一具有時間戳記和預定的GUID之認證的描述符標頭。該請求包含一使用該UEFI認證變量的名稱之雜湊計算和一該韌體已知的的密碼。該系統韌體藉由先核對在標頭之資訊,然後使用該密碼創建一新的雜湊,認證該呼叫者具有改變一認證變量的授權。將該新的雜湊與所接收到的雜湊相比,並且必須依序符合該系統韌體,以允許該UEFI認證變量之改變。在一實施例中,該密碼為系統韌體密碼。

Description

用以核對UEFI認證變量變化之系統及方法
本發明是關於一種核對UEFI已認證的變量之系統及方法。
多數計算裝置係由包括在該裝置內之韌體所初始化,且該韌體提供一系列的軟體服務,這些軟體服務幫助作業系統(OS)的開機,也提供這些服務的較小子集,其在作業系統開機後可繼續被利用。韌體是一種已經被寫在唯讀記憶體(ROM)模組上之軟體,此模組包括但不限於唯讀記憶體(ROM)、可程式唯讀記憶體(PROM)、可抹除可程式唯讀記憶體(EPROM)、電氣可抹除可程式唯讀記憶體(EEPROM)或快閃記憶體(以上全體在本文之後均以“ROM”表示)。在其他服務中,直到將該計算裝置之作業系統載入記憶體之開機進程可運行前,由此種韌體負責該計算裝置之操作。儘管某些服務的提供,在載入該作業系統後會基於安全性及其他因素,回頭向該韌體要求來自該作業系統的控制移轉,但一旦作業 系統經載入,就由該作業系統接管該計算裝置的正常操作。
統一可延伸韌體介面(UEFI)是一個由非營利工業主體所創建的規範,詳述在作業系統和計算裝置之韌體間的一編程介面,此類韌體包括下列但不限於:個人電腦(PC)。UEFI規範描述一組工具,藉此,計算裝置可以一種有組織的方式從提供電力狀態推移到全操作式。此規範顯示了欲求結果但卻無法謹慎地說明內部的實施策略。此UEFI韌體規範取代了先前工業上所使用的早期OS/韌體介面,現在則被稱作遺留BIOS。
該UEFI規範提供了一個稱作驅動程式簽署之設備,藉由此設備,就可從其他方在其原始地使用公共/私人密鑰加密技術“簽入”,及在允許該軟體操作之前,這個簽署是由該平台韌體所驗證。該簽署確認針對軟體加入以配置可選組件(如插入式板)和作業系統初啟動步驟供應的軟體(例如作業系統的初啟動加載程式)。該簽署確認透過大量的認證密鑰才得以完成。該平台必須小心不讓未經授權的軟體元件有任何修改該大量的認證密鑰的能力,因為這將讓流氓軟體元件損害該簽署確認。
當在一計算裝置中實施時,用於UEFI韌體的機器碼及該韌體所使用的全部永久資料,都位在唯讀記憶體(ROM)中。在很多情況下,該ROM是一被稱為快閃記憶體(flash ROM)的可電氣抹除矽裝置。快閃記憶體具有特徵在於,可經由電氣指令被抹除繼而個別元件可被 寫入,且該裝置將無限期地保留該資料。當電力先供應給該計算裝置時,該系統會執行一個叫做重置的處理,其清除一已知情況之狀態並開始該韌體的執行。該韌體係從該計算裝置中之快閃記憶體或其他ROM讀取。一用於計算裝置的ROM被劃分為若干個功能性分隔或區域。一個這樣的區域在UEFI規範中被定義稱為認證變量區域或儲存認證變量。該認證變量被使用來保存用於執行簽署確認的UEFI定義的安全訊息(系統安全數據庫)。由於其包含了數據的安全性和潛在的敏感用戶數據,該UEFI規範提供該認證變量區域/商店必須被保護不受除了在安全數據庫中被確認密鑰數據的存在之任何修改。
本發明的實施例提供了一種機制,用以驗證基於作業系統的應用程式(如:應用程式當計算裝置的操作是在作業系統之控制下執行)具有權限去更動在該系統韌體中之UEFI認證變量。本發明的實施例以該系統韌體接收來自一以作業系統為基礎的應用程式之一請求,去修改一UEFI認證變量。該請求包含一個具有時間戳記和預定的GUID之認證的描述符標頭。該請求還包括使用UEFI認證變量的名稱和一該韌體已知的密碼所計算出的雜湊值。藉由先驗證在該標頭之該訊息,該系統韌體驗證該調用者具有改變一驗證認證變量之授權,然後使用該密碼創建一新的雜湊。將該新的雜湊值與所接收到的雜湊值 相比,並且對該系統韌體必須依序相匹配以允許該UEFI認證變量的改變。在一實施例中,該密碼係該系統韌體密碼。
在一實施例中,一種用以信任一作業系統應用程式試圖去改變一UEFI認證變量的計算裝置可實施之方法,包括以該系統韌體接收來自一作業系統應用程式之一請求去修改一UEFI認證變量的步驟。該方法進一步檢驗該請求,該檢驗步驟核對一認證的標頭之一部分係設定為一預定的GUID且該請求含有一時間戳記值,該時間戳記值遲於相關於該UEFI認證變量的一當前時間戳記值,其中修改動作被請求。此外,該方法基於該UEFI認證變量之一名稱及一密碼對該韌體計算一新的雜湊,並將該新的雜湊與被包含在該請求之一雜湊進行比較。若該新的雜湊與被包含在該請求之該雜湊之間有相匹配發生,允許該UEFI認證變量的改變。
在另一實施例中,一計算裝置包括一處理器、一作業系統及一以作業系統為基礎的應用程式當該計算裝置在該作業系統控制下時被執行。該計算裝置亦包括儲存在唯讀記憶體中之系統韌體。該系統韌體係組配以接收來自該以作業系統為基礎的應用程式之一請求,去修改一UEFI認證變量並檢驗該請求。該檢驗步驟核對一認證的標頭之一部分係設定為一預定的GUID且該請求含有一時間戳記值,該時間戳記值遲於相關於該UEFI認證變量的一當前時間戳記值,其中修改動作被請求。該系統韌體 亦配置來基於該UEFI認證變量之一名稱及一密碼對該韌體計算一新的雜湊;將該新的雜湊與被包含在該請求之一雜湊進行比較;以及若該新的雜湊與被包含在該請求之該雜湊之間有相匹配發生,允許該UEFI認證變量的改變。
100-106、200-212、302-308‧‧‧步驟
300‧‧‧請求數據結構
400‧‧‧計算裝置
402‧‧‧中央處理單元
404‧‧‧記憶體
410‧‧‧硬碟
412‧‧‧作業系統
420‧‧‧唯讀記憶體
425‧‧‧韌體
430‧‧‧認證變量
440‧‧‧密碼
450‧‧‧以作業系統為基礎的應用程式
包含於本說明書中並構成本說明書的一部分的附圖顯示了一或多個本發明之實施例,配合說明書內文,能增進對本發明的理解。在附圖中:第1圖(現有技術)描繪傳統驗證一作業系統應用程式被授權來改變一UEFI認證變量之系列步驟的一個示例;第2圖描繪在本發明一實施例中,系統韌體驗證一以作業系統為基礎的應用程式被授權來改變一UEFI認證變量之系列步驟的一個示例;第3圖描繪在本發明一實施例中用以請求一UEFI認證變量之改變的一數據結構之示例;以及第4圖描繪適於實施本發明一實施例的示例環境。
通常,期望地來看,一應用程式當該作業系統是在該計算裝置的操作控制下才被執行來與在計算裝置中之韌體進行通訊以改變一韌體設定。像這樣的應用程式 在本文稱作“作業系統應用程式”。由於許多韌體設定在本質上係敏感的,並會危及到系統的安全性或穩定性,韌體僅在該作業系統的應用程式可以被信任之時才改變設置這點是非常重要的。如果一個作業系統的應用程式可以被信任,則由作業系統的應用程式所做出的對韌體設定之改變也可以信任的。在一個建立韌體和作業系統的應用程式間之信任的方法中,這種信任暗示該應用程式對該系統韌體之特別的知識,及只有相對少數人才知道的界面或其參數。此種方法透過隱密提供安全保護。然而不幸的是,一旦該界面和其細節變得已知時,就沒有安全性可言。
在另一個建立作業系統的應用程式和系統韌體間的信任之方法中,該作業系統應用程式本身係由一私鑰簽署,且該作業系統應用程式通過使用相應的公鑰的韌體進行驗證。在驗證之後,從該作業系統應用程式傳遞到該系統韌體傳遞的數據才是可信的。然而,能夠取得受信任的應用程式的人,有潛在使用該應用程式去通過無效或有害的配置裝置,因應用程式本身就是其受信任者。
該UEFI規範定義了另一種建立信任的方法,該方法藉由要求與UEFI變量有關之變化的數據都需由一密鑰簽署,該密鑰可以由系統韌體的密鑰數據庫中之其中一個驗證證實。也就是說,該數據由一個密鑰簽署,為此相對應的公鑰則位於該系統韌體中。這種方法可以很好地用於產生由OS供應商或系統製造商所更新之配置,因為更新後的數據可在安全的環境下透過該私人密鑰簽署,其 中該私人密鑰無法輕易被偷走。第1圖(現有技術)描繪傳統驗證一作業系統應用程式被授權來改變一UEFI認證變量之系列步驟的一個示例。該序列開始於該作業系統發送一簽署請求對該系統韌體去改變一UEFI認證變量(步驟100)。在此請求中,該數據是透過一個私鑰簽署,該私鑰相對應的公鑰則被儲存在該系統韌體中。該請求由該系統韌體接收(步驟102),並且使用在該韌體的密鑰數據庫中之已儲存的公鑰解密(步驟104)。一旦該請求被解密,則該請求被處理,並且將UEFI認證變量依請求更改(步驟106)。不幸的是,在UEFI規範中所指示的方法對於在系統上生成的數據並沒有多大功用,因為本地系統通常不擁有私鑰的存取權,為此,該韌體具有相對應的公鑰。如果本地系統擁有私鑰的存取權,則將有私鑰被偷取的危險而危及到系統與所有其他使用相同公/私鑰對的系統。
本發明的實施例提供一建立信任的替代機制,其不需要對作業系統的應用程式保留或存取任何私鑰。不同於依賴像是分享在用戶和系統韌體間的密碼之保密的安全性。該保密密碼必須簡短地分享給該應用程式以生成認證訊息,然後再由該應用程式丟棄。這種方法要求用戶信任該應用程式而不儲存該保密,但允許本地生成的數據要傳遞給該系統韌體,而不需要本地系統存取私鑰,或者存取一受信任的第三方以存取該密鑰,使得可進行修改動作。本發明的實施例既而利用一保密的用戶知識,例 如:系統韌體密碼或其他密碼,其與該韌體共享以便對該系統韌體授權更新儲存在UEFI認證變量的配置設定。
該UEFI規範定義了SetVariable( )函數作為其運行服務(7.2節)的一部分。此功能改變儲存在“variables”中的配置設定。每個變量包含GUID、名稱、數據的變量長度方塊及一些標誌描述其何時可被存取、應儲存至何處及何種類型的安全性應被使用。其中SetVarible被定義為:
如果Attributes的位元5被設置(表示預定義的常數標識符EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS),其指示Data由一個認證描述符放置於前綴(EFI_VARIABLE_AUTHENTICATION_2),其描述了該韌體所需要的資訊,以決定是否允許該變量進行更新。該UEFI規範定義了以下標頭://
TimeStamp域將Pad1、Nanosecond、TimeZone、Daylight及Pad2域設置為0表示與認證描述符相關聯的時間。TimeStamp域係用來驗證所保存的有效描述符之副本不能、盡可能地不傾向被用來返回到前一個變量值。AuthInfo域是一GUID,其識別認證資訊的格式。至少一種類型的GUID由UEFI規範定義(EFI_CERT_TYPE_PKCS7_GUID),其識別了跟在認證標頭後之數據,作為定義在PKCS# 7規格和Microsoft Authenticode規格中之驗證。然而,在本發明的一實施例中,另一個GUID值被取代。例如,GUID可以被取代成AuthInfo域,其定義為:
其他GUID值也可以由本發明的其它實施例所用。在一實施例中,不同的GUID值可用以區分一些認證訊息間之變化,如本文所描述的。
在一實施例中,在該認證標頭後,是包含接續數據、字節填充緩衝區的一SHA-256雜湊:
1.字符串由不包括終止空字符之SetVariable的VariableName參數( )指向。
2. GUID由SetVariable的VendorGuid參數( )指向。
3. TimeStamp結構。
4. DataSize位元由Data所指向。對於本發明的目的,Data應指向一Unicode字符串(不包括空終止符)所組成的密碼,如系統韌體的密碼。
在SetVariable( )函數的處理中,以下的步驟序列也可以由本發明的其中一個實施例所使用,以驗證調用作業系統應用程式被授權來改變變量:
1.驗證該認證標頭的AuthInfo部分設置為H2O_CERT_TYPE_PASSWORD_GUID。如果不是,則產生一個錯誤。
2.確認該認證標頭的TimeStamp部分之Pad1、Nanosecond、TimeZone、Daylight及Pad2域被設置為0,如果沒有,則失敗。
3.除非EFI_VARIABLE_APPEND_WRITE屬性被設置,驗證TimeStamp值遲於與該變量相關聯的當前時間戳值。如果沒有,則失敗。
4.使用下列對SHA-256算法之輸入計算出一個新的雜湊:
a.該字符串由不包括終止空字符的SetVariable之VariableName參數( )所指向。
b. GUID由SetVariable的VendorGuid參數( )所指向。
c. TimeStamp結構。
d. DataSize位元由數據所指向。對於本發明的目的,Data應指向一Unicode字符串(不包括空終止符)所組成的實際系統韌體之密碼。
5.在該請求中之認證描述符之後,立即比較新的雜湊與該雜湊之結果。如果它們不匹配,則調用應用程式就沒有授權去改變該UEFI變量。
在另一實施例中,其他雜湊算法可以使用包括公知的韌體密碼(和暫時提供給如上所述之調用應用程式)和/或其它數據可被用作算法的輸入。
第2圖描繪在本發明一實施例中,系統韌體驗證一以作業系統為基礎的應用程式被授權來改變一UEFI認證變量之系列步驟的一個示例。該序列以該韌體開始接收一請求來改變UEFI認證變量(步驟200)。該韌體驗證該認證訊息係設置為一個預定的GUID(步驟202)。例如,在一實施例中,系統韌體可驗證該認證標頭的AuthInfo部分係設置為H2O_CERT_TYPE_PASSWORD_GUID。該韌體還驗證該請求包含一時間戳記值遲於與該 UEFI認證變量相關聯的一當前時間戳記值(步驟204)。例如,在一實施例中,除非EFI_VARIABLE_APPEND_WRITE屬性已被設置,時間戳記值將被驗證以確保其是比與該變量相關聯的該當前時間戳記值較晚的時間。一新的雜湊繼而使用已知的韌體,諸如系統韌體密碼和預定的數據進行計算(步驟206)。例如,在一實施例中,該新的雜湊是基於一字符串,其由不包括終止空字符參數的SetVariable之VariableName參數所指向,GUID則由SetVariable( )的VendorGuid參數、TimeStamp結構及該系統韌體密碼所指向。該新的雜湊則與包括接收自該作業系統的應用程式之請求的雜湊進行比較(步驟208)。是否該雜湊係匹配的一判定被做出(步驟209)。若該雜湊匹配(步驟209),則該UEFI認證變量可依請求而改變(步驟210)。如果該雜湊不匹配,該變量之改變是不被允許的(步驟212)。
第3圖描繪在本發明一實施例中用以請求一UEFI認證變量之改變的一數據結構之示例。該請求的數據結構300包括認證標頭,如EFI_VARIABLE_AUTHENTICATION_2域,其包括TimeStamp302和AuthInfo304。該請求結構還包括SHA-256(或其它類型的)之由該作業系統的應用程式和配置數據308所計算出的雜湊306。
在一實施例中,使用UEFI變量以改變系統韌體配置設定,該作業系統應用程式要求該系統韌體密碼的 輸入,如上述所創建的雜湊,然後清除來自儲存器的系統韌體密碼,使得其被另一進程或應用程式有機可乘的機率受限。執行這些步驟的具體的最佳實施例對每個作業系統都是特定的。例如,一些作業系統提供敏感訊息可以被輸入並處理其中的所有其他進程被掛起的特殊模式。系統韌體實現以提供至少一個密碼來存取在預作業系統環境的敏感設置是常見的。在一實施例中,同樣的韌體密碼也可被用來證明一作業系統的應用程式是可信任進行如本文所述的改變UEFI認證變量。在另一實施例中,允許超過一個密碼來改變一設定。此外,在另一實施例中,特定的密碼需要特定設置。對於每個組合,一新的雜湊被創建並與所接收到的雜湊比較,以看看是否由正確密碼所生成的該雜湊匹配。
第4圖描繪適於實行本發明之一實施例的一個環境示例。一計算裝置400包括一CPU402。該計算裝置400可為一嵌入式系統、銷售點系統、資訊站系統、PC、筆記型電腦、桌上型計算裝置、伺服器、智慧型手機或者其他一些裝載有執行一啟動序列之處理器及韌體的計算裝置。該計算裝置400亦可包括像是隨機存取記憶體(RAM)的記憶體404。一儲存在硬碟410上在計算裝置400中或與其通訊的作業系統415,可被作為該計算裝置所執行的啟動序列之一部分載入記憶體404。該計算裝置400亦可包括具有韌體422的ROM420。該計算裝置400亦可包括用於一磁碟的在非依電性記憶體中之一相對應的 快取器424
該計算裝置400亦可包括具有韌體422的ROM420。該計算裝置400亦可包括用於一磁碟的在非依電性記憶體中之一相對應的快取器424。在一實施例中,該相對應的快取器424位於ROM420中。在一些例子中,該系統設計可包含多種ROM裝置。計算裝置400亦可包括光碟430。如上所述,該相對應的快取器424允許一啟動序列期間所需的編碼或數據(例如:OS啟動加載器)儲存,該啟動序列可通常為該韌體從光碟430或另一像是磁帶驅動之慢速存取的儲存位置檢索。
本發明的部分或所有實施例可被提供以作為一或多個電腦可讀程式或嵌入在一或多個非依電性媒體之上或之中。該媒體可為但不限為一硬碟、一光碟、一多樣化數位光碟、ROM、PROM、EPROM、EEPROM、快閃記憶體、RAM或一磁帶。總的來說,該電腦可讀程式或編碼可以任何計算機語言實施。
因為某些變化可在不脫離本發明的範圍下產生,這意味著包含於上述內文中或顯示於附圖中的所有內容皆被解釋為說明性質,而非其字面意義。本領域的從業人員將認識到,步驟順序及圖式中所描繪的架構在不脫離本發明的範圍內可以進行變換,且本文所包含的圖式僅是本發明眾多可能的描繪中的一個例子。
以上關於本發明實施例之示例的內容提供了說明和描述,但並非意在是窮舉或將本發明限制於所揭示 的精確形式。根據以上所教示的或從本發明的實踐中可進行可能的修改和變化。例如,當一系列的動作被陳述,在其它實現方式中,動作的順序可進行與本發明原理一致的修改。此外,非依賴性的動作也可以平行地執行。

Claims (16)

  1. 一種用以信任一作業系統應用程式試圖去改變一UEFI認證變量的計算裝置可實施之方法,該方法包含:以該系統韌體接收來自一作業系統應用程式之一請求,去修改一UEFI認證變量;檢驗該請求,該檢驗步驟核對一認證的標頭之一部分係設定為一預定的GUID且該請求含有一時間戳記值,該時間戳記值遲於相關於該UEFI認證變量的一當前時間戳記值,其中修改動作被請求;基於該UEFI認證變量之一名稱及一密碼對該韌體計算一新的雜湊;將該新的雜湊與被包含在該請求之一雜湊進行比較;以及若該新的雜湊與被包含在該請求之該雜湊之間有相匹配發生,允許該UEFI認證變量的改變。
  2. 如申請專利範圍第1項所述之方法,其中該密碼係一系統韌體密碼。
  3. 如申請專利範圍第1項所述之方法,其中該新的雜湊計算亦基於由SetVariable( )的VendorGuid參數所指的GUID。
  4. 如申請專利範圍第1項所述之方法,其中該新的雜湊計算亦基於該時間戳記的一結構。
  5. 如申請專利範圍第1項所述之方法,其中用來產生該新的雜湊之該密碼係基於被包含在該請求之該UEFI認 證變量名稱之該韌體所選擇。
  6. 如申請專利範圍第1項所述之方法,其中複數個新的雜湊係基於複數個密碼被創建且與被包含在該請求之該雜湊相比。
  7. 一種具有電腦可執行指令之非暫時性媒體,其中該等指令用以信任一作業系統應用程式試圖去改變一UEFI認證變量,該等指令當被執行時致使該計算裝置進行下列步驟:以該系統韌體接收來自一作業系統應用程式之一請求,去修改一UEFI認證變量;檢驗該請求,該檢驗步驟核對一認證的標頭之一部分係設定為一預定的GUID且該請求含有一時間戳記值,該時間戳記值遲於相關於該UEFI認證變量的一當前時間戳記值,其中修改動作被請求;基於該UEFI認證變量之一名稱及一密碼對該韌體計算一新的雜湊;將該新的雜湊與被包含在該請求之一雜湊進行比較;以及若該新的雜湊與被包含在該請求之該雜湊之間有相匹配發生,允許該UEFI認證變量的改變。
  8. 如申請專利範圍第7項所述之媒體,其中該密碼係一系統韌體密碼。
  9. 如申請專利範圍第7項所述之媒體,其中該新的雜湊計算亦基於由SetVariable( )的VendorGuid參數所指的 GUID。
  10. 如申請專利範圍第7項所述之媒體,其中該新的雜湊計算亦基於該時間戳記的一結構。
  11. 如申請專利範圍第7項所述之媒體,其中用來產生該新的雜湊之該密碼係基於被包含在該請求之該UEFI認證變量名稱之該韌體所選擇。
  12. 如申請專利範圍第7項所述之媒體,其中複數個新的雜湊係基於複數個密碼被創建且與被包含在該請求之該雜湊相比。
  13. 一種計算裝置,其包含:一處理器;一作業系統;一以作業系統為基礎的應用程式當該計算裝置在該作業系統控制下時被執行;具有唯讀記憶體之系統韌體,該系統韌體組配以進行下列步驟:接收來自該以作業系統為基礎的應用程式之一請求,去修改一UEFI認證變量;檢驗該請求,該檢驗步驟核對一認證的標頭之一部分係設定為一預定的GUID且該請求含有一時間戳記值,該時間戳記值遲於相關於該UEFI認證變量的一當前時間戳記值,其中修改動作被請求;基於該UEFI認證變量之一名稱及一密碼對該韌體計算一新的雜湊; 將該新的雜湊與被包含在該請求之一雜湊進行比較;以及若該新的雜湊與被包含在該請求之該雜湊之間有相匹配發生,允許該UEFI認證變量的改變。
  14. 如申請專利範圍第13項所述之計算裝置,其中該密碼係一系統韌體密碼。
  15. 如申請專利範圍第13項所述之計算裝置,其中用來產生該新的雜湊之該密碼係基於被包含在該請求之該UEFI認證變量名稱之該韌體所選擇。
  16. 如申請專利範圍第13項所述之計算裝置,其中複數個密碼係被儲存在該唯讀記憶體(ROM)中且複數個新的雜湊係基於該等複數個密碼被創建且與被包含在該請求之該雜湊相比。
TW103132620A 2013-09-20 2014-09-22 用以核對uefi認證變量變化之系統及方法 TWI667586B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361880222P 2013-09-20 2013-09-20
US61/880,222 2013-09-20

Publications (2)

Publication Number Publication Date
TW201516733A true TW201516733A (zh) 2015-05-01
TWI667586B TWI667586B (zh) 2019-08-01

Family

ID=52692102

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103132620A TWI667586B (zh) 2013-09-20 2014-09-22 用以核對uefi認證變量變化之系統及方法

Country Status (2)

Country Link
US (1) US9660807B2 (zh)
TW (1) TWI667586B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113448797A (zh) * 2020-03-27 2021-09-28 广达电脑股份有限公司 系统、计算机实现方法、以及计算机程序产品

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104335220B (zh) * 2012-03-30 2018-04-20 爱迪德技术有限公司 用于防止和检测安全威胁的方法和系统
US10530576B2 (en) 2015-02-13 2020-01-07 Insyde Software Corp. System and method for computing device with improved firmware service security using credential-derived encryption key
US9734311B1 (en) * 2015-03-17 2017-08-15 American Megatrends, Inc. Secure authentication of firmware configuration updates
US9830457B2 (en) * 2015-05-05 2017-11-28 Dell Products, L.P. Unified extensible firmware interface (UEFI) credential-based access of hardware resources
US10284532B2 (en) * 2015-07-31 2019-05-07 Blackberry Limited Managing access to resources
US10958435B2 (en) * 2015-12-21 2021-03-23 Electro Industries/ Gauge Tech Providing security in an intelligent electronic device
CN108351923B (zh) 2016-01-28 2021-10-01 惠普发展公司,有限责任合伙企业 与统一可扩展固件接口系统可执行的脚本有关的阈值
US10803176B2 (en) * 2016-10-21 2020-10-13 Hewlett-Packard Development Company, L.P. Bios security
US10430206B1 (en) * 2017-03-14 2019-10-01 American Megatrends International, Llc Multi-user hidden feature enablement in firmware
WO2018176125A1 (en) 2017-03-28 2018-10-04 Sierra Wireless, Inc. Method and apparatus for secure computing device start up
CN107017994B (zh) * 2017-04-14 2020-05-05 广州羊城通有限公司 一种数据安全验证装置
US11263326B2 (en) 2017-06-02 2022-03-01 Apple Inc. Method and apparatus for secure system boot
US10216524B2 (en) 2017-06-22 2019-02-26 Dell Products, Lp System and method for providing fine-grained memory cacheability during a pre-OS operating environment
US10572151B2 (en) 2017-07-10 2020-02-25 Dell Products, Lp System and method to allocate available high bandwidth memory to UEFI pool services
US10459742B2 (en) 2017-07-20 2019-10-29 Dell Products, Lp System and method for operating system initiated firmware update via UEFI applications
US10635818B1 (en) * 2017-08-25 2020-04-28 American Megatrends International, Llc Blocking runtime firmware variable access
WO2019046933A1 (en) 2017-09-06 2019-03-14 Absolute Software Corporation SECURE FIRMWARE INTERFACE
US11836254B2 (en) 2017-09-14 2023-12-05 Insyde Software Corp. System and method for securing a series of firmware function calls using session tokens
US10901821B2 (en) 2017-10-31 2021-01-26 Insyde Software Corp. System and method for sending restful commands to UEFI firmware using UEFI variable services
US10764064B2 (en) * 2017-12-01 2020-09-01 International Business Machines Corporation Non-networked device performing certificate authority functions in support of remote AAA
US20210081117A1 (en) * 2018-06-07 2021-03-18 Hewlett-Packard Development Company, L.P. Non-volatile memory protections
US11132437B2 (en) * 2018-06-26 2021-09-28 The Government Of The United States Of America, As Represented By The Secretary Of The Navy Secure computer operating system through interpreted user applications
WO2020176093A1 (en) * 2019-02-28 2020-09-03 Hewlett-Packard Development Company, L.P. Signed change requests to remotely configure settings
US11815944B2 (en) 2020-02-13 2023-11-14 Insyde Software Corp. System and method for securing firmware function calls using session-based encryption
US11416615B2 (en) * 2020-09-02 2022-08-16 Dell Products, L.P. Configuring trusted remote management communications using UEFI
CN113127844A (zh) * 2021-03-24 2021-07-16 山东英信计算机技术有限公司 一种变量访问方法、装置、系统、设备和介质
CN115563628B (zh) * 2022-01-17 2023-09-22 荣耀终端有限公司 一种变量读取、写入方法和变量读取、写入装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7006673B2 (en) * 2001-07-25 2006-02-28 Activcard Ireland Limited Method of hash string extraction
TWI296477B (en) * 2005-03-23 2008-05-01 Quanta Comp Inc Single logon method on a server system and a server system with single logon functionality
JP2007156587A (ja) * 2005-12-01 2007-06-21 Hitachi Ltd 電源制御方法およびこれを実現するシステム
JP4736140B2 (ja) * 2009-04-03 2011-07-27 日本電気株式会社 認証装置、サーバシステム、認証方法、認証プログラム
US8918907B2 (en) 2011-04-13 2014-12-23 Phoenix Technologies Ltd. Approaches for firmware to trust an application

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113448797A (zh) * 2020-03-27 2021-09-28 广达电脑股份有限公司 系统、计算机实现方法、以及计算机程序产品

Also Published As

Publication number Publication date
US20150089238A1 (en) 2015-03-26
US9660807B2 (en) 2017-05-23
TWI667586B (zh) 2019-08-01

Similar Documents

Publication Publication Date Title
TWI667586B (zh) 用以核對uefi認證變量變化之系統及方法
CN109951489B (zh) 一种数字身份认证方法、设备、装置、系统及存储介质
CN111030822B (zh) 用于保护固件的方法和系统,以及计算机可读介质
CN109313690B (zh) 自包含的加密引导策略验证
WO2020192406A1 (zh) 数据存储、验证方法及装置
TWI598814B (zh) 用於管理及診斷配備有統一可延伸韌體介面(uefi)相容韌體的計算裝置之系統與方法
US10474823B2 (en) Controlled secure code authentication
US7711960B2 (en) Mechanisms to control access to cryptographic keys and to attest to the approved configurations of computer platforms
JP5703391B2 (ja) 耐タンパー性ブート処理のためのシステム及び方法
US8874922B2 (en) Systems and methods for multi-layered authentication/verification of trusted platform updates
WO2020001103A1 (zh) 基于区块链的电子签名方法及装置、电子设备
US7591014B2 (en) Program authentication on environment
TW201807616A (zh) 安全儲存系統以及用於安全儲存的方法
CN106656502A (zh) 计算机系统及安全执行的方法
CN105718807B (zh) 基于软tcm和可信软件栈的安卓系统及其可信认证系统与方法
US11228421B1 (en) Secure secrets to mitigate against attacks on cryptographic systems
TW201500960A (zh) 在配有適用統一可延伸韌體介面(uefi)之韌體之計算裝置中的安全性變數變化檢測技術
JP2005167589A (ja) 情報処理装置、サーバ装置、情報処理装置のための方法、サーバ装置のための方法および装置実行可能なプログラム
CN110795126A (zh) 一种固件安全升级系统
US10936722B2 (en) Binding of TPM and root device
WO2018166163A1 (zh) Pos终端控制方法、pos终端、服务器及存储介质
US10158623B2 (en) Data theft deterrence
CN115062291A (zh) 用于管理容器的方法、系统和计算机可读介质
CN117610083A (zh) 文件校验方法、装置、电子设备及计算机存储介质
CN114448794B (zh) 一种基于芯片可信根对固件进行安全升级的方法及装置